Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
sdk:customized-web-gui-extension-display-and-change-custom-config-paramters [2014/12/17 23:05] – created fachetsdk:customized-web-gui-extension-display-and-change-custom-config-paramters [2016/08/03 15:31] fachet
Line 1: Line 1:
-<code>+====== WEB GUI Extension & Custom Configuration Parameters ====== 
 +Customized GUI extensions to display and change custom config paramters. 
 + 
 +<code c gui-extension.are>
 /* DESC: This script will generate a page which can be viewed in the Web Manager /* DESC: This script will generate a page which can be viewed in the Web Manager
  * Some custom config vars are displayed and can be changed  * Some custom config vars are displayed and can be changed
Line 11: Line 14:
 template entry {  template entry { 
    name; configvar; value; text;       name; configvar; value; text;   
-   int entry(string n, c, t){ +   int entry(string n, c, t) { 
       this.name = n;        this.name = n; 
       this.configvar = c;        this.configvar = c; 
Line 20: Line 23:
 }; };
  
-fields = mkarray(); +fields = mkarray(); // fill up array  
-fields[fieldcnt=0] = new entry ("server", "custom.var0", "FTP server"); +fields[i=0] = new entry ("server", "custom.var0", "FTP server"); 
-fields[++fieldcnt] = new entry ("serverpath", "custom.var1", "Path"); +fields[++i] = new entry ("serverpath", "custom.var1", "Path"); 
-fields[++fieldcnt] = new entry ("user", "custom.var2", "user"); +fields[++i] = new entry ("user", "custom.var2", "user"); 
-fields[++fieldcnt] = new entry ("password", "custom.var3", "Password"); +fields[++i] = new entry ("password", "custom.var3", "Password"); 
-fields[++fieldcnt] = new entry ("remove", "custom.var4", "Remove after upload (y/n)");+fields[++i] = new entry ("remove", "custom.var4", "Remove after upload (y/n)");
  
-while (1) { +for (;;) { 
-   if(!is_void(request = nb_page_request(page))) { +   if (request = nb_page_request(page)) { 
-      post = struct_get(request, "POST");+      post = struct_get(request, "POST"); // is empty on GET
       for (i = 0; i < length(post); i++) // get POST parameters and store in array and config        for (i = 0; i < length(post); i++) // get POST parameters and store in array and config 
          nb_config_set(sprintf("%s=%s", fields[i].configvar, fields[i].value = post[i].value));          nb_config_set(sprintf("%s=%s", fields[i].configvar, fields[i].value = post[i].value));
 +
       nb_page_respond(page, '<form action="sdkPage.php?id=%08X" method="post">', ID);           nb_page_respond(page, '<form action="sdkPage.php?id=%08X" method="post">', ID);    
       for (i = 0; i < length(fields); i++) // show all fields with actual value       for (i = 0; i < length(fields); i++) // show all fields with actual value
Line 40: Line 44:
 } }
  
 +</code>
 +
 +{{:sdk:gui-extension1.jpg|}}
 +
 +{{:sdk:gui-extension2.jpg|}}
 +
 +
 +Entering data into the fields:
 +
 +----
 +{{:sdk:gui-extension3.jpg|}}
 +----
 +will store the data in the user configuration paramters for further use:
 +<code>
 +custom.var0=ftp.myserver.com
 +custom.var1=myfile.txt
 +custom.var2=admin
 +custom.var3=adminpassword
 +custom.var4=n
 +</code>
 +
 +In general following configuration parameters are free to use for customer applications (see router /etc/config/factory-config.cfg):
 +<code>
 +
 +# custom 
 +custom.status                                   =
 +custom.var0                                     =
 +custom.var1                                     =
 +custom.var2                                     =
 +custom.var3                                     =
 +custom.var4                                     =
 +
 +# custom table0
 +custom.table0.0.var0                            =
 +custom.table0.0.var1                            =
 +custom.table0.0.var2                            =
 +custom.table0.0.var3                            =
 +custom.table0.0.var4                            =
 +custom.table0.1.var0                            =
 +custom.table0.1.var1                            =
 +custom.table0.1.var2                            =
 +custom.table0.1.var3                            =
 +custom.table0.1.var4                            =
 +
 +# custom table1
 +custom.table1.0.var0                            =
 +custom.table1.0.var1                            =
 +custom.table1.0.var2                            =
 +custom.table1.0.var3                            =
 +custom.table1.0.var4                            =
 +custom.table1.1.var0                            =
 +custom.table1.1.var1                            =
 +custom.table1.1.var2                            =
 +custom.table1.1.var3                            =
 +custom.table1.1.var4                            =
 +
 +# custom table2
 +custom.table2.0.var0                            =
 +custom.table2.0.var1                            =
 +custom.table2.0.var2                            =
 +custom.table2.0.var3                            =
 +custom.table2.0.var4                            =
 +custom.table2.1.var0                            =
 +custom.table2.1.var1                            =
 +custom.table2.1.var2                            =
 +custom.table2.1.var3                            =
 +custom.table2.1.var4                            =
 +custom.table2.2.var0                            =
 +custom.table2.2.var1                            =
 +custom.table2.2.var2                            =
 +custom.table2.2.var3                            =
 +custom.table2.2.var4                            =
 +custom.table2.3.var0                            =
 +custom.table2.3.var1                            =
 +custom.table2.3.var2                            =
 +custom.table2.3.var3                            =
 +custom.table2.3.var4                            =
 +custom.table2.4.var0                            =
 +custom.table2.4.var1                            =
 +custom.table2.4.var2                            =
 +custom.table2.4.var3                            =
 +custom.table2.4.var4                            =
 +custom.table2.5.var0                            =
 +custom.table2.5.var1                            =
 +custom.table2.5.var2                            =
 +custom.table2.5.var3                            =
 +custom.table2.5.var4                            =
 +custom.table2.6.var0                            =
 +custom.table2.6.var1                            =
 +custom.table2.6.var2                            =
 +custom.table2.6.var3                            =
 +custom.table2.6.var4                            =
 +custom.table2.7.var0                            =
 +custom.table2.7.var1                            =
 +custom.table2.7.var2                            =
 +custom.table2.7.var3                            =
 +custom.table2.7.var4                            =
 </code> </code>