Grammalecte  Check-in [412e20b14a]

Overview
Comment:[fx] lexicon editor: search page
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | fx | multid
Files: files | file ages | folders
SHA3-256: 412e20b14a472d01d2203858edf4270f9a94e25a5aba32f1626875fa5be73977
User & Date: olr on 2018-03-23 17:39:42
Other Links: branch diff | manifest | tags
Context
2018-03-23
19:45
[fx] lexicon editor: ui update check-in: 1b9383c16e user: olr tags: fx, multid
17:39
[fx] lexicon editor: search page check-in: 412e20b14a user: olr tags: fx, multid
12:38
[graphspell] spellchecker: select returns an array instead of a string, + getSimilarEntries check-in: 1fb5cf9076 user: olr tags: graphspell, multid
Changes

Modified gc_lang/fr/webext/panel/lex_editor.css from [83dba8cfa5] to [eb525cb687].

    60     60   details > * {
    61     61       font-size: 12px;
    62     62       font-variant: normal;
    63     63       color: hsl(210, 0%, 0%);
    64     64       cursor: auto;
    65     65   }
    66     66   
    67         -
           67  +/*
           68  +    Main buttons
           69  +*/
    68     70   #buttons {
    69     71       padding: 10px 0;
    70     72       justify-content: center;
    71     73   }
    72     74   .main_button {
    73     75       margin: 0 5px;
    74     76       width: 100px;
................................................................................
   181    183       border-radius: 3px;
   182    184   }
   183    185   
   184    186   ul {
   185    187       margin-left: 30px;
   186    188   }
   187    189   
   188         -input[type=text] {
          190  +input[type=text].large {
   189    191       display: inline-block;
   190    192       width: 250px;
   191    193       padding: 5px 10px;
   192    194       border: 2px solid hsl(0, 0%, 80%);
   193    195       border-radius: 3px;
   194    196       height: 24px;
   195    197       background: transparent;
   196    198       font: normal 20px Tahoma, "Ubuntu Condensed";
   197    199       color: hsl(0, 0%, 20%);
   198    200   }
          201  +
          202  +input[type=text].medium {
          203  +    display: inline-block;
          204  +    width: 175px;
          205  +    padding: 2px 5px;
          206  +    border: 2px solid hsl(0, 0%, 80%);
          207  +    border-radius: 3px;
          208  +    height: 20px;
          209  +    background: transparent;
          210  +    font: normal 18px Tahoma, "Ubuntu Condensed";
          211  +    color: hsl(0, 0%, 20%);
          212  +}
          213  +
   199    214   input[placeholder] {
   200    215       color: hsl(0, 0%, 50%);
   201    216   }
   202    217   
   203    218   
   204    219   #buttonline {
   205    220       margin-top: 5px;
................................................................................
   224    239   }
   225    240   
   226    241   
   227    242   #lexicon_page {
   228    243       
   229    244   }
   230    245   
          246  +
          247  +/*
          248  +    Search page
          249  +*/
   231    250   #search_page {
   232    251       display: none;
   233    252   }
   234    253   
          254  +.button_search {
          255  +    margin: 5px 0;
          256  +    width: 100px;
          257  +    padding: 5px 10px;
          258  +    font-size: 16px;
          259  +    background-color: hsl(150, 50%, 50%);
          260  +    color: hsl(150, 50%, 96%);
          261  +    border-radius: 3px;
          262  +    text-align: center;
          263  +    cursor: pointer;
          264  +}
          265  +.button_search:hover {
          266  +    background-color: hsl(150, 60%, 40%);
          267  +    color: hsl(150, 60%, 90%);
          268  +    box-shadow: 0 0 2px hsl(150, 60%, 50%);
          269  +}
          270  +
          271  +#search_table {
          272  +    width: 600px;
          273  +}
          274  +
          275  +/*
          276  +    Information page
          277  +*/
   235    278   #info_page {
   236    279       display: none;
   237    280   }
   238    281   
   239    282   #tags_table {
   240    283       width: 500px;
   241    284   }

Modified gc_lang/fr/webext/panel/lex_editor.html from [3da6084053] to [8c84d14b59].

    30     30           <div id="info_button" class="main_button">Informations</div>
    31     31         </div>
    32     32   
    33     33         <div id="add_page">
    34     34           <div class="columns">
    35     35             <div id="word_generator">
    36     36               <h2>Nouveau mot (lemme)</h2>
    37         -            <input type="text" id="lemma" name="lemma" maxlength="60" value="" placeholder="votre mot" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ._-]+$" autofocus />
           37  +            <input type="text" id="lemma" class="large" name="lemma" maxlength="60" value="" placeholder="votre mot" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ._-]+$" autofocus />
    38     38   
    39     39               <div id="editor">
    40     40   
    41     41                 <div id="sections">
    42     42                   <h3 class="category" id="select_nom" data-tag="N">Nom commun</h3>
    43     43                   <div id="section_nom" class="section">
    44     44                     <p class="typeline">
