====== 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/