Code JavaScript
1: //Retourne l'url de la base 2: function webDbName() 3: { 4: /* 5: var path = facesContext.getExternalContext().getRequestContextPath(); 6: var i = patniveh.indexOf('nsf')+3; 7: path = path.substring(path, i); 8: 9: return path; 10: */ 11: var profile:NotesDocument = database.getProfileDocument("fa_ParametreGeneral", "") 12: var racine = ""; 13: if(profile != null) 14: { 15: racine = profile.getItemValueString("fl_URLWeb"); 16: if(@Right(racine, 1) != "/") 17: { 18: racine = racine + "/"; 19: } 20: racine = racine + @ReplaceSubstring(database.getFilePath(), "\\", "/"); 21: } 22: 23: return racine; 24: } 25: 26: //Retourne l'url de la page souhaitée 27: function getUrlPage(page) 28: { 29: return webDbName() + "/Index.xsp?page="+page; 30: } 31: 32: //Vérifier si l'utilisateur est connecté 33: function estConnecte() 34: { 35: return !context.getUser().getCommonName().toLowerCase().equals("anonymous"); 36: } 37: 38: //Vérifier si l'utilisateur a le rôle spécifié 39: function aLeRole(role) 40: { 41: return context.getUser().getRoles().contains(role) 42: } 43: 44: //retourne vrai si l'utilisateur est auteur sur le document 45: function estAuteur(document1, user) 46: { 47: var nUser:NotesName = session.createName(user.getDistinguishedName()); 48: 49: //on parcourt le champ fl_Auteurs 50: var auteurs = document1.getItemValue("fl_Auteurs"); 51: 52: for(var i=0; i<auteurs.length; i++) 53: { 54: //on recherche l'utilisateur 55: var nAuteur:NotesName = session.createName(auteurs[i]); 56: 57: if(nUser.getAbbreviated() == nAuteur.getAbbreviated()) 58: return true; 59: 60: //on recherche les groupes de l'utilisateur 61: if(user.getGroups().contains(auteurs[i])) 62: return true; 63: } 64: 65: //on parcourt le champ fl_AuteursRoles 66: var auteursRoles = document1.getItemValue("fl_AuteursRoles"); 67: 68: for(var i=0; i<auteursRoles.length; i++) 69: { 70: //on recherche les rôles de l'utilisateur 71: if(user.getRoles().contains(auteursRoles[i])) 72: return true; 73: } 74: 75: return false; 76: } 77: 78: //Retourne la classe à appliquer en fonction de l'école 79: function recupererStylePage(document) 80: { 81: var classe = "petale_actus"; 82: 83: if(document == null) 84: return ""; 85: 86: if(document.isNewNote()) 87: return ""; 88: 89: if(document.getItemValueString("fl_Suppression")=="1") 90: return classe; 91: 92: //if(document.getItemValueString("fl_Type")=="2" || document.getItemValueString("fl_UNIDNiveau1") == "ACCUEIL") 93: if(document.getItemValueString("fl_UNIDNiveau1") == "ACCUEIL") 94: return classe; 95: 96: if (!niveau1Limite(document).isEmpty()) 97: return "6"; 98: 99: var vueSites = database.getView("va_$ParamSitesUNID"); 100: var tmpDoc = vueSites.getFirstDocument() 101: while(tmpDoc!=null) 102: { 103: var id = tmpDoc.getItemValueString("fl_IDPageRacine"); 104: if( 105: document.getItemValueString("fl_ID") == id || 106: document.getItemValueString("fl_UNIDNiveau1") == id || 107: document.getItemValueString("fl_UNIDNiveau2") == id || 108: document.getItemValueString("fl_UNIDNiveau3") == id || 109: document.getItemValueString("fl_UNIDNiveau4") == id || 110: document.getItemValueString("fl_UNIDNiveau5") == id || 111: document.getItemValueString("fl_ID") != "" && getDocumentById(document.getItemValueString("fl_ID")).getUniversalID() == id || 112: document.getItemValueString("fl_UNIDNiveau1") != "" && getDocumentById(document.getItemValueString("fl_UNIDNiveau1")).getUniversalID() == id || 113: document.getItemValueString("fl_UNIDNiveau2") != "" && getDocumentById(document.getItemValueString("fl_UNIDNiveau2")).getUniversalID() == id || 114: document.getItemValueString("fl_UNIDNiveau3") != "" && getDocumentById(document.getItemValueString("fl_UNIDNiveau3")).getUniversalID() == id || 115: document.getItemValueString("fl_UNIDNiveau4") != "" && getDocumentById(document.getItemValueString("fl_UNIDNiveau4")).getUniversalID() == id || 116: document.getItemValueString("fl_UNIDNiveau5") != "" && getDocumentById(document.getItemValueString("fl_UNIDNiveau5")).getUniversalID() == id 117: ) 118: return tmpDoc.getItemValueString("fl_Cle"); 119: 120: tmpDoc = vueSites.getNextDocument(tmpDoc); 121: } 122: 123: return classe; 124: } 125: 126: //Supprime l'UNID du document courant des listes de choix de niveaux 127: function removeUNID(liste, document) 128: { 129: if(@IsError(liste)) 130: return null; 131: 132: var result = new Array(); 133: var unid = ""; 134: 135: for(var i=0;i<length;i++) 136: { 137: unid = (liste[i].split("|"))[1]; 138: if(!document.getDocument().getUniversalID().equals(unid)) 139: result.push(liste[i]); 140: } 141: return result; 142: } 143: 144: //Supprime l'entrée correspondant au document courant des documents connexes 145: function removeUNIDFromConnexes(liste, document) 146: { 147: var entry = liste.getFirstEntry(); 148: var entryTmp = null; 149: while(entry!=null) 150: { 151: entryTmp = liste.getNextEntry(entry); 152: 153: unid = entry.getColumnValues().get(1).split("|")[1]; 154: if(document.getDocument().getUniversalID().equals(unid) || document.getDocument().getItemValueString("fl_ID").equals(unid)) 155: liste.deleteEntry(entry); 156: 157: entry = entryTmp; 158: } 159: } 160: 161: //Vérifier si l'utilisateur est interne au CHR 162: function estUtilisateurInterne() 163: { 164: return (@Name("[O]", @UserName())!="SDE"); 165: } 166: 167: //Vérifier si l'utilisateur doit changer de mot de passe 168: function doitChangerMotDePasse() 169: { 170: if(!estConnecte()) 171: return false; 172: 173: if(estUtilisateurInterne()) 174: return false; 175: 176: var profile = database.getProfileDocument("fa_ParametreGeneral",""); 177: var baseAnnuaire = profile.getItemValueString("fl_CheminAnnuaireEcoles"); 178: var changerMdp = @DbLookup(baseAnnuaire,"($Users)",context.getUser().getDistinguishedName(),"fl_ChangerMotDePasse"); 179: 180: if(@IsError(changerMdp)) 181: return false; 182: else 183: return changerMdp == "1"; 184: } 185: 186: //Vérifier si la charte informatique est signée 187: function verifierCharteInformatique() 188: { 189: if(!estConnecte()) 190: return true; 191: 192: var profile = database.getProfileDocument("fa_ParametreGeneral",""); 193: var baseAnnuaire = profile.getItemValueString("fl_CheminAnnuaireDomino"); 194: var charteInfo = @DbLookup(baseAnnuaire,"($Users)",context.getUser().getDistinguishedName(),"fl_CharteInformatique"); 195: 196: if(@IsError(charteInfo)) 197: { 198: baseAnnuaire = profile.getItemValueString("fl_CheminAnnuaireEcoles"); 199: charteInfo = @DbLookup(baseAnnuaire,"($Users)",context.getUser().getDistinguishedName(),"fl_CharteInformatique"); 200: } 201: 202: if(@IsError(charteInfo)) 203: return true; 204: else 205: return charteInfo == "1"; 206: } 207: 208: //Signer la charte charte informatique 209: function signerCharteInformatique() 210: { 211: var profile = database.getProfileDocument("fa_ParametreGeneral",""); 212: 213: var baseAnnuaire = profile.getItemValueString("fl_CheminAnnuaireDomino"); 214: var db = session.getDatabase("",baseAnnuaire); 215: var vue = db.getView("($Users)"); 216: var doc = vue.getDocumentByKey(context.getUser().getDistinguishedName()); 217: 218: if(doc==null) 219: { 220: var baseAnnuaire = profile.getItemValueString("fl_CheminAnnuaireEcoles"); 221: var db = session.getDatabase("",baseAnnuaire); 222: var vue = db.getView("($Users)"); 223: var doc = vue.getDocumentByKey(context.getUser().getDistinguishedName()); 224: } 225: 226: if(doc!=null) 227: { 228: doc.replaceItemValue("fl_CharteInformatique","1"); 229: doc.save(true); 230: } 231: } 232: 233: //Retourne l'arborescence du document (unids séparés par des $$) 234: function getArborescence(docCourant) { 235: var unid5 = article.getItemValueString("fl_UNIDNiveau5"); 236: var unid4 = article.getItemValueString("fl_UNIDNiveau4"); 237: var unid3 = article.getItemValueString("fl_UNIDNiveau3"); 238: var unid2 = article.getItemValueString("fl_UNIDNiveau2"); 239: var unid1 = article.getItemValueString("fl_UNIDNiveau1"); 240: var getArborescence = ""; 241: 242: if (!unid5.isEmpty()) 243: getArborescence = unid1+"$$"+unid2+"$$"+unid3+"$$"+unid4+"$$"+unid5; 244: else if(!unid4.isEmpty()) 245: getArborescence = unid1+"$$"+unid2+"$$"+unid3+"$$"+unid4; 246: else if(!unid3.isEmpty()) 247: getArborescence = unid1+"$$"+unid2+"$$"+unid3; 248: else if(!unid2.isEmpty()) 249: getArborescence = unid1+"$$"+unid2; 250: else 251: getArborescence = unid1; 252: 253: if(docCourant) 254: { 255: //getArborescence = getArborescence+"$$"+article.getDocument().getUniversalID(); 256: getArborescence = getArborescence+"$$"+article.getItemValueString("fl_ID"); 257: } 258: 259: return getArborescence; 260: } 261: 262: //Retourne l'UNID de niveau n en fonction du parentUnid d'un document 263: function getUNIDNiveau(niveau, parentUnid) 264: { 265: var parentDoc:NotesDocument = null; 266: 267: try { 268: //on tente d'ouvrir le document avec son UNID 269: parentDoc = database.getDocumentByUNID(parentUnid); 270: } 271: catch(e) { 272: //on tente d'ouvrir le document avec son fl_ID 273: var vue = database.getView("va_$ArticlesTousUNID"); 274: parentDoc = vue.getDocumentByKey(parentUnid, true); 275: } 276: finally { 277: if(parentDoc != null) 278: { 279: switch(niveau) 280: { 281: case "1": 282: return parentDoc.getItemValueString("fl_UNIDNiveau1"); 283: break; 284: 285: case "2": 286: if(!parentDoc.getItemValueString("fl_UNIDNiveau2").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau1").isEmpty()) 287: return parentDoc.getItemValueString("fl_UNIDNiveau2"); 288: else if(!parentDoc.getItemValueString("fl_UNIDNiveau1").isEmpty()) 289: return parentDoc.getItemValueString("fl_ID"); 290: break; 291: 292: case "3": 293: if(!parentDoc.getItemValueString("fl_UNIDNiveau3").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau2").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau1").isEmpty()) 294: return parentDoc.getItemValueString("fl_UNIDNiveau3"); 295: else if(!parentDoc.getItemValueString("fl_UNIDNiveau2").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau1").isEmpty()) 296: return parentDoc.getItemValueString("fl_ID"); 297: break; 298: 299: case "4": 300: if(!parentDoc.getItemValueString("fl_UNIDNiveau4").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau3").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau2").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau1").isEmpty()) 301: return parentDoc.getItemValueString("fl_UNIDNiveau4"); 302: else if(!parentDoc.getItemValueString("fl_UNIDNiveau3").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau2").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau1").isEmpty()) 303: return parentDoc.getItemValueString("fl_ID"); 304: break; 305: 306: case "5": 307: if(!parentDoc.getItemValueString("fl_UNIDNiveau5").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau4").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau3").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau2").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau1").isEmpty()) 308: return parentDoc.getItemValueString("fl_UNIDNiveau5"); 309: else if(!parentDoc.getItemValueString("fl_UNIDNiveau4").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau3").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau2").isEmpty() && !parentDoc.getItemValueString("fl_UNIDNiveau1").isEmpty()) 310: return parentDoc.getItemValueString("fl_ID"); 311: break; 312: } 313: } 314: } 315: } 316: 317: //Publie un article (modifier la bibliothèque lsTools si modifié) 318: function publier(doc) 319: { 320: //doc.replaceItemValue("fl_DateExpiration",""); 321: //doc.replaceItemValue("fl_HeureExpiration",""); 322: //doc.replaceItemValue("fl_DateHeureExpiration",""); 323: doc.replaceItemValue("fl_UtilisateurExpiration",""); 324: doc.replaceItemValue("fl_MailExpirationEnvoye", ""); 325: 326: var maintenant:NotesDateTime = session.createDateTime("Today"); 327: doc.replaceItemValue("fl_DatePublication",maintenant); 328: 329: maintenant.setNow(); 330: doc.replaceItemValue("fl_DateHeurePublication",maintenant); 331: 332: maintenant = session.createDateTime(maintenant.getTimeOnly()); 333: doc.replaceItemValue("fl_HeurePublication",maintenant); 334: 335: doc.replaceItemValue("fl_UtilisateurPublication",@UserName()); 336: doc.replaceItemValue("fl_Statut","1"); 337: majDroits(doc); 338: } 339: 340: //Repasse en brouillon un article et ses descendants (modifier la bibliothèque lsTools si modifié) 341: function brouillon(doc) 342: { 343: var unid = doc.getUniversalID(); 344: var vue = database.getView("va_$ArticlesTousParent"); 345: var collFils = vue.getAllDocumentsByKey(unid,true); 346: var fils = collFils.getFirstDocument(); 347: var tmpFils = null; 348: while(fils != null) 349: { 350: tmpFils = collFils.getNextDocument(fils); 351: brouillon(fils); 352: fils = tmpFils; 353: } 354: 355: doc.replaceItemValue("fl_DatePublication",""); 356: doc.replaceItemValue("fl_HeurePublication",""); 357: doc.replaceItemValue("fl_DateHeurePublication",""); 358: doc.replaceItemValue("fl_UtilisateurPublication",""); 359: 360: doc.replaceItemValue("fl_DateExpiration",""); 361: doc.replaceItemValue("fl_HeureExpiration",""); 362: doc.replaceItemValue("fl_DateHeureExpiration",""); 363: doc.replaceItemValue("fl_UtilisateurExpiration",""); 364: doc.replaceItemValue("fl_MailExpirationEnvoye", ""); 365: 366: doc.replaceItemValue("fl_Statut","0"); 367: majDroits(doc); 368: } 369: 370: //Expire un article et ses descendants (modifier la bibliothèque lsTools si modifié) 371: function expirer(doc) 372: { 373: var unid = doc.getUniversalID(); 374: var vue = database.getView("va_$ArticlesTousParent"); 375: var collFils = vue.getAllDocumentsByKey(unid,true); 376: var fils = collFils.getFirstDocument(); 377: var tmpFils = null; 378: while(fils != null) 379: { 380: tmpFils = collFils.getNextDocument(fils); 381: expirer(fils); 382: fils = tmpFils; 383: } 384: 385: var maintenant:NotesDateTime = session.createDateTime("Today"); 386: doc.replaceItemValue("fl_DateExpiration",maintenant.getDateOnly()); 387: 388: maintenant.setNow(); 389: doc.replaceItemValue("fl_DateHeureExpiration",maintenant); 390: 391: maintenant = session.createDateTime(maintenant.getTimeOnly()); 392: doc.replaceItemValue("fl_HeureExpiration",maintenant); 393: 394: doc.replaceItemValue("fl_UtilisateurExpiration",@UserName()); 395: doc.replaceItemValue("fl_Statut","2"); 396: majDroits(doc); 397: } 398: 399: //Supprime récursivement un article et ses descendants 400: function supprimer(doc) 401: { 402: var unid = doc.getUniversalID(); 403: var vue = database.getView("va_$ArticlesTousParent"); 404: var collFils = vue.getAllDocumentsByKey(unid,true); 405: var fils = collFils.getFirstDocument(); 406: var tmpFils = null; 407: while(fils != null) 408: { 409: tmpFils = collFils.getNextDocument(fils); 410: supprimer(fils); 411: fils = tmpFils; 412: } 413: var maintenant = session.createDateTime("Today"); 414: maintenant.setNow(); 415: doc.replaceItemValue("fl_DateHeureSuppression",maintenant); 416: doc.replaceItemValue("fl_UtilisateurSuppression",@UserName()); 417: doc.remove(true); 418: } 419: 420: //Fonction exécutée avant l'enregistrement d'un article 421: function querySaveArticle() 422: { 423: if(article.getItemValue("fl_Type").equals("2")) 424: { 425: article.replaceItemValue("fl_UNIDNiveau1", ""); 426: article.replaceItemValue("fl_UNIDNiveau2", ""); 427: article.replaceItemValue("fl_UNIDNiveau3", ""); 428: article.replaceItemValue("fl_UNIDNiveau4", ""); 429: article.replaceItemValue("fl_UNIDNiveau5", ""); 430: } 431: } 432: 433: //Fonction exécutée après l'enregistrement d'un article 434: function postSaveArticle() 435: { 436: majDroits(article.getDocument()); 437: } 438: 439: //Met à jour récursivement les droits sur le document et ses descendants (modifier la bibliothèque lsTools si modifié) 440: function majDroits(doc) 441: { 442: var unid = doc.getUniversalID(); 443: var vue = database.getView("va_$ArticlesTousParent"); 444: var collFils = vue.getAllDocumentsByKey(unid, true); 445: var fils = collFils.getFirstDocument(); 446: var tmpFils = null; 447: 448: while(fils != null) 449: { 450: tmpFils = collFils.getNextDocument(fils); 451: 452: //Mise à jour des sites et promotions 453: if(!fils.getItemValueString("fl_Site").equals(doc.getItemValueString("fl_Site"))) 454: { 455: fils.replaceItemValue("fl_Site", doc.getItemValueString("fl_Site")); 456: fils.replaceItemValue("fl_Promotion", doc.getItemValueString("fl_Promotion")); 457: } 458: else if(!doc.getItemValueString("fl_Promotion").equals("TOUS")) 459: { 460: fils.replaceItemValue("fl_Promotion", doc.getItemValueString("fl_Promotion")) 461: } 462: 463: majDroits(fils); 464: fils = tmpFils; 465: } 466: 467: var roles = new Array("[Admin]", "[Contributeur]"); 468: var statut = doc.getItemValueString("fl_Statut"); 469: doc.replaceItemValue("fl_AuteursRoles", roles); 470: 471: //Si des droits existent au niveau 1 472: vue = database.getView("va_$ParamNiveaux1UNID"); 473: var n1:NotesDocument = vue.getDocumentByKey(doc.getItemValueString("fl_UNIDNiveau1"), true); 474: if (n1 != null && n1.getItemValueString("fl_Masquer").equals("2")) 475: { 476: doc.replaceItemValue("fl_AuteursEtudiants", ""); 477: switch(statut) 478: { 479: case "1": //publié 480: doc.replaceItemValue("fl_Lecteurs", n1.getItemValue("fl_Lecteurs")); 481: break; 482: default: //brouillon ou expiré 483: doc.replaceItemValue("fl_Lecteurs", roles); 484: break; 485: } 486: } 487: else //Pas de droits au niveau 1 488: { 489: switch(doc.getItemValueString("fl_Type")) 490: { 491: case "1": //Article normal 492: doc.replaceItemValue("fl_AuteursEtudiants", ""); 493: switch(statut) 494: { 495: case "1": //publié 496: doc.replaceItemValue("fl_Lecteurs", ""); 497: break; 498: default: //brouillon ou expiré 499: doc.replaceItemValue("fl_Lecteurs", roles); 500: break; 501: } 502: break; 503: 504: case "2": //Actualité 505: doc.replaceItemValue("fl_AuteursEtudiants", ""); 506: var lecteurs = new Array(); 507: switch(statut) 508: { 509: case "1": //publié 510: if (!doc.getItemValueString("fl_AccesConnecte").equals("1")) 511: { 512: doc.replaceItemValue("fl_Site", "TOUS"); 513: doc.replaceItemValue("fl_Promotion", "TOUS"); 514: doc.replaceItemValue("fl_Lecteurs", ""); 515: } 516: else 517: { 518: if (doc.getItemValueString("fl_Site").equals("TOUS") && doc.getItemValueString("fl_Promotion").equals("TOUS")) 519: { 520: lecteurs.push("SDE_GROUPE_ETUDIANTS"); 521: } 522: else if(!doc.getItemValueString("fl_Promotion").equals("TOUS")) 523: { 524: lecteurs.push("SDE_GROUPE_"+doc.getItemValueString("fl_Site")+"_"+doc.getItemValueString("fl_Promotion")); 525: } 526: else if(!doc.getItemValueString("fl_Site").equals("TOUS")) 527: { 528: lecteurs.push("SDE_GROUPE_"+doc.getItemValueString("fl_Site")); 529: } 530: 531: if(lecteurs.length > 0) 532: { 533: lecteurs.push("[Personnel]"); 534: doc.replaceItemValue("fl_Lecteurs",lecteurs); 535: } 536: else 537: doc.replaceItemValue("fl_Lecteurs",""); 538: } 539: break; 540: default: //brouillon ou expiré 541: doc.replaceItemValue("fl_Lecteurs", roles); 542: break; 543: } 544: break; 545: 546: case "3": //Article promotion 547: var lecteurs = new Array(); 548: 549: switch(statut) 550: { 551: case "1": //publié 552: if(!doc.getItemValueString("fl_Promotion").equals("TOUS")) 553: lecteurs.push("SDE_GROUPE_"+doc.getItemValueString("fl_Site")+"_"+doc.getItemValueString("fl_Promotion"));//.replace(" ","_")); 554: else if(!doc.getItemValueString("fl_Site").equals("TOUS")) 555: lecteurs.push("SDE_GROUPE_"+doc.getItemValueString("fl_Site")); 556: 557: if(lecteurs.length > 0) 558: { 559: lecteurs.push("[Personnel]"); 560: doc.replaceItemValue("fl_Lecteurs",lecteurs); 561: } 562: else 563: doc.replaceItemValue("fl_Lecteurs",""); 564: break; 565: default: //brouillon ou expiré 566: doc.replaceItemValue("fl_Lecteurs",roles); 567: break; 568: } 569: break; 570: } 571: } 572: doc.save(); 573: } 574: 575: //Retourne la liste des articles qui sont au même niveau d'arborescence que l'article courant 576: function getArticlesConnexes() 577: { 578: var vue = null; 579: var vueEntries = null; 580: var unid5 = article.getItemValueString("fl_UNIDNiveau5"); 581: var unid4 = article.getItemValueString("fl_UNIDNiveau4"); 582: var unid3 = article.getItemValueString("fl_UNIDNiveau3"); 583: var unid2 = article.getItemValueString("fl_UNIDNiveau2"); 584: var unid1 = article.getItemValueString("fl_UNIDNiveau1"); 585: 586: if(article.getItemValueString("fl_Type").equals("2")) 587: { 588: if(unid1.equals("ACCUEIL")) 589: { 590: vue = database.getView("va_$ActualitesAccueilCategorie"); 591: vueEntries = vue.getAllEntriesByKey(article.getItemValueString("fl_CategorieActualite"), true); 592: removeUNIDFromConnexes(vueEntries,article); 593: } 594: else 595: { 596: vue = database.getView("va_$ActualitesSiteCategorie"); 597: vueEntries = vue.getAllEntriesByKey(getArborescence(false), true); 598: removeUNIDFromConnexes(vueEntries,article); 599: } 600: return vueEntries; 601: } 602: 603: if(!unid5.isEmpty() && !unid4.isEmpty() && !unid3.isEmpty() && !unid2.isEmpty() && !unid1.isEmpty()) 604: { 605: vue = database.getView("va_$ArticlesNiveau5Actifs"); 606: vueEntries = vue.getAllEntriesByKey(unid1+"$$"+unid2+"$$"+unid3+"$$"+unid4+"$$"+unid5, true); 607: removeUNIDFromConnexes(vueEntries,article); 608: return vueEntries; 609: } 610: 611: if(!unid4.isEmpty() && !unid3.isEmpty() && !unid2.isEmpty() && !unid1.isEmpty()) 612: { 613: vue = database.getView("va_$ArticlesNiveau4Actifs"); 614: vueEntries = vue.getAllEntriesByKey(unid1+"$$"+unid2+"$$"+unid3+"$$"+unid4, true); 615: removeUNIDFromConnexes(vueEntries,article); 616: return vueEntries; 617: } 618: 619: if(!unid3.isEmpty() && !unid2.isEmpty() && !unid1.isEmpty()) 620: { 621: vue = database.getView("va_$ArticlesNiveau3Actifs"); 622: vueEntries = vue.getAllEntriesByKey(unid1+"$$"+unid2+"$$"+unid3, true); 623: removeUNIDFromConnexes(vueEntries,article); 624: return vueEntries; 625: } 626: 627: if(!unid2.isEmpty() && !unid1.isEmpty()) 628: { 629: vue = database.getView("va_$ArticlesNiveau2Actifs"); 630: vueEntries = vue.getAllEntriesByKey(unid1+"$$"+unid2, true); 631: removeUNIDFromConnexes(vueEntries,article); 632: return vueEntries; 633: } 634: 635: if(!unid1.isEmpty()) 636: { 637: vue = database.getView("va_$ArticlesNiveau1Actifs"); 638: vueEntries = vue.getAllEntriesByKey(unid1, true); 639: removeUNIDFromConnexes(vueEntries,article); 640: return vueEntries; 641: } 642: } 643: 644: //Retourne l'url du fichier contenu dans un champ 645: function getAttachmentUrl(fileItem) 646: { 647: if(fileItem==null) 648: return "#"; 649: 650: var fileName=fileItem.getName(); 651: 652: if(fileName==null || fileName=="") 653: { 654: return fileItem.getHref(); 655: } 656: else 657: { 658: var docId=article.getDocument().getUniversalID(); 659: return webDbName()+"/0/"+docId+"/$File/"+fileName+"?Open"; 660: } 661: } 662: 663: //Change le mot de passe de l'utilisateur 664: function changeUserPassword(newPassword) 665: { 666: var hashPwd = session.hashPassword(newPassword); 667: user.setValue("fl_ChangerMotDePasse", ""); 668: user.setValue("HTTPPassword", hashPwd); 669: user.setValue("HTTPPasswordChangeDate", @Now()); 670: user.setValue("HTTPPasswordClear", ""); 671: user.setValue("HTTPPasswordGenerationDate", ""); 672: user.save(); 673: } 674: 675: //Lance l'agent pour la fonction "Oubli de mot de passe" 676: function forgottenPassword(email) 677: { 678: var agent = database.getAgent("aa_MotDePasseOublie"); 679: var tempDoc = database.createDocument(); 680: tempDoc.replaceItemValue("Form", "fa_MotDePasseOublie"); 681: tempDoc.replaceItemValue("fl_Email", email); 682: tempDoc.replaceItemValue("$PublicAccess","1"); 683: tempDoc.save(); 684: agent.run(tempDoc.getNoteID()); 685: } 686: 687: //Lance l'agent pour la fonction "Créer nouveau de mot de passe" 688: function createNewPassword(newPassword) 689: { 690: var agent = database.getAgent("aa_CreerNouveauMotDePasse"); 691: var tempDoc = database.createDocument(); 692: tempDoc.replaceItemValue("Form", "fa_MotDePasseCreer"); 693: tempDoc.replaceItemValue("fl_Password", newPassword); 694: tempDoc.replaceItemValue("fl_IDDemande", context.getUrlParameter("documentId")) 695: tempDoc.replaceItemValue("$PublicAccess","1"); 696: tempDoc.save(); 697: agent.run(tempDoc.getNoteID()); 698: } 699: 700: //Retourne l'url de l'article 701: function getLienArticle(idDoc, action) 702: { 703: var doc:NotesDocument = null; 704: var racine = webDbName(); 705: 706: if(idDoc == null || idDoc.isEmpty()) 707: return racine + "/Index.xsp?page=Erreur"; 708: 709: doc = getDocumentById(idDoc); 710: if(doc!=null) 711: { 712: var lecteurs = doc.getItemValue("fl_Lecteurs"); 713: var login = ""; 714: if(!lecteurs.isEmpty()) 715: login = "&login"; 716: 717: if(doc.hasItem("fl_ID") && !doc.getItemValueString("fl_ID").isEmpty()) 718: return racine + "/Index.xsp?page=Article&documentId="+doc.getItemValueString("fl_ID")+"&action="+action+"Document"+login; 719: else 720: return racine + "/Index.xsp?page=Article&documentId="+doc.getUniversalID()+"&action="+action+"Document"+login; 721: } 722: else 723: return racine + "/Index.xsp?page=Erreur"; 724: } 725: 726: function getDocumentById(idDoc) 727: { 728: var vue = database.getView("va_$DocumentsTousUNID"); 729: return vue.getDocumentByKey(idDoc, true); 730: } 731: 732: function updateOrder(idDoc, ordre) 733: { 734: if(!isNaN(ordre)) 735: { 736: var doc = getDocumentById(idDoc); 737: if(doc != null) 738: { 739: doc.replaceItemValue("fl_Ordre", @Integer(ordre)) 740: doc.save(); 741: } 742: } 743: } 744: 745: function getPageTitle() 746: { 747: var title = ""; 748: 749: switch(context.getUrlParameter("page")) 750: { 751: case "Accueil": 752: title = ""; 753: break; 754: case "Actualites": 755: title = "Toutes les actualités"; 756: break; 757: case "Annuaire": 758: title = "Annuaire"; 759: break; 760: case "Article": 761: var unid = context.getUrlParameter("documentId"); 762: if (unid == "") 763: title = "Création d'une nouvelle page"; 764: else 765: { 766: var docArticle:NotesDocument = getDocumentById(unid); 767: if(docArticle.isNewNote()) 768: title = "Création d'une nouvelle page"; 769: else 770: { 771: var niveau = ""; 772: var niveaux:Array = new Array(); 773: if(!docArticle.getItemValueString("fl_UNIDNiveau1").equals("ACCUEIL")) 774: { 775: niveau = @DbLookup(@DbName(),"va_$ParamNiveaux1UNID",docArticle.getItemValueString("fl_UNIDNiveau1"),2); 776: if (!@IsError(niveau) && niveau != null && niveau != "") 777: niveaux.push(niveau); 778: } 779: 780: for(var index=2; index<5; index++) 781: { 782: var cle=docArticle.getItemValueString("fl_UNIDNiveau1"); 783: for(var i=2; i<=index; i++) 784: { 785: if(docArticle.getItemValueString("fl_UNIDNiveau"+i)!="") 786: cle = cle+"$$"+docArticle.getItemValueString("fl_UNIDNiveau"+i); 787: } 788: niveau = @DbLookup(@DbName(),"va_$ArticlesNiveau"+index+"UNID",cle,2); 789: if (!@IsError(niveau) && niveau != null && niveau != "") 790: niveaux.push(niveau); 791: } 792: niveau = docArticle.getItemValueString("fl_Titre"); 793: if (!@IsError(niveau) && niveau != null && niveau != "") 794: niveaux.push(niveau); 795: title = niveaux.join(" | "); 796: } 797: } 798: break; 799: case "Compte": 800: title = "Mon compte"; 801: break; 802: case "Organisation": 803: title = "Arborescence"; 804: break; 805: case "Password": 806: title = "Créer un nouveau mot de passe"; 807: break; 808: case "Plan": 809: title = "Plan du site"; 810: break; 811: } 812: if (title != "") 813: return database.getTitle()+" | "+title; 814: else 815: return database.getTitle(); 816: } 817: 818: function getOptionsOrganisation(index, niveau) 819: { 820: var value = @TextToNumber(niveau.split("|")[2]); 821: var count = getComponent("repeat" + index).getRowCount(); 822: var options = ""; 823: 824: for (var i = 1; i <= count; i++) 825: options += "<option value='" + i + "'" + (value == i ? " selected" : "") + ">" + i + "</option>"; 826: 827: return options; 828: } 829: 830: function selectOnChange(niveau) 831: { 832: var idEvent = getComponent("changeOrganisation").getClientId(facesContext); 833: var idRefresh = getComponent("table_admin").getClientId(facesContext); 834: 835: return "changeOrganisation(this, '" + idEvent + "', '" + idRefresh + "', '" + niveau.replace("'", "\\'") + "');"; 836: } 837: 838: function getImageLien(niveau) 839: { 840: var pasdentree = niveau.split("|")[4]; 841: var pasdelien = niveau.split("|")[3]; 842: 843: if (pasdentree == "1") 844: return "/eye-hidden.png"; 845: 846: if (pasdelien == "1") 847: return "/eye.png"; 848: 849: return "/one-finger-click.png"; 850: } 851: 852: function niveau1Limite(doc) 853: { 854: vue = database.getView("va_$ParamNiveaux1UNID"); 855: var n1:NotesDocument = vue.getDocumentByKey(doc.getItemValueString("fl_UNIDNiveau1"), true); 856: if (n1 != null && n1.getItemValueString("fl_Masquer").equals("2")) 857: { 858: return n1.getItemValue("fl_Lecteurs"); 859: } 860: else 861: { 862: return ""; 863: } 864: }
►
Trace de pile