diff --git a/Cargo.lock b/Cargo.lock index 9f42256..8cbb0b7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -437,7 +437,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "cheezenotes" -version = "0.1.0" +version = "0.2.0" dependencies = [ "actix-files", "actix-web", diff --git a/Cargo.toml b/Cargo.toml index 4ac4247..cc38a69 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cheezenotes" -version = "0.1.0" +version = "0.2.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/pages/BPCE-SI-Notes.md b/pages/BPCE-SI-Notes.md index 9051907..9d9efd2 100644 --- a/pages/BPCE-SI-Notes.md +++ b/pages/BPCE-SI-Notes.md @@ -15,7 +15,21 @@ - [MyWay v1](bpce-si-myway-v1) - [Migration PMM -> git](bpce-si-migration-pmm) - [Ressources REST MyWay](bpce-si-ressources-myway) +## Notes +* [Passage connaissance FLorin](passageFlorin) +* [Siren non diffusible](sirenNonDiffusible) +* [Enveloppes](enveloppes) +* [MIF2](MIF2) +* [Logisaisie](logisaisie) +* [CDN Catalogue MIF2](cdncatalogue) +* [Forbearance](forbearance) +* [SPT](SPT) +* [Millésime 2022](millesime2022) +## Listes +- [Contacts](contacts-bpce-si) +- [Clients](clients-bpce-si) ## Suivi Anaïs -- [Feedback 27/01/2023](anais-feedback-27-01-2023) -## Contacts -- [Contacts](contacts-bpce-si) \ No newline at end of file +- [Feedback 27/01/2023](anais-feedback-27-01-2023)## Suivi Anaïs +- [Feedback 27/01/2023](anais-feedback-27-01-2023) +## Bidouille +- [bidouille]() \ No newline at end of file diff --git a/pages/MIF2.md b/pages/MIF2.md new file mode 100644 index 0000000..dc10ce3 --- /dev/null +++ b/pages/MIF2.md @@ -0,0 +1,2 @@ +[retour](BPCE-SI-Notes) +# MIF2 \ No newline at end of file diff --git a/pages/SPT.md b/pages/SPT.md new file mode 100644 index 0000000..cc65883 --- /dev/null +++ b/pages/SPT.md @@ -0,0 +1,6 @@ +[retour](BPCE-SI-Notes) +# SPT +* Code Clarity : 031675-01 +* Code GECOCH : E33210 +Ecran financier de connaissance client. +Mettre des libellés en fonction du code marché sur les 5 premières informations (Chiffre d'affaires/budget etc.). \ No newline at end of file diff --git a/pages/anais-feedback-27-01-2023.md b/pages/anais-feedback-27-01-2023.md index 9f8192f..5fe9c74 100644 --- a/pages/anais-feedback-27-01-2023.md +++ b/pages/anais-feedback-27-01-2023.md @@ -1,9 +1,8 @@ [retour](BPCE-SI-Notes) -# Suivi Anaïs -## Feedback Anaïs 27/01/2023 -### Contexte +# Feedback Anaïs 27/01/2023 +## Contexte Après le départ de Fabien Vincent, tuteur d'Anaïs, je reprends sa suite en tant que tuteur. Ça fait trois mois que je suis Anaïs dans son travail. Anaïs entame sa deuxième année à BPCE-SI au sein de l'équipe Outils commerciaux. -### Feedback +## Feedback Anaïs a travaillé sur plusieurs technologies : - MyWay v2 (MIF2 questionnaire risque) - MyWay v1 (maintenance sur connaissance client) diff --git a/pages/bidouille.md b/pages/bidouille.md new file mode 100644 index 0000000..14234cf --- /dev/null +++ b/pages/bidouille.md @@ -0,0 +1,13 @@ +[retour](BPCE-SI-Notes) +[](\\Prdgce7v2115\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents) +[](\\Prdgce7v2116\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents) +[](\\Prdgce7v2117\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents) +[](\\Prdgce7v2118\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents) +[](\\Prdgce7v2119\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents) +[](\\Prdgce7v2120\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents) +[](\\Prdgce7v2121\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents) +[](\\Prdgce7v2122\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents) +[](\\Prdgce7v2123\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents) +[](\\Prdgce7v2124\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents) +[](\\Prdgce7v2125\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents) +[](\\Prdgce7v2126\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents) diff --git a/pages/cdncatalogue.md b/pages/cdncatalogue.md new file mode 100644 index 0000000..ad2f1bd --- /dev/null +++ b/pages/cdncatalogue.md @@ -0,0 +1,3 @@ +[retour](BPCE-SI-Notes) +# CDN Catalogue MIF2 +* Code changement : E34164 \ No newline at end of file diff --git a/pages/clients-bpce-si.md b/pages/clients-bpce-si.md new file mode 100644 index 0000000..0b79833 --- /dev/null +++ b/pages/clients-bpce-si.md @@ -0,0 +1,7 @@ +[retour](BPCE-SI-Notes) +# Clients +| Env | Etab. | No pers. | SIREN | Commentaire | +| VFO| 11315| 075161690| 378140776| | +| VFO| 11315| 501051182| 832124945| | +| VFO| 11315| 500181958| 819524851| | +| UTI| 11315| 502306706| 808056030| | \ No newline at end of file diff --git a/pages/contacts-bpce-si.md b/pages/contacts-bpce-si.md index 8d594c9..ce3ef21 100644 --- a/pages/contacts-bpce-si.md +++ b/pages/contacts-bpce-si.md @@ -1,4 +1,4 @@ -[Notes](notes) +[retour](BPCE-SI-Notes) # Contacts ## AEM (Acquisition En Masse) - Geoffroy Lambert diff --git a/pages/enveloppes.md b/pages/enveloppes.md new file mode 100644 index 0000000..dcd1497 --- /dev/null +++ b/pages/enveloppes.md @@ -0,0 +1,56 @@ +[retour](BPCE-SI-Notes) +# Enveloppes +## 01 - choix montant à investir +* Mettre le montant avant l'enveloppe. +* Ajouter les acronymes des enveloppes entre parenthèses. +* contrat de capi avant gsm. +* Voir pour remplacer les cases à cocher par des boutons radios. +* La liste des enveloppes disponibles dpend du projet (une deux ou trois enveloppes disponibles) +* Enlever le 's' à enveloppes + +* ajouter la liste des comptes titre du client sous le CTO et l'intitulé du compte titre (bouton radio) avec en haut le choix "nouveau CTO" +* pareil pour les deux autres supports. +* vérifier si c'est possible d'alimenter un contrat de capitalisation existant. +## 02 - detail projet +* Retirer le 's' à enveloppe. +* Mettre le montant avant l'enveloppe. +* Afficher le numéro du compte titre sélectionné et son intitulé (nouveau si le compte est nouveau). +## 04 - choix produit +* Afficher le numéro du compte titre sélectionné et son intitulé (nouveau si le compte est nouveau). +* Afficher les produits de l'enveloppe et les produits non-risqués. +## 05 - proposition +* Déplacer la durée sous enveloppe +* Afficher le numéro du compte titre sélectionné et son intitulé (nouveau si le compte est nouveau). +## 06 - modifier la proposition +* Afficher le numéro du compte titre sélectionné et son intitulé (nouveau si le compte est nouveau). +## 10 - resumé après modification +* afficher les infos sous le montant dans les deux blocs. +## 11 - Synthèse (pdf) +* Mettre enveloppe sous montant à placer avec libellé et numéro de compte/contrat. +# v2 - suite à réunion du 26/01/2023 +## 01 - choix montant à investir +* Afficher le compte titre existant présélectionné +* voir si possibilité de mettre la liste ouverte **Pas de composant pour liste ouverte** +* essayer de rajouter case à cocher pour "nouveau compte CTO" +* en guise de libellé du compte, mettre l'entité titulaire (client bancaire) +> en VFO : CEBFC 83582289 (multiples comptes titres) +## 02 - detail projet +* Enlever le libellé du produit, ne laisser que le numéro de compte +## 04 - choix produit +* mettre le libellé compte et choix en gras +* éventuellement agradir la police +## 05 - proposition +* mettre en gras... +## 10 - resumé après modification +* déplacer l'enveloppe au dessus de Ostrum (regrouper ANR en haut, et AR en bas) +## 11 - Synthèse (pdf) +* dans le tableau de synthèse regrouper comme au 10 +## 12 - avec portefeuille +* Ajouter un message de précision +# v3 réunion du 02/02/2023 +* Supprimer la GSM de tous les écrans +## 10 - resumé après modification +* Ajouter une zone de saisie pour permettre au conseiller de saisir la phrase (pour la synthèse) +## 11 - Synthèse (pdf) +* Grise la ligne enveloppe (gris plus clair) +* ligne dessous, CTO numéro de compte, si nouveau : "à souscrire" \ No newline at end of file diff --git a/pages/forbearance.md b/pages/forbearance.md new file mode 100644 index 0000000..819e72a --- /dev/null +++ b/pages/forbearance.md @@ -0,0 +1,5 @@ +[retour](BPCE-SI-Notes) +# Forbearance +Rechercher les valeurs possible des états et statut. fait. +* GECOCH : P34249 +* Clarity : 031984-02 diff --git a/pages/index.md b/pages/index.md index 2bb31ff..f5822f8 100644 --- a/pages/index.md +++ b/pages/index.md @@ -1,6 +1,6 @@ [Accueil](accueil) -# CheezeNotes -L'objectif de CheezeNotes est de pouvoir saisir des notes avec un minimum de formatage le plus rapidement possible. +## CheezeNotes +L'objectif de CheezeNotes est de pouvoir saisir des `notes` avec un minimum de formatage le plus rapidement possible. > Cette page est un bac à sable. Les modifications ne seront jamais enregistrées. > Pour réinitialiser la page, il suffit de la recharger. ## Utilisation diff --git a/pages/logisaisie.md b/pages/logisaisie.md new file mode 100644 index 0000000..e24a704 --- /dev/null +++ b/pages/logisaisie.md @@ -0,0 +1,3 @@ +[retour](BPCE-SI-Notes) +## Logisaisie +[](https://confluence.f.bbg/display/EPICCB/Financier+-+transmettre+un+bilan+au+prestataire+de+saisie) \ No newline at end of file diff --git a/pages/millesime2022.md b/pages/millesime2022.md new file mode 100644 index 0000000..b52e16f --- /dev/null +++ b/pages/millesime2022.md @@ -0,0 +1 @@ +[retour](BPCE-SI-Notes) \ No newline at end of file diff --git a/pages/notes.md b/pages/notes.md index 011854b..7b680d2 100644 --- a/pages/notes.md +++ b/pages/notes.md @@ -1,5 +1,7 @@ [Accueil](accueil) # Notes +## BPCE-SI +- [Notes](BPCE-SI-Notes) ## Rust *  [Idées](perso-idees) *  [Crates](perso-crates) @@ -13,6 +15,4 @@ ## Avec les enfants - [Bricolages]() - [mini-golf]() -- [Livres](livres enfants) -## BPCE-SI -- [Notes](BPCE-SI-Notes) \ No newline at end of file +- [Livres](livres enfants) \ No newline at end of file diff --git a/pages/passageFlorin.md b/pages/passageFlorin.md new file mode 100644 index 0000000..213483f --- /dev/null +++ b/pages/passageFlorin.md @@ -0,0 +1,17 @@ +[retour](BPCE-SI-Notes) +# Passage de copnnaissance Florin +## MyWay v1 +[reliquats confluence](https://confluence.f.bbg/pages/viewpage.action?pageId=1705819095) +Corrections reliquats IHM MIF2 (6 et 7) livrés en UTI à tester. +Partie editique. +* GECOCH : E34802 +* Version : v2301 +* lot pack-it : ....IHM_MIF2_Reliquet_IHM_Editique affecté à Florin +Malika suit l'évo et vois avec le métier pour les points 4 et 5. +## GceDoc SynthèsePlacement +Suivi par Philippe Loquette. +Sur digital.ai release CEH10 Editique_Synthèse_DC_07_02_23. Testé en VFO et début d'UTI, aucun impact sur la structure du document. +## Pb déploiement MyWay v2 en DUA +Voir RITM0000051345 +## Pb tests UTI MIF2 +Ressource REST en erreur : https://myway-ressources-uti.sigcesie.caisse-epargne.fr:6085/connaissancefinclnt/v1/fraisExanteParcours \ No newline at end of file diff --git a/pages/sirenNonDiffusible.md b/pages/sirenNonDiffusible.md new file mode 100644 index 0000000..9b7cbcd --- /dev/null +++ b/pages/sirenNonDiffusible.md @@ -0,0 +1,22 @@ +[retour](BPCE-SI-Notes) +# Siren non diffusible +[api insee](https://api.insee.fr/catalogue/site/themes/wso2/subthemes/insee/pages/item-info.jag?name=Sirene&version=V3&provider=insee) +## Identifiants +* login : sanchez +* email : nicolas.sanchez@it-ce.fr +* mot de passe : Bpcesiinsee1 +* application : DefaultApplication +## Token +* clé consomateur : nvdLPdEAJNdbMhO8JdCY73vtBcwa +* secret du consommateur : Bc1UMnrj8f3kfCQ8CmAt0vOMU7ca +* jeton : 0c56889c-1d1d-3909-ac8e-e4e98763b0e0 +## Génération token +> `curl -k -d "grant_type=client_credentials" \` +> ` -H "Authorization: Basic Base64(consumer-key:consumer-secret)" \` +> ` https://api.insee.fr/token` + +> `curl -k -d "grant_type=client_credentials" \` +> ` -H "Authorization: Basic Base64(nvdLPdEAJNdbMhO8JdCY73vtBcwa:Bc1UMnrj8f3kfCQ8CmAt0vOMU7ca)" \` +> ` https://api.insee.fr/token` +## Récupération des données json/csv +- premier appel JSON pour savoir combien d'enregistrements. Si < 200000 alors un seul appel csv, sinon, on continue toute la requête en json. \ No newline at end of file diff --git a/static/MaterialIconsOutlined-Regular.otf b/static/MaterialIconsOutlined-Regular.otf new file mode 100644 index 0000000..9dad12b Binary files /dev/null and b/static/MaterialIconsOutlined-Regular.otf differ diff --git a/static/cheezenotes.css b/static/cheezenotes.css index c04fe93..c688075 100644 --- a/static/cheezenotes.css +++ b/static/cheezenotes.css @@ -4,14 +4,24 @@ font-weight: 400; src: local('Material Icons'), local('MaterialIcons-Regular'), - url(/static/MaterialIcons-Regular.ttf) format('truetype'); + url(/static/MaterialIconsOutlined-Regular.otf) format('woff'); +} + +html { + font-family: system-ui; + font-size: 12pt; +} + +body { + margin: 0; + background-color: #f6f6f6; } .material-icons { font-family: 'Material Icons'; font-weight: normal; font-style: normal; - font-size: 24px; /* Preferred icon size */ + font-size: 20px; /* Preferred icon size */ display: inline-block; line-height: 1; text-transform: none; @@ -25,34 +35,65 @@ font-feature-settings: 'liga'; } -html { - font-family: system-ui; - font-size: 12pt; -} - -body { - margin: 0; - background-color: #f6f6f6; -} - -button { - width: 2.2rem; - height: 2.2rem; -} - div#buttons { + white-space: nowrap; + box-sizing: border-box; + padding: .2rem; position: fixed; - background-color: #dddddddd; - border-bottom: 3px solid #ccccccdd; + background-color: #dddde5; top: 0; left: 0; right: 0; - height: 3rem; margin-left: auto; margin-right: auto; max-width: 1200; } +div#buttons button.button { + color: #444444; + padding: 0; + margin: 0; + height: 1.8rem; + width: 1.8rem; + background-color: #eeeeee; + border: 1px solid #cccccc; + border-right: none; +} +div#buttons button.button:disabled { + color: #aaaaaa; +} + +div#buttons button.separator { + background-color: transparent; + color: #bbbbbb; + border: none; + border-left: 1px solid #cccccc; + height: 1.8rem; + margin: 0; + padding: 0; +} + +div#buttons button.text { + color: #444444; + font-size: 16px; + vertical-align: bottom; +} +div#buttons button.text:disabled { + color: #aaaaaa; +} + +div#buttons button.floatright { + float: right; +} + +div#buttons button.rightborder { + border-right: 1px solid #cccccc; +} + +div#buttons button.onoffbutton.buttonon { + background-color: #aaaaaa; +} + div#buttons #taButtonLabel { position: relative; font-size: 1.8rem; @@ -82,7 +123,7 @@ textarea#ta { } div#cheezenotes { - margin-top: 3rem; + margin-top: 2rem; margin-left: auto; margin-right: auto; max-width: 1200; @@ -96,9 +137,9 @@ div#cheezenotes { overflow-x: auto; } -div#cheezenotes div.cheezenotes_line { +/*div#cheezenotes div.cheezenotes_line {*/ /* Pour firefox : white-space: pre; */ -} +/*}*/ div#cheezenotes span.tokenfictif { font-weight: 1; @@ -257,8 +298,6 @@ div#cheezenotes div.lasttablerow span.tablerow { border-bottom: none; } - - div#cheezenotes div.cheezenotes_line span.token { font-weight: 1; color: #1353b3; @@ -270,7 +309,7 @@ div#cheezenotes div.cheezenotes_line span.token { } div#cheezenotes:focus div.cheezenotes_line span.token { - font-size: inherit; + font-size: 95%; } div#cheezenotes div.body { diff --git a/static/modules/cheezenotes.js b/static/modules/cheezenotes.js index 9b363e2..9210c4a 100644 --- a/static/modules/cheezenotes.js +++ b/static/modules/cheezenotes.js @@ -1,6 +1,16 @@ import { saveSelection, loadSelection, insertTextAtCaret } from './caret.js'; import { formatLine, load, save, formatTable, redrawTables, appendData, dpwidth } from './md.js'; +const showtokens = [ + { fontSize: 0 }, + { fontSize: '95%' } +]; + +const hidetokens = [ + { fontSize: '95%' }, + { fontSize: 0 } +]; + function timeoutSave() { if (window.tos !== null) { window.clearTimeout(window.tos); @@ -8,9 +18,24 @@ function timeoutSave() { window.tos = window.setTimeout(onsave, 5000); } +function showTokens() { + let tokens = document.getElementsByClassName('token'); + for (let i = 0; i < tokens.length; i++) { + tokens[i].animate(showtokens, { duration: 200, iterations: 1 }); + } +} + +function hideTokens() { + let tokens = document.getElementsByClassName('token'); + for (let i = 0; i < tokens.length; i++) { + tokens[i].animate(hidetokens, { duration: 200, iterations: 1 }); + } +} + function ontextarea(e) { let ta = document.getElementById('ta'); - if (ta.style.display != 'inline') { + let taButton = document.getElementById('taButton'); + if (taButton.classList.contains('buttonoff')) { ta.style.display = 'inline'; } else { ta.style.display = 'none'; @@ -44,6 +69,51 @@ function onstrikebutton(e) { return false; } +function onmonobutton(e) { + e.preventDefault(); + let cheezenotes = document.getElementById('cheezenotes'); + cheezenotes.focus(); + insertTextAtCaret('`', '`'); + onedit(e); + return false; +} + +function onh1button(e) { + e.preventDefault(); + let cheezenotes = document.getElementById('cheezenotes'); + cheezenotes.focus(); + insertTextAtCaret('#', ''); + onedit(e); + return false; +} + +function onh2button(e) { + e.preventDefault(); + let cheezenotes = document.getElementById('cheezenotes'); + cheezenotes.focus(); + insertTextAtCaret('##', ''); + onedit(e); + return false; +} + +function onh3button(e) { + e.preventDefault(); + let cheezenotes = document.getElementById('cheezenotes'); + cheezenotes.focus(); + insertTextAtCaret('###', ''); + onedit(e); + return false; +} + +function onbqbutton(e) { + e.preventDefault(); + let cheezenotes = document.getElementById('cheezenotes'); + cheezenotes.focus(); + insertTextAtCaret('>', ''); + onedit(e); + return false; +} + function onsave(e) { let saveButton = document.getElementById('saveButton'); saveButton.disabled = true; @@ -173,36 +243,141 @@ function ondragleave(e) { // alert('leave') } +function addButton(id, icon, onclick) { + let buttons = document.getElementById('buttons'); + let button = document.createElement('button'); + button.id = id; + button.classList.add('button'); + if (icon.substring(0, 1) == ':') { + button.classList.add('material-icons'); + } else { + button.classList.add('text'); + } + button.innerText = icon.replace(':', ''); + button.addEventListener('mousedown', onclick); + buttons.appendChild(button); + return button; +} + +function addOnOffButton(id, icon, alt_icon, onclick, on = false) { + let button; + if (on == true) { + button = addButton(id, icon, onclick); + button.classList.add('onoffbutton'); + button.classList.add('buttonon'); + } else { + button = addButton(id, alt_icon, onclick); + button.classList.add('onoffbutton'); + button.classList.add('buttonoff'); + } + button.addEventListener('click', function (e) { + if (button.classList.contains('buttonon')) { + button.classList.remove('buttonon'); + button.classList.add('buttonoff'); + button.innerText = alt_icon.replace(':', '') + } else { + button.classList.remove('buttonoff'); + button.classList.add('buttonon'); + button.innerText = icon.replace(':', '') + } + }); + return button; +} + +function lastButton(button) { + button.classList.add('rightborder'); + return button; +} + +function floatRight(button) { + button.classList.add('floatright'); + return button; +} + +function addSeparator() { + let separator = addButton('', ':more_vert', function () { }); + separator.classList.add('separator'); + separator.classList.remove('button'); +} + +function enableFormatButtons() { + document.getElementById('boldButton').disabled = false; + document.getElementById('italicButton').disabled = false; + document.getElementById('strikeButton').disabled = false; + document.getElementById('h1Button').disabled = false; + document.getElementById('h2Button').disabled = false; + document.getElementById('h3Button').disabled = false; + document.getElementById('monoButton').disabled = false; + document.getElementById('bqButton').disabled = false; +} + +function disableFormatButtons() { + document.getElementById('boldButton').disabled = true; + document.getElementById('italicButton').disabled = true; + document.getElementById('strikeButton').disabled = true; + document.getElementById('h1Button').disabled = true; + document.getElementById('h2Button').disabled = true; + document.getElementById('h3Button').disabled = true; + document.getElementById('monoButton').disabled = true; + document.getElementById('bqButton').disabled = true; +} + +function onblur(e) { + let cheezenotes = document.getElementById('cheezenotes'); + redrawTables(cheezenotes); + onsave(); + hideTokens(); + disableFormatButtons(); +} + +function onfocus() { + redrawTables(cheezenotes, dpwidth()); + showTokens(); + enableFormatButtons(); +} + function init(pagename = null) { - let cheezenotesdiv = document.getElementById('cheezenotes'); - - dpwidth(cheezenotesdiv); - - cheezenotesdiv.addEventListener('input', onedit); - cheezenotesdiv.addEventListener('keyup', onkeyup); - cheezenotesdiv.addEventListener('keypress', onkeypress); - cheezenotesdiv.addEventListener('keydown', onkeydown); - cheezenotesdiv.addEventListener('paste', onpaste); - cheezenotesdiv.addEventListener('copy', oncopy); - cheezenotesdiv.addEventListener('blur', () => { redrawTables(cheezenotesdiv); onsave() }); - cheezenotesdiv.addEventListener('focus', () => { redrawTables(cheezenotesdiv, dpwidth()); }); - cheezenotesdiv.addEventListener('drag', ondrag); - cheezenotesdiv.addEventListener('dragenter', ondragenter); - cheezenotesdiv.addEventListener('dragleave', ondragleave); + let cheezenotes = document.getElementById('cheezenotes'); - let saveButton = document.getElementById('saveButton'); + dpwidth(cheezenotes); + + cheezenotes.addEventListener('input', onedit); + cheezenotes.addEventListener('keyup', onkeyup); + cheezenotes.addEventListener('keypress', onkeypress); + cheezenotes.addEventListener('keydown', onkeydown); + cheezenotes.addEventListener('paste', onpaste); + cheezenotes.addEventListener('copy', oncopy); + cheezenotes.addEventListener('blur', onblur); + cheezenotes.addEventListener('focus', onfocus); + cheezenotes.addEventListener('drag', ondrag); + cheezenotes.addEventListener('dragenter', ondragenter); + cheezenotes.addEventListener('dragleave', ondragleave); + + let saveButton = addButton('saveButton', ':save', onsave); saveButton.disabled = true; - saveButton.addEventListener('click', onsave); - let taButton = document.getElementById('taButton'); - taButton.addEventListener('click', ontextarea); - let lockButton = document.getElementById('lockButton'); - lockButton.addEventListener('click', onlockbutton); - let boldButton = document.getElementById('boldButton'); - boldButton.addEventListener('mousedown', onboldbutton); - let italicButton = document.getElementById('italicButton'); - italicButton.addEventListener('mousedown', onitalicbutton); - let strikeButton = document.getElementById('strikeButton'); - strikeButton.addEventListener('mousedown', onstrikebutton); + addSeparator(); + addButton('boldButton', ':format_bold', onboldbutton); + addButton('italicButton', ':format_italic', onitalicbutton); + addButton('strikeButton', ':format_strikethrough', onstrikebutton); + addButton('monoButton', ':code', onmonobutton); + addSeparator(); + addButton('h1Button', 'H1', onh1button); + addButton('h2Button', 'H2', onh2button); + addButton('h3Button', 'H3', onh3button); + lastButton(addButton('bqButton', ':format_quote', onbqbutton)); + addSeparator(); + addOnOffButton('editModeButton', ':edit_note', ':visibility', + function (e) { + if (editModeButton.classList.contains('buttonon')) { + cheezenotes.contentEditable = false; + } else { + cheezenotes.contentEditable = true; + } + }, true); + lastButton(addOnOffButton('taButton', ':notes', ':notes', ontextarea)); + + disableFormatButtons(); + onload(); } diff --git a/templates/page.html b/templates/page.html index bc9623a..aec8917 100644 --- a/templates/page.html +++ b/templates/page.html @@ -13,12 +13,12 @@
- +