................................................................................
    58     58                         <p><input type="radio" id="up_nom_pluriel_s" name="pluriel" value="s" /><label for="up_nom_pluriel_s"> pluriel en ·s</label></p>
    59     59                         <p><input type="radio" id="up_nom_pluriel_x" name="pluriel" value="x" /><label for="up_nom_pluriel_x"> pluriel en ·x</label></p>
    60     60                         <p><input type="radio" id="up_nom_pluriel_i" name="pluriel" value="i" /><label for="up_nom_pluriel_i"> invariable</label></p>
    61     61                       </div>
    62     62                     </div>
    63     63   
    64     64                     <h3>[optionnel] Autre forme (masculine, féminine, variante, etc.)</h3>
    65         -                  <input type="text" id="lemma2" name="lemma2" maxlength="60" value="" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ._-]+$" placeholder="votre mot" />
           65  +                  <input type="text" id="lemma2" class="large" name="lemma2" maxlength="60" value="" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ._-]+$" placeholder="votre mot" />
    66     66                     <div id="word_section2">
    67     67                       <p class="typeline">
    68     68                         <input type="radio" id="up_type_nom2" name="POS2" value=":N" /> <label class="widelabel" for="up_type_nom2">Nom</label>
    69     69                         <input type="radio" id="up_type_adj2" name="POS2" value=":A" /> <label class="widelabel" for="up_type_adj2">Adjectif</label>
    70     70                         <input type="radio" id="up_type_nomadj2" name="POS2" value=":N:A" /> <label class="widelabel" for="up_type_nomadj2">Nom &amp; adjectif</label>
    71     71                       </p>
    72     72                       <div class="container">
................................................................................
   160    160                       <h3><input type="checkbox" id="up_partpas" checked /><label for="up_partpas"> participes passés variables</label></h3>
   161    161                       <p class="description">Cette option est ignorée si vous utilisez un verbe modèle.</p>
   162    162                     </div>
   163    163   
   164    164                     <div class="block">
   165    165                       <h3>Verbe modèle [optionnel]</h3>
   166    166                       <p class="description">Indiquer un verbe qui doit servir de modèle n’est pas nécessaire pour la très grande majorité des verbes du 1ᵉʳ groupe et du 2ᵉ groupe. Faites-le seulement si les formes fléchies engendrées automatiquement ne vous satisfont pas.</p>
   167         -                    <input type="text" id="verb_pattern" name="verb_pattern" maxlength="60" value="" placeholder="verbe modèle" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ-]+$" />
          167  +                    <input type="text" id="verb_pattern" class="large" name="verb_pattern" maxlength="60" value="" placeholder="verbe modèle" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ-]+$" />
   168    168                       <details>
   169    169                         <p>Il est fortement recommandé d’appliquer les règles d’un verbe du même groupe que celui que vous créez. Mais aucune restriction n’est imposée.</p>
   170    170                         <p><b>Classification des groupes :</b></p>
   171    171                         <ul>
   172    172                           <li>
   173    173                             <b>1ᵉʳ groupe</b> : verbes finissant par -<i>er</i>. Attention : contrairement au préjugé commun, ce groupe est irrégulier. Beaucoup de verbes voient leur racine modifiée dans certaines formes conjuguées :
   174    174                             <ul>
................................................................................
   209    209                       </div>
   210    210                     </div>
   211    211                   </div>
   212    212                   <h3 class="category" id="select_autre" data-tag="X">Autre</h3>
   213    213                   <div id="section_autre" class="section">
   214    214                     <p>Indiquez les étiquettes grammaticales que vous voulez appliquer au mot. À utiliser seulement si vous savez ce que vous faites.</p>
   215    215                     <h3>Flexion</h3>
   216         -                  <p><input type="text" id="flexion" name="flexion" maxlength="20" value="" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ._-]+$" placeholder="flexion" /></p>
          216  +                  <p><input type="text" id="flexion" name="flexion" class="large" maxlength="20" value="" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ._-]+$" placeholder="flexion" /></p>
   217    217                     <h3>Étiquettes</h3>
   218         -                  <p><input type="text" id="tags" name="tags" maxlength="20" value="" pattern="^:[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ:._-]+$" placeholder="étiquettes" /></p>
          218  +                  <p><input type="text" id="tags" name="tags" class="large" maxlength="20" value="" pattern="^:[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ:._-]+$" placeholder="étiquettes" /></p>
   219    219                   </div>
   220    220                 </div>
   221    221               </div>
   222    222             </div> <!-- #new_word_generator -->
   223    223             
   224    224             <div id="generated_words">
   225    225               <h2>Mots générés</h2>
