====== Using the Sencha Command to Rebuild Optimized JS code ====== ===== Background ===== * RADIUSdesk uses the ExtJS toolkit for the GUI * The version used is the GPL version 7.0 (The Non-GPL version is already at 7.4) * We assume you have standard install of the Git code of RADIUSdesk. ===== Get the Sencha Command ===== * Go to this URL: https://www.sencha.com/products/extjs/cmd-download/ * Select under the **Installers without JRE Included** the **LINUX 64-BIT** link and download the latest installer. * As the link states, there is no JRE bundled with the installer, you have to install a JRE on your system for the JRE to work correct. * Install a JRE on Ubuntu 20.04 sudo apt install default-jre ===== Install the Sencha Command ===== * Unzip the Sencha Command file unzip SenchaCmd-7.4.0.39-linux-64-no-jre.zip #This is the output #Archive: SenchaCmd-7.4.0.39-linux-64-no-jre.zip # inflating: SenchaCmd-7.4.0.39-linux-amd64.sh * Run the installer shell (using the file which was produced during the unzip) ./SenchaCmd-7.4.0.39-linux-amd64.sh #This might be needed (!=== REPLACE '/home/system' with the user you are logged in as===!) export PATH=$PATH:/home/system/bin/Sencha/Cmd/7.4.0.39 * Depending if you are on a system with some desktop (like Xfe) or without one, the installer will ask you some questions about the install. Just select the defaults to complete the install. * After the install, you should be able to run the Sencha command sencha help ===== Check out the GPL version of ExtJS ===== * A git repo with the GPL version of ExtJS 7.0 is here: https://github.com/tremez/extjs-gpl * Select a working directory where you want to check it out into #As an example cd /home/system/Documents/sencha git clone https://github.com/tremez/extjs-gpl.git extjs-gpl-7.0 ===== Link it to the JS Code ===== * If you have a standard Git install of RADIUSdesk there will be the following folder **/var/www/rdcore/rd** * Create the following symbolic link sudo ln -s /home/system/Documents/sencha/extjs-gpl-7.0 /var/www/rdcore/rd/ext ===== Change the ownership and make create a dev area ===== * We will create a dev area to test our changes and see if they are working. * We assume a user called **system** will edit the files. Change to fit your environment. sudo ln -s /var/www/rdcore/rd /var/www/html/rd_dev sudo chown -R system. /var/www/rdcore sudo chown -R www-data. /var/www/html/cake3/rd_cake/tmp sudo chown -R www-data. /var/www/html/cake3/rd_cake/logs sudo chown -R www-data. /var/www/html/cake3/rd_cake/webroot/img/realms sudo chown -R www-data. /var/www/html/cake3/rd_cake/webroot/img/dynamic_details sudo chown -R www-data. /var/www/html/cake3/rd_cake/webroot/img/dynamic_photos sudo chown -R www-data. /var/www/html/cake3/rd_cake/webroot/img/access_providers sudo chown -R www-data. /var/www/html/cake3/rd_cake/webroot/img/nas sudo chown -R www-data. /var/www/html/cake3/rd_cake/webroot/files/imagecache ===== Confirm everything is working ===== * The following URL will display the non-optimized code * http://127.0.0.1/rd_dev/#dashboard * You can now modify the code and test the changes under that URL * Once you are happy with all your changes its time to optimize the code cd /var/www/rdcore/rd sencha app build production #Note there will be some JRE related warnings... thats normal * After the build it optimised you can reach it here * http://127.0.0.1/rd_dev/build/production/Rd/#dashboard * -OR- * http://127.0.0.1/rd ===== Making your changes 'LIVE' ===== * To serve these latest changes under the document root of Nginx sudo cp -R /var/www/html/rd/* /var/www/html/