| 
									
										
										
										
											2020-10-10 19:26:30 -06:00
										 |  |  | /* This Source Code Form is subject to the terms of the Mozilla Public | 
					
						
							|  |  |  |  * License, v. 2.0. If a copy of the MPL was not distributed with this | 
					
						
							|  |  |  |  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var $$ = Dom7; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Detect platform and run platform-specific setup code
 | 
					
						
							|  |  |  | // for Cordova, NW.js, or the browser
 | 
					
						
							|  |  |  | initPlatform(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var app = new Framework7({ | 
					
						
							|  |  |  |     root: "#app", | 
					
						
							| 
									
										
										
										
											2021-01-22 12:06:20 -07:00
										 |  |  |     name: "Helena Express", | 
					
						
							|  |  |  |     id: "com.netsyms.helenaexpress.app", | 
					
						
							| 
									
										
										
										
											2021-01-23 17:26:54 -07:00
										 |  |  |     theme: "auto", | 
					
						
							| 
									
										
										
										
											2020-10-10 19:26:30 -06:00
										 |  |  |     card: { | 
					
						
							|  |  |  |         swipeToClose: false | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     popup: { | 
					
						
							|  |  |  |         backdrop: true | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     popover: { | 
					
						
							|  |  |  |         backdrop: true | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     init: true, | 
					
						
							|  |  |  |     initOnDeviceReady: false, | 
					
						
							|  |  |  |     routes: routes | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var mainView = app.views.create('.view-main', { | 
					
						
							|  |  |  |     url: "/", | 
					
						
							|  |  |  |     animate: true | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var router = mainView.router; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function restartApplication() { | 
					
						
							|  |  |  |     window.location = "index.html"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | router.on("pageInit", function (pagedata) { | 
					
						
							|  |  |  |     pagedata.$el.find('script').each(function (el) { | 
					
						
							|  |  |  |         if ($$(this).attr('src')) { | 
					
						
							|  |  |  |             var s = document.createElement('script'); | 
					
						
							|  |  |  |             s.src = $$(this).attr('src'); | 
					
						
							|  |  |  |             $$('head').append(s); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             eval($$(this).text()); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     // Stop text selection from popping a system toolbar even after changing pages
 | 
					
						
							|  |  |  |     if (window.getSelection) { | 
					
						
							|  |  |  |         window.getSelection().removeAllRanges(); | 
					
						
							|  |  |  |     } else if (document.selection) { | 
					
						
							|  |  |  |         document.selection.empty(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Perform back button behavior. | 
					
						
							|  |  |  |  * Call this function whenever the equivalent to the Android back button is pressed. | 
					
						
							|  |  |  |  * @returns {undefined} | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function handleBackButton() { | 
					
						
							|  |  |  |     // Close map sheet if it's open
 | 
					
						
							|  |  |  |     if ($(".sheet-modal").hasClass("modal-in")) { | 
					
						
							|  |  |  |         app.sheet.close(); | 
					
						
							|  |  |  |     } else if ($(".searchbar-enabled")[0]) { | 
					
						
							|  |  |  |         app.searchbar.disable(); | 
					
						
							|  |  |  |     } else if (scanningBarcode) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |         router.back({force: true, ignoreCache: true}); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     // Stop text selection from popping a system toolbar even after changing pages
 | 
					
						
							|  |  |  |     if (window.getSelection) { | 
					
						
							|  |  |  |         window.getSelection().removeAllRanges(); | 
					
						
							|  |  |  |     } else if (document.selection) { | 
					
						
							|  |  |  |         document.selection.empty(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $(document).keyup(function (e) { | 
					
						
							|  |  |  |     if (e.key === "Escape" || e.keyCode == 27) { | 
					
						
							|  |  |  |         handleBackButton(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | router.on("routeChange", function (newRoute) { | 
					
						
							|  |  |  |     console.log("Info", "Navigating to ", newRoute.path); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function setAppTheme(theme) { | 
					
						
							|  |  |  |     if (theme == "light") { | 
					
						
							|  |  |  |         $("#app").removeClass("theme-dark"); | 
					
						
							| 
									
										
										
										
											2021-01-22 19:17:19 -07:00
										 |  |  |         if (platform_type == "cordova" && typeof StatusBar !== 'undefined') { | 
					
						
							| 
									
										
										
										
											2021-01-22 12:26:07 -07:00
										 |  |  |             StatusBar.styleDefault(); | 
					
						
							| 
									
										
										
										
											2021-01-22 19:17:19 -07:00
										 |  |  |             StatusBar.backgroundColorByHexString("#d0f2fc"); | 
					
						
							| 
									
										
										
										
											2020-10-10 19:26:30 -06:00
										 |  |  |         } | 
					
						
							|  |  |  |     } else if (theme == "dark") { | 
					
						
							|  |  |  |         $("#app").addClass("theme-dark"); | 
					
						
							| 
									
										
										
										
											2021-01-22 19:17:19 -07:00
										 |  |  |         if (platform_type == "cordova" && typeof StatusBar !== 'undefined') { | 
					
						
							| 
									
										
										
										
											2020-10-10 19:26:30 -06:00
										 |  |  |             StatusBar.styleLightContent(); | 
					
						
							|  |  |  |             StatusBar.backgroundColorByHexString("#000000"); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function applyColorTheme() { | 
					
						
							|  |  |  |     if (getStorage("apptheme") == "dark") { | 
					
						
							|  |  |  |         setAppTheme("dark"); | 
					
						
							|  |  |  |     } else if (getStorage("apptheme") == "light") { | 
					
						
							|  |  |  |         setAppTheme("light"); | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |         setAppTheme(appTheme); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Turn animations on or off. | 
					
						
							|  |  |  |  * @param {boolean} on true for on, false for off. | 
					
						
							|  |  |  |  * @returns {undefined} | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function toggleAnimations(on) { | 
					
						
							|  |  |  |     if (on) { | 
					
						
							|  |  |  |         $("#app").removeClass("no-animation"); | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |         $("#app").addClass("no-animation"); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     mainView.params.animate = on; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Turn animations on or off while considering user preferences. | 
					
						
							|  |  |  |  * @param boolean enabled true to enable, false to disable, undefined to use animation=on/off setting. | 
					
						
							|  |  |  |  * @returns {undefined} | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function setAnimations(enabled) { | 
					
						
							|  |  |  |     if (getStorage("animation") == null) { | 
					
						
							|  |  |  |         setStorage("animation", "auto"); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (typeof enabled !== "undefined") { | 
					
						
							|  |  |  |         toggleAnimations(enabled == true); | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (getStorage("animation") == "off") { | 
					
						
							|  |  |  |         toggleAnimations(false); | 
					
						
							|  |  |  |     } else if (getStorage("animation") == "on") { | 
					
						
							|  |  |  |         toggleAnimations(true); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | applyColorTheme(); | 
					
						
							|  |  |  | setAnimations(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | router.navigate("/home"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | document.title = SETTINGS.branding.apptitle; |