Changeset 7370


Ignore:
Timestamp:
Oct 24, 2010, 11:29:20 AM (14 years ago)
Author:
grum
Message:

externalise and pack some js ; rename criteriaBuilder.js files ; improve templates & css theming ; fix bug and add functionnalities for request builder ; update key languages

Location:
extensions/GrumPluginClasses
Files:
16 added
2 deleted
16 edited

Legend:

Unmodified
Added
Removed
  • extensions/GrumPluginClasses/classes/GPCRequestBuilder.class.inc.php

    r7327 r7370  
    8686/**
    8787 *
    88  * Preparing the cache
    89  * -------------------
     88 * Preparing the temporary table => doCache()
     89 * ------------------------------------------
    9090 * To prepare the cache, the request builder use the following functions :
     91 *  - getImageId
    9192 *  - getFrom
    9293 *  - getWhere
    93  *  - getJoin
    94  *  - getImageId
     94 *  - getHaving
    9595 *
    96  * Retrieving the results
    97  * ----------------------
     96 * Preparing the cache table => doCache()
     97 * --------------------------------------
     98 * To prepare the cache, the request builder use the following functions :
     99 *  => the getFilter function is used to prepare the filter for the getPage()
     100 *     function ; not used to build the cache
     101 *
     102 * Retrieving the results => getPage()
     103 * -----------------------------------
    98104 * To retrieve the image informations, the request builder uses the following
    99105 * functions :
     
    101107 *  - getFrom
    102108 *  - getJoin
    103  *  - getFilter (in fact, the result of this function is stored while the cache
    104  *               is builded, but it is used only when retrieving the results for
    105  *               multirecord tables)
     109 *  - getFilter (in fact, the result of this function is stored by the doCache()
     110 *               function while the cache is builded, but it is used only when
     111 *               retrieving the results for multirecord tables)
    106112 *  - formatData
    107113 *
     
    120126 *       to 'y'
    121127 *
    122  *  gatImageId returns : "tableA.imageId"
    123  *  getSelect returns  : "tableA.att1, tableA.att2"
    124  *  getFrom returns    : "tableA"
    125  *  getWhere returns   : "tableA.localId= xxxx AND tableA.att1 = zzzz"
    126  *  getJoin returns    : "tableA.imageId = pit.id"
    127  *  getFilter returns  : "tableA.localId= xxxx"
     128 *  gatImageId returns      : "tableA.imageId"
     129 *  getSelect returns       : "tableA.att1, tableA.att2"
     130 *  getFrom returns         : "tableA"
     131 *  getWhere returns        : "tableA.localId= xxxx AND tableA.att1 = zzzz"
     132 *  getJoin returns         : "tableA.imageId = pit.id"
     133 *  getFilter returns       : "tableA.localId= xxxx"
    128134 *
     135 *  Examples :
     136 *   - plugin AdvancedMetadata use getFilter
     137 *   - plugin AdvancedSearchEngine, module ASETag use getHaving and getWhere
    129138 */
    130139class GPCSearchCallback {
     
    172181    return("");
    173182  }
     183
     184
     185  /**
     186   * the getHaving function return a ready to user HAVING clause
     187   *
     188   * " FIND_IN_SET(value0, GROUP_CONCAT(DISTINCT att1 SEPARATOR ',')) AND
     189   *   FIND_IN_SET(value0, GROUP_CONCAT(DISTINCT att1 SEPARATOR ',')) "
     190   *
     191   */
     192  static public function getHaving($param="")
     193  {
     194    return("");
     195  }
     196
    174197
    175198  /**
     
    201224    return("");
    202225  }
     226
    203227
    204228  /**
     
    487511    $baseName=basename(dirname(dirname(__FILE__))).'/css/';
    488512    $template->append('head_elements', '<link href="plugins/'.$baseName.'rbuilder.css" type="text/css" rel="stylesheet"/>');
     513    if(defined('IN_ADMIN')) $template->append('head_elements', '<link href="plugins/'.$baseName.'rbuilder_'.$template->get_themeconf('name').'.css" type="text/css" rel="stylesheet"/>');
     514
    489515
    490516    $baseName=basename(dirname(dirname(__FILE__))).'/js/';
     
    492518    GPCCore::addHeaderJS('gpc.interface', 'plugins/'.$baseName.'external/interface/interface.js');
    493519    GPCCore::addHeaderJS('gpc.inestedsortable', 'plugins/'.$baseName.'external/inestedsortable.pack.js');
    494     GPCCore::addHeaderJS('gpc.criteriaBuilder', 'plugins/'.$baseName.'criteriaBuilder.packed.js');
     520    GPCCore::addHeaderJS('gpc.rbCriteriaBuilder', 'plugins/'.$baseName.'rbCriteriaBuilder.packed.js');
    495521
    496522    $template->append('head_elements',
    497523"<script type=\"text/javascript\">
    498524  requestBuilderOptions = {
    499       textAND:'".l10n('gpc_rb_textAND')."',
    500       textOR:'".l10n('gpc_rb_textOR')."',
    501       textNoCriteria:\"".l10n('There is no criteria ! At least, one criteria is required to do search...')."\",
    502       imgEditUrl:'',
    503       imgDeleteUrl:'',
    504       ajaxUrl:'plugins/GrumPluginClasses/gpc_ajax.php',
     525    textAND:\"".l10n('gpc_rb_textAND')."\",
     526    textOR:\"".l10n('gpc_rb_textOR')."\",
     527    textNoCriteria:\"".l10n('There is no criteria ! At least, one criteria is required to do search...')."\",
     528    textSomethingWrong:\"".l10n('gpc_something_is_wrong_on_the_server_side')."\",
     529    textCaddieUpdated:\"".l10n('gpc_the_caddie_is_updated')."\",
     530    helpEdit:\"".l10n('gpc_help_edit_criteria')."\",
     531    helpDelete:\"".l10n('gpc_help_delete_criteria')."\",
     532    helpMove:\"".l10n('gpc_help_move_criteria')."\",
     533    helpSwitchCondition:\"".l10n('gpc_help_switch_condition')."\",
     534    ajaxUrl:'plugins/GrumPluginClasses/gpc_ajax.php',
    505535  }
    506536</script>");
     
    562592    //$imageIdName=call_user_func(Array('RBCallBack'.$plugin, 'getImageId'));
    563593
    564     $tempWHERE=array();
     594    $tempClauses=array();
    565595    foreach($_REQUEST['extraData'] as $key => $extraData)
    566596    {
    567       $tmpWHERE[$key]=array(
     597      $tempClauses[$key]=array(
    568598        'plugin' => $extraData['owner'],
    569         'where' => call_user_func(Array('RBCallBack'.$extraData['owner'], 'getWhere'), $extraData['param'])
     599        'where' => call_user_func(Array('RBCallBack'.$extraData['owner'], 'getWhere'), $extraData['param']),
     600        'having' => call_user_func(Array('RBCallBack'.$extraData['owner'], 'getHaving'), $extraData['param']),
    570601      );
    571602    }
    572603
    573     $sql="INSERT INTO ".self::$tables['temp']." ".self::buildGroupRequest($_REQUEST[$_REQUEST['requestName']], $tmpWHERE, $_REQUEST['operator'], ' AND ', $requestNumber);
    574 
     604    $sql="INSERT INTO ".self::$tables['temp']." ".self::buildGroupRequest($_REQUEST[$_REQUEST['requestName']], $tempClauses, $_REQUEST['operator'], ' AND ', $requestNumber);
     605//echo $sql;
    575606    $result=pwg_query($sql);
    576607
     
    610641      'WHERE' => 'pit.level <= '.$user['level'],
    611642      'GROUPBY' => '',
    612       'FILTER' => '',
     643      'FILTER' => ''
    613644    );
    614645    $tmpBuild=Array(
     
    706737      }
    707738      $build['FILTER']=' ('.implode(' AND ', $tmp).') ';
    708       // array_flip twice => simply remove identical values...
    709       //$build['FILTER']=' ('.implode(' AND ', array_flip(array_flip($tmpBuild['FILTER']))).') ';
    710739    }
    711740    unset($tmpBuild['FILTER']);
     
    745774    $sql="INSERT INTO ".self::$tables['result_cache']." (SELECT DISTINCT $requestNumber, ".$build['SELECT']." $sql)";
    746775
    747 
     776//echo $sql;
    748777    $returned="0;0";
    749778
     
    768797   * @param Integer $pageNumber : the page to be returned
    769798   * @param Integer $numPerPage : the number of items returned on a page
     799   * @param String $mode : if mode = 'count', the function returns the number of
     800   *                       rows ; otherwise, returns rows in a html string
    770801   * @return String : formatted HTML code
    771802   */
     
    869900    unset($tmpBuild['WHERE']);
    870901
    871 
    872902    /* for each plugin, adds jointure with the IMAGE table
    873903     */
     
    889919    $imagesList=Array();
    890920
    891     $sql='SELECT '.$build['SELECT']
     921    $sql='SELECT DISTINCT '.$build['SELECT']
    892922        .' FROM '.$build['FROM']
    893923        .' WHERE '.$build['WHERE']
    894         .' GROUP BY '.$build['GROUPBY']
    895         .' ORDER BY pit.id '
    896         .' LIMIT '.$limitFrom.', '.$numPerPage;
     924        .' GROUP BY '.$build['GROUPBY'];
     925
     926    $sql.=' ORDER BY pit.id '
     927         .' LIMIT '.$limitFrom.', '.$numPerPage;
     928
    897929//echo $sql;
    898930    $result=pwg_query($sql);
     
    10561088    if(array_key_exists(3, $result))
    10571089    {
    1058       return("GROUP_CONCAT(".$result[1]." SEPARATOR '$sep') AS ".$result[3]);
     1090      return("GROUP_CONCAT(DISTINCT ".$result[1]." SEPARATOR '$sep') AS ".$result[3]);
    10591091    }
    10601092    elseif(array_key_exists(2, $result))
    10611093    {
    1062       return("GROUP_CONCAT(".$result[1]." SEPARATOR '$sep') AS ".$result[2]);
     1094      return("GROUP_CONCAT(DISTINCT ".$result[1]." SEPARATOR '$sep') AS ".$result[2]);
    10631095    }
    10641096    else
    10651097    {
    1066       return("GROUP_CONCAT($val SEPARATOR '$sep') AS ".$val);
     1098      return("GROUP_CONCAT(DISTINCT $val SEPARATOR '$sep') AS ".$val);
    10671099    }
    10681100  }
     
    11751207   *
    11761208   * @param Array $groupContent :
    1177    * @param Array $items :
    1178    * @return String : a SQL request
    1179    */
    1180   static private function buildGroupRequest($groupContent, $whereItems, $groups, $operator, $requestNumber)
     1209   * @param Array $clausesItems : array with 'where' and 'having' conditions (and 'plugin' for the plugin)
     1210   * @param Array $groups : operators of each group
     1211   * @param String $operator : 'OR' or 'AND', according with the current group operator
     1212   * @param String $requestNumber : the request number
     1213   * @return String : part of a SQL request
     1214   */
     1215  static private function buildGroupRequest($groupContent, $clausesItems, $groups, $operator, $requestNumber)
    11811216  {
    11821217    $returnedS='';
     
    11881223        preg_match('/[0-9]*$/i', $val['id'], $groupNumber);
    11891224
    1190         $groupValue=self::buildGroupRequest($val['children'], $whereItems, $groups, $groups[$groupNumber[0]], $requestNumber);
     1225        $groupValue=self::buildGroupRequest($val['children'], $clausesItems, $groups, $groups[$groupNumber[0]], $requestNumber);
    11911226
    11921227        if($groupValue!='')
     
    12021237        $returned[]=array(
    12031238          'mode'  => 'item',
    1204           'plugin' => $whereItems[$itemNumber[0]]['plugin'],
    1205           'value' => " (".$whereItems[$itemNumber[0]]['where'].") "
     1239          'plugin' => $clausesItems[$itemNumber[0]]['plugin'],
     1240          'valueWhere' => ($clausesItems[$itemNumber[0]]['where']!='')?" (".$clausesItems[$itemNumber[0]]['where'].") ":'',
     1241          'valueHaving' => ($clausesItems[$itemNumber[0]]['having'])?" (".$clausesItems[$itemNumber[0]]['having'].") ":'',
    12061242        );
    12071243      }
     
    12201256          {
    12211257            $returnedS.="(SELECT DISTINCT ".call_user_func(Array('RBCallBack'.$val['plugin'], 'getImageId'))." AS imageId
    1222                           FROM ".call_user_func(Array('RBCallBack'.$val['plugin'], 'getFrom'))."
    1223                           WHERE ".$val['value'].") t".self::$tGlobalId." ";
     1258                          FROM ".call_user_func(Array('RBCallBack'.$val['plugin'], 'getFrom'));
     1259            if($val['valueWhere']!='') $returnedS.=" WHERE ".$val['valueWhere'];
     1260            if($val['valueHaving']!='')
     1261              $returnedS.=" GROUP BY imageId
     1262                            HAVING ".$val['valueHaving'];
     1263            $returnedS.=") t".self::$tGlobalId." ";
    12241264          }
    12251265          else
     
    12321272          self::$tGlobalId++;
    12331273        }
    1234         $returnedS="SELECT '$requestNumber', t".(self::$tGlobalId-$tId).".imageId FROM ".$returnedS;
     1274        $returnedS="SELECT DISTINCT '$requestNumber', t".(self::$tGlobalId-$tId).".imageId FROM ".$returnedS;
    12351275      }
    12361276      else
     
    12441284            $returnedS.="SELECT DISTINCT '$requestNumber', t".self::$tGlobalId.".imageId
    12451285                          FROM (SELECT ".call_user_func(Array('RBCallBack'.$val['plugin'], 'getImageId'))." AS imageId
    1246                                 FROM ".call_user_func(Array('RBCallBack'.$val['plugin'], 'getFrom'))."
    1247                                 WHERE ".$val['value'].") t".self::$tGlobalId." ";
     1286                                FROM ".call_user_func(Array('RBCallBack'.$val['plugin'], 'getFrom'));
     1287            if($val['valueWhere']!='') $returnedS.=" WHERE ".$val['valueWhere'];
     1288            if($val['valueHaving']!='')
     1289              $returnedS.=" GROUP BY imageId
     1290                            HAVING ".$val['valueHaving'];
     1291            $returnedS.=") t".self::$tGlobalId." ";
    12481292          }
    12491293          else
    12501294          {
    1251             $returnedS.="SELECT '$requestNumber', t".self::$tGlobalId.".imageId FROM (".$val['value'].") t".self::$tGlobalId;
     1295            $returnedS.="SELECT DISTINCT '$requestNumber', t".self::$tGlobalId.".imageId FROM (".$val['value'].") t".self::$tGlobalId;
    12521296          }
    12531297
  • extensions/GrumPluginClasses/css/rbuilder.css

    r7327 r7370  
    1 ul.rbResultList {
    2   list-style:none;
    3   padding:0px;
    4 }
    5 
     1ul.rbResultList { list-style:none; padding:0px; }
    62ul.rbResultList li {
    73  width:45%;
     
    106  min-height:140px;
    117}
    12 
    13 ul.rbResultList td.rbResultItemDetail {
    14   padding-left:15px;
    15   vertical-align:top;
    16 }
    17 
    18 ul.rbResultList table {
    19   margin-left:0px;
    20 }
    21 
     8ul.rbResultList td.rbResultItemDetail { padding-left:15px; vertical-align:top; }
     9ul.rbResultList table { margin-left:0px; }
    2210.cPnActive, .cPnDisabled, .cPnInactive { margin:2px; padding:2px;  min-width:20px; text-align:center; }
    23 .pnInactiveclear, .pnInactiveroma { cursor:pointer; }
    24 .pnInactiveclear:hover { background:#F1F1F1; }
    25 .pnActiveclear { background:#F1F1F1; font-weight:bold; }
    26 .pnInactiveroma:hover { background:#999999; color:#444444; }
    27 .pnActiveroma { background:#999999; color:#444444; font-weight:bold; }
     11.pnInactive { cursor:pointer; }
     12.pnActive { font-weight:bold; }
    2813#iPagesNavigator ul { margin:0px; }
    29 
    30 
    3114.cbGroup { border-width:1px; border-style:solid; padding:0px; margin:2px; min-height:30px; list-style:none; }
    3215.cbItem {   padding:2px; margin:8px; min-height:34px; list-style:none; }
    33 
    3416#iListSelectedCriterions { padding:0px; }
    35 
    3617#dragHelper ul li.cbItem { padding:2px; }
    3718#dragHelper ul li {
     
    4425  padding:0px;
    4526}
    46 
    4727.cbItemButtons { padding:2px; }
    4828.cbItem img { cursor: pointer; }
    49 
    5029.cbSortHandle { cursor:move; }
    51 
    52 
    53 .helper {
    54  border:2px dashed #777777;
    55 }
    56 
     30.helper { border:2px dashed #777777; }
    5731div.cbOperator {
    5832 cursor:pointer;
     
    6135 font-weight:bold;
    6236}
    63 
    64 div.cbOperatorBgroma {
    65  background:#333333;
    66 }
    67 
    68 div.cbOperatorBgclear {
    69  background:#dbe8f3;
    70 }
    71 
    7237.cbButtons {
    7338  float:left;
     
    7641  height:15px;
    7742}
    78 
    79 input.cRequestCriterions {
    80   margin-left:1em;
    81 }
    82 
     43input.cRequestCriterions { margin-left:1em; }
    8344div#iMenuCriterions div#iMenuCItems {
    8445  display:none;
     
    8849  padding:0px;
    8950  margin-top:-1px;
     51  z-index:949;
    9052}
    91 
    92 
    93 div#iMenuCriterions ul {
    94   padding:2px;
    95 }
    96 
    97 div#iMenuCriterions ul li {
    98   list-style-type:none;
    99   padding:4px;
    100 }
    101 
    102 div#iMenuCriterions:hover  div#iMenuCItems
    103 {
    104   cursor:pointer;
    105   display:block;
    106 }
    107 
    108 div#iMenuCriterions:hover div#iMenuCTitle
    109 {
    110   margin-bottom:0px;
    111   padding-bottom:11px;
    112 }
    113 
     53div#iMenuCriterions ul { padding:2px; }
     54div#iMenuCriterions ul li { list-style-type:none; padding:4px; }
     55div#iMenuCriterions:hover  div#iMenuCItems { cursor:pointer; display:block; }
     56div#iMenuCriterions:hover div#iMenuCTitle { margin-bottom:0px; padding-bottom:11px; }
    11457div#iMenuCriterions div#iMenuCTitle
    11558{
     
    12669  z-index:950;
    12770}
    128 
    12971div#iMenuCaddieBar {
    13072  margin-left:8px;
     
    13375  cursor:default;
    13476}
    135 
    136 
    13777div#iMenuCaddieBar div#iMenuCaddieItems {
    13878  display:none;
     
    14383  z-index:500;
    14484}
    145 
    14685div#iMenuCaddieBar ul {
    14786  margin:4px 0 4px -8px;
     
    15089  padding-right:2px;
    15190}
    152 
    153 div#iMenuCaddieBar ul li {
    154   list-style-type:none;
    155   padding:4px;
    156 }
    157 
    158 div#iMenuCaddieBar:hover  div#iMenuCaddieItems
    159 {
    160   cursor:pointer;
    161   display:block;
    162 }
     91div#iMenuCaddieBar ul li { list-style-type:none; padding:4px; }
     92div#iMenuCaddieBar:hover  div#iMenuCaddieItems { cursor:pointer; display:block; }
     93.iconEdit, .iconDelete, .iconSwitchCondition { width:18px; height:18px; cursor:pointer; display:inline-block; }
     94.iconMove { width:18px; height:18px; cursor:move; display:inline-block; }
     95.itemContent { padding-left:24px; }
     96.cbItemUnique { border:none; }
     97.cbItemMultiple { border:1px solid; }
  • extensions/GrumPluginClasses/gpc_ajax.php

    r7349 r7370  
    376376
    377377      $binary='';
    378       if(!$ignoreCase) $binary=" BINARY ";
     378      $where=' LOWER(ptt.name) ';
     379      if(!$ignoreCase)
     380      {
     381        $binary=" BINARY ";
     382        $where=" ptt.name ";
     383      }
    379384
    380385
     
    405410      }
    406411
    407       $sql.=" WHERE ptt.name LIKE $binary '%$letters%'
     412      $sql.=" WHERE $where LIKE $binary '%$letters%'
    408413            ORDER BY ptt.name ";
    409414
  • extensions/GrumPluginClasses/js/ui.tagSelector.js

    r7349 r7370  
    943943            properties.tags=[];
    944944            objects.selectedTagList.children('.ui-tag-selector-selected-tag').remove();
     945            privateMethods.cacheClear(object);
     946            objects.input.val('');
    945947          }
    946948          else
     
    10341036
    10351037          privateMethods.clearTimerHandle(object);
     1038
     1039          if(objects.input.val()=='')
     1040          {
     1041            privateMethods.cacheClear(object);
     1042            privateMethods.displaySelector(object, true);
     1043            return(false);
     1044          }
     1045
    10361046
    10371047          $.ajax(
     
    11721182          {
    11731183            properties.tags.splice(index,1);
    1174             item=objects.selectedTagList.children('[value='+id+']').remove();
     1184            objects.selectedTagList.children('[value='+id+']').remove();
    11751185
    11761186            if(options.remove) object.trigger('tagSelectorRemove', id);
  • extensions/GrumPluginClasses/js/ui.tagSelector.packed.js

    r7349 r7370  
    1 /* file: ui.tagSelector.js - v1.0.0 | packed on 2010/10/20 with http://joliclic.free.fr/php/javascript-packer/ */
    2 eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(b($){e 1j={2c:b(2i){c 8.k(b(){e $8=$(8),a=$8.a(\'4\'),f=$8.a(\'f\'),9=$8.a(\'9\'),4={t:C,I:\'2y/2u/2t.2v\',M:2w,D:0,E:0,R:0,z:\'2m 2o 1s 1l...\',B:\'%s A 2p\',K:\'N 2q %s A\',F:\'20\',v:\'1Z\',J:5,H:j,l:j,q:j,p:j};$8.a(\'4\',4);d(!9){$8.a(\'9\',{o:V,13:V,1i:0,A:[],11:[],1b:j,});9=$8.a(\'9\')}d(!f){f={1q:$(\'<1p/>\',{\'Y\':\'U-u-S-w\',m:{15:\'2x%\'}}).y(\'21.L\',b(){f.w.28()}),17:$(\'<26/>\',{r:\'\',\'Y\':\'U-u-S-1L-u-12\',}),w:$(\'<w>\',{1s:"1l",6:\'\'}).y(\'2z.L\',b(){g.24($8)}).y(\'28.L\',b(){g.2e($8)}).y(\'2H.L\',b(){g.23($8)}),P:$(\'<1p/>\',{r:"",\'Y\':\'U-u-S-12\',m:{N:\'19\',2L:\'2F\',2C:2D,}}).y(\'2B.L\',b(){g.1a($8,V)}),Q:$(\'<26/>\',{m:{2n:\'19\',2r:\'2l\',2J:\'2l\',2M:"2G",}}),14:$(\'<1p/>\',{r:\'\',\'Y\':\'U-u-S-1l\'})};$8.r(\'\').W(f.1q.W(f.17.W($(\'<Z/>\').W(f.w)))).W(f.P.W(f.Q).W(f.14));$8.a(\'f\',f)}g.1t($8,2i)})},2A:b(){c 8.k(b(){e $8=$(8),f=$8.a(\'f\');f.17.1k().G();f.w.G().l();f.1q.G().l();f.P.G().l();f.Q.l();$8.G(\'.2s\').m({15:\'\',1y:\'\'})})},4:b(6){8.k(b(){e $8=$(8);g.1t($8,6);c($8)})},t:b(6){d(6){8.k(b(){e $8=$(8);g.1r($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.t)}h{c(C)}}},J:b(6){d(6){8.k(b(){e $8=$(8);g.1x($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.J)}h{c(C)}}},R:b(6){d(6){8.k(b(){e $8=$(8);g.1f($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.R)}h{c(0)}}},D:b(6){d(6){8.k(b(){e $8=$(8);g.1P($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.D)}h{c(0)}}},E:b(6){d(6){8.k(b(){e $8=$(8);g.1v($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.E)}h{c(0)}}},M:b(6){d(6){8.k(b(){e $8=$(8);g.1V($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.M)}h{c(0)}}},I:b(6){d(6){8.k(b(){e $8=$(8);g.1T($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.I)}h{c(\'\')}}},z:b(6){d(6){8.k(b(){e $8=$(8);g.1S($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.z)}h{c(\'\')}}},B:b(6){d(6){8.k(b(){e $8=$(8);g.1I($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.B)}h{c(\'\')}}},K:b(6){d(6){8.k(b(){e $8=$(8);g.1K($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.K)}h{c(\'\')}}},v:b(6){d(6){8.k(b(){e $8=$(8);g.1J($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.v)}h{c(C)}}},F:b(6){d(6){8.k(b(){e $8=$(8);g.1A($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.F)}h{c(C)}}},6:b(6){d(6){c 8.k(b(){g.1H($(8),6)})}h{e 9=8.a(\'9\');c(9.A)}},p:b(6){d(6&&$.1d(6)){8.k(b(){e $8=$(8);g.1E($8,6);c($8)})}h{g.p(8)}},q:b(6){d(6&&$.1d(6)){8.k(b(){e $8=$(8);g.1R($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.q)}h{c(j)}}},H:b(6){d(6&&$.1d(6)){8.k(b(){e $8=$(8);g.1D($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.H)}h{c(j)}}},l:b(6){d(6&&$.1d(6)){8.k(b(){e $8=$(8);g.1B($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.l)}h{c(j)}}},2K:b(){e 9=8.a(\'9\');d(9){c(9.A.X)}h{c(j)}}};e g={1t:b(7,6){e 9=7.a(\'9\'),4=7.a(\'4\');d(!$.2I(6))c(V);9.o=V;g.1r(7,(6.t!=j)?6.t:4.t);g.1x(7,(6.J!=j)?6.J:4.J);g.1H(7,(6.6!=j)?6.6:[]);g.1f(7,(6.R!=j)?6.R:4.R);g.1S(7,(6.z!=j)?6.z:4.z);g.1I(7,(6.B!=j)?6.B:4.B);g.1K(7,(6.K!=j)?6.K:4.K);g.1P(7,(6.D!=j)?6.D:4.D);g.1v(7,(6.E!=j)?6.E:4.E);g.1V(7,(6.M!=j)?6.M:4.M);g.1T(7,(6.I!=j)?6.I:4.I);g.1A(7,(6.F!=j)?6.F:4.F);g.1J(7,(6.v!=j)?6.v:4.v);g.1R(7,(6.q!=j)?6.q:4.q);g.1D(7,(6.H!=j)?6.H:4.H);g.1B(7,(6.l!=j)?6.l:4.l);g.1E(7,(6.p!=j)?6.p:4.p);d(4.1Y)g.p(7);9.o=C},1r:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d((!9.o||4.t!=6)&&(6==C||6==V)){4.t=6}c(4.t)},1x:b(7,6){e 4=7.a(\'4\'),f=7.a(\'f\'),9=7.a(\'9\');d((!9.o||4.J!=6)&&6>0){4.J=6;f.w.1O(\'2E\',4.J)}c(4.J)},1f:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d((!9.o||4.1f!=6)&&6>=0){4.R=6}c(4.R)},1S:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d(!9.o||4.z!=6){4.z=6}c(4.z)},1I:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d(!9.o||4.B!=6){4.B=6}c(4.B)},1K:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d(!9.o||4.K!=6){4.K=6}c(4.K)},1P:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');d((!9.o||4.D!=6)&&6>=0){4.D=6;d(4.D>0){f.P.m(\'1n-15\',4.D+\'1X\')}h{f.P.m(\'1n-15\',\'\')}}c(4.D)},1v:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');d((!9.o||4.E!=6)&&6>=0){4.E=6;d(4.E>0){f.Q.m(\'1n-1y\',4.E+\'1X\')}h{f.Q.m(\'1n-1y\',\'\')}}c(4.E)},1V:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d((!9.o||4.M!=6)&&6>0){4.M=6}c(4.M)},1T:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d(!9.o||4.I!=6){4.I=6;d(4.1Y&&9.o)g.p(7)}c(4.I)},1A:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d((!9.o||4.F!=6)&&(6==\'35\'||6==\'20\')){4.F=6}c(4.F)},1J:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d((!9.o||4.v!=6)&&(6==\'3d\'||6==\'1Z\')){4.v=6}c(4.v)},1H:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');d(6==\'3e\'){9.A=[];f.17.1k(\'.U-u-S-1L-u\').l()}h{d(!$.3f(6)){6=[6]}1W(e i=0;i<6.X;i++){d(6[i].n!=j&&6[i].O!=j){d(g.1e(7,6[i].n)==-1)g.1w(7,6[i].n,6[i].O)}h{g.1e(7,6[i])}}}c(j)},1a:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\'),q=V;d(9.13!=6)q=C;9.13=6;d(9.13){d(9.11.X>0){f.Q.m(\'N\',\'18\');d(9.11.X<9.1i){f.14.r(4.B.1F(\'%s\',9.1i)+\', \'+4.K.1F(\'%s\',9.11.X)).m(\'N\',\'18\')}h{f.14.r(4.B.1F(\'%s\',9.11.X)).m(\'N\',\'18\')}}h d(4.z!=\'\'){f.Q.m(\'N\',\'19\');f.14.r(4.z).m(\'N\',\'18\')}h{f.14.r(\'\').m(\'N\',\'19\')}f.P.m({N:\'18\',\'3c-15\':f.P.1N().m(\'15\')})}h{f.P.m(\'N\',\'19\')}d(4.q&&q)7.1h(\'1M\',[9.13]);c(9.13)},p:b(7){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');g.1G(7);$.3b({1s:"37",38:4.I,a:{39:4.F+\'.L.3a\',v:4.v,3h:4.R,t:4.t,3g:f.w.1c()},3l:C,3n:b(1g){12=$.3m(1g);9.1i=12.3i;g.2h(7);g.2g(7,12.A);d(4.p)7.1h(\'22\');g.1a(7,C)},29:b(1g){f.P.r(\'3j ! \'+1g)},})},2h:b(7){e f=7.a(\'f\'),4=7.a(\'4\'),9=7.a(\'9\');f.Q.1k().G().l();9.11=[]},2g:b(7,10){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');1W(e i=0;i<10.X;i++){9.11.2d({n:10[i].n,O:10[i].O,});d(4.t){e 1u=2f 2k(\'(.*)(\'+f.w.1c()+\')(.*)\',\'i\')}h{e 1u=2f 2k(\'(.*)(\'+f.w.1c()+\')(.*)\')}T=1u.3k(10[i].O);d(T!=j){T=T[1]+\'<1Q Y="U-u-S-2N">\'+T[2]+\'</1Q>\'+T[3]}h{T=10[i].O}e Z=$(\'<Z/>\',{r:T,6:10[i].n,\'Y\':\'U-u-S-12-25\'}).y(\'36.L\',{7:7},b(1m){g.1w(1m.a.7,$(8).1O(\'6\'),$(8).1l())});f.Q.W(Z)}},1w:b(7,n,O){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');d(g.1U(7,n)==-1){9.A.2d({n:n,O:O});e Z=$(\'<Z/>\',{6:n,r:O,\'Y\':\'U-u-S-1L-u\'}).2T($(\'<1Q/>\',{r:\'x\'}).y(\'21.L\',{7:7},b(1m){g.1e(1m.a.7,$(8).1N().1O(\'6\'))}));f.w.1c(\'\').1N().2U(Z);d(4.H)7.1h(\'1C\',n)}},1e:b(7,n){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');e 1o=g.1U(7,n);d(1o>-1){9.A.2V(1o,1);25=f.17.1k(\'[6=\'+n+\']\').l();d(4.l)7.1h(\'1z\',n)}c(1o)},1U:b(7,6){e 9=7.a(\'9\');1W(e i=0;i<9.A.X;i++){d(9.A[i].n==6)c(i)}c(-1)},2e:b(7){g.1a(7,C)},24:b(7){g.1a(7,V)},1R:b(7,6){e 4=7.a(\'4\');4.q=6;7.G(\'1M\');d(6)7.y(\'1M\',4.q);c(4.q)},1D:b(7,6){e 4=7.a(\'4\');4.H=6;7.G(\'1C\');d(6)7.y(\'1C\',4.H);c(4.H)},1B:b(7,6){e 4=7.a(\'4\');4.l=6;7.G(\'1z\');d(6)7.y(\'1z\',4.l);c(4.l)},1E:b(7,6){e 4=7.a(\'4\');4.p=6;7.G(\'2S\');d(6)7.y(\'22\',4.p);c(4.p)},1G:b(7){e 9=7.a(\'9\');d(9.1b!=j){27.2R(9.1b);9.1b=j}},23:b(7){e 9=7.a(\'9\'),4=7.a(\'4\');g.1G(7);9.1b=27.2O(b(){g.p(7)},4.M)},};$.2P.L=b(16){d(1j[16]){c 1j[16].2b(8,2Q.2W.2X.33(2a,1))}h d(34 16===\'7\'||!16){c 1j.2c.2b(8,2a)}h{$.29(\'32 \'+16+\' 31 2Y 2Z 30 2j.L\')}}})(2j);',62,210,'||||options||value|object|this|properties|data|function|return|if|var|objects|privateMethods|else||null|each|remove|css|id|initialized|load|popup|html||ignoreCase|tag|filter|input||bind|textStart|tags|textFound|true|listMaxWidth|listMaxHeight|mode|unbind|add|serverUrl|inputNumCar|textDisplay|tagSelector|serverCallDelay|display|name|selectorList|tagList|maximumTagLoaded|selector|tmpResult|ui|false|append|length|class|li|listItems|cache|list|selectorVisible|textArea|width|method|selectedTagList|block|none|displaySelector|timerHandle|val|isFunction|removeTag|setMaximumTagLoaded|msg|trigger|totalTags|publicMethods|children|text|event|max|index|div|container|setIgnoreCase|type|setOptions|re|setListMaxHeight|addTag|setInputNumCar|height|tagSelectorRemove|setMode|setEventRemove|tagSelectorAdd|setEventAdd|setEventLoad|replace|clearTimerHandle|setValue|setTextFound|setFilter|setTextDisplay|selected|tagSelectorPopup|parent|attr|setListMaxWidth|span|setEventPopup|setTextStart|setServerUrl|findTagById|setServerCallDelay|for|px|autoLoad|affected|public|click|tagSelectorLoad|setTimerHandle|lostFocus|item|ul|window|focus|error|arguments|apply|init|push|getFocus|new|cacheAddItems|cacheClear|opt|jQuery|RegExp|0px|Start|listStyle|to|found|only|padding|categorySelector|gpc_ajax|GrumPluginClasses|php|250|100|plugins|focusout|destroy|mouseleave|zIndex|9999|size|absolute|auto|keypress|isPlainObject|margin|numberOfTags|position|overflow|highlight|setInterval|fn|Array|clearInterval|categorySelectorLoad|prepend|before|splice|prototype|slice|not|exist|on|does|Method|call|typeof|admin|mousedown|POST|url|ajaxfct|get|ajax|min|all|clear|isArray|letters|maxTags|totalNbTags|Error|exec|async|parseJSON|success'.split('|'),0,{}))
     1/* file: ui.tagSelector.js - v1.0.0 | packed on 2010/10/23 with http://joliclic.free.fr/php/javascript-packer/ */
     2eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(b($){e 1f={2c:b(2j){c 8.k(b(){e $8=$(8),a=$8.a(\'4\'),f=$8.a(\'f\'),9=$8.a(\'9\'),4={u:v,L:\'2o/2l/2u.2w\',I:2s,B:0,A:0,P:0,C:\'2q 2p 1q 1j...\',w:\'%s D 2m\',K:\'N 2n %s D\',F:\'20\',E:\'21\',G:5,M:j,l:j,q:j,p:j};$8.a(\'4\',4);d(!9){$8.a(\'9\',{o:Q,12:Q,1l:0,D:[],Y:[],1a:j,});9=$8.a(\'9\')}d(!f){f={1L:$(\'<1A/>\',{\'10\':\'W-y-V-r\',m:{15:\'2t%\'}}).z(\'22.H\',b(){f.r.28()}),1c:$(\'<26/>\',{t:\'\',\'10\':\'W-y-V-1V-y-13\',}),r:$(\'<r>\',{1q:"1j",6:\'\'}).z(\'2L.H\',b(){g.2e($8)}).z(\'28.H\',b(){g.25($8)}).z(\'2x.H\',b(){g.23($8)}),S:$(\'<1A/>\',{t:"",\'10\':\'W-y-V-13\',m:{N:\'19\',2G:\'2J\',2E:2z,}}).z(\'2y.H\',b(){g.18($8,Q)}),R:$(\'<26/>\',{m:{2B:\'19\',2D:\'2k\',2H:\'2k\',2A:"2F",}}),17:$(\'<1A/>\',{t:\'\',\'10\':\'W-y-V-1j\'})};$8.t(\'\').U(f.1L.U(f.1c.U($(\'<11/>\').U(f.r)))).U(f.S.U(f.R).U(f.17));$8.a(\'f\',f)}g.1C($8,2j)})},2r:b(){c 8.k(b(){e $8=$(8),f=$8.a(\'f\');f.1c.1p().J();f.r.J().l();f.1L.J().l();f.S.J().l();f.R.l();$8.J(\'.2K\').m({15:\'\',1F:\'\'})})},4:b(6){8.k(b(){e $8=$(8);g.1C($8,6);c($8)})},u:b(6){d(6){8.k(b(){e $8=$(8);g.1D($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.u)}h{c(v)}}},G:b(6){d(6){8.k(b(){e $8=$(8);g.1t($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.G)}h{c(v)}}},P:b(6){d(6){8.k(b(){e $8=$(8);g.1e($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.P)}h{c(0)}}},B:b(6){d(6){8.k(b(){e $8=$(8);g.1s($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.B)}h{c(0)}}},A:b(6){d(6){8.k(b(){e $8=$(8);g.1y($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.A)}h{c(0)}}},I:b(6){d(6){8.k(b(){e $8=$(8);g.1H($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.I)}h{c(0)}}},L:b(6){d(6){8.k(b(){e $8=$(8);g.1E($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.L)}h{c(\'\')}}},C:b(6){d(6){8.k(b(){e $8=$(8);g.1u($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.C)}h{c(\'\')}}},w:b(6){d(6){8.k(b(){e $8=$(8);g.1v($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.w)}h{c(\'\')}}},K:b(6){d(6){8.k(b(){e $8=$(8);g.1x($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.K)}h{c(\'\')}}},E:b(6){d(6){8.k(b(){e $8=$(8);g.1w($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.E)}h{c(v)}}},F:b(6){d(6){8.k(b(){e $8=$(8);g.1z($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.F)}h{c(v)}}},6:b(6){d(6){c 8.k(b(){g.1O($(8),6)})}h{e 9=8.a(\'9\');c(9.D)}},p:b(6){d(6&&$.1k(6)){8.k(b(){e $8=$(8);g.1S($8,6);c($8)})}h{g.p(8)}},q:b(6){d(6&&$.1k(6)){8.k(b(){e $8=$(8);g.1K($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.q)}h{c(j)}}},M:b(6){d(6&&$.1k(6)){8.k(b(){e $8=$(8);g.1Q($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.M)}h{c(j)}}},l:b(6){d(6&&$.1k(6)){8.k(b(){e $8=$(8);g.1W($8,6);c($8)})}h{e 4=8.a(\'4\');d(4){c(4.l)}h{c(j)}}},2v:b(){e 9=8.a(\'9\');d(9){c(9.D.T)}h{c(j)}}};e g={1C:b(7,6){e 9=7.a(\'9\'),4=7.a(\'4\');d(!$.2I(6))c(Q);9.o=Q;g.1D(7,(6.u!=j)?6.u:4.u);g.1t(7,(6.G!=j)?6.G:4.G);g.1O(7,(6.6!=j)?6.6:[]);g.1e(7,(6.P!=j)?6.P:4.P);g.1u(7,(6.C!=j)?6.C:4.C);g.1v(7,(6.w!=j)?6.w:4.w);g.1x(7,(6.K!=j)?6.K:4.K);g.1s(7,(6.B!=j)?6.B:4.B);g.1y(7,(6.A!=j)?6.A:4.A);g.1H(7,(6.I!=j)?6.I:4.I);g.1E(7,(6.L!=j)?6.L:4.L);g.1z(7,(6.F!=j)?6.F:4.F);g.1w(7,(6.E!=j)?6.E:4.E);g.1K(7,(6.q!=j)?6.q:4.q);g.1Q(7,(6.M!=j)?6.M:4.M);g.1W(7,(6.l!=j)?6.l:4.l);g.1S(7,(6.p!=j)?6.p:4.p);d(4.1Z)g.p(7);9.o=v},1D:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d((!9.o||4.u!=6)&&(6==v||6==Q)){4.u=6}c(4.u)},1t:b(7,6){e 4=7.a(\'4\'),f=7.a(\'f\'),9=7.a(\'9\');d((!9.o||4.G!=6)&&6>0){4.G=6;f.r.1I(\'2C\',4.G)}c(4.G)},1e:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d((!9.o||4.1e!=6)&&6>=0){4.P=6}c(4.P)},1u:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d(!9.o||4.C!=6){4.C=6}c(4.C)},1v:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d(!9.o||4.w!=6){4.w=6}c(4.w)},1x:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d(!9.o||4.K!=6){4.K=6}c(4.K)},1s:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');d((!9.o||4.B!=6)&&6>=0){4.B=6;d(4.B>0){f.S.m(\'1h-15\',4.B+\'1Y\')}h{f.S.m(\'1h-15\',\'\')}}c(4.B)},1y:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');d((!9.o||4.A!=6)&&6>=0){4.A=6;d(4.A>0){f.R.m(\'1h-1F\',4.A+\'1Y\')}h{f.R.m(\'1h-1F\',\'\')}}c(4.A)},1H:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d((!9.o||4.I!=6)&&6>0){4.I=6}c(4.I)},1E:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d(!9.o||4.L!=6){4.L=6;d(4.1Z&&9.o)g.p(7)}c(4.L)},1z:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d((!9.o||4.F!=6)&&(6==\'2S\'||6==\'20\')){4.F=6}c(4.F)},1w:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\');d((!9.o||4.E!=6)&&(6==\'3d\'||6==\'21\')){4.E=6}c(4.E)},1O:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');d(6==\'3e\'){9.D=[];f.1c.1p(\'.W-y-V-1V-y\').l();g.1i(7);f.r.14(\'\')}h{d(!$.3f(6)){6=[6]}1M(e i=0;i<6.T;i++){d(6[i].n!=j&&6[i].O!=j){d(g.1d(7,6[i].n)==-1)g.1T(7,6[i].n,6[i].O)}h{g.1d(7,6[i])}}}c(j)},18:b(7,6){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\'),q=Q;d(9.12!=6)q=v;9.12=6;d(9.12){d(9.Y.T>0){f.R.m(\'N\',\'1b\');d(9.Y.T<9.1l){f.17.t(4.w.1P(\'%s\',9.1l)+\', \'+4.K.1P(\'%s\',9.Y.T)).m(\'N\',\'1b\')}h{f.17.t(4.w.1P(\'%s\',9.Y.T)).m(\'N\',\'1b\')}}h d(4.C!=\'\'){f.R.m(\'N\',\'19\');f.17.t(4.C).m(\'N\',\'1b\')}h{f.17.t(\'\').m(\'N\',\'19\')}f.S.m({N:\'1b\',\'3c-15\':f.S.1G().m(\'15\')})}h{f.S.m(\'N\',\'19\')}d(4.q&&q)7.1o(\'1J\',[9.12]);c(9.12)},p:b(7){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');g.1r(7);d(f.r.14()==\'\'){g.1i(7);g.18(7,v);c(Q)}$.3b({1q:"37",38:4.L,a:{39:4.F+\'.H.3a\',E:4.E,3h:4.P,u:4.u,3g:f.r.14()},3l:v,3n:b(1m){13=$.3m(1m);9.1l=13.3i;g.1i(7);g.2i(7,13.D);d(4.p)7.1o(\'24\');g.18(7,v)},29:b(1m){f.S.t(\'3j ! \'+1m)},})},1i:b(7){e f=7.a(\'f\'),4=7.a(\'4\'),9=7.a(\'9\');f.R.1p().J().l();9.Y=[]},2i:b(7,Z){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');1M(e i=0;i<Z.T;i++){9.Y.2d({n:Z[i].n,O:Z[i].O,});d(4.u){e 1B=2h 2g(\'(.*)(\'+f.r.14()+\')(.*)\',\'i\')}h{e 1B=2h 2g(\'(.*)(\'+f.r.14()+\')(.*)\')}X=1B.3k(Z[i].O);d(X!=j){X=X[1]+\'<1X 10="W-y-V-2M">\'+X[2]+\'</1X>\'+X[3]}h{X=Z[i].O}e 11=$(\'<11/>\',{t:X,6:Z[i].n,\'10\':\'W-y-V-13-35\'}).z(\'36.H\',{7:7},b(1g){g.1T(1g.a.7,$(8).1I(\'6\'),$(8).1j())});f.R.U(11)}},1T:b(7,n,O){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');d(g.1N(7,n)==-1){9.D.2d({n:n,O:O});e 11=$(\'<11/>\',{6:n,t:O,\'10\':\'W-y-V-1V-y\'}).2T($(\'<1X/>\',{t:\'x\'}).z(\'22.H\',{7:7},b(1g){g.1d(1g.a.7,$(8).1G().1I(\'6\'))}));f.r.14(\'\').1G().2U(11);d(4.M)7.1o(\'1U\',n)}},1d:b(7,n){e 4=7.a(\'4\'),9=7.a(\'9\'),f=7.a(\'f\');e 1n=g.1N(7,n);d(1n>-1){9.D.2R(1n,1);f.1c.1p(\'[6=\'+n+\']\').l();d(4.l)7.1o(\'1R\',n)}c(1n)},1N:b(7,6){e 9=7.a(\'9\');1M(e i=0;i<9.D.T;i++){d(9.D[i].n==6)c(i)}c(-1)},25:b(7){g.18(7,v)},2e:b(7){g.18(7,Q)},1K:b(7,6){e 4=7.a(\'4\');4.q=6;7.J(\'1J\');d(6)7.z(\'1J\',4.q);c(4.q)},1Q:b(7,6){e 4=7.a(\'4\');4.M=6;7.J(\'1U\');d(6)7.z(\'1U\',4.M);c(4.M)},1W:b(7,6){e 4=7.a(\'4\');4.l=6;7.J(\'1R\');d(6)7.z(\'1R\',4.l);c(4.l)},1S:b(7,6){e 4=7.a(\'4\');4.p=6;7.J(\'2Q\');d(6)7.z(\'24\',4.p);c(4.p)},1r:b(7){e 9=7.a(\'9\');d(9.1a!=j){27.2N(9.1a);9.1a=j}},23:b(7){e 9=7.a(\'9\'),4=7.a(\'4\');g.1r(7);9.1a=27.2O(b(){g.p(7)},4.I)},};$.2P.H=b(16){d(1f[16]){c 1f[16].2b(8,2V.2W.32.33(2a,1))}h d(34 16===\'7\'||!16){c 1f.2c.2b(8,2a)}h{$.29(\'31 \'+16+\' 30 2X 2Y 2Z 2f.H\')}}})(2f);',62,210,'||||options||value|object|this|properties|data|function|return|if|var|objects|privateMethods|else||null|each|remove|css|id|initialized|load|popup|input||html|ignoreCase|true|textFound||tag|bind|listMaxHeight|listMaxWidth|textStart|tags|filter|mode|inputNumCar|tagSelector|serverCallDelay|unbind|textDisplay|serverUrl|add|display|name|maximumTagLoaded|false|tagList|selectorList|length|append|selector|ui|tmpResult|cache|listItems|class|li|selectorVisible|list|val|width|method|textArea|displaySelector|none|timerHandle|block|selectedTagList|removeTag|setMaximumTagLoaded|publicMethods|event|max|cacheClear|text|isFunction|totalTags|msg|index|trigger|children|type|clearTimerHandle|setListMaxWidth|setInputNumCar|setTextStart|setTextFound|setFilter|setTextDisplay|setListMaxHeight|setMode|div|re|setOptions|setIgnoreCase|setServerUrl|height|parent|setServerCallDelay|attr|tagSelectorPopup|setEventPopup|container|for|findTagById|setValue|replace|setEventAdd|tagSelectorRemove|setEventLoad|addTag|tagSelectorAdd|selected|setEventRemove|span|px|autoLoad|public|affected|click|setTimerHandle|tagSelectorLoad|getFocus|ul|window|focus|error|arguments|apply|init|push|lostFocus|jQuery|RegExp|new|cacheAddItems|opt|0px|GrumPluginClasses|found|only|plugins|to|Start|destroy|250|100|gpc_ajax|numberOfTags|php|keypress|mouseleave|9999|overflow|listStyle|size|padding|zIndex|auto|position|margin|isPlainObject|absolute|categorySelector|focusout|highlight|clearInterval|setInterval|fn|categorySelectorLoad|splice|admin|prepend|before|Array|prototype|not|exist|on|does|Method|slice|call|typeof|item|mousedown|POST|url|ajaxfct|get|ajax|min|all|clear|isArray|letters|maxTags|totalNbTags|Error|exec|async|parseJSON|success'.split('|'),0,{}))
  • extensions/GrumPluginClasses/language/de_DE/rbuilder.lang.php

    r7364 r7370  
    2020$lang['There is no criteria ! At least, one criteria is required to do search...']="Es gibt kein Kriterium! Es muss mindestens ein Kriterium angegeben werden um die Suche starten zu können...";
    2121
     22// need to be translated ! thanks :-)
     23$lang['gpc_help_edit_criteria']="Edit criteria";
     24$lang['gpc_help_delete_criteria']="Delete criteria";
     25$lang['gpc_help_move_criteria']="Drag'n'drop to organize search conditions";
     26$lang['gpc_help_switch_condition']="Invert the nature of the condition (AND &hArr; OR)";
    2227
    2328?>
  • extensions/GrumPluginClasses/language/en_UK/rbuilder.lang.php

    r7327 r7370  
    2020$lang['There is no criteria ! At least, one criteria is required to do search...']="There is no criteria ! At least, one criteria is required to do search...";
    2121
     22$lang['gpc_help_edit_criteria']="Edit criteria";
     23$lang['gpc_help_delete_criteria']="Delete criteria";
     24$lang['gpc_help_move_criteria']="Drag'n'drop to organize search conditions";
     25$lang['gpc_help_switch_condition']="Invert the nature of the condition (AND &hArr; OR)";
    2226
    2327?>
  • extensions/GrumPluginClasses/language/fr_FR/rbuilder.lang.php

    r7327 r7370  
    2020$lang['There is no criteria ! At least, one criteria is required to do search...']="Il n'y a aucun critères ! Au minimum, un critère est requis pour pouvoir effectuer une recherche...";
    2121
     22$lang['gpc_help_edit_criteria']="Editer le critère";
     23$lang['gpc_help_delete_criteria']="Supprimer le critère";
     24$lang['gpc_help_move_criteria']="Glisser/Déposer pour organiser les conditions de recherche";
     25$lang['gpc_help_switch_condition']="Inverser la nature de la condition (ET &hArr; OU)";
     26
    2227?>
  • extensions/GrumPluginClasses/language/hr_HR/rbuilder.lang.php

    r6917 r7370  
    1717$lang['gpc_the_caddie_is_updated'] = 'Caddie was updated';
    1818$lang['gpc_something_is_wrong_on_the_server_side'] = 'An error has occured on the server-side';
     19$lang['There is no criteria ! At least, one criteria is required to do search...']="There is no criteria ! At least, one criteria is required to do search...";
     20$lang['gpc_help_edit_criteria']="Edit criteria";
     21$lang['gpc_help_delete_criteria']="Delete criteria";
     22$lang['gpc_help_move_criteria']="Drag'n'drop to organize search conditions";
     23$lang['gpc_help_switch_condition']="Invert the nature of the condition (AND &hArr; OR)";
     24
    1925
    2026?>
  • extensions/GrumPluginClasses/language/hu_HU/rbuilder.lang.php

    r7366 r7370  
    1818$lang['gpc_something_is_wrong_on_the_server_side'] = 'Hiba történt a szerver oldalon';
    1919
     20// need to be translated ! thanks :-)
     21// GPC 3.3.2
     22$lang['There is no criteria ! At least, one criteria is required to do search...']="There is no criteria ! At least, one criteria is required to do search...";
     23$lang['gpc_help_edit_criteria']="Edit criteria";
     24$lang['gpc_help_delete_criteria']="Delete criteria";
     25$lang['gpc_help_move_criteria']="Drag'n'drop to organize search conditions";
     26$lang['gpc_help_switch_condition']="Invert the nature of the condition (AND &hArr; OR)";
     27
     28
    2029
    2130?>
  • extensions/GrumPluginClasses/language/it_IT/rbuilder.lang.php

    r7364 r7370  
    2020$lang['There is no criteria ! At least, one criteria is required to do search...']=" Non vi è alcun criterio! Almeno uno dei criteri è necessario per iniziare la ricerca ...";
    2121
     22// need to be translated ! thanks :-)
     23$lang['gpc_help_edit_criteria']="Edit criteria";
     24$lang['gpc_help_delete_criteria']="Delete criteria";
     25$lang['gpc_help_move_criteria']="Drag'n'drop to organize search conditions";
     26$lang['gpc_help_switch_condition']="Invert the nature of the condition (AND &hArr; OR)";
     27
    2228
    2329?>
  • extensions/GrumPluginClasses/language/ja_JP/rbuilder.lang.php

    r6917 r7370  
    1717$lang['gpc_the_caddie_is_updated'] = 'Caddie was updated';
    1818$lang['gpc_something_is_wrong_on_the_server_side'] = 'An error has occured on the server-side';
     19$lang['There is no criteria ! At least, one criteria is required to do search...']="There is no criteria ! At least, one criteria is required to do search...";
     20$lang['gpc_help_edit_criteria']="Edit criteria";
     21$lang['gpc_help_delete_criteria']="Delete criteria";
     22$lang['gpc_help_move_criteria']="Drag'n'drop to organize search conditions";
     23$lang['gpc_help_switch_condition']="Invert the nature of the condition (AND &hArr; OR)";
    1924
    2025?>
  • extensions/GrumPluginClasses/language/nl_NL/rbuilder.lang.php

    r7146 r7370  
    1717$lang['gpc_the_caddie_is_updated'] = 'Caddie was updated';
    1818$lang['gpc_something_is_wrong_on_the_server_side'] = 'An error has occured on the server-side';
     19$lang['There is no criteria ! At least, one criteria is required to do search...']="There is no criteria ! At least, one criteria is required to do search...";
    1920
     21$lang['gpc_help_edit_criteria']="Edit criteria";
     22$lang['gpc_help_delete_criteria']="Delete criteria";
     23$lang['gpc_help_move_criteria']="Drag'n'drop to organize search conditions";
     24$lang['gpc_help_switch_condition']="Invert the nature of the condition (AND &hArr; OR)";
    2025
    2126?>
  • extensions/GrumPluginClasses/language/sk_SK/rbuilder.lang.php

    r7365 r7370  
    2020$lang['There is no criteria ! At least, one criteria is required to do search...']="To nie je kritérium! Najmenej jedno kritérium je potrebné na vyhľadávanie...";
    2121
     22// need to be translated ! thanks :-)
     23$lang['gpc_help_edit_criteria']="Edit criteria";
     24$lang['gpc_help_delete_criteria']="Delete criteria";
     25$lang['gpc_help_move_criteria']="Drag'n'drop to organize search conditions";
     26$lang['gpc_help_switch_condition']="Invert the nature of the condition (AND &hArr; OR)";
    2227
    2328?>
  • extensions/GrumPluginClasses/main.inc.php

    r7349 r7370  
    8888|         |            |   . ui.tagSelector.js + ui.tagSelector.packed.js
    8989|         |            |
     90|         |            | * Externalize and pack JS scripts
     91|         |            |   . rbSearch.js + rbSearch.packed.js
     92|         |            |
     93|         |            | * Rename js script
     94|         |            |   . criteriaBuilder.js => rbCriteriaBuilder.js
    9095|         |            |
    9196|         |            |
  • extensions/GrumPluginClasses/templates/GPCRequestBuilder_search.tpl

    r7349 r7370  
    11{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
    22{known_script id="jquery.ui.dialog" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.dialog.packed.js"}
    3 {known_script id="jquery.tipTip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.tipTip.minified.js"}
    4 
    53{known_script id="gpc.pagesNavigator" src=$ROOT_URL|@cat:"plugins/GrumPluginClasses/js/pagesNavigator.packed.js"}
    6 
    7 
    8 {literal}
    9 <script type="text/javascript">
    10 var cb=null;
    11 
    12   interfaceManager = function(optionsToSet)
    13   {
    14     var pn=null,
    15         requestNumber=0,
    16         options =
    17           {
    18             requestCriterionsVisible:'',
    19             requestCriterionsHidden:'',
    20             requestResult:'',
    21             requestResultContent:'',
    22             requestResultNfo:'',
    23             requestResultPagesNavigator:'',
    24             requestResultRequestNumber:0,
    25             onPageChange:null,
    26             numberPerPage:30,
    27           };
    28 
    29     /**
    30      *
    31      */
    32     this.doAction = function(fct)
    33     {
    34       switch(fct)
    35       {
    36         case 'queryResult':
    37           /* function 'queryResult' : when query is executed, prepare the interface
    38            */
    39           if(arguments.length==3)
    40           {
    41             displayQueryResult(arguments[1], arguments[2]);
    42           }
    43           break;
    44         case 'queryPage':
    45           /* function 'queryPage' : display returned page
    46            */
    47           if(arguments.length==3)
    48           {
    49             displayQueryPage(arguments[1], arguments[2]);
    50           }
    51           break;
    52         case 'show':
    53           /* function 'show' : show/hide the query/result
    54            */
    55           if(arguments.length==2)
    56           {
    57             show(arguments[1]);
    58           }
    59           break;
    60         case 'setOptions':
    61           /* function 'setOptions' : allows to set options after the object was
    62            *                         created
    63            */
    64           if(arguments.length==2)
    65           {
    66             setOptions(arguments[1]);
    67           }
    68           break;
    69         case 'fillCaddie':
    70           /* function 'fillCaddie' : allows to fill the caddie with the search result
    71            *
    72            */
    73           if(arguments.length==2)
    74           {
    75             fillCaddie(arguments[1], this.getRequestNumber());
    76           }
    77           break;
    78       }
    79     }
    80 
    81     /**
    82      * returns the current request number
    83      */
    84     this.getRequestNumber = function ()
    85     {
    86       return(requestNumber);
    87     }
    88 
    89     /**
    90      * returns the number of items per page
    91      */
    92     this.getNumberPerPage = function ()
    93     {
    94       return(options.numberPerPage);
    95     }
    96 
    97     /**
    98      * this function show/hide the different panels
    99      *  'buildQuery'  : hide the result panel and display the panel to build query
    100      *  'resultQuery' : hide the panel to build query and display the result panel
    101      */
    102     var show = function(mode)
    103     {
    104       switch(mode)
    105       {
    106         case 'buildQuery':
    107           $('.'+options.requestCriterionsVisible).css('display', 'block');
    108           $('.'+options.requestCriterionsHidden).css('display', 'none');
    109           $('.'+options.requestResult).css('display', 'none');
    110           break;
    111         case 'resultQuery':
    112           $('#iResultQueryContent').html("<br><img class='waitingResult' src='./plugins/GrumPluginClasses/icons/processing.gif'>");
    113           $('.'+options.requestCriterionsVisible).css('display', 'none');
    114           $('.'+options.requestCriterionsHidden).css('display', 'block');
    115           $('.'+options.requestResult).css('display', 'block');
    116           break;
    117       }
    118     }
    119 
    120     /**
    121      * this function display the number of items found and prepare the page
    122      * navigator
    123      *
    124      * @param String nfo : 2 information separated with a semi-colon ';'
    125      *                      requestNumber;numberOfItems
    126      */
    127     var displayQueryResult = function (isSuccess, nfo)
    128     {
    129       if(isSuccess)
    130       {
    131         nfo=nfo.split(';');
    132 
    133         requestNumber=nfo[0];
    134         $('#iResultQueryNfo').html(nfo[1]);
    135         pn.doAction('setOptions', { numberItem:nfo[1], defaultPage:1 } );
    136         show('resultQuery');
    137       }
    138       else
    139       {
    140         //$('#'+options.requestResultContent).html("");
    141         show('buildQuery');
    142         alert('{/literal}{"gpc_something_is_wrong_on_the_server_side"|@translate}{literal}');
    143       }
    144     }
    145 
    146 
    147     /**
    148      * this function display the number of items found and prepare the page
    149      * navigator
    150      *
    151      * @param String nfo : 2 information separated with a semi-colon ';'
    152      *                      requestNumber;numberOfItems
    153      */
    154     var displayQueryPage = function (isSuccess, nfo)
    155     {
    156       if(isSuccess)
    157       {
    158         $('#iResultQueryContent').html(nfo);
    159         $('.tiptip').tipTip(
    160           {
    161             'delay' : 0,
    162             'fadeIn' : 0,
    163             'fadeOut' : 0,
    164             'edgeOffset' : 5,
    165           }
    166         );
    167       }
    168       else
    169       {
    170         alert('{/literal}{"gpc_something_is_wrong_on_the_server_side"|@translate}{literal}');
    171       }
    172     }
    173 
    174 
    175     /**
    176      *
    177      * @param Object optionsToSet : set the given options
    178      */
    179     var setOptions = function(optionsToSet)
    180     {
    181       if(typeof optionsToSet=='object')
    182       {
    183         options = jQuery.extend(options, optionsToSet);
    184       }
    185     }
    186 
    187     /**
    188      * initialize the object
    189      */
    190     var init = function (optionsToSet)
    191     {
    192       setOptions(optionsToSet);
    193 
    194       pn = new pagesNavigator(options.requestResultPagesNavigator,
    195         {
    196           itemPerPage:options.numberPerPage,
    197           displayNumPage:9,
    198           classActive:'pnActive{/literal}{$datas.themeName}{literal}',
    199           classInactive:'pnInactive{/literal}{$datas.themeName}{literal}',
    200           onPageChange: function (page)
    201             {
    202               if(options.onPageChange!=null && jQuery.isFunction(options.onPageChange))
    203               {
    204                 options.onPageChange(requestNumber, page, options.numberPerPage);
    205               }
    206             },
    207         }
    208       );
    209 
    210       requestNumber=options.requestResultRequestNumber;
    211     }
    212 
    213     /**
    214      * fill the caddie with the search results
    215      * @param String mode : 'add' or 'fill'
    216      */
    217     var fillCaddie = function (mode, requestNumber)
    218     {
    219       $('#iMenuCaddieImg').css('display', 'inline-block');
    220       $('#iMenuCaddieItems ul').css('display', 'none');
    221 
    222       $.ajax(
    223         {
    224           type: "POST",
    225           url: "plugins/GrumPluginClasses/gpc_ajax.php",
    226           async: true,
    227           data: { ajaxfct:"admin.rbuilder.fillCaddie", fillMode:mode, requestNumber:requestNumber },
    228           success:
    229             function(msg)
    230             {
    231               $('#iMenuCaddieImg').css('display', 'none');
    232               $('#iMenuCaddieItems ul').css('display', 'block');
    233               alert('{/literal}{"gpc_the_caddie_is_updated"|@translate}{literal}');
    234             },
    235           error:
    236             function(msg)
    237             {
    238               $('#iMenuCaddieImg').css('display', 'none');
    239               $('#iMenuCaddieItems ul').css('display', 'block');
    240               alert('{/literal}{"gpc_something_is_wrong_on_the_server_side"|@translate}{literal}');
    241             },
    242         }
    243       );
    244     }
    245 
    246     init(optionsToSet);
    247   }
    248 
    249 
    250   function init()
    251   {
    252     im = new interfaceManager(
    253       {
    254         requestCriterionsVisible:'cRequestCriterions',
    255         requestCriterionsHidden:'cModifyRequest',
    256         requestResult:'cResultQuery',
    257         requestResultContent:'iResultQueryContent',
    258         requestResultNfo:'iResultQueryNfo',
    259         requestResultPagesNavigator:'iPagesNavigator',
    260       }
    261     );
    262 
    263     {/literal}
    264 
    265 
    266 
    267     {if defined('IN_ADMIN')}
    268       requestBuilderOptions.imgEditUrl='{$ROOT_URL}{$themeconf.admin_icon_dir}/edit_s.png';
    269       requestBuilderOptions.imgDeleteUrl='{$ROOT_URL}{$themeconf.admin_icon_dir}/delete.png';
    270     {else}
    271       requestBuilderOptions.imgEditUrl='{$ROOT_URL}{$themeconf.icon_dir}/edit.png';
    272       requestBuilderOptions.imgDeleteUrl='{$ROOT_URL}{$themeconf.icon_dir}/delete.png';
    273     {/if}
    274     {literal}
    275 
    276     requestBuilderOptions.classGroup='gcBorderInput gcTextInput';
    277     requestBuilderOptions.classItem='gcBgInput gcTextInput';
    278     requestBuilderOptions.classOperator='cbOperator cbOperatorBg{/literal}{$datas.themeName}{literal} gcLinkHover';
    279     requestBuilderOptions.onRequestSuccess = function (msg) { im.doAction('queryResult', true, msg); cb.doAction('getPage', im.getRequestNumber(), 1, im.getNumberPerPage()); };
    280     requestBuilderOptions.onRequestError = function (msg) { im.doAction('queryResult', false, msg); };
    281     requestBuilderOptions.onGetPageSuccess = function (msg) { im.doAction('queryPage', true, msg); };
    282     requestBuilderOptions.onGetPageError = function (msg) { im.doAction('queryPage', false, msg); };
    283 
    284     cb = new criteriaBuilder('iListSelectedCriterions', requestBuilderOptions);
    285 
    286     im.doAction('setOptions',
    287       {
    288         onPageChange:
    289           function (requestNumber, page, numberPerPage)
    290           {
    291             $('#iResultQueryContent').html("<br><img class='waitingResult' src='./plugins/GrumPluginClasses/icons/processing.gif'>");
    292             cb.doAction('getPage', requestNumber, page, numberPerPage);
    293           }
    294       }
    295     );
    296   }
    297 </script>
    298 {/literal}
     4{known_script id="gpc.rbSearch" src=$ROOT_URL|@cat:"plugins/GrumPluginClasses/js/rbSearch.packed.js"}
    2995
    3006{foreach from=$datas.dialogBox item=dialogBox}
     
    30612{/if}
    30713
    308 <form>
     14<form id='iRBCriteriaForm'>
    30915  <fieldset>
    31016    <legend>{'gpc_rb_search_criterion'|@translate}</legend>
Note: See TracChangeset for help on using the changeset viewer.