Welcome to the nuBuilder Forums!

Register and log in to access exclusive forums and content available only to registered users.

Place to put scripts available anywhere in the app Topic is solved

Questions related to customising nuBuilder Forte with JavaScript or PHP.
Post Reply
yvesf
Posts: 337
Joined: Sun Mar 14, 2021 8:48 am
Location: Geneva
Has thanked: 92 times
Been thanked: 11 times

Place to put scripts available anywhere in the app

Unread post by yvesf »

Hello,

I am trying to put global script in the app. Looking in the setup section, I have put my scripts as below :

Code: Select all

function nuHeaderTest() {
 console.log('Functions placed here are available anywhere in nuBuilder Forte.');

function capitalize(string) {
    return string
        .split('-') // Diviser en cas de noms composés
        .map(word => word.charAt(0).toUpperCase() + word.slice(1)) // Capitaliser chaque mot
        .join('-'); // Rejoindre les mots avec un tiret
}

function capitalizeName(name) {
    // Diviser le nom en mots en utilisant les espaces comme délimiteur
    let words = name.split(' ');
    
    // Mettre tous les mots en majuscules
    for (let i = 0; i < words.length; i++) {
        words[i] = words[i].toUpperCase();
    }
    
    // Joindre les mots ensemble avec un espace
    let capitalizedString = words.join(' ');

    // Diviser le nom en parties en utilisant les tirets comme délimiteur
    let parts = capitalizedString.split('-');

    // Recréer le nom en conservant les tirets à leur position d'origine
    let finalName = '';
    for (let i = 0; i < parts.length; i++) {
        if (i !== 0) {
            finalName += '-';
        }
        finalName += parts[i];
    }

    return finalName;
}


function checkfld(evt, str, mask) {

  var mLn = mask.length;
  var orgstr = str.value;
  var sLn = orgstr.length;  
  var curstr = evt.key
  var validmasks = '#@';
  var charCode = (evt.which) ? evt.which : evt.keyCode

  if (charCode == 8 || charCode == 37 || charCode == 39 || charCode == 35 || charCode == 13|| charCode == 9) {return false;}  
  // if user presses left arrow 8 |backspace 37 |right arrow 39| end 35 | home 36 | del 46 | enter=13 |tab=9
  if (charCode == 46) {str.value = ""; return evt.preventDefault(); }  // if user presses del = delete ALL
  if (charCode == 32) {return evt.preventDefault(); }  // if user presses space
  /* alert(charCode); */

  if (sLn < mLn) {

  var i=0;
  var charmask = mask[sLn+i];

while (!validmasks.includes(charmask)) {   
   str.value = str.value + charmask; 
   if (i>4) {break;}
   i++;
   charmask = mask[sLn+i];
} /* while */   
   
   switch(charmask) {
     case "#":
        if ((curstr >=0) && (curstr <=9)) { return true; 
        } else { return evt.preventDefault(); }
        break;
       
     case "@":
        if ((curstr.toUpperCase() >= "A") && (curstr.toUpperCase() <= "Z")) { return true; 
        } else { return evt.preventDefault(); }
        break;
        
     default:
        return evt.preventDefault(); 
       break;
   } /*switch */     
 
  } else { return evt.preventDefault(); }   /* if sLn < mLn mask length */  
return true;
}


}

// This function will be run after each Edit Form loads.
function nuLoadEditGlobal(formId, formCode) {



}

// This function be run after each Browse Form loads.
function nuLoadBrowseGlobal(formId, formCode) {

}

// This function be run after each Browse and Edit Form loads.
function nuOnLoad(formId, formCode) {

}

// Include external resources:

 </script>

 <!--
 
 <link rel="stylesheet" type="text/css" href="path_to_css.css"/>
 
 <script type="text/javascript" src="path_to_js.js"></script>
 
 -->

 <script>


or

Code: Select all

function nuHeaderTest() {
 console.log('Functions placed here are available anywhere in nuBuilder Forte.');


}

