Grammalecte  Hex Artifact Content

Artifact 185528ef0624bcbbe625b3a7ef1860071580b0976495a42a803b3b0efd8bb50c:


0000: 2f 2f 20 4a 61 76 61 53 63 72 69 70 74 0a 0a 22  // JavaScript.."
0010: 75 73 65 20 73 74 72 69 63 74 22 3b 0a 0a 0a 2f  use strict";.../
0020: 2f 20 43 68 72 6f 6d 65 20 64 6f 6e e2 80 99 74  / Chrome don...t
0030: 20 66 6f 6c 6c 6f 77 20 74 68 65 20 57 33 43 20   follow the W3C 
0040: 73 70 65 63 69 66 69 63 61 74 69 6f 6e 3a 0a 2f  specification:./
0050: 2f 20 68 74 74 70 73 3a 2f 2f 62 72 6f 77 73 65  / https://browse
0060: 72 65 78 74 2e 67 69 74 68 75 62 2e 69 6f 2f 62  rext.github.io/b
0070: 72 6f 77 73 65 72 65 78 74 2f 0a 6c 65 74 20 62  rowserext/.let b
0080: 43 68 72 6f 6d 65 20 3d 20 66 61 6c 73 65 3b 0a  Chrome = false;.
0090: 69 66 20 28 74 79 70 65 6f 66 28 62 72 6f 77 73  if (typeof(brows
00a0: 65 72 29 20 21 3d 3d 20 22 6f 62 6a 65 63 74 22  er) !== "object"
00b0: 29 20 7b 0a 20 20 20 20 76 61 72 20 62 72 6f 77  ) {.    var brow
00c0: 73 65 72 20 3d 20 63 68 72 6f 6d 65 3b 0a 20 20  ser = chrome;.  
00d0: 20 20 62 43 68 72 6f 6d 65 20 3d 20 74 72 75 65    bChrome = true
00e0: 3b 0a 7d 0a 0a 0a 2f 2a 0a 20 20 20 20 43 6f 6d  ;.}.../*.    Com
00f0: 6d 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 0a 2a 2f  mon functions.*/
0100: 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 68 6f 77 45  ..function showE
0110: 72 72 6f 72 20 28 65 29 20 7b 0a 20 20 20 20 63  rror (e) {.    c
0120: 6f 6e 73 6f 6c 65 2e 65 72 72 6f 72 28 65 2e 66  onsole.error(e.f
0130: 69 6c 65 4e 61 6d 65 20 2b 20 22 5c 6e 22 20 2b  ileName + "\n" +
0140: 20 65 2e 6e 61 6d 65 20 2b 20 22 5c 6e 6c 69 6e   e.name + "\nlin
0150: 65 3a 20 22 20 2b 20 65 2e 6c 69 6e 65 4e 75 6d  e: " + e.lineNum
0160: 62 65 72 20 2b 20 22 5c 6e 22 20 2b 20 65 2e 6d  ber + "\n" + e.m
0170: 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 66 75 6e 63  essage);.}..func
0180: 74 69 6f 6e 20 63 72 65 61 74 65 4e 6f 64 65 20  tion createNode 
0190: 20 28 73 54 79 70 65 2c 20 6f 41 74 74 72 2c 20   (sType, oAttr, 
01a0: 6f 44 61 74 61 73 65 74 3d 6e 75 6c 6c 29 20 7b  oDataset=null) {
01b0: 0a 20 20 20 20 74 72 79 20 7b 0a 20 20 20 20 20  .    try {.     
01c0: 20 20 20 6c 65 74 20 78 4e 6f 64 65 20 3d 20 64     let xNode = d
01d0: 6f 63 75 6d 65 6e 74 2e 63 72 65 61 74 65 45 6c  ocument.createEl
01e0: 65 6d 65 6e 74 28 73 54 79 70 65 29 3b 0a 20 20  ement(sType);.  
01f0: 20 20 20 20 20 20 4f 62 6a 65 63 74 2e 61 73 73        Object.ass
0200: 69 67 6e 28 78 4e 6f 64 65 2c 20 6f 41 74 74 72  ign(xNode, oAttr
0210: 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 6f  );.        if (o
0220: 44 61 74 61 73 65 74 29 20 7b 0a 20 20 20 20 20  Dataset) {.     
0230: 20 20 20 20 20 20 20 4f 62 6a 65 63 74 2e 61 73         Object.as
0240: 73 69 67 6e 28 78 4e 6f 64 65 2e 64 61 74 61 73  sign(xNode.datas
0250: 65 74 2c 20 6f 44 61 74 61 73 65 74 29 3b 0a 20  et, oDataset);. 
0260: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20         }.       
0270: 20 72 65 74 75 72 6e 20 78 4e 6f 64 65 3b 0a 20   return xNode;. 
0280: 20 20 20 7d 0a 20 20 20 20 63 61 74 63 68 20 28     }.    catch (
0290: 65 29 20 7b 0a 20 20 20 20 20 20 20 20 73 68 6f  e) {.        sho
02a0: 77 45 72 72 6f 72 28 65 29 3b 0a 20 20 20 20 7d  wError(e);.    }
02b0: 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 68 6f  .}..function sho
02c0: 77 45 6c 65 6d 65 6e 74 20 28 73 45 6c 65 6d 49  wElement (sElemI
02d0: 64 2c 20 73 44 69 73 70 6c 61 79 3d 22 62 6c 6f  d, sDisplay="blo
02e0: 63 6b 22 29 20 7b 0a 20 20 20 20 69 66 20 28 64  ck") {.    if (d
02f0: 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c 65 6d 65  ocument.getEleme
0300: 6e 74 42 79 49 64 28 73 45 6c 65 6d 49 64 29 29  ntById(sElemId))
0310: 20 7b 0a 20 20 20 20 20 20 20 20 64 6f 63 75 6d   {.        docum
0320: 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79  ent.getElementBy
0330: 49 64 28 73 45 6c 65 6d 49 64 29 2e 73 74 79 6c  Id(sElemId).styl
0340: 65 2e 64 69 73 70 6c 61 79 20 3d 20 73 44 69 73  e.display = sDis
0350: 70 6c 61 79 3b 0a 20 20 20 20 7d 20 65 6c 73 65  play;.    } else
0360: 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 6f   {.        conso
0370: 6c 65 2e 6c 6f 67 28 22 48 54 4d 4c 20 6e 6f 64  le.log("HTML nod
0380: 65 20 6e 61 6d 65 64 20 3c 22 20 2b 20 73 45 6c  e named <" + sEl
0390: 65 6d 49 64 20 2b 20 22 3e 20 6e 6f 74 20 66 6f  emId + "> not fo
03a0: 75 6e 64 2e 22 29 0a 20 20 20 20 7d 0a 7d 0a 0a  und.").    }.}..
03b0: 66 75 6e 63 74 69 6f 6e 20 68 69 64 65 45 6c 65  function hideEle
03c0: 6d 65 6e 74 20 28 73 45 6c 65 6d 49 64 29 20 7b  ment (sElemId) {
03d0: 0a 20 20 20 20 69 66 20 28 64 6f 63 75 6d 65 6e  .    if (documen
03e0: 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79 49 64  t.getElementById
03f0: 28 73 45 6c 65 6d 49 64 29 29 20 7b 0a 20 20 20  (sElemId)) {.   
0400: 20 20 20 20 20 64 6f 63 75 6d 65 6e 74 2e 67 65       document.ge
0410: 74 45 6c 65 6d 65 6e 74 42 79 49 64 28 73 45 6c  tElementById(sEl
0420: 65 6d 49 64 29 2e 73 74 79 6c 65 2e 64 69 73 70  emId).style.disp
0430: 6c 61 79 20 3d 20 22 6e 6f 6e 65 22 3b 0a 20 20  lay = "none";.  
0440: 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20    } else {.     
0450: 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 22     console.log("
0460: 48 54 4d 4c 20 6e 6f 64 65 20 6e 61 6d 65 64 20  HTML node named 
0470: 3c 22 20 2b 20 73 45 6c 65 6d 49 64 20 2b 20 22  <" + sElemId + "
0480: 3e 20 6e 6f 74 20 66 6f 75 6e 64 2e 22 29 0a 20  > not found."). 
0490: 20 20 20 7d 0a 7d 0a 0a 61 73 79 6e 63 20 66 75     }.}..async fu
04a0: 6e 63 74 69 6f 6e 20 68 61 73 68 54 65 78 74 20  nction hashText 
04b0: 28 73 54 65 78 74 2c 20 73 41 6c 67 6f 72 69 74  (sText, sAlgorit
04c0: 68 6d 20 3d 20 27 53 48 41 2d 32 35 36 27 29 20  hm = 'SHA-256') 
04d0: 7b 0a 20 20 20 20 6c 65 74 20 6d 73 67 42 75 66  {.    let msgBuf
04e0: 66 65 72 20 3d 20 6e 65 77 20 54 65 78 74 45 6e  fer = new TextEn
04f0: 63 6f 64 65 72 28 27 75 74 66 2d 38 27 29 2e 65  coder('utf-8').e
0500: 6e 63 6f 64 65 28 73 54 65 78 74 29 3b 0a 20 20  ncode(sText);.  
0510: 20 20 6c 65 74 20 68 61 73 68 42 75 66 66 65 72    let hashBuffer
0520: 20 3d 20 61 77 61 69 74 20 63 72 79 70 74 6f 2e   = await crypto.
0530: 73 75 62 74 6c 65 2e 64 69 67 65 73 74 28 73 41  subtle.digest(sA
0540: 6c 67 6f 72 69 74 68 6d 2c 20 6d 73 67 42 75 66  lgorithm, msgBuf
0550: 66 65 72 29 3b 0a 20 20 20 20 6c 65 74 20 68 61  fer);.    let ha
0560: 73 68 41 72 72 61 79 20 3d 20 41 72 72 61 79 2e  shArray = Array.
0570: 66 72 6f 6d 28 6e 65 77 20 55 69 6e 74 38 41 72  from(new Uint8Ar
0580: 72 61 79 28 68 61 73 68 42 75 66 66 65 72 29 29  ray(hashBuffer))
0590: 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 68 61 73  ;.    return has
05a0: 68 41 72 72 61 79 2e 6d 61 70 28 62 20 3d 3e 20  hArray.map(b => 
05b0: 28 27 30 30 27 20 2b 20 62 2e 74 6f 53 74 72 69  ('00' + b.toStri
05c0: 6e 67 28 31 36 29 29 2e 73 6c 69 63 65 28 2d 32  ng(16)).slice(-2
05d0: 29 29 2e 6a 6f 69 6e 28 27 27 29 3b 0a 7d 0a 0a  )).join('');.}..
05e0: 0a 63 6f 6e 73 74 20 6f 4d 65 73 73 61 67 65 20  .const oMessage 
05f0: 3d 20 7b 0a 20 20 20 20 73 68 6f 77 3a 20 66 75  = {.    show: fu
0600: 6e 63 74 69 6f 6e 20 28 73 4d 65 73 73 61 67 65  nction (sMessage
0610: 2c 20 6e 44 65 6c 61 79 3d 31 30 30 30 30 29 20  , nDelay=10000) 
0620: 7b 0a 20 20 20 20 20 20 20 20 64 6f 63 75 6d 65  {.        docume
0630: 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79 49  nt.getElementByI
0640: 64 28 22 6d 65 73 73 61 67 65 22 29 2e 74 65 78  d("message").tex
0650: 74 43 6f 6e 74 65 6e 74 20 3d 20 73 4d 65 73 73  tContent = sMess
0660: 61 67 65 3b 0a 20 20 20 20 20 20 20 20 73 68 6f  age;.        sho
0670: 77 45 6c 65 6d 65 6e 74 28 22 6d 65 73 73 61 67  wElement("messag
0680: 65 5f 62 6f 78 22 29 3b 0a 20 20 20 20 20 20 20  e_box");.       
0690: 20 77 69 6e 64 6f 77 2e 73 65 74 54 69 6d 65 6f   window.setTimeo
06a0: 75 74 28 74 68 69 73 2e 63 6c 6f 73 65 2c 20 6e  ut(this.close, n
06b0: 44 65 6c 61 79 29 3b 0a 20 20 20 20 7d 2c 0a 0a  Delay);.    },..
06c0: 20 20 20 20 6c 69 73 74 65 6e 3a 20 66 75 6e 63      listen: func
06d0: 74 69 6f 6e 20 28 29 20 7b 0a 20 20 20 20 20 20  tion () {.      
06e0: 20 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c    document.getEl
06f0: 65 6d 65 6e 74 42 79 49 64 28 22 6d 65 73 73 61  ementById("messa
0700: 67 65 5f 63 6c 6f 73 65 5f 62 75 74 74 6f 6e 22  ge_close_button"
0710: 29 2e 61 64 64 45 76 65 6e 74 4c 69 73 74 65 6e  ).addEventListen
0720: 65 72 28 22 63 6c 69 63 6b 22 2c 20 28 78 45 76  er("click", (xEv
0730: 65 6e 74 29 20 3d 3e 20 7b 20 74 68 69 73 2e 63  ent) => { this.c
0740: 6c 6f 73 65 28 29 3b 20 7d 29 3b 0a 20 20 20 20  lose(); });.    
0750: 7d 2c 0a 0a 20 20 20 20 63 6c 6f 73 65 3a 20 66  },..    close: f
0760: 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 20  unction () {.   
0770: 20 20 20 20 20 68 69 64 65 45 6c 65 6d 65 6e 74       hideElement
0780: 28 22 6d 65 73 73 61 67 65 5f 62 6f 78 22 29 3b  ("message_box");
0790: 0a 20 20 20 20 7d 0a 7d 0a 0a 0a 63 6f 6e 73 74  .    }.}...const
07a0: 20 6f 43 6f 6e 6e 65 63 74 20 3d 20 7b 0a 20 20   oConnect = {.  
07b0: 20 20 62 43 6f 6e 6e 65 63 74 65 64 3a 20 66 61    bConnected: fa
07c0: 6c 73 65 2c 0a 0a 20 20 20 20 69 6e 69 74 3a 20  lse,..    init: 
07d0: 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20  function () {.  
07e0: 20 20 20 20 20 20 69 66 20 28 62 43 68 72 6f 6d        if (bChrom
07f0: 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20  e) {.           
0800: 20 62 72 6f 77 73 65 72 2e 63 6f 6f 6b 69 65 73   browser.cookies
0810: 2e 67 65 74 41 6c 6c 28 7b 20 64 6f 6d 61 69 6e  .getAll({ domain
0820: 3a 20 22 6c 6f 63 61 6c 68 6f 73 74 22 20 7d 2c  : "localhost" },
0830: 20 74 68 69 73 2e 5f 69 6e 69 74 2e 62 69 6e 64   this._init.bind
0840: 28 74 68 69 73 29 29 3b 0a 20 20 20 20 20 20 20  (this));.       
0850: 20 20 20 20 20 72 65 74 75 72 6e 3b 0a 20 20 20       return;.   
0860: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 6c       }.        l
0870: 65 74 20 78 50 72 6f 6d 69 73 65 20 3d 20 62 72  et xPromise = br
0880: 6f 77 73 65 72 2e 63 6f 6f 6b 69 65 73 2e 67 65  owser.cookies.ge
0890: 74 41 6c 6c 28 7b 20 64 6f 6d 61 69 6e 3a 20 22  tAll({ domain: "
08a0: 6c 6f 63 61 6c 68 6f 73 74 22 20 7d 29 3b 0a 20  localhost" });. 
08b0: 20 20 20 20 20 20 20 78 50 72 6f 6d 69 73 65 2e         xPromise.
08c0: 74 68 65 6e 28 74 68 69 73 2e 5f 69 6e 69 74 2e  then(this._init.
08d0: 62 69 6e 64 28 74 68 69 73 29 2c 20 73 68 6f 77  bind(this), show
08e0: 45 72 72 6f 72 29 3b 0a 20 20 20 20 7d 2c 0a 0a  Error);.    },..
08f0: 20 20 20 20 5f 69 6e 69 74 3a 20 66 75 6e 63 74      _init: funct
0900: 69 6f 6e 20 28 6c 44 61 74 61 29 20 7b 0a 20 20  ion (lData) {.  
0910: 20 20 20 20 20 20 66 6f 72 20 28 6c 65 74 20 78        for (let x
0920: 43 6f 6f 6b 69 65 20 6f 66 20 6c 44 61 74 61 29  Cookie of lData)
0930: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63   {.            c
0940: 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 78 43 6f 6f 6b  onsole.log(xCook
0950: 69 65 2e 6e 61 6d 65 2c 20 78 43 6f 6f 6b 69 65  ie.name, xCookie
0960: 2e 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 20  .value);.       
0970: 20 20 20 20 20 74 68 69 73 2e 62 43 6f 6e 6e 65       this.bConne
0980: 63 74 65 64 20 3d 20 74 72 75 65 3b 0a 20 20 20  cted = true;.   
0990: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69       }.        i
09a0: 66 20 28 74 68 69 73 2e 62 43 6f 6e 6e 65 63 74  f (this.bConnect
09b0: 65 64 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  ed) {.          
09c0: 20 20 68 69 64 65 45 6c 65 6d 65 6e 74 28 22 63    hideElement("c
09d0: 6f 6e 6e 65 63 74 5f 66 6f 72 6d 22 29 3b 0a 20  onnect_form");. 
09e0: 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 77 45             showE
09f0: 6c 65 6d 65 6e 74 28 22 63 6f 6e 6e 65 63 74 5f  lement("connect_
0a00: 69 6e 66 6f 22 29 3b 0a 20 20 20 20 20 20 20 20  info");.        
0a10: 7d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b  }.        else {
0a20: 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f  .            sho
0a30: 77 45 6c 65 6d 65 6e 74 28 22 63 6f 6e 6e 65 63  wElement("connec
0a40: 74 5f 66 6f 72 6d 22 29 3b 0a 20 20 20 20 20 20  t_form");.      
0a50: 20 20 20 20 20 20 68 69 64 65 45 6c 65 6d 65 6e        hideElemen
0a60: 74 28 22 63 6f 6e 6e 65 63 74 5f 69 6e 66 6f 22  t("connect_info"
0a70: 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20  );.        }.   
0a80: 20 7d 2c 0a 0a 20 20 20 20 6c 69 73 74 65 6e 3a   },..    listen:
0a90: 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20   function () {. 
0aa0: 20 20 20 20 20 20 20 64 6f 63 75 6d 65 6e 74 2e         document.
0ab0: 67 65 74 45 6c 65 6d 65 6e 74 42 79 49 64 28 22  getElementById("
0ac0: 73 75 62 6d 69 74 5f 62 75 74 74 6f 6e 22 29 2e  submit_button").
0ad0: 61 64 64 45 76 65 6e 74 4c 69 73 74 65 6e 65 72  addEventListener
0ae0: 28 22 63 6c 69 63 6b 22 2c 20 28 78 45 76 65 6e  ("click", (xEven
0af0: 74 29 20 3d 3e 20 7b 20 74 68 69 73 2e 63 6f 6e  t) => { this.con
0b00: 6e 65 63 74 28 29 3b 20 7d 29 3b 0a 20 20 20 20  nect(); });.    
0b10: 7d 2c 0a 0a 20 20 20 20 63 6f 6e 6e 65 63 74 3a  },..    connect:
0b20: 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20   function () {. 
0b30: 20 20 20 20 20 20 20 69 66 20 28 21 74 68 69 73         if (!this
0b40: 2e 63 68 65 63 6b 56 61 6c 75 65 73 28 29 29 20  .checkValues()) 
0b50: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6f 4d  {.            oM
0b60: 65 73 73 61 67 65 2e 73 68 6f 77 28 22 4c 65 73  essage.show("Les
0b70: 20 76 61 6c 65 75 72 73 20 64 65 73 20 63 68 61   valeurs des cha
0b80: 6d 70 73 20 64 75 20 66 6f 72 6d 75 6c 61 69 72  mps du formulair
0b90: 65 20 6e 65 20 73 6f 6e 74 20 70 61 73 20 63 6f  e ne sont pas co
0ba0: 6e 66 6f 72 6d 65 73 2e 22 29 3b 0a 20 20 20 20  nformes.");.    
0bb0: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a          return;.
0bc0: 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20          }.      
0bd0: 20 20 6c 65 74 20 78 46 6f 72 6d 20 3d 20 6e 65    let xForm = ne
0be0: 77 20 46 6f 72 6d 44 61 74 61 28 64 6f 63 75 6d  w FormData(docum
0bf0: 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79  ent.getElementBy
0c00: 49 64 28 27 63 6f 6e 6e 65 63 74 5f 66 6f 72 6d  Id('connect_form
0c10: 27 29 29 3b 0a 20 20 20 20 20 20 20 20 66 6f 72  '));.        for
0c20: 20 28 6c 65 74 20 5b 6b 2c 20 76 5d 20 6f 66 20   (let [k, v] of 
0c30: 78 46 6f 72 6d 2e 65 6e 74 72 69 65 73 28 29 29  xForm.entries())
0c40: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63   {.            c
0c50: 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 22 2a 20 22 2c  onsole.log("* ",
0c60: 20 6b 2c 20 76 29 3b 0a 20 20 20 20 20 20 20 20   k, v);.        
0c70: 7d 0a 20 20 20 20 20 20 20 20 66 65 74 63 68 28  }.        fetch(
0c80: 22 68 74 74 70 3a 2f 2f 6c 6f 63 61 6c 68 6f 73  "http://localhos
0c90: 74 2f 63 6f 6e 6e 65 63 74 2f 22 2c 20 7b 0a 20  t/connect/", {. 
0ca0: 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 68 6f             metho
0cb0: 64 3a 20 22 50 4f 53 54 22 2c 20 2f 2f 20 2a 47  d: "POST", // *G
0cc0: 45 54 2c 20 50 4f 53 54 2c 20 50 55 54 2c 20 44  ET, POST, PUT, D
0cd0: 45 4c 45 54 45 2c 20 65 74 63 2e 0a 20 20 20 20  ELETE, etc..    
0ce0: 20 20 20 20 20 20 20 20 2f 2f 6d 6f 64 65 3a 20          //mode: 
0cf0: 22 63 6f 72 73 22 2c 20 2f 2f 20 6e 6f 2d 63 6f  "cors", // no-co
0d00: 72 73 2c 20 63 6f 72 73 2c 20 2a 73 61 6d 65 2d  rs, cors, *same-
0d10: 6f 72 69 67 69 6e 0a 20 20 20 20 20 20 20 20 20  origin.         
0d20: 20 20 20 2f 2f 63 61 63 68 65 3a 20 22 6e 6f 2d     //cache: "no-
0d30: 63 61 63 68 65 22 2c 20 2f 2f 20 2a 64 65 66 61  cache", // *defa
0d40: 75 6c 74 2c 20 6e 6f 2d 63 61 63 68 65 2c 20 72  ult, no-cache, r
0d50: 65 6c 6f 61 64 2c 20 66 6f 72 63 65 2d 63 61 63  eload, force-cac
0d60: 68 65 2c 20 6f 6e 6c 79 2d 69 66 2d 63 61 63 68  he, only-if-cach
0d70: 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 68  ed.            h
0d80: 65 61 64 65 72 73 3a 20 7b 0a 20 20 20 20 20 20  eaders: {.      
0d90: 20 20 20 20 20 20 20 20 20 20 22 41 63 63 65 70            "Accep
0da0: 74 2d 43 68 61 72 73 65 74 22 3a 20 22 75 74 66  t-Charset": "utf
0db0: 2d 38 22 0a 20 20 20 20 20 20 20 20 20 20 20 20  -8".            
0dc0: 20 20 20 20 2f 2f 22 43 6f 6e 74 65 6e 74 2d 54      //"Content-T
0dd0: 79 70 65 22 3a 20 22 6d 75 6c 74 69 70 61 72 74  ype": "multipart
0de0: 2f 66 6f 72 6d 2d 64 61 74 61 22 2c 20 20 2f 2f  /form-data",  //
0df0: 20 74 65 78 74 2f 70 6c 61 69 6e 2c 20 61 70 70   text/plain, app
0e00: 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 0a 20 20  lication/json.  
0e10: 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20            },.   
0e20: 20 20 20 20 20 20 20 20 20 63 72 65 64 65 6e 74           credent
0e30: 69 61 6c 73 3a 20 22 6f 6d 69 74 22 2c 20 2f 2f  ials: "omit", //
0e40: 20 69 6e 63 6c 75 64 65 2c 20 2a 73 61 6d 65 2d   include, *same-
0e50: 6f 72 69 67 69 6e 2c 20 6f 6d 69 74 0a 20 20 20  origin, omit.   
0e60: 20 20 20 20 20 20 20 20 20 62 6f 64 79 3a 20 78           body: x
0e70: 46 6f 72 6d 0a 20 20 20 20 20 20 20 20 7d 29 0a  Form.        }).
0e80: 20 20 20 20 20 20 20 20 2e 74 68 65 6e 28 28 72          .then((r
0e90: 65 73 70 6f 6e 73 65 29 20 3d 3e 20 7b 0a 20 20  esponse) => {.  
0ea0: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 72 65            if (re
0eb0: 73 70 6f 6e 73 65 2e 6f 6b 29 20 7b 0a 20 20 20  sponse.ok) {.   
0ec0: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20               if 
0ed0: 28 72 65 73 70 6f 6e 73 65 2e 73 74 61 74 75 73  (response.status
0ee0: 20 3d 3d 20 32 30 34 29 20 7b 0a 20 20 20 20 20   == 204) {.     
0ef0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f                 o
0f00: 4d 65 73 73 61 67 65 2e 73 68 6f 77 28 22 c3 89  Message.show("..
0f10: 63 68 65 63 20 64 e2 80 99 69 64 65 6e 74 69 66  chec d...identif
0f20: 69 63 61 74 69 6f 6e 2e 20 56 c3 a9 72 69 66 69  ication. V..rifi
0f30: 65 7a 20 6c e2 80 99 65 2d 6d 61 69 6c 20 65 74  ez l...e-mail et
0f40: 20 6c 65 20 6d 6f 74 20 64 65 20 70 61 73 73 65   le mot de passe
0f50: 20 65 6e 76 6f 79 c3 a9 73 e2 80 a6 22 29 3b 0a   envoy..s...");.
0f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0f70: 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b      return null;
0f80: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0f90: 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   }.             
0fa0: 20 20 20 66 6f 72 20 28 6c 65 74 20 70 61 72 61     for (let para
0fb0: 6d 20 69 6e 20 72 65 73 70 6f 6e 73 65 29 20 7b  m in response) {
0fc0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0fd0: 20 20 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67       console.log
0fe0: 28 70 61 72 61 6d 2c 20 72 65 73 70 6f 6e 73 65  (param, response
0ff0: 5b 70 61 72 61 6d 5d 29 3b 0a 20 20 20 20 20 20  [param]);.      
1000: 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20            }.    
1010: 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73              cons
1020: 6f 6c 65 2e 6c 6f 67 28 72 65 73 70 6f 6e 73 65  ole.log(response
1030: 2e 62 6f 64 79 29 3b 0a 20 20 20 20 20 20 20 20  .body);.        
1040: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72          return r
1050: 65 73 70 6f 6e 73 65 2e 6a 73 6f 6e 28 29 3b 0a  esponse.json();.
1060: 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c              } el
1070: 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20  se {.           
1080: 20 20 20 20 20 6f 4d 65 73 73 61 67 65 2e 73 68       oMessage.sh
1090: 6f 77 28 22 45 72 72 65 75 72 2e 20 4c 65 20 73  ow("Erreur. Le s
10a0: 65 72 76 65 75 72 20 6e 65 20 73 65 6d 62 6c 65  erveur ne semble
10b0: 20 70 61 73 20 65 6e 20 c3 a9 74 61 74 20 64 65   pas en ..tat de
10c0: 20 72 c3 a9 70 6f 6e 64 72 65 2e 20 56 65 75 69   r..pondre. Veui
10d0: 6c 6c 65 7a 20 72 c3 a9 65 73 73 61 79 65 72 20  llez r..essayer 
10e0: 75 6c 74 c3 a9 72 69 65 75 72 65 6d 65 6e 74 2e  ult..rieurement.
10f0: 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ");.            
1100: 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b      return null;
1110: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20  .            }. 
1120: 20 20 20 20 20 20 20 7d 29 0a 20 20 20 20 20 20         }).      
1130: 20 20 2e 74 68 65 6e 28 28 72 65 73 70 6f 6e 73    .then((respons
1140: 65 29 20 3d 3e 20 7b 0a 20 20 20 20 20 20 20 20  e) => {.        
1150: 20 20 20 20 69 66 20 28 72 65 73 70 6f 6e 73 65      if (response
1160: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ) {.            
1170: 20 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28      console.log(
1180: 22 72 65 73 70 6f 6e 73 65 3a 20 22 2c 20 72 65  "response: ", re
1190: 73 70 6f 6e 73 65 29 3b 0a 20 20 20 20 20 20 20  sponse);.       
11a0: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d       }.        }
11b0: 29 0a 20 20 20 20 20 20 20 20 2e 63 61 74 63 68  ).        .catch
11c0: 28 28 65 29 20 3d 3e 20 7b 0a 20 20 20 20 20 20  ((e) => {.      
11d0: 20 20 20 20 20 20 73 68 6f 77 45 72 72 6f 72 28        showError(
11e0: 65 29 3b 0a 20 20 20 20 20 20 20 20 7d 29 3b 0a  e);.        });.
11f0: 20 20 20 20 7d 2c 0a 0a 20 20 20 20 63 68 65 63      },..    chec
1200: 6b 56 61 6c 75 65 73 20 28 29 20 7b 0a 20 20 20  kValues () {.   
1210: 20 20 20 20 20 69 66 20 28 64 6f 63 75 6d 65 6e       if (documen
1220: 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79 49 64  t.getElementById
1230: 28 22 65 6d 61 69 6c 22 29 2e 76 61 6c 75 65 20  ("email").value 
1240: 3d 3d 3d 20 22 22 29 20 7b 0a 20 20 20 20 20 20  === "") {.      
1250: 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c        return fal
1260: 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20  se;.        }.  
1270: 20 20 20 20 20 20 6c 65 74 20 73 45 6d 61 69 6c        let sEmail
1280: 20 3d 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45   = document.getE
1290: 6c 65 6d 65 6e 74 42 79 49 64 28 22 65 6d 61 69  lementById("emai
12a0: 6c 22 29 2e 76 61 6c 75 65 3b 0a 20 20 20 20 20  l").value;.     
12b0: 20 20 20 69 66 20 28 73 45 6d 61 69 6c 2e 73 65     if (sEmail.se
12c0: 61 72 63 68 28 2f 5e 5b 61 2d 7a 30 2d 39 2e 5f  arch(/^[a-z0-9._
12d0: 25 2b 2d 5d 2b 40 5b 61 2d 7a 30 2d 39 2e 2d 5d  %+-]+@[a-z0-9.-]
12e0: 2b 5c 2e 5b 61 2d 7a 5d 7b 32 2c 7d 24 2f 29 20  +\.[a-z]{2,}$/) 
12f0: 3d 3d 3d 20 2d 31 29 20 7b 0a 20 20 20 20 20 20  === -1) {.      
1300: 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c        return fal
1310: 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20  se;.        }.  
1320: 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75        return tru
1330: 65 3b 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 20 73  e;.    },..    s
1340: 68 6f 77 49 64 20 28 73 4c 6f 67 69 6e 2c 20 73  howId (sLogin, s
1350: 45 6d 61 69 6c 29 20 7b 0a 20 20 20 20 20 20 20  Email) {.       
1360: 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c 65   document.getEle
1370: 6d 65 6e 74 42 79 49 64 28 22 6c 6f 67 69 6e 5f  mentById("login_
1380: 6c 61 62 65 6c 22 29 2e 74 65 78 74 43 6f 6e 74  label").textCont
1390: 65 6e 74 20 3d 20 73 4c 6f 67 69 6e 3b 0a 20 20  ent = sLogin;.  
13a0: 20 20 20 20 20 20 64 6f 63 75 6d 65 6e 74 2e 67        document.g
13b0: 65 74 45 6c 65 6d 65 6e 74 42 79 49 64 28 22 65  etElementById("e
13c0: 6d 61 69 6c 5f 6c 61 62 65 6c 22 29 2e 74 65 78  mail_label").tex
13d0: 74 43 6f 6e 74 65 6e 74 20 3d 20 73 45 6d 61 69  tContent = sEmai
13e0: 6c 3b 0a 20 20 20 20 20 20 20 20 68 69 64 65 45  l;.        hideE
13f0: 6c 65 6d 65 6e 74 28 22 63 6f 6e 6e 65 63 74 5f  lement("connect_
1400: 66 6f 72 6d 22 29 3b 0a 20 20 20 20 20 20 20 20  form");.        
1410: 73 68 6f 77 45 6c 65 6d 65 6e 74 28 22 63 6f 6e  showElement("con
1420: 6e 65 63 74 5f 69 6e 66 6f 22 29 3b 0a 20 20 20  nect_info");.   
1430: 20 7d 0a 7d 0a 0a 0a 63 6c 61 73 73 20 54 61 62   }.}...class Tab
1440: 6c 65 20 7b 0a 0a 20 20 20 20 63 6f 6e 73 74 72  le {..    constr
1450: 75 63 74 6f 72 20 28 73 4e 6f 64 65 49 64 2c 20  uctor (sNodeId, 
1460: 6c 43 6f 6c 75 6d 6e 2c 20 73 50 72 6f 67 72 65  lColumn, sProgre
1470: 73 73 42 61 72 49 64 2c 20 73 52 65 73 75 6c 74  ssBarId, sResult
1480: 49 64 3d 22 22 2c 20 62 44 65 6c 65 74 65 42 75  Id="", bDeleteBu
1490: 74 74 6f 6e 73 3d 74 72 75 65 2c 20 62 41 63 74  ttons=true, bAct
14a0: 69 6f 6e 42 75 74 74 6f 6e 73 29 20 7b 0a 20 20  ionButtons) {.  
14b0: 20 20 20 20 20 20 74 68 69 73 2e 73 4e 6f 64 65        this.sNode
14c0: 49 64 20 3d 20 73 4e 6f 64 65 49 64 3b 0a 20 20  Id = sNodeId;.  
14d0: 20 20 20 20 20 20 74 68 69 73 2e 78 54 61 62 6c        this.xTabl
14e0: 65 20 3d 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74  e = document.get
14f0: 45 6c 65 6d 65 6e 74 42 79 49 64 28 73 4e 6f 64  ElementById(sNod
1500: 65 49 64 29 3b 0a 20 20 20 20 20 20 20 20 74 68  eId);.        th
1510: 69 73 2e 78 41 70 70 6c 79 20 3d 20 64 6f 63 75  is.xApply = docu
1520: 6d 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42  ment.getElementB
1530: 79 49 64 28 22 61 70 70 6c 79 22 29 3b 0a 20 20  yId("apply");.  
1540: 20 20 20 20 20 20 74 68 69 73 2e 6e 43 6f 6c 75        this.nColu
1550: 6d 6e 20 3d 20 6c 43 6f 6c 75 6d 6e 2e 6c 65 6e  mn = lColumn.len
1560: 67 74 68 3b 0a 20 20 20 20 20 20 20 20 74 68 69  gth;.        thi
1570: 73 2e 6c 43 6f 6c 75 6d 6e 20 3d 20 6c 43 6f 6c  s.lColumn = lCol
1580: 75 6d 6e 3b 0a 20 20 20 20 20 20 20 20 74 68 69  umn;.        thi
1590: 73 2e 78 50 72 6f 67 72 65 73 73 42 61 72 20 3d  s.xProgressBar =
15a0: 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c 65   document.getEle
15b0: 6d 65 6e 74 42 79 49 64 28 73 50 72 6f 67 72 65  mentById(sProgre
15c0: 73 73 42 61 72 49 64 29 3b 0a 20 20 20 20 20 20  ssBarId);.      
15d0: 20 20 74 68 69 73 2e 78 4e 75 6d 45 6e 74 72 79    this.xNumEntry
15e0: 20 3d 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45   = document.getE
15f0: 6c 65 6d 65 6e 74 42 79 49 64 28 73 52 65 73 75  lementById(sResu
1600: 6c 74 49 64 29 3b 0a 20 20 20 20 20 20 20 20 74  ltId);.        t
1610: 68 69 73 2e 6c 45 6e 74 72 79 20 3d 20 5b 5d 3b  his.lEntry = [];
1620: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e 45  .        this.nE
1630: 6e 74 72 79 20 3d 20 30 3b 0a 20 20 20 20 20 20  ntry = 0;.      
1640: 20 20 74 68 69 73 2e 64 53 65 6c 65 63 74 65 64    this.dSelected
1650: 44 69 63 74 69 6f 6e 61 72 69 65 73 20 3d 20 6e  Dictionaries = n
1660: 65 77 20 4d 61 70 28 29 3b 0a 20 20 20 20 20 20  ew Map();.      
1670: 20 20 74 68 69 73 2e 6c 53 65 6c 65 63 74 65 64    this.lSelected
1680: 44 69 63 74 69 6f 6e 61 72 69 65 73 20 3d 20 5b  Dictionaries = [
1690: 5d 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e  ];.        this.
16a0: 64 44 69 63 74 20 3d 20 6e 65 77 20 4d 61 70 28  dDict = new Map(
16b0: 29 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e  );.        this.
16c0: 62 44 65 6c 65 74 65 42 75 74 74 6f 6e 73 20 3d  bDeleteButtons =
16d0: 20 62 44 65 6c 65 74 65 42 75 74 74 6f 6e 73 3b   bDeleteButtons;
16e0: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 62 41  .        this.bA
16f0: 63 74 69 6f 6e 42 75 74 74 6f 6e 73 20 3d 20 62  ctionButtons = b
1700: 41 63 74 69 6f 6e 42 75 74 74 6f 6e 73 3b 0a 20  ActionButtons;. 
1710: 20 20 20 20 20 20 20 74 68 69 73 2e 5f 63 72 65         this._cre
1720: 61 74 65 48 65 61 64 65 72 28 29 3b 0a 20 20 20  ateHeader();.   
1730: 20 20 20 20 20 74 68 69 73 2e 6c 69 73 74 65 6e       this.listen
1740: 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 5f  ();.    }..    _
1750: 63 72 65 61 74 65 48 65 61 64 65 72 20 28 29 20  createHeader () 
1760: 7b 0a 20 20 20 20 20 20 20 20 6c 65 74 20 78 52  {.        let xR
1770: 6f 77 4e 6f 64 65 20 3d 20 63 72 65 61 74 65 4e  owNode = createN
1780: 6f 64 65 28 22 74 72 22 29 3b 0a 20 20 20 20 20  ode("tr");.     
1790: 20 20 20 69 66 20 28 74 68 69 73 2e 62 44 65 6c     if (this.bDel
17a0: 65 74 65 42 75 74 74 6f 6e 73 29 20 7b 0a 20 20  eteButtons) {.  
17b0: 20 20 20 20 20 20 20 20 20 20 78 52 6f 77 4e 6f            xRowNo
17c0: 64 65 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 63  de.appendChild(c
17d0: 72 65 61 74 65 4e 6f 64 65 28 22 74 68 22 2c 20  reateNode("th", 
17e0: 7b 20 74 65 78 74 43 6f 6e 74 65 6e 74 3a 20 22  { textContent: "
17f0: c2 b7 22 2c 20 77 69 64 74 68 3a 20 22 31 32 70  ..", width: "12p
1800: 78 22 20 7d 29 29 3b 0a 20 20 20 20 20 20 20 20  x" }));.        
1810: 7d 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 6c  }.        for (l
1820: 65 74 20 73 43 6f 6c 75 6d 6e 20 6f 66 20 74 68  et sColumn of th
1830: 69 73 2e 6c 43 6f 6c 75 6d 6e 29 20 7b 0a 20 20  is.lColumn) {.  
1840: 20 20 20 20 20 20 20 20 20 20 78 52 6f 77 4e 6f            xRowNo
1850: 64 65 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 63  de.appendChild(c
1860: 72 65 61 74 65 4e 6f 64 65 28 22 74 68 22 2c 20  reateNode("th", 
1870: 7b 20 74 65 78 74 43 6f 6e 74 65 6e 74 3a 20 73  { textContent: s
1880: 43 6f 6c 75 6d 6e 20 7d 29 29 3b 0a 20 20 20 20  Column }));.    
1890: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 74 68      }.        th
18a0: 69 73 2e 78 54 61 62 6c 65 2e 61 70 70 65 6e 64  is.xTable.append
18b0: 43 68 69 6c 64 28 78 52 6f 77 4e 6f 64 65 29 3b  Child(xRowNode);
18c0: 0a 20 20 20 20 7d 0a 0a 20 20 20 20 63 6c 65 61  .    }..    clea
18d0: 72 20 28 29 20 7b 0a 20 20 20 20 20 20 20 20 77  r () {.        w
18e0: 68 69 6c 65 20 28 74 68 69 73 2e 78 54 61 62 6c  hile (this.xTabl
18f0: 65 2e 66 69 72 73 74 43 68 69 6c 64 29 20 7b 0a  e.firstChild) {.
1900: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73              this
1910: 2e 78 54 61 62 6c 65 2e 72 65 6d 6f 76 65 43 68  .xTable.removeCh
1920: 69 6c 64 28 74 68 69 73 2e 78 54 61 62 6c 65 2e  ild(this.xTable.
1930: 66 69 72 73 74 43 68 69 6c 64 29 3b 0a 20 20 20  firstChild);.   
1940: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 74       }.        t
1950: 68 69 73 2e 6c 45 6e 74 72 79 20 3d 20 5b 5d 3b  his.lEntry = [];
1960: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e 45  .        this.nE
1970: 6e 74 72 79 20 3d 20 30 3b 0a 20 20 20 20 20 20  ntry = 0;.      
1980: 20 20 74 68 69 73 2e 5f 63 72 65 61 74 65 48 65    this._createHe
1990: 61 64 65 72 28 29 3b 0a 20 20 20 20 20 20 20 20  ader();.        
19a0: 74 68 69 73 2e 73 68 6f 77 45 6e 74 72 79 4e 75  this.showEntryNu
19b0: 6d 62 65 72 28 29 3b 0a 20 20 20 20 7d 0a 0a 20  mber();.    }.. 
19c0: 20 20 20 66 69 6c 6c 20 28 6c 46 6c 65 78 29 20     fill (lFlex) 
19d0: 7b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 63  {.        this.c
19e0: 6c 65 61 72 28 29 3b 0a 20 20 20 20 20 20 20 20  lear();.        
19f0: 69 66 20 28 6c 46 6c 65 78 2e 6c 65 6e 67 74 68  if (lFlex.length
1a00: 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20   > 0) {.        
1a10: 20 20 20 20 74 68 69 73 2e 78 50 72 6f 67 72 65      this.xProgre
1a20: 73 73 42 61 72 2e 6d 61 78 20 3d 20 6c 46 6c 65  ssBar.max = lFle
1a30: 78 2e 6c 65 6e 67 74 68 3b 0a 20 20 20 20 20 20  x.length;.      
1a40: 20 20 20 20 20 20 74 68 69 73 2e 78 50 72 6f 67        this.xProg
1a50: 72 65 73 73 42 61 72 2e 76 61 6c 75 65 20 3d 20  ressBar.value = 
1a60: 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66  1;.            f
1a70: 6f 72 20 28 6c 65 74 20 6c 44 61 74 61 20 6f 66  or (let lData of
1a80: 20 6c 46 6c 65 78 29 20 7b 0a 20 20 20 20 20 20   lFlex) {.      
1a90: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 5f            this._
1aa0: 61 64 64 52 6f 77 28 6c 44 61 74 61 29 3b 0a 20  addRow(lData);. 
1ab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74                 t
1ac0: 68 69 73 2e 78 50 72 6f 67 72 65 73 73 42 61 72  his.xProgressBar
1ad0: 2e 76 61 6c 75 65 20 2b 3d 20 31 3b 0a 20 20 20  .value += 1;.   
1ae0: 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20           }.     
1af0: 20 20 20 20 20 20 20 74 68 69 73 2e 78 50 72 6f         this.xPro
1b00: 67 72 65 73 73 42 61 72 2e 76 61 6c 75 65 20 3d  gressBar.value =
1b10: 20 74 68 69 73 2e 78 50 72 6f 67 72 65 73 73 42   this.xProgressB
1b20: 61 72 2e 6d 61 78 3b 0a 20 20 20 20 20 20 20 20  ar.max;.        
1b30: 7d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c  }.        this.l
1b40: 45 6e 74 72 79 20 3d 20 6c 46 6c 65 78 3b 0a 20  Entry = lFlex;. 
1b50: 20 20 20 20 20 20 20 74 68 69 73 2e 6e 45 6e 74         this.nEnt
1b60: 72 79 20 3d 20 6c 46 6c 65 78 2e 6c 65 6e 67 74  ry = lFlex.lengt
1b70: 68 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e  h;.        this.
1b80: 73 68 6f 77 45 6e 74 72 79 4e 75 6d 62 65 72 28  showEntryNumber(
1b90: 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 61 64  );.    }..    ad
1ba0: 64 45 6e 74 72 69 65 73 20 28 6c 46 6c 65 78 29  dEntries (lFlex)
1bb0: 20 7b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e   {.        this.
1bc0: 6c 45 6e 74 72 79 2e 70 75 73 68 28 2e 2e 2e 6c  lEntry.push(...l
1bd0: 46 6c 65 78 29 3b 0a 20 20 20 20 20 20 20 20 66  Flex);.        f
1be0: 6f 72 20 28 6c 65 74 20 6c 44 61 74 61 20 6f 66  or (let lData of
1bf0: 20 6c 46 6c 65 78 29 20 7b 0a 20 20 20 20 20 20   lFlex) {.      
1c00: 20 20 20 20 20 20 74 68 69 73 2e 5f 61 64 64 52        this._addR
1c10: 6f 77 28 6c 44 61 74 61 29 3b 0a 20 20 20 20 20  ow(lData);.     
1c20: 20 20 20 7d 0a 20 20 20 20 20 20 20 20 74 68 69     }.        thi
1c30: 73 2e 6e 45 6e 74 72 79 20 2b 3d 20 6c 46 6c 65  s.nEntry += lFle
1c40: 78 2e 6c 65 6e 67 74 68 3b 0a 20 20 20 20 20 20  x.length;.      
1c50: 20 20 74 68 69 73 2e 73 68 6f 77 45 6e 74 72 79    this.showEntry
1c60: 4e 75 6d 62 65 72 28 29 3b 0a 20 20 20 20 7d 0a  Number();.    }.
1c70: 0a 20 20 20 20 69 6e 69 74 20 28 29 20 7b 0a 20  .    init () {. 
1c80: 20 20 20 20 20 20 20 69 66 20 28 62 43 68 72 6f         if (bChro
1c90: 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  me) {.          
1ca0: 20 20 62 72 6f 77 73 65 72 2e 73 74 6f 72 61 67    browser.storag
1cb0: 65 2e 6c 6f 63 61 6c 2e 67 65 74 28 22 73 65 6c  e.local.get("sel
1cc0: 65 63 74 65 64 5f 64 69 63 74 69 6f 6e 61 72 69  ected_dictionari
1cd0: 65 73 5f 6c 69 73 74 22 2c 20 74 68 69 73 2e 5f  es_list", this._
1ce0: 69 6e 69 74 2e 62 69 6e 64 28 74 68 69 73 29 29  init.bind(this))
1cf0: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65  ;.            re
1d00: 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a  turn;.        }.
1d10: 20 20 20 20 20 20 20 20 6c 65 74 20 78 50 72 6f          let xPro
1d20: 6d 69 73 65 20 3d 20 62 72 6f 77 73 65 72 2e 73  mise = browser.s
1d30: 74 6f 72 61 67 65 2e 6c 6f 63 61 6c 2e 67 65 74  torage.local.get
1d40: 28 22 73 65 6c 65 63 74 65 64 5f 64 69 63 74 69  ("selected_dicti
1d50: 6f 6e 61 72 69 65 73 5f 6c 69 73 74 22 29 3b 0a  onaries_list");.
1d60: 20 20 20 20 20 20 20 20 78 50 72 6f 6d 69 73 65          xPromise
1d70: 2e 74 68 65 6e 28 74 68 69 73 2e 5f 69 6e 69 74  .then(this._init
1d80: 2e 62 69 6e 64 28 74 68 69 73 29 2c 20 73 68 6f  .bind(this), sho
1d90: 77 45 72 72 6f 72 29 3b 0a 20 20 20 20 7d 0a 0a  wError);.    }..
1da0: 20 20 20 20 5f 69 6e 69 74 20 28 6f 52 65 73 75      _init (oResu
1db0: 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66  lt) {.        if
1dc0: 20 28 6f 52 65 73 75 6c 74 2e 68 61 73 4f 77 6e   (oResult.hasOwn
1dd0: 50 72 6f 70 65 72 74 79 28 22 73 65 6c 65 63 74  Property("select
1de0: 65 64 5f 64 69 63 74 69 6f 6e 61 72 69 65 73 5f  ed_dictionaries_
1df0: 6c 69 73 74 22 29 29 20 7b 0a 20 20 20 20 20 20  list")) {.      
1e00: 20 20 20 20 20 20 74 68 69 73 2e 6c 53 65 6c 65        this.lSele
1e10: 63 74 65 64 44 69 63 74 69 6f 6e 61 72 69 65 73  ctedDictionaries
1e20: 20 3d 20 6f 52 65 73 75 6c 74 2e 73 65 6c 65 63   = oResult.selec
1e30: 74 65 64 5f 64 69 63 74 69 6f 6e 61 72 69 65 73  ted_dictionaries
1e40: 5f 6c 69 73 74 3b 0a 20 20 20 20 20 20 20 20 20  _list;.         
1e50: 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 74     console.log(t
1e60: 68 69 73 2e 6c 53 65 6c 65 63 74 65 64 44 69 63  his.lSelectedDic
1e70: 74 69 6f 6e 61 72 69 65 73 29 3b 0a 20 20 20 20  tionaries);.    
1e80: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 74 68      }.        th
1e90: 69 73 2e 67 65 74 44 69 63 74 69 6f 6e 61 72 69  is.getDictionari
1ea0: 65 73 6c 69 73 74 28 29 3b 0a 20 20 20 20 7d 0a  eslist();.    }.
1eb0: 0a 20 20 20 20 67 65 74 44 69 63 74 69 6f 6e 61  .    getDictiona
1ec0: 72 69 65 73 6c 69 73 74 20 28 29 20 7b 0a 20 20  rieslist () {.  
1ed0: 20 20 20 20 20 20 66 65 74 63 68 28 22 68 74 74        fetch("htt
1ee0: 70 3a 2f 2f 6c 6f 63 61 6c 68 6f 73 74 2f 64 69  p://localhost/di
1ef0: 63 74 69 6f 6e 61 72 69 65 73 2f 22 29 0a 20 20  ctionaries/").  
1f00: 20 20 20 20 20 20 2e 74 68 65 6e 28 28 72 65 73        .then((res
1f10: 70 6f 6e 73 65 29 20 3d 3e 20 7b 0a 20 20 20 20  ponse) => {.    
1f20: 20 20 20 20 20 20 20 20 69 66 20 28 72 65 73 70          if (resp
1f30: 6f 6e 73 65 2e 6f 6b 29 20 7b 0a 20 20 20 20 20  onse.ok) {.     
1f40: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72             retur
1f50: 6e 20 72 65 73 70 6f 6e 73 65 2e 6a 73 6f 6e 28  n response.json(
1f60: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d  );.            }
1f70: 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20   else {.        
1f80: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e          return n
1f90: 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20  ull;.           
1fa0: 20 7d 0a 20 20 20 20 20 20 20 20 7d 29 0a 20 20   }.        }).  
1fb0: 20 20 20 20 20 20 2e 74 68 65 6e 28 28 72 65 73        .then((res
1fc0: 70 6f 6e 73 65 29 20 3d 3e 20 7b 0a 20 20 20 20  ponse) => {.    
1fd0: 20 20 20 20 20 20 20 20 69 66 20 28 72 65 73 70          if (resp
1fe0: 6f 6e 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20  onse) {.        
1ff0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 66 69 6c          this.fil
2000: 6c 28 72 65 73 70 6f 6e 73 65 29 3b 0a 20 20 20  l(response);.   
2010: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69               thi
2020: 73 2e 73 68 6f 77 53 65 6c 65 63 74 65 64 44 69  s.showSelectedDi
2030: 63 74 69 6f 6e 61 72 69 65 73 28 74 72 75 65 29  ctionaries(true)
2040: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20  ;.            } 
2050: 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20  else {.         
2060: 20 20 20 20 20 20 20 2f 2f 20 74 6f 64 6f 0a 20         // todo. 
2070: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20             }.   
2080: 20 20 20 20 20 7d 29 0a 20 20 20 20 20 20 20 20       }).        
2090: 2e 63 61 74 63 68 28 28 65 29 20 3d 3e 20 7b 0a  .catch((e) => {.
20a0: 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 77              show
20b0: 45 72 72 6f 72 28 65 29 3b 0a 20 20 20 20 20 20  Error(e);.      
20c0: 20 20 7d 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20    });.    }..   
20d0: 20 67 65 74 44 69 63 74 69 6f 6e 61 72 79 20 28   getDictionary (
20e0: 73 49 64 2c 20 73 4e 61 6d 65 29 20 7b 0a 20 20  sId, sName) {.  
20f0: 20 20 20 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f        console.lo
2100: 67 28 22 67 65 74 3a 20 22 2b 73 4e 61 6d 65 29  g("get: "+sName)
2110: 3b 0a 20 20 20 20 20 20 20 20 66 65 74 63 68 28  ;.        fetch(
2120: 22 68 74 74 70 3a 2f 2f 6c 6f 63 61 6c 68 6f 73  "http://localhos
2130: 74 2f 64 6f 77 6e 6c 6f 61 64 2f 22 2b 73 4e 61  t/download/"+sNa
2140: 6d 65 29 0a 20 20 20 20 20 20 20 20 2e 74 68 65  me).        .the
2150: 6e 28 28 72 65 73 70 6f 6e 73 65 29 20 3d 3e 20  n((response) => 
2160: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66  {.            if
2170: 20 28 72 65 73 70 6f 6e 73 65 2e 6f 6b 29 20 7b   (response.ok) {
2180: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
2190: 20 72 65 74 75 72 6e 20 72 65 73 70 6f 6e 73 65   return response
21a0: 2e 6a 73 6f 6e 28 29 3b 0a 20 20 20 20 20 20 20  .json();.       
21b0: 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20       } else {.  
21c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f                co
21d0: 6e 73 6f 6c 65 2e 6c 6f 67 28 22 64 69 63 74 69  nsole.log("dicti
21e0: 6f 6e 61 72 79 20 6e 6f 74 20 6c 6f 61 64 65 64  onary not loaded
21f0: 3a 20 22 20 2b 20 73 4e 61 6d 65 29 3b 0a 20 20  : " + sName);.  
2200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65                re
2210: 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 20  turn null;.     
2220: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20         }.       
2230: 20 7d 29 0a 20 20 20 20 20 20 20 20 2e 74 68 65   }).        .the
2240: 6e 28 28 72 65 73 70 6f 6e 73 65 29 20 3d 3e 20  n((response) => 
2250: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66  {.            if
2260: 20 28 72 65 73 70 6f 6e 73 65 29 20 7b 0a 20 20   (response) {.  
2270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68                th
2280: 69 73 2e 73 65 6c 65 63 74 45 6e 74 72 79 28 73  is.selectEntry(s
2290: 49 64 2c 20 73 4e 61 6d 65 29 3b 0a 20 20 20 20  Id, sName);.    
22a0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73              this
22b0: 2e 64 44 69 63 74 2e 73 65 74 28 73 4e 61 6d 65  .dDict.set(sName
22c0: 2c 20 72 65 73 70 6f 6e 73 65 29 3b 0a 20 20 20  , response);.   
22d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 6f               bro
22e0: 77 73 65 72 2e 73 74 6f 72 61 67 65 2e 6c 6f 63  wser.storage.loc
22f0: 61 6c 2e 73 65 74 28 7b 20 22 73 74 6f 72 65 64  al.set({ "stored
2300: 5f 64 69 63 74 69 6f 6e 61 72 69 65 73 22 3a 20  _dictionaries": 
2310: 74 68 69 73 2e 64 44 69 63 74 20 7d 29 3b 0a 20  this.dDict });. 
2320: 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73             } els
2330: 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  e {.            
2340: 20 20 20 20 2f 2f 0a 20 20 20 20 20 20 20 20 20      //.         
2350: 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 29 0a     }.        }).
2360: 20 20 20 20 20 20 20 20 2e 63 61 74 63 68 28 28          .catch((
2370: 65 29 20 3d 3e 20 7b 0a 20 20 20 20 20 20 20 20  e) => {.        
2380: 20 20 20 20 73 68 6f 77 45 72 72 6f 72 28 65 29      showError(e)
2390: 3b 0a 20 20 20 20 20 20 20 20 7d 29 3b 0a 20 20  ;.        });.  
23a0: 20 20 7d 0a 0a 20 20 20 20 73 68 6f 77 45 6e 74    }..    showEnt
23b0: 72 79 4e 75 6d 62 65 72 20 28 29 20 7b 0a 20 20  ryNumber () {.  
23c0: 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 78        if (this.x
23d0: 4e 75 6d 45 6e 74 72 79 29 20 7b 0a 20 20 20 20  NumEntry) {.    
23e0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 78 4e 75          this.xNu
23f0: 6d 45 6e 74 72 79 2e 74 65 78 74 43 6f 6e 74 65  mEntry.textConte
2400: 6e 74 20 3d 20 74 68 69 73 2e 6e 45 6e 74 72 79  nt = this.nEntry
2410: 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20  ;.        }.    
2420: 7d 0a 0a 20 20 20 20 5f 61 64 64 52 6f 77 20 28  }..    _addRow (
2430: 6c 44 61 74 61 29 20 7b 0a 20 20 20 20 20 20 20  lData) {.       
2440: 20 6c 65 74 20 5b 6e 44 69 63 49 64 2c 20 73 4e   let [nDicId, sN
2450: 61 6d 65 2c 20 6e 45 6e 74 72 79 2c 20 73 44 65  ame, nEntry, sDe
2460: 73 63 72 69 70 74 69 6f 6e 2c 20 73 4c 61 73 74  scription, sLast
2470: 55 70 64 61 74 65 2c 20 2e 2e 2e 64 61 74 61 5d  Update, ...data]
2480: 20 3d 20 6c 44 61 74 61 3b 0a 20 20 20 20 20 20   = lData;.      
2490: 20 20 6c 65 74 20 78 52 6f 77 4e 6f 64 65 20 3d    let xRowNode =
24a0: 20 63 72 65 61 74 65 4e 6f 64 65 28 22 74 72 22   createNode("tr"
24b0: 2c 20 7b 20 69 64 3a 20 74 68 69 73 2e 73 4e 6f  , { id: this.sNo
24c0: 64 65 49 64 20 2b 20 22 5f 72 6f 77 5f 22 20 2b  deId + "_row_" +
24d0: 20 6e 44 69 63 49 64 20 7d 29 3b 0a 20 20 20 20   nDicId });.    
24e0: 20 20 20 20 69 66 20 28 74 68 69 73 2e 62 44 65      if (this.bDe
24f0: 6c 65 74 65 42 75 74 74 6f 6e 73 29 20 7b 0a 20  leteButtons) {. 
2500: 20 20 20 20 20 20 20 20 20 20 20 78 52 6f 77 4e             xRowN
2510: 6f 64 65 2e 61 70 70 65 6e 64 43 68 69 6c 64 28  ode.appendChild(
2520: 63 72 65 61 74 65 4e 6f 64 65 28 22 74 64 22 2c  createNode("td",
2530: 20 7b 20 74 65 78 74 43 6f 6e 74 65 6e 74 3a 20   { textContent: 
2540: 22 c3 97 22 2c 20 63 6c 61 73 73 4e 61 6d 65 3a  "..", className:
2550: 20 22 64 65 6c 65 74 65 5f 65 6e 74 72 79 22 2c   "delete_entry",
2560: 20 74 69 74 6c 65 3a 20 22 45 66 66 61 63 65 72   title: "Effacer
2570: 20 63 65 74 74 65 20 65 6e 74 72 c3 a9 65 22 20   cette entr..e" 
2580: 7d 2c 20 7b 20 69 64 5f 65 6e 74 72 79 3a 20 6e  }, { id_entry: n
2590: 44 69 63 49 64 20 7d 29 29 3b 0a 20 20 20 20 20  DicId }));.     
25a0: 20 20 20 7d 0a 20 20 20 20 20 20 20 20 78 52 6f     }.        xRo
25b0: 77 4e 6f 64 65 2e 61 70 70 65 6e 64 43 68 69 6c  wNode.appendChil
25c0: 64 28 63 72 65 61 74 65 4e 6f 64 65 28 22 74 64  d(createNode("td
25d0: 22 2c 20 7b 20 74 65 78 74 43 6f 6e 74 65 6e 74  ", { textContent
25e0: 3a 20 73 4e 61 6d 65 20 7d 29 29 3b 0a 20 20 20  : sName }));.   
25f0: 20 20 20 20 20 78 52 6f 77 4e 6f 64 65 2e 61 70       xRowNode.ap
2600: 70 65 6e 64 43 68 69 6c 64 28 63 72 65 61 74 65  pendChild(create
2610: 4e 6f 64 65 28 22 74 64 22 2c 20 7b 20 74 65 78  Node("td", { tex
2620: 74 43 6f 6e 74 65 6e 74 3a 20 6e 45 6e 74 72 79  tContent: nEntry
2630: 20 7d 29 29 3b 0a 20 20 20 20 20 20 20 20 78 52   }));.        xR
2640: 6f 77 4e 6f 64 65 2e 61 70 70 65 6e 64 43 68 69  owNode.appendChi
2650: 6c 64 28 63 72 65 61 74 65 4e 6f 64 65 28 22 74  ld(createNode("t
2660: 64 22 2c 20 7b 20 74 65 78 74 43 6f 6e 74 65 6e  d", { textConten
2670: 74 3a 20 73 44 65 73 63 72 69 70 74 69 6f 6e 20  t: sDescription 
2680: 7d 29 29 3b 0a 20 20 20 20 20 20 20 20 78 52 6f  }));.        xRo
2690: 77 4e 6f 64 65 2e 61 70 70 65 6e 64 43 68 69 6c  wNode.appendChil
26a0: 64 28 63 72 65 61 74 65 4e 6f 64 65 28 22 74 64  d(createNode("td
26b0: 22 2c 20 7b 20 74 65 78 74 43 6f 6e 74 65 6e 74  ", { textContent
26c0: 3a 20 73 4c 61 73 74 55 70 64 61 74 65 20 7d 29  : sLastUpdate })
26d0: 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 74  );.        if (t
26e0: 68 69 73 2e 62 41 63 74 69 6f 6e 42 75 74 74 6f  his.bActionButto
26f0: 6e 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  ns) {.          
2700: 20 20 78 52 6f 77 4e 6f 64 65 2e 61 70 70 65 6e    xRowNode.appen
2710: 64 43 68 69 6c 64 28 63 72 65 61 74 65 4e 6f 64  dChild(createNod
2720: 65 28 22 74 64 22 2c 20 7b 20 74 65 78 74 43 6f  e("td", { textCo
2730: 6e 74 65 6e 74 3a 20 22 2b 22 2c 20 63 6c 61 73  ntent: "+", clas
2740: 73 4e 61 6d 65 3a 20 22 73 65 6c 65 63 74 5f 65  sName: "select_e
2750: 6e 74 72 79 22 2c 20 74 69 74 6c 65 3a 20 22 53  ntry", title: "S
2760: c3 a9 6c 65 63 74 69 6f 6e 6e 65 72 2f 44 c3 a9  ..lectionner/D..
2770: 73 c3 a9 6c 65 63 74 69 6f 6e 6e 65 72 20 63 65  s..lectionner ce
2780: 74 74 65 20 65 6e 74 72 c3 a9 65 22 20 7d 2c 20  tte entr..e" }, 
2790: 7b 20 69 64 5f 65 6e 74 72 79 3a 20 6e 44 69 63  { id_entry: nDic
27a0: 49 64 2c 20 64 69 63 74 5f 6e 61 6d 65 3a 20 73  Id, dict_name: s
27b0: 4e 61 6d 65 20 7d 29 29 3b 0a 20 20 20 20 20 20  Name }));.      
27c0: 20 20 7d 0a 20 20 20 20 20 20 20 20 74 68 69 73    }.        this
27d0: 2e 78 54 61 62 6c 65 2e 61 70 70 65 6e 64 43 68  .xTable.appendCh
27e0: 69 6c 64 28 78 52 6f 77 4e 6f 64 65 29 3b 0a 20  ild(xRowNode);. 
27f0: 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e         if (this.
2800: 6c 53 65 6c 65 63 74 65 64 44 69 63 74 69 6f 6e  lSelectedDiction
2810: 61 72 69 65 73 2e 69 6e 63 6c 75 64 65 73 28 73  aries.includes(s
2820: 4e 61 6d 65 29 29 20 7b 0a 20 20 20 20 20 20 20  Name)) {.       
2830: 20 20 20 20 20 74 68 69 73 2e 64 53 65 6c 65 63       this.dSelec
2840: 74 65 64 44 69 63 74 69 6f 6e 61 72 69 65 73 2e  tedDictionaries.
2850: 73 65 74 28 73 4e 61 6d 65 2c 20 6e 44 69 63 49  set(sName, nDicI
2860: 64 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20  d);.        }.  
2870: 20 20 7d 0a 0a 20 20 20 20 6c 69 73 74 65 6e 20    }..    listen 
2880: 28 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20  () {.        if 
2890: 28 74 68 69 73 2e 62 44 65 6c 65 74 65 42 75 74  (this.bDeleteBut
28a0: 74 6f 6e 73 20 7c 7c 20 74 68 69 73 2e 62 41 63  tons || this.bAc
28b0: 74 69 6f 6e 42 75 74 74 6f 6e 73 29 20 7b 0a 20  tionButtons) {. 
28c0: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e             this.
28d0: 78 54 61 62 6c 65 2e 61 64 64 45 76 65 6e 74 4c  xTable.addEventL
28e0: 69 73 74 65 6e 65 72 28 22 63 6c 69 63 6b 22 2c  istener("click",
28f0: 20 28 78 45 76 65 6e 74 29 20 3d 3e 20 7b 20 74   (xEvent) => { t
2900: 68 69 73 2e 6f 6e 54 61 62 6c 65 43 6c 69 63 6b  his.onTableClick
2910: 28 78 45 76 65 6e 74 29 3b 20 7d 2c 20 66 61 6c  (xEvent); }, fal
2920: 73 65 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20  se);.        }. 
2930: 20 20 20 20 20 20 20 74 68 69 73 2e 78 41 70 70         this.xApp
2940: 6c 79 2e 61 64 64 45 76 65 6e 74 4c 69 73 74 65  ly.addEventListe
2950: 6e 65 72 28 22 63 6c 69 63 6b 22 2c 20 28 78 45  ner("click", (xE
2960: 76 65 6e 74 29 20 3d 3e 20 7b 20 74 68 69 73 2e  vent) => { this.
2970: 67 65 6e 65 72 61 74 65 43 6f 6d 6d 75 6e 69 74  generateCommunit
2980: 79 44 69 63 74 69 6f 6e 61 72 79 28 78 45 76 65  yDictionary(xEve
2990: 6e 74 29 3b 20 7d 2c 20 66 61 6c 73 65 29 3b 0a  nt); }, false);.
29a0: 20 20 20 20 7d 0a 0a 20 20 20 20 6f 6e 54 61 62      }..    onTab
29b0: 6c 65 43 6c 69 63 6b 20 28 78 45 76 65 6e 74 29  leClick (xEvent)
29c0: 20 7b 0a 20 20 20 20 20 20 20 20 74 72 79 20 7b   {.        try {
29d0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74  .            let
29e0: 20 78 45 6c 65 6d 20 3d 20 78 45 76 65 6e 74 2e   xElem = xEvent.
29f0: 74 61 72 67 65 74 3b 0a 20 20 20 20 20 20 20 20  target;.        
2a00: 20 20 20 20 69 66 20 28 78 45 6c 65 6d 2e 63 6c      if (xElem.cl
2a10: 61 73 73 4e 61 6d 65 29 20 7b 0a 20 20 20 20 20  assName) {.     
2a20: 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 63             switc
2a30: 68 20 28 78 45 6c 65 6d 2e 63 6c 61 73 73 4e 61  h (xElem.classNa
2a40: 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  me) {.          
2a50: 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 22            case "
2a60: 64 65 6c 65 74 65 5f 65 6e 74 72 79 22 3a 0a 20  delete_entry":. 
2a70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2a80: 20 20 20 20 20 20 20 74 68 69 73 2e 64 65 6c 65         this.dele
2a90: 74 65 52 6f 77 28 78 45 6c 65 6d 2e 64 61 74 61  teRow(xElem.data
2aa0: 73 65 74 2e 69 64 5f 65 6e 74 72 79 2c 20 78 45  set.id_entry, xE
2ab0: 6c 65 6d 2e 64 61 74 61 73 65 74 2e 64 69 63 74  lem.dataset.dict
2ac0: 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20  _name);.        
2ad0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2ae0: 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20  break;.         
2af0: 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20             case 
2b00: 22 73 65 6c 65 63 74 5f 65 6e 74 72 79 22 3a 0a  "select_entry":.
2b10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2b20: 20 20 20 20 20 20 20 20 74 68 69 73 2e 67 65 74          this.get
2b30: 44 69 63 74 69 6f 6e 61 72 79 28 78 45 6c 65 6d  Dictionary(xElem
2b40: 2e 64 61 74 61 73 65 74 2e 69 64 5f 65 6e 74 72  .dataset.id_entr
2b50: 79 2c 20 78 45 6c 65 6d 2e 64 61 74 61 73 65 74  y, xElem.dataset
2b60: 2e 64 69 63 74 5f 6e 61 6d 65 29 3b 0a 20 20 20  .dict_name);.   
2b70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2b80: 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20       break;.    
2b90: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20              }.  
2ba0: 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20            }.    
2bb0: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 63 61      }.        ca
2bc0: 74 63 68 20 28 65 29 20 7b 0a 20 20 20 20 20 20  tch (e) {.      
2bd0: 20 20 20 20 20 20 73 68 6f 77 45 72 72 6f 72 28        showError(
2be0: 65 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20  e);.        }.  
2bf0: 20 20 7d 0a 0a 20 20 20 20 64 65 6c 65 74 65 52    }..    deleteR
2c00: 6f 77 20 28 69 45 6e 74 72 79 29 20 7b 0a 20 20  ow (iEntry) {.  
2c10: 20 20 20 20 20 20 74 68 69 73 2e 6c 45 6e 74 72        this.lEntr
2c20: 79 5b 70 61 72 73 65 49 6e 74 28 69 45 6e 74 72  y[parseInt(iEntr
2c30: 79 29 5d 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20  y)] = null;.    
2c40: 20 20 20 20 69 66 20 28 64 6f 63 75 6d 65 6e 74      if (document
2c50: 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79 49 64 28  .getElementById(
2c60: 74 68 69 73 2e 73 4e 6f 64 65 49 64 20 2b 20 22  this.sNodeId + "
2c70: 5f 72 6f 77 5f 22 20 2b 20 69 45 6e 74 72 79 29  _row_" + iEntry)
2c80: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ) {.            
2c90: 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c 65 6d  document.getElem
2ca0: 65 6e 74 42 79 49 64 28 74 68 69 73 2e 73 4e 6f  entById(this.sNo
2cb0: 64 65 49 64 20 2b 20 22 5f 72 6f 77 5f 22 20 2b  deId + "_row_" +
2cc0: 20 69 45 6e 74 72 79 29 2e 73 74 79 6c 65 2e 64   iEntry).style.d
2cd0: 69 73 70 6c 61 79 20 3d 20 22 6e 6f 6e 65 22 3b  isplay = "none";
2ce0: 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20  .        }.     
2cf0: 20 20 20 74 68 69 73 2e 6e 45 6e 74 72 79 20 2d     this.nEntry -
2d00: 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 74 68 69  = 1;.        thi
2d10: 73 2e 73 68 6f 77 45 6e 74 72 79 4e 75 6d 62 65  s.showEntryNumbe
2d20: 72 28 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20  r();.        if 
2d30: 28 74 68 69 73 2e 73 4e 6f 64 65 49 64 20 3d 3d  (this.sNodeId ==
2d40: 20 22 6c 65 78 69 63 6f 6e 5f 74 61 62 6c 65 22   "lexicon_table"
2d50: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ) {.            
2d60: 73 68 6f 77 45 6c 65 6d 65 6e 74 28 22 73 61 76  showElement("sav
2d70: 65 5f 62 75 74 74 6f 6e 22 2c 20 22 69 6e 6c 69  e_button", "inli
2d80: 6e 65 2d 62 6c 6f 63 6b 22 29 3b 0a 20 20 20 20  ne-block");.    
2d90: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 73 68      }.        sh
2da0: 6f 77 45 6c 65 6d 65 6e 74 28 22 61 70 70 6c 79  owElement("apply
2db0: 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73  ");.    }..    s
2dc0: 65 6c 65 63 74 45 6e 74 72 79 20 28 6e 45 6e 74  electEntry (nEnt
2dd0: 72 79 49 64 2c 20 73 44 69 63 4e 61 6d 65 29 20  ryId, sDicName) 
2de0: 7b 0a 20 20 20 20 20 20 20 20 6c 65 74 20 73 52  {.        let sR
2df0: 6f 77 49 64 20 3d 20 74 68 69 73 2e 73 4e 6f 64  owId = this.sNod
2e00: 65 49 64 20 2b 20 22 5f 72 6f 77 5f 22 20 2b 20  eId + "_row_" + 
2e10: 6e 45 6e 74 72 79 49 64 3b 0a 20 20 20 20 20 20  nEntryId;.      
2e20: 20 20 69 66 20 28 21 74 68 69 73 2e 64 53 65 6c    if (!this.dSel
2e30: 65 63 74 65 64 44 69 63 74 69 6f 6e 61 72 69 65  ectedDictionarie
2e40: 73 2e 68 61 73 28 73 44 69 63 4e 61 6d 65 29 29  s.has(sDicName))
2e50: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 74   {.            t
2e60: 68 69 73 2e 64 53 65 6c 65 63 74 65 64 44 69 63  his.dSelectedDic
2e70: 74 69 6f 6e 61 72 69 65 73 2e 73 65 74 28 73 44  tionaries.set(sD
2e80: 69 63 4e 61 6d 65 2c 20 6e 45 6e 74 72 79 49 64  icName, nEntryId
2e90: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 64  );.            d
2ea0: 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c 65 6d 65  ocument.getEleme
2eb0: 6e 74 42 79 49 64 28 73 52 6f 77 49 64 29 2e 73  ntById(sRowId).s
2ec0: 74 79 6c 65 2e 62 61 63 6b 67 72 6f 75 6e 64 43  tyle.backgroundC
2ed0: 6f 6c 6f 72 20 3d 20 22 68 73 6c 28 32 31 30 2c  olor = "hsl(210,
2ee0: 20 35 30 25 2c 20 39 30 25 29 22 3b 0a 20 20 20   50%, 90%)";.   
2ef0: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 65       }.        e
2f00: 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20  lse {.          
2f10: 20 20 74 68 69 73 2e 64 53 65 6c 65 63 74 65 64    this.dSelected
2f20: 44 69 63 74 69 6f 6e 61 72 69 65 73 2e 64 65 6c  Dictionaries.del
2f30: 65 74 65 28 73 44 69 63 4e 61 6d 65 29 3b 0a 20  ete(sDicName);. 
2f40: 20 20 20 20 20 20 20 20 20 20 20 64 6f 63 75 6d             docum
2f50: 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79  ent.getElementBy
2f60: 49 64 28 73 52 6f 77 49 64 29 2e 73 74 79 6c 65  Id(sRowId).style
2f70: 2e 62 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72  .backgroundColor
2f80: 20 3d 20 22 22 3b 0a 20 20 20 20 20 20 20 20 7d   = "";.        }
2f90: 0a 20 20 20 20 20 20 20 20 73 68 6f 77 45 6c 65  .        showEle
2fa0: 6d 65 6e 74 28 22 61 70 70 6c 79 22 29 3b 0a 20  ment("apply");. 
2fb0: 20 20 20 20 20 20 20 74 68 69 73 2e 73 68 6f 77         this.show
2fc0: 53 65 6c 65 63 74 65 64 44 69 63 74 69 6f 6e 61  SelectedDictiona
2fd0: 72 69 65 73 28 29 3b 0a 20 20 20 20 7d 0a 0a 20  ries();.    }.. 
2fe0: 20 20 20 63 6c 65 61 72 53 65 6c 65 63 74 65 64     clearSelected
2ff0: 44 69 63 74 20 28 29 20 7b 0a 20 20 20 20 20 20  Dict () {.      
3000: 20 20 6c 65 74 20 78 44 69 63 4c 69 73 74 20 3d    let xDicList =
3010: 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c 65   document.getEle
3020: 6d 65 6e 74 42 79 49 64 28 22 64 69 63 74 69 6f  mentById("dictio
3030: 6e 61 72 69 65 73 5f 6c 69 73 74 22 29 3b 0a 20  naries_list");. 
3040: 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 78 44         while (xD
3050: 69 63 4c 69 73 74 2e 66 69 72 73 74 43 68 69 6c  icList.firstChil
3060: 64 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20  d) {.           
3070: 20 78 44 69 63 4c 69 73 74 2e 72 65 6d 6f 76 65   xDicList.remove
3080: 43 68 69 6c 64 28 78 44 69 63 4c 69 73 74 2e 66  Child(xDicList.f
3090: 69 72 73 74 43 68 69 6c 64 29 3b 0a 20 20 20 20  irstChild);.    
30a0: 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20      }.    }..   
30b0: 20 73 68 6f 77 53 65 6c 65 63 74 65 64 44 69 63   showSelectedDic
30c0: 74 69 6f 6e 61 72 69 65 73 20 28 62 55 70 64 61  tionaries (bUpda
30d0: 74 65 54 61 62 6c 65 3d 66 61 6c 73 65 29 20 7b  teTable=false) {
30e0: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6c  .        this.cl
30f0: 65 61 72 53 65 6c 65 63 74 65 64 44 69 63 74 28  earSelectedDict(
3100: 29 3b 0a 20 20 20 20 20 20 20 20 6c 65 74 20 78  );.        let x
3110: 44 69 63 4c 69 73 74 20 3d 20 64 6f 63 75 6d 65  DicList = docume
3120: 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79 49  nt.getElementByI
3130: 64 28 22 64 69 63 74 69 6f 6e 61 72 69 65 73 5f  d("dictionaries_
3140: 6c 69 73 74 22 29 3b 0a 20 20 20 20 20 20 20 20  list");.        
3150: 69 66 20 28 74 68 69 73 2e 64 53 65 6c 65 63 74  if (this.dSelect
3160: 65 64 44 69 63 74 69 6f 6e 61 72 69 65 73 2e 73  edDictionaries.s
3170: 69 7a 65 20 3d 3d 3d 20 30 29 20 7b 0a 20 20 20  ize === 0) {.   
3180: 20 20 20 20 20 20 20 20 20 78 44 69 63 4c 69 73           xDicLis
3190: 74 2e 74 65 78 74 43 6f 6e 74 65 6e 74 20 3d 20  t.textContent = 
31a0: 22 5b 41 75 63 75 6e 5d 22 3b 0a 20 20 20 20 20  "[Aucun]";.     
31b0: 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a 20         return;. 
31c0: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20         }.       
31d0: 20 66 6f 72 20 28 6c 65 74 20 5b 73 4e 61 6d 65   for (let [sName
31e0: 2c 20 6e 44 69 63 49 64 5d 20 6f 66 20 74 68 69  , nDicId] of thi
31f0: 73 2e 64 53 65 6c 65 63 74 65 64 44 69 63 74 69  s.dSelectedDicti
3200: 6f 6e 61 72 69 65 73 29 20 7b 0a 20 20 20 20 20  onaries) {.     
3210: 20 20 20 20 20 20 20 78 44 69 63 4c 69 73 74 2e         xDicList.
3220: 61 70 70 65 6e 64 43 68 69 6c 64 28 74 68 69 73  appendChild(this
3230: 2e 5f 63 72 65 61 74 65 44 69 63 74 4c 61 62 65  ._createDictLabe
3240: 6c 28 6e 44 69 63 49 64 2c 20 73 4e 61 6d 65 29  l(nDicId, sName)
3250: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69  );.            i
3260: 66 20 28 62 55 70 64 61 74 65 54 61 62 6c 65 29  f (bUpdateTable)
3270: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   {.             
3280: 20 20 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45     document.getE
3290: 6c 65 6d 65 6e 74 42 79 49 64 28 74 68 69 73 2e  lementById(this.
32a0: 73 4e 6f 64 65 49 64 20 2b 20 22 5f 72 6f 77 5f  sNodeId + "_row_
32b0: 22 20 2b 20 6e 44 69 63 49 64 29 2e 73 74 79 6c  " + nDicId).styl
32c0: 65 2e 62 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f  e.backgroundColo
32d0: 72 20 3d 20 22 68 73 6c 28 32 31 30 2c 20 35 30  r = "hsl(210, 50
32e0: 25 2c 20 39 30 25 29 22 3b 0a 20 20 20 20 20 20  %, 90%)";.      
32f0: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20        }.        
3300: 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 5f 63 72  }.    }..    _cr
3310: 65 61 74 65 44 69 63 74 4c 61 62 65 6c 20 28 6e  eateDictLabel (n
3320: 44 69 63 49 64 2c 20 73 4c 61 62 65 6c 29 20 7b  DicId, sLabel) {
3330: 0a 20 20 20 20 20 20 20 20 6c 65 74 20 78 4c 61  .        let xLa
3340: 62 65 6c 20 3d 20 63 72 65 61 74 65 4e 6f 64 65  bel = createNode
3350: 28 22 64 69 76 22 2c 20 7b 63 6c 61 73 73 4e 61  ("div", {classNa
3360: 6d 65 3a 20 22 64 69 63 5f 62 75 74 74 6f 6e 22  me: "dic_button"
3370: 7d 29 3b 0a 20 20 20 20 20 20 20 20 6c 65 74 20  });.        let 
3380: 78 43 6c 6f 73 65 42 75 74 74 6f 6e 20 3d 20 63  xCloseButton = c
3390: 72 65 61 74 65 4e 6f 64 65 28 22 64 69 76 22 2c  reateNode("div",
33a0: 20 7b 63 6c 61 73 73 4e 61 6d 65 3a 20 22 64 69   {className: "di
33b0: 63 5f 62 75 74 74 6f 6e 5f 63 6c 6f 73 65 22 2c  c_button_close",
33c0: 20 74 65 78 74 43 6f 6e 74 65 6e 74 3a 20 22 c3   textContent: ".
33d0: 97 22 7d 2c 20 7b 69 64 5f 65 6e 74 72 79 3a 20  ."}, {id_entry: 
33e0: 6e 44 69 63 49 64 7d 29 3b 0a 20 20 20 20 20 20  nDicId});.      
33f0: 20 20 78 43 6c 6f 73 65 42 75 74 74 6f 6e 2e 61    xCloseButton.a
3400: 64 64 45 76 65 6e 74 4c 69 73 74 65 6e 65 72 28  ddEventListener(
3410: 22 63 6c 69 63 6b 22 2c 20 28 29 20 3d 3e 20 7b  "click", () => {
3420: 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69  .            thi
3430: 73 2e 64 53 65 6c 65 63 74 65 64 44 69 63 74 69  s.dSelectedDicti
3440: 6f 6e 61 72 69 65 73 2e 64 65 6c 65 74 65 28 73  onaries.delete(s
3450: 4c 61 62 65 6c 29 3b 0a 20 20 20 20 20 20 20 20  Label);.        
3460: 20 20 20 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74      document.get
3470: 45 6c 65 6d 65 6e 74 42 79 49 64 28 74 68 69 73  ElementById(this
3480: 2e 73 4e 6f 64 65 49 64 2b 22 5f 72 6f 77 5f 22  .sNodeId+"_row_"
3490: 2b 6e 44 69 63 49 64 29 2e 73 74 79 6c 65 2e 62  +nDicId).style.b
34a0: 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 20 3d  ackgroundColor =
34b0: 20 22 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20   "";.           
34c0: 20 78 4c 61 62 65 6c 2e 73 74 79 6c 65 2e 64 69   xLabel.style.di
34d0: 73 70 6c 61 79 20 3d 20 22 6e 6f 6e 65 22 3b 0a  splay = "none";.
34e0: 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 77              show
34f0: 45 6c 65 6d 65 6e 74 28 22 61 70 70 6c 79 22 29  Element("apply")
3500: 3b 0a 20 20 20 20 20 20 20 20 7d 29 3b 0a 20 20  ;.        });.  
3510: 20 20 20 20 20 20 78 4c 61 62 65 6c 2e 61 70 70        xLabel.app
3520: 65 6e 64 43 68 69 6c 64 28 78 43 6c 6f 73 65 42  endChild(xCloseB
3530: 75 74 74 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20  utton);.        
3540: 78 4c 61 62 65 6c 2e 61 70 70 65 6e 64 43 68 69  xLabel.appendChi
3550: 6c 64 28 63 72 65 61 74 65 4e 6f 64 65 28 22 64  ld(createNode("d
3560: 69 76 22 2c 20 7b 63 6c 61 73 73 4e 61 6d 65 3a  iv", {className:
3570: 20 22 64 69 63 5f 62 75 74 74 6f 6e 5f 6c 61 62   "dic_button_lab
3580: 65 6c 22 2c 20 74 65 78 74 43 6f 6e 74 65 6e 74  el", textContent
3590: 3a 20 73 4c 61 62 65 6c 7d 29 29 3b 0a 20 20 20  : sLabel}));.   
35a0: 20 20 20 20 20 72 65 74 75 72 6e 20 78 4c 61 62       return xLab
35b0: 65 6c 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 67  el;.    }..    g
35c0: 65 6e 65 72 61 74 65 43 6f 6d 6d 75 6e 69 74 79  enerateCommunity
35d0: 44 69 63 74 69 6f 6e 61 72 79 20 28 78 45 76 65  Dictionary (xEve
35e0: 6e 74 29 20 7b 0a 20 20 20 20 20 20 20 20 68 69  nt) {.        hi
35f0: 64 65 45 6c 65 6d 65 6e 74 28 22 61 70 70 6c 79  deElement("apply
3600: 22 29 3b 0a 20 20 20 20 20 20 20 20 6c 65 74 20  ");.        let 
3610: 6c 44 69 63 74 20 3d 20 5b 5d 3b 0a 20 20 20 20  lDict = [];.    
3620: 20 20 20 20 66 6f 72 20 28 6c 65 74 20 73 4e 61      for (let sNa
3630: 6d 65 20 6f 66 20 74 68 69 73 2e 64 53 65 6c 65  me of this.dSele
3640: 63 74 65 64 44 69 63 74 69 6f 6e 61 72 69 65 73  ctedDictionaries
3650: 2e 6b 65 79 73 28 29 29 20 7b 0a 20 20 20 20 20  .keys()) {.     
3660: 20 20 20 20 20 20 20 6c 44 69 63 74 2e 70 75 73         lDict.pus
3670: 68 28 74 68 69 73 2e 64 44 69 63 74 2e 67 65 74  h(this.dDict.get
3680: 28 73 4e 61 6d 65 29 29 3b 0a 20 20 20 20 20 20  (sName));.      
3690: 20 20 7d 0a 20 20 20 20 20 20 20 20 6c 65 74 20    }.        let 
36a0: 6f 44 69 63 74 20 3d 20 64 69 63 5f 6d 65 72 67  oDict = dic_merg
36b0: 65 72 2e 6d 65 72 67 65 28 6c 44 69 63 74 2c 20  er.merge(lDict, 
36c0: 22 53 22 2c 20 22 66 72 22 2c 20 22 46 72 61 6e  "S", "fr", "Fran
36d0: c3 a7 61 69 73 22 2c 20 22 66 72 2e 63 6f 6d 6d  ..ais", "fr.comm
36e0: 75 6e 69 74 79 22 2c 20 22 44 69 63 74 69 6f 6e  unity", "Diction
36f0: 6e 61 69 72 65 20 63 6f 6d 6d 75 6e 61 75 74 61  naire communauta
3700: 69 72 65 20 28 70 65 72 73 6f 6e 6e 61 6c 69 73  ire (personnalis
3710: c3 a9 29 22 2c 20 74 68 69 73 2e 78 50 72 6f 67  ..)", this.xProg
3720: 72 65 73 73 42 61 72 29 3b 0a 20 20 20 20 20 20  ressBar);.      
3730: 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 6f 44    console.log(oD
3740: 69 63 74 29 3b 0a 20 20 20 20 20 20 20 20 62 72  ict);.        br
3750: 6f 77 73 65 72 2e 73 74 6f 72 61 67 65 2e 6c 6f  owser.storage.lo
3760: 63 61 6c 2e 73 65 74 28 7b 20 22 63 6f 6d 6d 75  cal.set({ "commu
3770: 6e 69 74 79 5f 64 69 63 74 69 6f 6e 61 72 79 22  nity_dictionary"
3780: 3a 20 6f 44 69 63 74 20 7d 29 3b 0a 20 20 20 20  : oDict });.    
3790: 20 20 20 20 62 72 6f 77 73 65 72 2e 73 74 6f 72      browser.stor
37a0: 61 67 65 2e 6c 6f 63 61 6c 2e 73 65 74 28 7b 20  age.local.set({ 
37b0: 22 73 65 6c 65 63 74 65 64 5f 64 69 63 74 69 6f  "selected_dictio
37c0: 6e 61 72 69 65 73 5f 6c 69 73 74 22 3a 20 41 72  naries_list": Ar
37d0: 72 61 79 2e 66 72 6f 6d 28 74 68 69 73 2e 64 53  ray.from(this.dS
37e0: 65 6c 65 63 74 65 64 44 69 63 74 69 6f 6e 61 72  electedDictionar
37f0: 69 65 73 2e 6b 65 79 73 28 29 29 20 7d 29 3b 0a  ies.keys()) });.
3800: 20 20 20 20 20 20 20 20 62 72 6f 77 73 65 72 2e          browser.
3810: 72 75 6e 74 69 6d 65 2e 73 65 6e 64 4d 65 73 73  runtime.sendMess
3820: 61 67 65 28 7b 20 73 43 6f 6d 6d 61 6e 64 3a 20  age({ sCommand: 
3830: 22 73 65 74 44 69 63 74 69 6f 6e 61 72 79 22 2c  "setDictionary",
3840: 20 64 50 61 72 61 6d 3a 20 7b 73 44 69 63 74 69   dParam: {sDicti
3850: 6f 6e 61 72 79 3a 20 22 63 6f 6d 6d 75 6e 69 74  onary: "communit
3860: 79 22 2c 20 6f 44 69 63 74 3a 20 6f 44 69 63 74  y", oDict: oDict
3870: 7d 2c 20 64 49 6e 66 6f 3a 20 7b 7d 20 7d 29 3b  }, dInfo: {} });
3880: 0a 20 20 20 20 7d 0a 7d 0a 0a 63 6f 6e 73 74 20  .    }.}..const 
3890: 6f 44 69 63 54 61 62 6c 65 20 3d 20 6e 65 77 20  oDicTable = new 
38a0: 54 61 62 6c 65 28 22 64 69 63 74 69 6f 6e 61 72  Table("dictionar
38b0: 69 65 73 5f 74 61 62 6c 65 22 2c 20 5b 22 4e 6f  ies_table", ["No
38c0: 6d 22 2c 20 22 45 6e 74 72 c3 a9 65 73 22 2c 20  m", "Entr..es", 
38d0: 22 44 65 73 63 72 69 70 74 69 6f 6e 22 2c 20 22  "Description", "
38e0: 44 61 74 65 22 5d 2c 20 22 77 61 69 74 5f 70 72  Date"], "wait_pr
38f0: 6f 67 72 65 73 73 22 2c 20 22 6e 75 6d 5f 64 69  ogress", "num_di
3900: 63 22 2c 20 66 61 6c 73 65 2c 20 74 72 75 65 29  c", false, true)
3910: 3b 0a 0a 6f 44 69 63 54 61 62 6c 65 2e 69 6e 69  ;..oDicTable.ini
3920: 74 28 29 3b 0a 0a 6f 4d 65 73 73 61 67 65 2e 6c  t();..oMessage.l
3930: 69 73 74 65 6e 28 29 3b 0a 0a 6f 43 6f 6e 6e 65  isten();..oConne
3940: 63 74 2e 69 6e 69 74 28 29 3b 0a 6f 43 6f 6e 6e  ct.init();.oConn
3950: 65 63 74 2e 6c 69 73 74 65 6e 28 29 3b 0a        ect.listen();.