................................................................................
   247    247                 
   248    248           </table>
   249    249         </div> <!-- #lexicon_page -->
   250    250   
   251    251   
   252    252         <div id="search_page">
   253    253           <div class="columns">
   254         -          <div>
          254  +          <div style="margin-right: 20px;">
   255    255               <h2>Recherche</h2>
   256    256   
   257         -            <h3>Graphies similaires</h3>
          257  +            <h3 style="margin-top: 20px;">Graphies similaires</h3>
          258  +            <p><input id="search_similar" class="medium" type="text" /></p>
          259  +            <p><div id="search_similar_button" class="button_search">Chercher</div></p>
   258    260   
   259         -            <h3>Expressions régulières</h3>
          261  +            <h3 style="margin-top: 20px;">Expressions régulières</h3>
          262  +            <p><b>Flexion</b></p>
          263  +            <p> <input id="search_flexion_pattern" class="medium" type="text" /></p>
          264  +
          265  +            <p><b>Étiquettes</b></p>
          266  +            <p><input id="search_tags_pattern" class="medium" type="text" /></p>
          267  +            <p><div id="search_regex_button" class="button_search">Chercher</div></p>
   260    268   
          269  +            <p style="margin-top: 50px;">La recherche par expressions régulières peut générer un nombre gigantesque de résultats. Seules les 2000 premières occurrences trouvées seront affichées. La recherche peut être longue, parce tout le graphe de mots, qui contient 500 000 mots, sera parcouru si besoin.</p>
   261    270             </div>
   262    271   
   263    272             <div>
   264    273               <h2>Résultats</h2>
   265    274               <table id="search_table">
   266    275                     
   267    276               </table>
................................................................................
   299    308           </div>
   300    309         </div> <!-- #info_page -->
   301    310   
   302    311       </div>
   303    312   
   304    313   
   305    314       <script src="../grammalecte/graphspell/helpers.js"></script>
          315  +    <script src="../grammalecte/graphspell/char_player.js"></script>
   306    316       <script src="../grammalecte/graphspell/str_transform.js"></script>
   307    317       <script src="../grammalecte/graphspell/dawg.js"></script>
   308    318       <script src="../grammalecte/graphspell/ibdawg.js"></script>
          319  +    <script src="../grammalecte/graphspell/spellchecker.js"></script>
   309    320       <script src="../grammalecte/fr/conj.js"></script>
   310    321       <script src="../grammalecte/fr/conj_generator.js"></script>
   311    322       <script src="../grammalecte/fr/lexicographe.js"></script>
   312    323       <script src="lex_editor.js"></script>
   313    324     </body>
   314    325     
   315    326   </html>

Modified gc_lang/fr/webext/panel/lex_editor.js from [46a64e44e7] to [9c5d9f860e].

   558    558   
   559    559   
   560    560   const oSearch = {
   561    561   
   562    562       oSpellChecker: null,
   563    563   
   564    564       load: function () {
   565         -        this.oSpellChecker = new SpellChecker("fr", "", "fr.json");
          565  +        this.oSpellChecker = new SpellChecker("fr", browser.extension.getURL("")+"grammalecte/graphspell/_dictionaries", "fr.json");
          566  +    },
          567  +
          568  +    loadOtherDictionaries: function () {
          569  +        //TODO
   566    570       },
   567    571   
   568    572       listen: function () {
   569    573           document.getElementById("search_similar_button").addEventListener("click", () => { this.searchSimilar(); }, false);
   570    574           document.getElementById("search_regex_button").addEventListener("click", () => { this.searchRegex() }, false);
   571    575       },
   572    576   
................................................................................
   605    609           oTagsTable.fill(lEntry);
   606    610       }
   607    611   }
   608    612   
   609    613   
   610    614   const oGenWordsTable = new Table("generated_words_table", ["Flexions", "Étiquettes"], "wait_progress");
   611    615   const oLexiconTable = new Table("lexicon_table", ["Flexions", "Lemmes", "Étiquettes"], "wait_progress", "num_entries");
   612         -//const oSearchTable = new Table("search_table", ["Flexions", "Lemmes", "Étiquettes"], "wait_progress", "search_num_entries");
          616  +const oSearchTable = new Table("search_table", ["Flexions", "Lemmes", "Étiquettes"], "wait_progress", "search_num_entries", false);
   613    617   const oTagsTable = new Table("tags_table", ["Étiquette", "Signification"], "wait_progress", "", false);
   614    618   
   615    619   
   616    620   oTagsInfo.load();
   617         -//oSearch.load();
          621  +oSearch.load();
   618    622   oBinaryDict.load();
   619    623   oBinaryDict.listen();
   620    624   oGenerator.listen();
   621    625   oTabulations.listen();
   622         -//oSearch.listen();
          626  +oSearch.listen();