From 566c5e3f7979da510916f807a45c36568e13bc42 Mon Sep 17 00:00:00 2001 From: pbarroca <pbarroca@afi-sa.fr> Date: Wed, 26 Jul 2017 16:37:32 +0200 Subject: [PATCH] hotline #60748 : fix js interaction --- .../View/Helper/Admin/TagListeSuggestion.php | 57 ++++---- public/opac/js/tag_selection/tag_selection.js | 124 ++++++++++-------- 2 files changed, 96 insertions(+), 85 deletions(-) diff --git a/library/ZendAfi/View/Helper/Admin/TagListeSuggestion.php b/library/ZendAfi/View/Helper/Admin/TagListeSuggestion.php index f89ce5e6e8d..670babfa5c7 100644 --- a/library/ZendAfi/View/Helper/Admin/TagListeSuggestion.php +++ b/library/ZendAfi/View/Helper/Admin/TagListeSuggestion.php @@ -78,17 +78,25 @@ class ZendAfi_View_Helper_Admin_TagListeSuggestion protected function _renderTermInput() { - $html = str_repeat(" ",3). $this->_('Rechercher') . ' '; - $event="'".$this->_type."','".$this->_name."',this.value,min_cars=1"; - $html.='<input id="'.$this->_name.'_champ" type="text" size="28" max-length="30" onkeyUp="getSuggest('.$event.')" >'; - $html.=str_repeat(" ",3).'<a style="color:#D44100;text-decoration:none;" href="javascript:suggestClear(\''.$this->_name.'\',true)">»'.$this->_('Tout effacer').'</a>'; - - return $html; + return str_repeat(' ', 3) . $this->_('Rechercher') + . ' ' . $this->_tag('input', null, + ['id' => $this->_name . '_champ', + 'type' => 'text', + 'size' => 28, + 'max-length' => 30, + 'onkeyup' => "getSuggest('".$this->_type."', '".$this->_name."', this.value ,min_cars=1)"]) + . str_repeat(' ', 3) + . $this->_tag('a', '»'.$this->_('Tout effacer'), + ['style' => 'color:#D44100;text-decoration:none;', + 'href' => 'javascript:suggestClear(\''.$this->_name.'\', true)']); } protected function _renderListPlaceholder() { - return '<div id="'. $this->_name .'_liste" style="margin-top:10px;padding-top:5px;border-top:1px solid #C8C8C8"></div>'; + return $this + ->_tag('div', '', + ['id' => $this->_name .'_liste', + 'style' => 'margin-top:10px;padding-top:5px;border-top:1px solid #C8C8C8;']); } @@ -126,32 +134,27 @@ class ZendAfi_View_Helper_Admin_TagListeSuggestion return ''; $label = $this->_config->isThesaurus() - ? $model->getIdOrigine().' : ' . Class_CodifThesaurus::getLibelleHierarchique($model) + ? $model->getIdOrigine() . ' : ' . Class_CodifThesaurus::getLibelleHierarchique($model) : $model->getLibelle(); - return '«'. $model->getLibelle() . '»'; + return $this->_tag('span', $label, + ['class' => 'selected', 'clef' => $value]); } protected function _configFor($type) { - $dewey_pcdm4_options = [1 => $this->_('indice commence par'), - 2 => $this->_('libellé commence par'), - 3 => $this->_('libellé contient')]; + $dewey_pcdm4_options = [1 => $this->_('Indice commence par'), + 2 => $this->_('Libellé commence par'), + 3 => $this->_('Libellé contient')]; $map = [ - 'auteur' => ['Class_CodifAuteur', [1 => $this->_('commence par')]], - - 'matiere' => ['Class_CodifMatiere'], - - 'interet' => ['Class_CodifCentreInteret'], - - 'dewey' => ['Class_CodifDewey', $dewey_pcdm4_options], - - 'pcdm4' => ['Class_CodifPcdm4', $dewey_pcdm4_options], - + 'auteur' => ['Class_CodifAuteur', [1 => $this->_('commence par')]], + 'matiere' => ['Class_CodifMatiere'], + 'interet' => ['Class_CodifCentreInteret'], + 'dewey' => ['Class_CodifDewey', $dewey_pcdm4_options], + 'pcdm4' => ['Class_CodifPcdm4', $dewey_pcdm4_options], 'thesaurus' => ['Class_CodifThesaurus'], - - 'tag' => ['Class_CodifTags'] + 'tag' => ['Class_CodifTags'] ]; return array_key_exists($type, $map) @@ -185,8 +188,8 @@ class ZendAfi_View_Helper_Admin_TagListeSuggestionConfig extends Class_Entity { public function __construct() { - $this->setOptions([1 => $this->_('commence par'), - 2 => $this->_('contient')]); + $this->setOptions([1 => $this->_('Commence par'), + 2 => $this->_('Contient')]); } @@ -211,7 +214,7 @@ class ZendAfi_View_Helper_Admin_TagListeSuggestionConfigThesaurus $this->setOptions([1 => $this->_('Hierarchie contient'), 2 => $this->_('Libellé commence par'), 3 => $this->_('Libellé contient'), - 4 => $this->_('indice commence par')]); + 4 => $this->_('Indice commence par')]); } diff --git a/public/opac/js/tag_selection/tag_selection.js b/public/opac/js/tag_selection/tag_selection.js index c09ddd436ba..27d529abce7 100644 --- a/public/opac/js/tag_selection/tag_selection.js +++ b/public/opac/js/tag_selection/tag_selection.js @@ -18,19 +18,17 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -function ouvrirFermer(oImg,sId) +function ouvrirFermer(oImg, sId) { sImg = oImg.src; - if(sImg.indexOf("ouvrir") > 0 ) - { - oImg.src=sImg.replace("ouvrir", "fermer"); - getId(sId).style.display="block"; - } - else - { - oImg.src=sImg.replace("fermer", "ouvrir"); - getId(sId).style.display="none"; + if (sImg.indexOf("ouvrir") > 0) { + oImg.src = sImg.replace("ouvrir", "fermer"); + getId(sId).style.display = "block"; + return; } + + oImg.src=sImg.replace("fermer", "ouvrir"); + getId(sId).style.display = "none"; } @@ -102,72 +100,82 @@ function selectAll(sIdChamp,bMode,allSelectedAsNothingSelected) function getSuggest(sRubrique,sChamp,sValeur,nMinCars) { - if(sValeur.length < nMinCars) - { - getId(sChamp + "_liste").innerHTML=""; + if(sValeur.length < nMinCars) { + getId(sChamp + "_liste").innerHTML = ''; return; } - while(sValeur.indexOf(" ")>0) - { - sValeur=sValeur.replace(" ", "+"); - } - sMode=getId("mode_" + sChamp).value; - sUrl=baseUrl + "/admin/ajax/listesuggestion?type_autorite=" + sRubrique + "&id_champ=" + sChamp + "&mode=" + sMode +"&valeur=" + sValeur; - $('#'+sChamp+'_liste').load(sUrl); + + var params = { + type_autorite: sRubrique, + id_champ: sChamp, + mode: getId('mode_' + sChamp).value, + valeur: sValeur + }; + + $('#'+sChamp+'_liste') + .load(baseUrl + "/admin/ajax/listesuggestion?" + $.param(params)); } function selectSuggest(sIdChamp, oItem) { - // Handles - oChampCodes=getId(sIdChamp); - oChampAff=getId(sIdChamp +"_aff"); - + var oChampCodes = getId(sIdChamp); + var oChampAff = getId(sIdChamp + '_aff'); + // Controle s'il est deja la - sClef=oItem.getAttribute("clef"); - sCodes=oChampCodes.value; - sControle=";" + sCodes + ";"; - if(sControle.indexOf(";" + sClef + ";") >=0 ) - { - bRet=confirm("Cet élément a déjà été sélectionné.\n\nVoulez vous le supprimer ?"); - if(bRet==true) - { - sControle=sControle.replace(";" + sClef + ";", ";"); - if(sControle.substr(0,1)==";") sControle=sControle.substr(1); - if(sControle.substr(-1)==";") sControle=sControle.substr(0,sControle.length-1); - oChampCodes.value=sControle; - sAff=oChampAff.innerHTML; - sItemAff="«" + oItem.innerHTML + "»" - sAff=sAff.replace(sItemAff, ""); - oChampAff.innerHTML=sAff; - } + var sClef = oItem.getAttribute('clef'); + var sCodes = oChampCodes.value; + var sControle = ';' + sCodes + ';'; + + if (sControle.indexOf(';' + sClef + ';') >= 0) { + if(!confirm('Cet élément a déjà été sélectionné.\n\nVoulez vous le supprimer ?')) + return; + + sControle = sControle.replace(';' + sClef + ';', ';'); + if (sControle.substr(0,1) == ';') + sControle = sControle.substr(1); + + if (sControle.substr(-1) == ';') + sControle = sControle.substr(0, sControle.length-1); + + oChampCodes.value = sControle; + + $(oChampAff).find('span[clef="' + sClef + '"]').remove(); + $('#'+sIdChamp).change(); + setFlagMaj(true); return; } - // Integration de 'item sélectionné - if(sCodes > "") sCodes+=";"; - sCodes+=sClef; - oChampCodes.value=sCodes; + if(sCodes > '') + sCodes += ';'; + sCodes += sClef; + oChampCodes.value = sCodes; + + sAff = oChampAff.innerHTML; + if( sAff > '') + sAff += ' '; + sAff += '<span class="selected" clef="' + sClef + '">' + oItem.innerHTML + '</span>'; + oChampAff.innerHTML = sAff; - sAff=oChampAff.innerHTML; - if( sAff > "") sAff +=" "; - sAff+='<span class="selected">' + oItem.innerHTML + "</span>" - oChampAff.innerHTML=sAff; + $('#' + sIdChamp).change(); setFlagMaj(true); } function suggestClear(sIdChamp) { - oChampCodes=getId(sIdChamp); - if(oChampCodes.value=="") - { - alert("Il n'y a aucun élément à effacer."); + var oChampCodes = getId(sIdChamp); + if(oChampCodes.value == '') return; - } - if(confirm("Etes vour sûr de vouloir effacer tous les élément sélectionnés ?")==false) return; - oChampAff=getId(sIdChamp +"_aff"); - oChampCodes.value=""; - oChampAff.innerHTML=""; + + if(!confirm('Etes vour sûr de vouloir effacer tous les élément sélectionnés ?')) + return; + + oChampCodes.value = ''; + + var oChampAff = getId(sIdChamp + '_aff'); + oChampAff.innerHTML = ''; + + $('#'+sIdChamp).change(); setFlagMaj(true); } -- GitLab