Difference between revisions of "Custom Command's examples"

From GXtest Wiki
Jump to: navigation, search
Line 41: Line 41:
 
       }
 
       }
 
      
 
      
 +
      /* It must be returned in result variable the value "OK" if the command executed successufuly, or an error description in other case */
 +
      return result;
 +
    }
 +
 +
== Click in multi-level custom menu ==
 +
 +
For example the paramJS could be: 'Padrones ›/Vehículos ›/Escalas ›/Tipos de vehículos';
 +
 +
    function CustomCommand (paramJS, currentGXVersion, currentLanguage)
 +
    {
 +
   
 +
            result = "OK";
 +
            var menuItems = paramJS.split('/');
 +
            for (var menuOrder = 0; menuOrder < menuItems.length; menuOrder++) {
 +
                var menuLevelName = 'menu_level'+(menuOrder+1).toString()+'_text';
 +
                var elems = window.document.getElementsByClassName(menuLevelName);
 +
               
 +
                  for (var i = 0; i < elems.length; i++) {
 +
                          var menuItem = elems[i];
 +
                        if (menuItems.length == (menuOrder+1)){
 +
                            menuItem = elems[i].childNodes[0];               
 +
                        }
 +
                        if (menuItem.innerHTML==menuItems[menuOrder]) {
 +
                          menuItem.click();
 +
                          break;
 +
                        }
 +
                  }       
 +
             
 +
            }   
 
       /* It must be returned in result variable the value "OK" if the command executed successufuly, or an error description in other case */
 
       /* It must be returned in result variable the value "OK" if the command executed successufuly, or an error description in other case */
 
       return result;
 
       return result;
 
     }
 
     }

Revision as of 21:38, 24 October 2013

Spanish.gif
English.gif
link= {{{3}}}

Custom command's examples. Add them directly or use them as a guide.

Compare if a date control has today value

   function CustomCommand (paramJS, currentGXVersion, currentLanguage){
       var day=((new Date().getDate()<10) ? "0" : "")+new Date().getDate(); 
       var month=(new Date().getMonth()+1<10) ? "0" +(new Date().getMonth()+1): new Date().getMonth()+1;
       var year=(((new Date().getFullYear())%100<10) ? "0":"") +(new Date().getFullYear())%100;
       var date_var =month.concat("/".concat(day.concat("/".concat(year))));
       if((paramJS==date_var)){
           result = "OK";
       }else{
           result = "Error, is not today";
       }  
   return result;
   }


Check if an image is broken or missing

   function CustomCommand (paramJS, currentGXVersion, currentLanguage)
   {
   
      result = "OK";
      for (var i = 0; i < window.document.images.length; i++) {
           if (!(window.document.images[i].complete)) {
              result = "ERROR, image with src:"+window.document.images[i].src+" not found";
           }
   
           if (typeof window.document.images[i].naturalWidth != "undefined" && window.document.images[i].naturalWidth == 0) {
              result = "ERROR, image with src:"+window.document.images[i].src+" not found";
           }
   
      }
   
      /* It must be returned in result variable the value "OK" if the command executed successufuly, or an error description in other case */
      return result;
   }

Click in multi-level custom menu

For example the paramJS could be: 'Padrones ›/Vehículos ›/Escalas ›/Tipos de vehículos';

   function CustomCommand (paramJS, currentGXVersion, currentLanguage)
   {
   
           result = "OK";
           var menuItems = paramJS.split('/');
           for (var menuOrder = 0; menuOrder < menuItems.length; menuOrder++) {
               var menuLevelName = 'menu_level'+(menuOrder+1).toString()+'_text';
               var elems = window.document.getElementsByClassName(menuLevelName);
               
                 for (var i = 0; i < elems.length; i++) {
                         var menuItem = elems[i];
                       if (menuItems.length == (menuOrder+1)){
                           menuItem = elems[i].childNodes[0];                
                       }
                       if (menuItem.innerHTML==menuItems[menuOrder]) {
                          menuItem.click();
                          break;
                       }
                 }         
              
           }    
      /* It must be returned in result variable the value "OK" if the command executed successufuly, or an error description in other case */
      return result;
   }