Ignore:
Timestamp:
May 7, 2010, 10:23:47 PM (14 years ago)
Author:
grum
Message:

Plugin is now in a usable state (color analysis is not yet tuned)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/ColorStat/admin/cstat_search.tpl

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