// This function will be run after each Edit Form loads.
function nuLoadEditGlobal(formId, formCode) {


}

// This function be run after each Browse Form loads.
function nuLoadBrowseGlobal(formId, formCode) {

}

// This function be run after each Browse and Edit Form loads.
function nuOnLoad(formId, formCode) {
function capitalize(string) {
    return string
        .split('-') // Diviser en cas de noms composés
        .map(word => word.charAt(0).toUpperCase() + word.slice(1)) // Capitaliser chaque mot
        .join('-'); // Rejoindre les mots avec un tiret
}

function capitalizeName(name) {
    // Diviser le nom en mots en utilisant les espaces comme délimiteur
    let words = name.split(' ');
    
    // Mettre tous les mots en majuscules
    for (let i = 0; i < words.length; i++) {
        words[i] = words[i].toUpperCase();
    }
    
    // Joindre les mots ensemble avec un espace
    let capitalizedString = words.join(' ');

    // Diviser le nom en parties en utilisant les tirets comme délimiteur
    let parts = capitalizedString.split('-');

    // Recréer le nom en conservant les tirets à leur position d'origine
    let finalName = '';
    for (let i = 0; i < parts.length; i++) {
        if (i !== 0) {
            finalName += '-';
        }
        finalName += parts[i];
    }

    return finalName;
}


function checkfld(evt, str, mask) {

  var mLn = mask.length;
  var orgstr = str.value;
  var sLn = orgstr.length;  
  var curstr = evt.key
  var validmasks = '#@';
  var charCode = (evt.which) ? evt.which : evt.keyCode

  if (charCode == 8 || charCode == 37 || charCode == 39 || charCode == 35 || charCode == 13|| charCode == 9) {return false;}  
  // if user presses left arrow 8 |backspace 37 |right arrow 39| end 35 | home 36 | del 46 | enter=13 |tab=9
  if (charCode == 46) {str.value = ""; return evt.preventDefault(); }  // if user presses del = delete ALL
  if (charCode == 32) {return evt.preventDefault(); }  // if user presses space
  /* alert(charCode); */

  if (sLn < mLn) {

  var i=0;
  var charmask = mask[sLn+i];

while (!validmasks.includes(charmask)) {   
   str.value = str.value + charmask; 
   if (i>4) {break;}
   i++;
   charmask = mask[sLn+i];
} /* while */   
   
   switch(charmask) {
     case "#":
        if ((curstr >=0) && (curstr <=9)) { return true; 
        } else { return evt.preventDefault(); }
        break;
       
     case "@":
        if ((curstr.toUpperCase() >= "A") && (curstr.toUpperCase() <= "Z")) { return true; 
        } else { return evt.preventDefault(); }
        break;
        
     default:
        return evt.preventDefault(); 
       break;
   } /*switch */     
 
  } else { return evt.preventDefault(); }   /* if sLn < mLn mask length */  
return true;
}




}

// Include external resources:

 </script>

 <!--
 
 <link rel="stylesheet" type="text/css" href="path_to_css.css"/>
 
 <script type="text/javascript" src="path_to_js.js"></script>
 
 -->

 <script>



It sounds it isn't the right place as it is not available everywhere. Consequence : I put those scripts behind each form which not ideal especially in regards to maintainability as if I have to change this script, I have to duplicate the new one on each form.
What is the recommended approach ?
Many thx,

Yves
kev1n
nuBuilder Team
Posts: 4416
Joined: Sun Oct 14, 2018 6:43 pm
Has thanked: 74 times
Been thanked: 472 times
Contact:

Re: Place to put scripts available anywhere in the app

Unread post by kev1n »

Make sure that your code contains no syntax errors (check the developer console)
yvesf
Posts: 337
Joined: Sun Mar 14, 2021 8:48 am
Location: Geneva
Has thanked: 92 times
Been thanked: 11 times

Re: Place to put scripts available anywhere in the app

