source: extensions/AStat/admin/astat_config.tpl @ 3706

Last change on this file since 3706 was 3706, checked in by grum, 15 years ago

Update AStat 2.1.0 - new features
See main.inc.php file for details

  • Property svn:executable set to *
File size: 10.7 KB
Line 
1{literal}
2<script type="text/javascript">
3
4  function change_color(inputzone, colorsquare)
5  {
6    var objinp = document.getElementById(inputzone);
7    var objcol = document.getElementById(colorsquare);
8    var colvalue = objinp.value;
9
10    while(colvalue.length<6) { colvalue+='0'; }
11
12    objcol.style.background = '#'+colvalue;
13  }
14
15  function change_width(inputzone, widthbar)
16  {
17    var objinp = document.getElementById(inputzone);
18    var objbar = document.getElementById(widthbar);
19    objbar.style.width = objinp.value+'px';
20  }
21
22  function isAValidIP(ip, strict)
23  {
24    returnedip=ip;
25    re = /^(\d{1,3}){1}(\.\d{1,3}){0,3}$/i;
26    if(re.test(ip))
27    {
28      num = ip.split('.');
29      for(i=0;i<num.length;i++)
30      {
31        if(num[i]>255) return(false);
32      }
33      if(!strict)
34      {
35        returnedip+="%";
36      }
37      for(j=4-i;j>0;j--)
38      {
39        returnedip+=".%";
40      }
41      return(returnedip);
42    }
43    else
44    {
45      return(false);
46    }
47  }
48
49  function makeOptionsFromList(list, options)
50  {
51    if(list=="")
52    {
53       return(false);
54    }
55
56    items=list.split(",");
57    for(i=0;i<items.length;i++)
58    {
59      opt = document.createElement("option");
60      opt.value=items[i];
61      opt.text=items[i];
62      options.appendChild(opt);
63    }
64  }
65
66  function makeListFromOptions(options)
67  {
68    list="";
69    for(i=0;i<options.length;i++)
70    {
71      (i!=0)?list+=",":"";
72      list+=options[i].value;
73    }
74    return(list);
75  }
76
77  function addIP()
78  {
79    ip=isAValidIP($("#iaddblackip").val(), true);
80
81    if(ip==false) return(false);
82
83    list = $("#iblacklistedip").val()+",";
84    if(list.indexOf(ip+",")==-1)
85    {
86      opt = document.createElement("option");
87      opt.value=ip;
88      opt.text=ip;
89      $("#iblacklistip")[0].appendChild(opt);
90      $("#iblacklistedip").val(makeListFromOptions($("#iblacklistip")[0].options));
91    }
92    $("#iaddblackip").val("");
93    checkButtons();
94  }
95
96  function delIP()
97  {
98    opt = $("#iblacklistip")[0];
99
100    i=0;
101    while(i<opt.options.length)
102    {
103      if(opt.options[i].selected)
104      {
105        opt.removeChild(opt.options[i]);
106      }
107      else
108      {
109        i++;
110      }
111    }
112    $("#iblacklistedip").val(makeListFromOptions(opt.options));
113    checkButtons();
114  }
115
116  function checkButtons()
117  {
118    $("#idelipbutton").attr('disabled', !($("#iblacklistip")[0].selectedIndex!=-1));
119    $("#iaddipbutton").attr('disabled', (isAValidIP($('#iaddblackip').val(),true)==false) );
120  }
121
122  function init()
123  {
124    makeOptionsFromList($("#iblacklistedip").val(), $("#iblacklistip")[0]);
125
126    $("#iaddblackip").bind("keyup focus", getIPList).bind("blur", hideIPList);
127    p = $("#iaddblackip").offset()
128    $("#iplist").css({
129      left:p.left+1,
130      top:p.top+$("#iaddblackip").outerHeight()-1
131    });
132    $("#iblacklistip").bind("change", checkButtons);
133    checkButtons();
134  }
135
136  function getIPList()
137  {
138    /*if($("#iaddblackip").val()=="")
139    {
140      ip="%";
141    }
142    else
143    {
144      ip=isAValidIP($("#iaddblackip").val(),false);
145    }
146    if(ip==false) return(false);*/
147    ip=$("#iaddblackip").val()+"%";
148
149    checkButtons();
150    $("html,input").css({cursor:"progress"});
151    $.get("{/literal}{$datas.ajaxurl}{literal}", {
152        ajaxfct:"astat_listip",
153        ipfilter:ip,
154        exclude:$("#iblacklistedip").val()
155      },
156      function (data)
157      {
158        $("#iplist").html(data).css({visibility:"visible"});
159        $("#iipsellist")
160          .bind("mouseover", function (event) {
161              $("#iaddblackip").unbind("blur");
162          } )
163          .bind("mouseout", function (event) {
164              $("#iaddblackip").bind("blur", hideIPList);
165          } )
166          .bind("blur", hideIPList)
167          .bind("change", function (event) {
168            $("#iaddblackip").val($("#iipsellist").val());
169            $("#iipsellist").trigger("blur").attr("selectedIndex", -1);
170            checkButtons();
171            hideIPList();
172          } ) ;
173        $("html,input").css({cursor:"default"});
174        $("input:text").css({cursor:"text"});
175      }
176    );
177  }
178
179  function hideIPList()
180  {
181    $("#iplist").css({visibility:"hidden"});
182  }
183
184</script>
185{/literal}
186
187<form method="post" action="" class="general">
188  <fieldset >
189    <legend>{'AStat_config_colors_and_graph'|@translate}</legend>
190
191    <table class="formtable"  >
192      <tr>
193        <td>{'AStat_BarColor_Pages'|@translate}</td>
194        <td>
195          <input type="text" name="f_AStat_BarColor_Pages" value="{$datas.f_AStat_BarColor_Pages}" maxlength=6 id="idz1" onkeyup="change_color('idz1', 'ids1');change_color('idz1', 'ids4')" />
196        </td>
197        <td>
198          <div id="ids1" style="display:block;width:15px;height:15px;border:0px;background-color:#{$datas.f_AStat_BarColor_Pages};"/>
199        </td>
200      </tr>
201
202      <tr>
203        <td>{'AStat_BarColor_Img'|@translate}</td>
204        <td>
205          <input type="text" name="f_AStat_BarColor_Img" value="{$datas.f_AStat_BarColor_Img}" maxlength=6 id="idz2" onkeyup="change_color('idz2', 'ids2')"/>
206        </td>
207        <td>
208          <div id="ids2" style="display:block;width:15px;height:15px;border:0px;background-color:#{$datas.f_AStat_BarColor_Img}"/>
209        </td>
210      </tr>
211
212      <tr>
213        <td>{'AStat_BarColor_Cat'|@translate}</td>
214        <td>
215          <input type="text" name="f_AStat_BarColor_Cat" value="{$datas.f_AStat_BarColor_Cat}" maxlength=6 id="idz6" onkeyup="change_color('idz6', 'ids6')"/>
216        </td>
217        <td>
218          <div id="ids6" style="display:block;width:15px;height:15px;border:0px;background-color:#{$datas.f_AStat_BarColor_Cat}"/>
219        </td>
220      </tr>
221
222      <tr>
223        <td>{'AStat_BarColor_IP'|@translate}</td>
224        <td>
225          <input type="text" name="f_AStat_BarColor_IP" value="{$datas.f_AStat_BarColor_IP}" maxlength=6 id="idz3" onkeyup="change_color('idz3', 'ids3')"/>
226        </td>
227        <td>
228          <div id="ids3" style="display:block;width:15px;height:15px;border:0px;background-color:#{$datas.f_AStat_BarColor_IP}"/>
229        </td>
230      </tr>
231
232      <tr>
233        <td>{'AStat_MouseOverColor'|@translate}</td>
234        <td>
235          <input type="text" name="f_AStat_MouseOverColor" value="{$datas.f_AStat_MouseOverColor}" maxlength=6 id="idz5" onkeyup="change_color('idz5', 'ids5')"/>
236        </td>
237        <td>
238          <div id="ids5" style="display:block;width:15px;height:15px;border:0px;background-color:#{$datas.f_AStat_MouseOverColor}"/>
239        </td>
240      </tr>
241
242      <tr>
243        <td>{'AStat_MaxBarWidth'|@translate}</td>
244        <td>
245          <input type="text" name="f_AStat_MaxBarWidth" value="{$datas.f_AStat_MaxBarWidth}" maxlength=4 id="idz4" onkeyup="change_width('idz4', 'ids4')"/>
246        </td>
247        <td>
248          <div id="ids4" style="display:block;width:{$datas.f_AStat_MaxBarWidth}px;height:8px;top:3px;border:0px;background-color:#{$datas.f_AStat_BarColor_Pages}"/>
249        </td>
250      </tr>
251    </table>
252
253  </fieldset>
254
255
256  <fieldset>
257    <legend>{'AStat_specific_period_config'|@translate}</legend>
258    <table class="formtable">
259      <tr>
260        <td>{'AStat_PeriodPerDefault'|@translate}</td>
261        <td>
262          <select name="f_AStat_default_period">
263            {html_options values=$AStat_periods_list_values output=$AStat_periods_list_labels selected=$datas.AStat_periods_selected}
264          </select>
265        </td>
266      </tr>
267    </table>
268  </fieldset>
269
270
271  <fieldset>
272    <legend>{'AStat_specific_ip_config'|@translate}</legend>
273    <table class="formtable">
274      <tr>
275        <td>{'AStat_NbIPPerPages'|@translate}</td>
276        <td colspan="2"><input type="text" name="f_AStat_NpIPPerPages" value="{$datas.f_AStat_NpIPPerPages}" maxlength=4/></td>
277      </tr>
278
279      <tr>
280        <td>{'AStat_DefaultSortIP'|@translate}</td>
281        <td colspan="2">
282          <select name="f_AStat_DefaultSortIP">
283            {html_options values=$AStat_defaultsortip_list_values output=$AStat_defaultsortip_list_labels selected=$datas.AStat_defaultsortip_selected}
284          </select>
285        </td>
286      </tr>
287
288      <tr>
289        <td>{'AStat_BlackListedIP'|@translate}</td>
290        <td>
291          <input type="text" size="15" id="iaddblackip" style="width:200px;" autocomplete="off"/>
292          <input type="hidden" id="iblacklistedip" name="f_AStat_BlackListedIP" value="{$datas.f_AStat_BlackListedIP}"/>
293          <div id="iplist"></div>
294        </td>
295        <td>
296          <input type="button" value="{'AStat_AddIP'|@translate}" id="iaddipbutton" onclick="addIP();"/>
297        </td>
298      </tr>
299      <tr>
300        <td>&nbsp;</td>
301        <td>
302         <select multiple size="4" id="iblacklistip" style="width:200px;height:150px;">
303         </select>
304        </td>
305        <td>
306         <input type="button" value="{'AStat_DelIP'|@translate}" id="idelipbutton" onclick="delIP();"/>
307        </td>
308      </tr>
309
310
311
312    </table>
313  </fieldset>
314
315  <fieldset>
316    <legend>{'AStat_specific_category_config'|@translate}</legend>
317    <table class="formtable">
318      <tr>
319        <td>{'AStat_NbCatPerPages'|@translate}</td>
320        <td><input type="text" name="f_AStat_NpCatPerPages" value="{$datas.f_AStat_NpCatPerPages}" maxlength=4/></td>
321      </tr>
322
323      <tr>
324        <td>{'AStat_ShowThumbCat'|@translate}</td>
325        <td>
326          <select name="f_AStat_ShowThumbCat">
327            {html_options values=$AStat_yesno_list_values output=$AStat_yesno_list_labels selected=$datas.AStat_showthumbcat_selected}
328          </select>
329        </td>
330      </tr>
331
332      <tr>
333        <td>{'AStat_DefaultSortCat'|@translate}</td>
334        <td>
335          <select name="f_AStat_DefaultSortCat">
336            {html_options values=$AStat_defaultsortcat_list_values output=$AStat_defaultsortcat_list_labels selected=$datas.AStat_defaultsortcat_selected}
337          </select>
338        </td>
339      </tr>
340    </table>
341  </fieldset>
342
343  <fieldset>
344    <legend>{'AStat_specific_image_config'|@translate}</legend>
345    <table class="formtable">
346      <tr>
347        <td>{'AStat_NbImgPerPages'|@translate}</td>
348        <td>
349          <input type="text" name="f_AStat_NbImgPerPages" value="{$datas.f_AStat_NbImgPerPages}" maxlength=4/>
350        </td>
351      </tr>
352
353      <tr>
354        <td>{'AStat_ShowThumbImg'|@translate}</td>
355        <td>
356          <select name="f_AStat_ShowThumbImg">
357            {html_options values=$AStat_yesno_list_values output=$AStat_yesno_list_labels selected=$datas.AStat_showthumbimg_selected}
358          </select>
359        </td>
360      </tr>
361
362      <tr>
363        <td>{'AStat_DefaultSortImg'|@translate}</td>
364        <td>
365          <select name="f_AStat_DefaultSortImg">
366            {html_options values=$AStat_defaultsortimg_list_values output=$AStat_defaultsortimg_list_labels selected=$datas.AStat_defaultsortimg_selected}
367          </select>
368        </td>
369      </tr>
370    </table>
371  </fieldset>
372
373  <p>
374    <input type="submit" value="{'AStat_do_save'|@translate}" name="submit"/>
375  </p>
376
377</form>
378
379<script type="text/javascript">
380  init();
381</script>
382
Note: See TracBrowser for help on using the repository browser.