// Package BAM_ERMES_SEARCH / Copyright 2025 Archimed SA / JSE //loading package... packages.acknowledge('BAM_ERMES_SEARCH'); // file: search_list.js var sInstance = CFInstance; var sBaseId = ''; var sThesaurusId = 'IFD_CLASSIFTHEME'; var sSuperLexiconId = ''; var sControlId = 'ClassificationThematique'; var sRootNodeId = ''; var bContextualize = true; var sCookieSubKey = 'ClassificationThematique'; var sexternalLinksCountPropertyName = ''; var sIdesiaBaseId = ""; var sTopNode = ''; var sBKLSortKeyId = ''; var sBKLIndexId = ''; var sBackurl = ''; var sScenario = ''; var idesiaNavigator; ///////////////////////////////////////////////////////// // Namespace (w. Module Pattern) var ErmesManager = (function (pub) { //Public variables pub.ExternalChange = false; pub.CurrentSearchType = ErmesManager.SearchType.List; pub.AjaxAutocomplete = true; //Return public members return pub; } (ErmesManager || {})); var ErmesGUI = (function (pub) { //Override du restoreScenario du GUI pour ajouter le sc?nario en cookie si il n'est pas pr?sent dans la liste. pub.restoreScenario = function () { var jsonCookie = {}; jsonCookie = JSON.parse($.cookie("ErmesSearch")); if (typeof (jsonCookie) == "undefined" || jsonCookie == null) { return; } if (typeof (jsonCookie.mainScenario) != "undefined") { var $currentSc = $("option[value='" + jsonCookie.mainScenario + "']", $("#globalScenario")); if ($currentSc.length) { $currentSc.attr("selected", true); } else { $('#globalScenario') .append($("<option></option>") .attr("value", jsonCookie.mainScenario) .attr("selected", true) .text(jsonCookie.mainScenarioText)); } } }; return pub; })(ErmesGUI || {}); ///////////////////////////////////////////////////////// // Classe 'Form' ErmesManager.Form = function () { this.CurrentTimeout = {}; this.EnrichmentLoaded = false; var ajaxSearch; var ajaxAvailability; //Binding event searchComplete $(this).bind("searchCompleted", ErmesManager.event.onSearchComplete); this.doSearch = function ($container) { ErmesManager.beforeSearch(); if (typeof (ajaxSearch) != "undefined") { ajaxSearch.abort(); } if (typeof (ajaxAvailability) != "undefined") { ajaxAvailability.abort(); } if (this.DetailMode) { ErmesManager.CurrentSearchType = ErmesManager.SearchType.SearchDetail; } var self = this; this.EnrichmentLoaded = false; var serviceBaseUrl = ""; ErmesManager.ExternalChange = true; //Hack pour ?viter de d?clencher l'event $.address.externalChange 2 fois si la query contient un quote (bug) switch (ErmesManager.CurrentSearchType) { case ErmesManager.SearchType.List: serviceBaseUrl = "/" + CFInstance + "/Ermes/Recherche/Search.svc/Search"; $.address.value("Search/" + encodeURIComponent(JSON.stringify(this.Query))); break; case ErmesManager.SearchType.Detail: serviceBaseUrl = "/" + CFInstance + "/Ermes/Recherche/Search.svc/GetRecord"; $.address.value("Detail/" + encodeURIComponent(JSON.stringify(this.Query))); break; default: break; } var callback = function (json) { ErmesManager.ExternalChange = false; //Hack pour ?viter de d?clencher l'event $.address.externalChange 2 fois si la query contient un quote (bug) if (!ErmesManager.checkResponse(json)) { $.extend(self.Query.query, self.PreviousQuery.query); //Rollback de la requ?te return true; } self.Query.query = json.d.Query; self.Result = json.d.Results || json.d.Result; self.Info = json.d.SearchInfo || json.d.Infos; if (ErmesManager.isDefined(json.d.FriendlyTitleResults)) { self.FriendlyTitleResults = json.d.FriendlyTitleResults; } $container.html(json.d.HtmlResult); $(self).trigger("searchCompleted", $container); /* if (ErmesManager.CurrentSearchType === ErmesManager.SearchType.List && ErmesManager.isDefined(self.Query.query.FacetFilter)) { // Affichage des filtres par facettes utilis?s lors de la recherche var facetFilters = JSON.parse(self.Query.query.FacetFilter); for (var i in facetFilters) { $("#criteres_recherche").children("ul").append("<li id=\"facet" + i + "\"><a href=\"#\"><span>" + facetFilters[i] + "<span class=\"facet_remove\"></span></span></a></li>"); } }*/ return false; }; // Pas de fadeout en recherche asynchrone if (ErmesManager.isNullOrEmpty(this.Info.PazPar2Info) || this.Info.PazPar2Info.ActiveClients === 0) { $container.fadeTo(0, 0.7); } //Detruire les tooltips pr?c?dents $("ul.notice > li").qtip("destroy"); //Detruire le smoothDivScroll pr?c?dent $("div#images_scroll").smoothDivScroll("destroy"); ajaxSearch = $.ajax( { url: serviceBaseUrl, data: JSON.stringify(this.Query), success: callback }); }; }; //H?rite de 'BaseForm' (common.js) ErmesManager.Form.prototype = ErmesManager.BaseForm; ErmesManager.Form.prototype.parent = ErmesManager.BaseForm; ErmesManager.Form.prototype.constructor = ErmesManager.Form; ///////////////////////////////////////////////////////// // Sous-module 'event' ErmesManager.event = (function (pub) { var old_onSearchComplete = pub.onSearchComplete; //H?ritage pub.onSearchComplete = function (event, $container) { var self = this; if (ErmesManager.CurrentSearchType !== ErmesManager.SearchType.Detail) { var $items = $("div.notice_courte", "#resultats"); // Calcul des groupes s?mantiques if (ErmesManager.isDefined(ErmesManager.Cloud) && this.Info.NBResults > 10 && !ErmesManager.isDefined(this.Info.PazPar2Info)) { ErmesManager.Cloud.computeTagCloud(this.Query.query.QueryString); } $.each(this.Result, function (index, value) { $($items[index]).data("result", value); }); ErmesManager.initTooltips($container); // Gestion sp?cifique PazPar2 if (ErmesManager.isDefined(this.Info.PazPar2Info)) { if (ErmesManager.isDefined(this.CurrentTimeout)) { clearTimeout(this.CurrentTimeout); } if (this.Info.PazPar2Info.ActiveClients > 0) { //$("#SearchContext").addClass("chargement_async"); $("#global_contenu > div.PORTAL_LAYOUT").addClass("chargement_async"); this.CurrentTimeout = setTimeout(function () { self.doSearch($($container)); }, 1000); } else { //Plus de client actif //$("#SearchContext").removeClass("chargement_async"); $("#global_contenu > div.PORTAL_LAYOUT").removeClass("chargement_async"); // call holdings this.getHoldings($container); } } else { //Cas d'une recherche Solr $("#global_contenu > div.PORTAL_LAYOUT").removeClass("chargement_async"); // call holdings this.getHoldings($container); } // Navigation th?matique var navigationTargetDiv = $("div#lexiconsTargetDiv"); if (navigationTargetDiv.length != 0) { sScenario = this.Query.query.ScenarioCode; idesiaNavigator = new IdesiaNavigator(); idesiaNavigator.init(); } } else { //Detail $("#notice_longue").data("result", self.Result); var dataJson = null; if (ErmesManager.isDefined(self.Result.Resource)) { dataJson = { Record: { RscId: self.Result.Resource.RscId, Docbase: self.Result.Resource.RscBase, PazPar2Id: self.Query.query.Id }, searchQuery: self.Query.query.SearchQuery }; } if (ErmesManager.isDefined(dataJson)) { this.getHoldingsFull($container, dataJson); } var $form = ErmesManager.findClosestContainer($container); var data = $form.data("form"); if (data.EnrichmentLoaded === false) { var title = ErmesManager.isDefined(data.Result.More.Title) ? data.Result.More.Title : null; var author = ErmesManager.isDefined(data.Result.More.Author) ? data.Result.More.Author : null; var isbn = ErmesManager.isDefined(data.Result.More.Isbn) ? data.Result.More.Isbn : null; var isbnList = ErmesManager.isDefined(data.Result.More.IsbnList) ? data.Result.More.IsbnList : null; var ean = ErmesManager.isDefined(data.Result.More.Ean) ? data.Result.More.Ean : null; var format = ErmesManager.isDefined(data.Result.More.Format) ? data.Result.More.Format : null; var query = { query: { Title: title, Author: author, Isbn: isbn, Ean: ean, Format: format, IsbnList: isbnList} }; data.getEnrichment($container, query); } $("div#images_scroll").smoothDivScroll({ visibleHotSpots: "always" }); //SmoothDivScroll (pour les titres amis) ErmesManager.afterImgLoad("#images_scroll img", function () { $("div#images_scroll").smoothDivScroll("recalculateScrollableArea"); $("div#images_scroll").smoothDivScroll("showHotSpotBackgrounds"); }); //qTip sur les titres amis $("img", "div#images_scroll").each(function (i, el) { $(this).qtip({ content: data.FriendlyTitleResults[i].CustomResult, position: { my: 'top left', at: 'bottom left', viewport: $(window), adjust: { x: 4, y: 0 } }, style: { classes: 'ui-tooltip-light ui-tooltip-shadow ui-tooltip-ermes' // Inherit from preset style }, show: { solo: true }, hide: { fixed: true } }); }); //Addthis if (typeof (addthis) !== 'undefined' && this.Result.Resource !== 'undefined') { addthis.toolbox(".addthis_toolbox"); } else { $("li.partager_document, li.like_document", "#document_actions").remove(); } } // Execution fancybox sur contenu ajax $("a.fancybox", $container).fancybox({ ajax: { type: 'GET'} }); // Restaure la transparence ? 0 $($container).fadeTo(0, 1); // Scroll top window.scrollTo(0, 0); if (ErmesManager.searchTitle || ErmesManager.detailTitle) { switch (ErmesManager.CurrentSearchType) { case ErmesManager.SearchType.List: $.address.title(ErmesManager.searchTitle.replace("{0}", this.Query.query.SearchLabel || this.Query.query.QueryString || "Formulaire")); break; case ErmesManager.SearchType.Detail: if (ErmesManager.isDefined(this.Result.Resource)) { $.address.title(ErmesManager.detailTitle.replace("{0}", this.Result.Resource.Ttl)); } break; default: break; } } old_onSearchComplete(event, $container); }; return pub; } (ErmesManager.event)); ///////////////////////////////////////////////////////// // Sous-module 'callback' ErmesManager.callback.list = (function (pub) { pub.displayMoreFacet = function () { var $this = $(this); var $facetContainer = $this.closest("ul.facetList"); $facetContainer.find("li.facet-item-hidden").attr("class", "facet-item"); $facetContainer.find("a.facet-see-more").hide(); $facetContainer.find("a.facet-see-less").show(); return false; }, pub.displayLessFacet = function () { var $this = $(this); var $facetContainer = $this.closest("ul.facetList"); $facetContainer.find("li.facet-item").attr("class", "facet-item-hidden"); $facetContainer.find("a.facet-see-less").hide(); $facetContainer.find("a.facet-see-more").show(); return false; }, //Ajout d'un filtre par facette pub.addFacetFilter = function () { var $container = ErmesManager.findClosestContainer(this); var $this = $(this); var data = $container.data("form"); var facetId = $this.closest("ul.facetList").attr("id"); var facetLabel = $this.find("span.facetLabel").find("span.facetValue").text(); var parsedFacetFilter = {}; if (ErmesManager.isDefined(data.Query.query.FacetFilter)) { parsedFacetFilter = JSON.parse(data.Query.query.FacetFilter); } parsedFacetFilter["_" + facetId] = facetLabel; //Chrome workaround : eviter le tri automatique de l'objet json en rendant impossible la conversion de facetId en entier (ajout d'un '_') data.Query.query.ForceSearch = true; $.extend(data.PreviousQuery.query, data.Query.query); //Deep-clone data.Query.query.FacetFilter = JSON.stringify(parsedFacetFilter); data.Query.query.Page = 0; data.doSearch($container); return false; }; //Suppression d'un filtre par facette pub.removeFacetFilter = function () { var $container = ErmesManager.findClosestContainer(this); var $this = $(this); var data = $container.data("form"); var facetId = $this.closest("li").attr("id").substr(5); var parsedFacetFilter = JSON.parse(data.Query.query.FacetFilter); parsedFacetFilter = ErmesManager.isDefined(parsedFacetFilter) ? parsedFacetFilter : {}; delete parsedFacetFilter[facetId]; data.Query.query.ForceSearch = true; $.extend(data.PreviousQuery.query, data.Query.query); //Deep-clone data.Query.query.FacetFilter = JSON.stringify(parsedFacetFilter); data.Query.query.Page = 0; data.doSearch($container); return false; }; //Suppression query string pub.removeQueryString = function () { var $container = ErmesManager.findClosestContainer(this); var data = $container.data("form"); data.Query.query.QueryString = "*:*"; data.doSearch($container); return false; }; //Changement de tri pub.setSortField = function () { var $container = ErmesManager.findClosestContainer(this); var data = $container.data("form"); var newSortField = $(this).attr("data-id"); // Init if (typeof (data.Query.query.SortField) == "undefined") { data.Query.query.SortField = ""; } if (data.Query.query.SortField === newSortField) { // On a recliqu? sur le m?me tri : changement d'ordre de tri data.Query.query.SortOrder = (data.Query.query.SortOrder === 1) ? 0 : 1; } else { // On a cliqu? sur un autre tri que le tri courant : on change de tri data.Query.query.SortField = newSortField; if (typeof ($(this).attr("data-sort")) == 'undefined') { data.Query.query.SortOrder = (newSortField === "" || newSortField === "YearOfPublication_sort") ? 0 : 1; // On trie par d?faut en d?croissant sur la pertinence et la date, ? l'inverse des autrs champs } else { data.Query.query.SortOrder = $(this).attr("data-sort") == '0' ? 0 : 1; } } data.Query.query.SortField = $(this).attr("data-id"); data.doSearch($container); return false; }; pub.showTemplateEdit = function () { var $this = $(this); $this.closest("div.notice_courte").find("div.templateContainer").show(); return false; }; pub.spellChecking = function () { var $this = $(this); var query = $this.find("span").text(); ErmesManager.CurrentSearchType = ErmesManager.SearchType.List; ErmesManager.Cloud.Data = ""; var textfield = $("#textfield"); textfield.val(query); ErmesManager.callback.common.search(textfield, { QueryString: query, ResultSize: ErmesManager.getCookieValue(ErmesManager.COOKIES_FORM, "resultSize", 10), Grid: null, ScenarioCode: $("#globalScenario").val(), ForceSearch: true, CloudTerms: [], SearchLabel: "" }); return false; }; return pub; } (ErmesManager.callback.list || {})); ErmesManager.callback.detail = (function (pub) { pub.getDetail = function () { if (ErmesManager.CurrentSearchType === ErmesManager.SearchType.Detail) { //En cas d'un double-clic sur une notice dans la liste courte... return; } ErmesManager.CurrentSearchType = ErmesManager.SearchType.Detail; var $container = ErmesManager.findClosestContainer(this); var $this = $(this); var data = $container.data("form"); var recordQuery = {}; //2 cas : Solr & Pz2 var index = $this.closest("li").index(); var recordIndex = $this.closest("li").find("div.notice_courte").siblings("span.numerotation").text(); //PAZPAR2 if (ErmesManager.isDefined(data.Result[index].Recid)) { recordQuery = { query: { Id: data.Result[index].Recid, Index: parseInt(recordIndex, 10), NBResults: data.Info.NBResults, SearchQuery: data.Query.query} }; } //SOLR else { recordQuery = { query: { Id: parseInt(recordIndex, 10) - 1, Index: parseInt(recordIndex, 10), NBResults: data.Info.NBResults, SearchQuery: data.Query.query} }; } data.Query = recordQuery; data.doSearch($container); }; pub.previousItem = function () { var $container = ErmesManager.findClosestContainer(this); var data = $container.data("form"); if (data.Query.query.Index <= 1) return false; var recordQuery = { query: {} }; $.extend(recordQuery.query, data.Query.query); //Deep-clone recordQuery.query.Id = data.Info.PreviousId; if (!ErmesManager.isDefined(recordQuery.query.Id)) { return false; } recordQuery.query.Index--; data.Query = recordQuery; data.doSearch($container); return false; }; pub.nextItem = function () { var $container = ErmesManager.findClosestContainer(this); var data = $container.data("form"); if (data.Query.query.Index >= data.Query.query.NBResults) return false; var recordQuery = { query: {} }; $.extend(recordQuery.query, data.Query.query); //Deep-clone recordQuery.query.Id = data.Info.NextId; if (!ErmesManager.isDefined(recordQuery.query.Id)) { return false; } recordQuery.query.Index++; data.Query = recordQuery; data.doSearch($container); return false; }; pub.backToSearch = function () { var $container = ErmesManager.findClosestContainer(this); data = $container.data("form"); $.extend(data.Query.query, data.Query.query.SearchQuery); ErmesManager.CurrentSearchType = ErmesManager.SearchType.List; data.doSearch($container); return false; }; return pub; } (ErmesManager.callback.detail || {})); ErmesManager.callback.selection = (function (pub) { pub.toggleDetailIntoSelection = function () { var data = ErmesManager.findClosestContainer(this).data("form"); var item = data.Result.Resource; ErmesManager.selection.addItem(item); return false; }; return pub; } (ErmesManager.callback.selection || {})); ///////////////////////////////////////////////////////// // Bindings & Init $(function () { ///////////////////////////////////////////////////////// // Bindings communs // Cablage ?venement jquery.Address (deep-linking ajax) $.address.externalChange(function (event) { if (event.pathNames.length > 0 && !ErmesManager.ExternalChange) { var $container = $("div.searchContainer"); var data = $container.data("form"); var q = JSON.parse(event.pathNames[1]); if (data.Query.query.SearchLabel === "") { $("#textfield").val(q.query.QueryString).removeClass("blur"); } switch (event.pathNames[0]) { case 'Search': ErmesManager.CurrentSearchType = ErmesManager.SearchType.List; break; case 'Detail': ErmesManager.CurrentSearchType = ErmesManager.SearchType.Detail; break; default: return false; } $.address.title(ErmesManager.loadingTitle || "Ermes - Chargement"); data.Query = q; data.doSearch($container); } return true; }); // Chargement de la s?lection flottante ErmesManager.selection.load(); //Initialisation tagCloud ErmesManager.Cloud = new ErmesManager.TagCloud("#tag_cloud"); ErmesManager.Cloud.initialize("#textfield"); //Init search Container $("div.searchContainer").data("form", new ErmesManager.Form()); //Binding toggle bouton d?tail selection $("a.bouton_detail").live("click", ErmesManager.callback.selection.toggleSelection); //Binding show tag form $("div.themes a.plus").live("click", ErmesManager.callback.tag.showTagForm); //Binding ajout de tags $("div.themes ul.tagit_container_tag").live("keypress", ErmesManager.callback.tag.addTag); $("div.themes a.tagit_ok").live("click", function () { var e = jQuery.Event("keypress"); e.keyCode = 13; $(this).closest("ul.tagit_container_tag").trigger(e); return false; }); //Catch submit event $("#main_search_form").live("submit", function () { var textfield = $("#textfield"); ErmesManager.StopAutocompletion = true; ErmesManager.CurrentSearchType = ErmesManager.SearchType.List; ErmesManager.Cloud.Data = ""; textfield.autocomplete("close"); ErmesManager.callback.common.search(textfield, { ResultSize: ErmesManager.getCookieValue(ErmesManager.COOKIES_FORM, "resultSize", 10), Grid: null, ScenarioCode: $("#globalScenario").val(), ForceSearch: true, CloudTerms: [], SearchLabel: "" }); return false; }); //Binding toggle comment form $("div.actions a.donner_avis").live("click", ErmesManager.callback.comment.showAddCommentForm); //Binding ajout panier $("div.actions a.memoriser").live("click", ErmesManager.callback.basket.addToBasket); //Binding suppression du panier $("div.actions a.oublier").live("click", ErmesManager.callback.basket.removeFromBasket); ///////////////////////////////////////////////////////// // Bindings liste //Binding show selection form $("div.selections a.plus", "#resultats").live("click", ErmesManager.callback.ofSelection.showSelectionsForm); //Binding ajout item selection $("div.select > input:checkbox", "#resultats").live("click", ErmesManager.callback.selection.toggleItemIntoSelection); //Binding page pr?c?dente $("a.precedent", "#resultats_recherche").live("click", ErmesManager.callback.pagination.previousPage); //Binding page suivante $("a.suivant", "#resultats_recherche").live("click", ErmesManager.callback.pagination.nextPage); //Binding filtre par facette $("li", "ul.facetList").live("click", ErmesManager.callback.list.addFacetFilter); //Binding changement de page $("a.page_link", "#resultats_recherche").live("click", ErmesManager.callback.pagination.changePage); // Binding changement de la taille de pagination $("#pageSize").live("change", ErmesManager.callback.pagination.changeResultSize); //Binding suppression filtre par facette $("span.facet_remove").live("click", ErmesManager.callback.list.removeFacetFilter); $("a.facet-see-more", "#options_resultat").live("click", ErmesManager.callback.list.displayMoreFacet); $("a.facet-see-less", "#options_resultat").live("click", ErmesManager.callback.list.displayLessFacet); //Binding suppression terme de recherche //$("span.query_remove").live("click", ErmesManager.callback.list.removeQueryString); //Binding catch link event $("#criteres_recherche > ul > li > a > span").live("click", function () { return false; }); //Binding hover sur notice $("ul.notice > li", "#resultats").live("mouseenter", ErmesManager.callback.common.hoverResult); //Binding suppression de s?lections openfind sur une ressource $("div.selections a.supp", "#resultats").live("click", ErmesManager.callback.ofSelection.removeSelectionResource); //Binding suppression de tag openfind sur une ressource $("div.themes a.supp").live("click", ErmesManager.callback.tag.removeTagResource); //Binding Empty $("a.jaime", "#resultats").live("click", function () { return false; }); //Binding Empty $("a.telecharger", "#resultats").live("click", function () { return false; }); //Binding changement de tri $("div#criteres_tri a", "#resultats_recherche").live("click", ErmesManager.callback.list.setSortField); //Binding affichage d?tail $("div.notice_courte div.notice_corps", "#resultats").live("click", function (e) { //On affiche pas le d?tail lors d'un clic sur une ancre. if ($(e.target).is("a")) { return; } else { ErmesManager.callback.detail.getDetail.apply(this, arguments); } }); $("div.vignette_document", "#resultats").live("click", ErmesManager.callback.detail.getDetail); //Binding ?dition template (apparition du conteneur) $("a.EditTemplate", "#resultats").live("click", ErmesManager.callback.list.showTemplateEdit); //Binding checkbox selectionner toute la page $("#check_all").live("change", function () { if ($(this).attr("checked")) { ErmesManager.callback.selection.checkAll(this); } else { ErmesManager.callback.selection.uncheckAll(this); } }); //Binding clic sur spellcheck $("#spellcheck_link").live("click", ErmesManager.callback.list.spellChecking); //Capturer la recherche $("#capture_search").live("click", ErmesManager.callback.capture.captureSearch); //Capturer la zone de recherche $("#capture_search_area").live("click", ErmesManager.callback.capture.captureSearchArea); //Capturer le formulaire avanc? $("#capture_search_grid").live("click", ErmesManager.callback.capture.captureSearchGrid); ///////////////////////////////////////////////////////// // Bindings d?tail //Binding show selection form $("div.selections a.plus", "#notice_longue").live("click", ErmesManager.callback.ofSelection.showSelectionsForm); //Binding ajout item selection $("li.ajouter_selection > a", "#document_actions").live("click", ErmesManager.callback.selection.toggleDetailIntoSelection); //Binding page pr?c?dente $("a.precedent", "#resultats_detail").live("click", ErmesManager.callback.detail.previousItem); //Binding page suivante $("a.suivant", "#resultats_detail").live("click", ErmesManager.callback.detail.nextItem); //Binding onglet $("li a:not(.on)", "#onglets").live("click", ErmesManager.callback.detail.showTab); //Binding onglet on (catch) $("li a.on", "#onglets").live("click", function () { return false; }); //Binding suppression d'un commentaire $("a.delete_comment", "#avis_lecteurs").live("click", ErmesManager.callback.comment.invalidateComment); //Binding validation d'un commentaire $("a.enable_comment", "#avis_lecteurs").live("click", ErmesManager.callback.comment.validateComment); //Binding rediger avis $("li.rediger_avis > a", "#document_actions").live("click", function () { $("#notice_longue").find("a.donner_avis").trigger("click"); return false; }); //Binding retour r?sultats recherche $("a", "#lien").live("click", ErmesManager.callback.detail.backToSearch); $("span.back_to_search > a", "#ariane").live("click", ErmesManager.callback.detail.backToSearch); //Lancement appli CDRom $("#ermesLauncher").live("click", ErmesManager.launchAppli); }); // [EOF] for file search_list.js // file: tagcloud.js var ErmesManager = (function (pub) { return pub; } (ErmesManager || {})); ErmesManager.TagCloud = function (container) { this.History = []; this.Databases = {}; this.Container = container; this.TextField = {}; this.Data = ''; var keepHistory = false; this.initialize = function (textField) { var self = this; self.TextField = textField; $.getJSON("/" + CFInstance + "/Ermes/Recherche/Lumen.svc/GetDatabases", null, function (data) { self.Databases = data; self.loadTemplate(); }); $("a.previous_tag").live('click', function () { self.History.pop(); updateTextField(); }); // Evenements sur anchor tagCloud $("ul.tag_list a", $(this.Container)).live('click', function () { // Si event clic, on ajoute le concept cliqu? ? l'historique et on relance une recherche self.History.push({ name: $(this).text(), id: self.History.length }); updateTextField(); }); $("ul.tag_list a", $(this.Container)).live('hover', function () { $("ul.tag_list a").removeClass("highlight"); $("." + $(this).attr("class")).toggleClass("highlight"); }); $("span.tag_term_remove", "#criteres_recherche").live('click', function () { removeHistoryTerm($(this).siblings("span.tag_term:first").text()); updateTextField(); }); function updateTextField() { // Relancer recherche var histoSearch = []; var histoLength = self.History.length; // Tjs intersection for (var i = 1; i < histoLength; i++) { histoSearch.push(self.History[i].name); } keepHistory = true; self.Data = ""; var $container = ErmesManager.findClosestContainer(container); var data = $container.data("form"); data.Query.query.CloudTerms = histoSearch; data.Query.query.Page = 0; data.doSearch($container); }; function removeHistoryTerm(term) { for (var i = 0; i < self.History.length; ++i) { if (self.History[i].name === term) { self.History.splice(i, 1); return true; } } return false; }; }; this.computeTagCloud = function (query) { if (query === "" || query === $(this.TextField).attr("title")) { return; } else { if (this.Data !== "") { this.loadTemplate(); } else { if (!keepHistory) { this.History = []; var searchTerms = query; this.History.push({ name: $.trim(searchTerms), id: 0 }); } else { keepHistory = false; } var searchedConcept = ""; for (var i = 0; i < this.History.length; ++i) { searchedConcept += this.History[i].name + " "; } // $.getJSON("/TagCloudService/Service.svc/GetGroups", { // "searchedConcept": $.trim(searchedConcept), // "nbGroups": 5, // "nbConcepts": 5, // "dbName": "Base1" // }, function (data, statut) { // self.Data = data; // self.loadTemplate(); // }); var self = this; var query = "searchedConcept=" + $.trim(searchedConcept) + "&nbGroups=5&nbConcepts=10&dbName=Base1"; var callback = function (data, statut) { /* if (!ErmesManager.checkResponse(data)) { return; } */ if (typeof (data.success) != "undefined" && data.success == false) { return; } self.Data = data; self.loadTemplate(); }; $.ajax({ type: "GET", async: true, url: "/" + CFInstance + "/Ermes/Recherche/Lumen.svc/GetGroups", data: query, success: callback }); } } }; this.loadTemplate = function () { var item = { Histo: this.History, Tags: this.Data }; $(this.Container).html($("#tagCloudTmpl").tmpl(item)); }; }; // [EOF] for file tagcloud.js //package loaded! packages.complete('BAM_ERMES_SEARCH'); // Served in 251 ms