[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/etemplate/js/ -> etemplate.js (source)

   1  /**************************************************************************\
   2  * eGroupWare - EditableTemplates - javascript support functions            *
   3  * http://www.egroupware.org                                                *
   4  * Written by Ralf Becker <RalfBecker@outdoor-training.de>                  *
   5  * --------------------------------------------                             *
   6  *  This program is free software; you can redistribute it and/or modify it *
   7  *  under the terms of the GNU General Public License as published by the   *
   8  *  Free Software Foundation; either version 2 of the License, or (at your  *
   9  *  option) any later version.                                              *
  10  \**************************************************************************/
  11  
  12  /* $Id: etemplate.js 20333 2006-02-28 17:04:27Z ralfbecker $ */
  13  
  14  function submitit(form,name)
  15  {
  16      //alert(name+' pressed');
  17      form.submit_button.value = name;
  18      form.submit();
  19      return false;
  20  }
  21  
  22  function set_element(form,name,value)
  23  {
  24      //alert('set_element: '+name+'='+value);
  25      for (i = 0; i < form.length; i++)
  26      {
  27          if (form.elements[i].name == name)
  28          {
  29              //alert('set_element: '+name+'='+value);
  30              form.elements[i].value = value;
  31              //alert(name+'='+form.elements[i].value);
  32          }
  33      }
  34  }
  35  
  36  function set_element2(form,name,vname)
  37  {
  38      //alert('set_element2: '+name+'='+vname);
  39      for (i = 0; i < form.length; i++)
  40      {
  41          if (form.elements[i].name == vname)
  42          {
  43              value = form.elements[i].value;
  44          }
  45      }
  46      //alert('set_element2: '+name+'='+value);
  47      for (i = 0; i < form.length; i++)
  48      {
  49          if (form.elements[i].name == name)
  50          {
  51              form.elements[i].value = value;
  52          }
  53      }
  54  }
  55  
  56  function activate_tab(tab,all_tabs,name)
  57  {
  58      var tabs = all_tabs.split('|');
  59      var parts = tab.split('.');
  60      var last_part = parts.length-1;
  61      
  62      for (n = 0; n < tabs.length; n++)
  63      {
  64          var t = tabs[n];
  65  
  66          if (t.indexOf('.') < 0 && parts.length > 1) 
  67          {
  68              parts[last_part] = t;
  69              t = parts.join('.');
  70          }
  71          document.getElementById(t).style.display = t == tab ? 'inline' : 'none';
  72          document.getElementById(t+'-tab').className = 'etemplate_tab'+(t == tab ? '_active th' : ' row_on');
  73      }
  74      if (name) {
  75          set_element(document.eTemplate,name,tab);
  76      }
  77  }
  78  
  79  /* proxy to to add options to a selectbox, needed by IE, but works everywhere */
  80  function selectbox_add_option(id,label,value,do_onchange)
  81  {
  82      selectBox = document.getElementById(id);
  83      /*alert('selectbox_add_option('+id+','+label+','+value+') '+selectBox);*/
  84      var search_val = value.split(':');
  85      for (i=0; i < selectBox.length; i++) {
  86          var selectvalue = selectBox.options[i].value.split(':');
  87          if (selectvalue[0] == search_val[0]) {
  88              selectBox.options[i] = null;
  89              selectBox.options[selectBox.length] = new Option(label,value,false,true);
  90              break;
  91          }
  92      }
  93      if (i >= selectBox.length) {
  94          selectBox.options[selectBox.length] = new Option(label,value,false,true);
  95      }
  96      if (selectBox.onchange && do_onchange) selectBox.onchange();
  97  }
  98  
  99  /* toggles all checkboxes named name in form form, to be used as custom javascript in onclick of a button/image */
 100  function toggle_all(form,name)
 101  {
 102      var all_set = true;
 103      
 104      /* this is for use with a sub-grid. To use it pass "true" as third parameter */
 105      if(toggle_all.arguments.length > 2 && toggle_all.arguments[2] == true)
 106      {
 107          el = form.getElementsByTagName("input");
 108          for (var i = 0; i < el.length; i++)
 109          {
 110              if(el[i].name.substr(el[i].name.length-12,el[i].name.length) == '[checkbox][]' && el[i].checked)
 111              {
 112                      all_set = false;
 113                      break;
 114              }
 115          }
 116          for (var i = 0; i < el.length; i++)
 117          {
 118              if(el[i].name.substr(el[i].name.length-12,el[i].name.length) == '[checkbox][]')
 119              {
 120                  el[i].checked = all_set;
 121              }
 122          }
 123      }
 124      else
 125      {
 126          for (var i = 0; i < form.elements[name].length; i++)
 127          {
 128              if (!form.elements[name][i].checked)
 129              {
 130                  all_set = false;
 131                  break;
 132              }
 133          }
 134          for (var i = 0; i < form.elements[name].length; i++)
 135          {
 136              form.elements[name][i].checked = !all_set;
 137          }
 138      }
 139  }
 140  
 141  /* gets the values of the named widgets (use the etemplate-name, not the form-name) and creates an url from it */
 142  function values2url(form,names)
 143  {
 144      url = '';
 145      names = names.split(',');
 146      for(i=0; i < names.length; i++)
 147      {
 148          form_name = names[i];
 149          b = form_name.indexOf('[');
 150          if (b < 0) {
 151              form_name = 'exec['+form_name+']';
 152          } else {
 153              form_name = 'exec['+form_name.slice(0,b-1)+']'+form_name.slice(b,99);
 154          }
 155          //alert('Searching for '+form_name);
 156          for (f=0; f < form.elements.length; f++) {
 157              element = form.elements[f];
 158              //alert('checking '+element.name);
 159              if (element.name.slice(0,form_name.length) == form_name) {
 160                  //alert('found '+element.name+', value='+element.value);
 161                  if (element.type == 'checkbox' || element.type == 'radio') {    // checkbox or radio
 162                      if (element.checked) url += '&'+element.name+'='+element.value;
 163                  } else if (element.options) {    // selectbox
 164                      for(opt=0; opt < element.options.length; opt++) {
 165                          //alert('found '+element.name+' option['+opt+'] = '+element.options[opt].value+ ' = '.element.options[opt].text+': '+element.options[opt].selected);
 166                          if (element.options[opt].selected) url += '&'+element.name+(element.name.indexOf('[]') >= 0 || !element.multiple ? '=' : '[]=')+element.options[opt].value;
 167                      }
 168                  } else if (element.value != null) {
 169                      url += '&'+element.name+'='+element.value;
 170                  }
 171              }
 172          }
 173      }
 174      //alert('url='+url);
 175      return url+'&etemplate_exec_id='+form['etemplate_exec_id'].value;
 176  }
 177  
 178  // sets value (v) of style property (p) for all given elements of type (t) and class (c)
 179  // eg. set_style_by_class('td','hide','visibility','visible')
 180  function set_style_by_class(t,c,p,v)
 181  {
 182      //alert('set_style_by_class('+t+','+c+','+p+','+v+')');
 183      var elements;
 184      if(t == '*') {
 185          // '*' not supported by IE/Win 5.5 and below
 186          elements = (document.all) ? document.all : document.getElementsByTagName('*');
 187      } else {
 188          elements = document.getElementsByTagName(t);
 189      }
 190      for(var i = 0; i < elements.length; i++){
 191          var node = elements.item(i);
 192          for(var j = 0; j < node.attributes.length; j++) {
 193              if(node.attributes.item(j).nodeName == 'class') {
 194                  if(node.attributes.item(j).nodeValue == c) {
 195                      eval('node.style.' + p + " = '" +v + "'");
 196                  }
 197              }
 198          }
 199      }
 200  }


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7