Unread post by yvesf »

Kev1n,

When I put this script directly behind the form, it works. What is the recommended approach ? Is it the right place in nuHeader test or in nuOnLoad fonction ? I will follow your recommandations and take a look in the developper console definitely.

Thx

Yves
kev1n
nuBuilder Team
Posts: 4416
Joined: Sun Oct 14, 2018 6:43 pm
Has thanked: 74 times
Been thanked: 472 times
Contact:

Re: Place to put scripts available anywhere in the app

Unread post by kev1n »

You placed your functions within the function nuHeaderTest() an therefore they are not accessible/visible.

Give this a go:

Code: Select all

function nuHeaderTest() {
    console.log('Functions placed here are available anywhere in nuBuilder Forte.');
}

function capitalize(string) {
    return string
    .split('-') // Diviser en cas de noms composés
    .map(word => word.charAt(0).toUpperCase() + word.slice(1)) // Capitaliser chaque mot
    .join('-'); // Rejoindre les mots avec un tiret
}

function capitalizeName(name) {
    // Diviser le nom en mots en utilisant les espaces comme délimiteur
    let words = name.split(' ');

    // Mettre tous les mots en majuscules
    for (let i = 0; i < words.length; i++) {
        words[i] = words[i].toUpperCase();
    }

    // Joindre les mots ensemble avec un espace
    let capitalizedString = words.join(' ');

    // Diviser le nom en parties en utilisant les tirets comme délimiteur
    let parts = capitalizedString.split('-');

    // Recréer le nom en conservant les tirets à leur position d'origine
    let finalName = '';
    for (let i = 0; i < parts.length; i++) {
        if (i !== 0) {
            finalName += '-';
        }
        finalName += parts[i];
    }

    return finalName;
}

function checkfld(evt, str, mask) {

    var mLn = mask.length;
    var orgstr = str.value;
    var sLn = orgstr.length;
    var curstr = evt.key
        var validmasks = '#@';
    var charCode = (evt.which) ? evt.which : evt.keyCode

    if (charCode == 8 || charCode == 37 || charCode == 39 || charCode == 35 || charCode == 13 || charCode == 9) {
        return false;
    }
    // if user presses left arrow 8 |backspace 37 |right arrow 39| end 35 | home 36 | del 46 | enter=13 |tab=9
    if (charCode == 46) {
        str.value = "";
        return evt.preventDefault();
    } // if user presses del = delete ALL
    if (charCode == 32) {
        return evt.preventDefault();
    } // if user presses space
    /* alert(charCode); */

    if (sLn < mLn) {

        var i = 0;
        var charmask = mask[sLn + i];
        while (!validmasks.includes(charmask)) {
            str.value = str.value + charmask;
            if (i > 4) {
                break;
            }
            i++;
            charmask = mask[sLn + i];
        } /* while */

        switch (charmask) {
        case "#":
            if ((curstr >= 0) && (curstr <= 9)) {
                return true;
            } else {
                return evt.preventDefault();
            }
            break;

        case "@":
            if ((curstr.toUpperCase() >= "A") && (curstr.toUpperCase() <= "Z")) {
                return true;
            } else {
                return evt.preventDefault();
            }
            break;

        default:
            return evt.preventDefault();
            break;
        } /*switch */

    } else {
        return evt.preventDefault();
    } /* if sLn < mLn mask length */
    return true;
}


// This function will be run after each Edit Form loads.
function nuLoadEditGlobal(formId, formCode) {}

// This function be run after each Browse Form loads.
function nuLoadBrowseGlobal(formId, formCode) {}

// This function be run after each Browse and Edit Form loads.
function nuOnLoad(formId, formCode) {}

// Include external resources:


 <  / script >

 < !--

 < link rel = "stylesheet" type = "text/css" href = "path_to_css.css" /  >

     < script type = "text/javascript" src = "path_to_js.js" >  <  / script >

    -- >

    < script >
Post Reply