parent
70a4e9fa08
commit
5006a09f11
@ -0,0 +1,13 @@ |
||||
PageNotFound.prototype.Main = function () { |
||||
$('#404-modal').modal('setting', 'closable', false).modal('show'); |
||||
}; |
||||
|
||||
function gotoDash() { |
||||
$('#404-modal').modal('hide'); |
||||
router.navigate('Testing/Bob'); |
||||
} |
||||
|
||||
function goBack() { |
||||
$('#404-modal').modal('hide'); |
||||
history.back(); |
||||
} |
||||
@ -0,0 +1,6 @@ |
||||
Testing.prototype.Main = function() { |
||||
let dp = new tts.DeferredPromise(); |
||||
alert("HI"); |
||||
dp.resolve("All Done"); |
||||
return dp; |
||||
}; |
||||
@ -0,0 +1,188 @@ |
||||
/* Was this Asset loaded yet, and did the PHP Footer file find this Asset */ |
||||
function doesAssetExists(filename) { |
||||
let dfd = new tts.DeferredPromise(); |
||||
if ( hasLoaded(filename) === true ) { |
||||
dfd.resolve("loaded"); |
||||
return dfd; |
||||
} |
||||
var exists = false; |
||||
for (i = 0; i < assets_files.length; i++) { |
||||
if (filename == assets_files[i].filename) { |
||||
debug_print('Loading: ' + filename) |
||||
dfd.resolve(assets_files[i].ts); |
||||
include_once_files.push(filename); |
||||
exists = true; |
||||
break; |
||||
} |
||||
} |
||||
if (exists === false) { |
||||
dfd.reject("skipped"); |
||||
} |
||||
return dfd; |
||||
} |
||||
/** |
||||
* @todo Finsh this FN |
||||
*/ |
||||
/* Helper method to apply CSS dynamicly */ |
||||
function apply_css(href, version) { |
||||
var dfd_css = new tts.DeferredPromise(); |
||||
tts.getAsset({name: href, path: ajax_folder, ts: version}).then(val=>{ |
||||
dfd_css.resolve("Loaded CSS"); |
||||
}).catch(function (err) { |
||||
dfd_css.reject(err); |
||||
}); |
||||
return dfd_css; |
||||
} |
||||
|
||||
/* Run Main method on Class File */ |
||||
function do_run_main(obj, req) { |
||||
var dfd_run_main = new tts.DeferredPromise(); |
||||
if (obj['Main']) { |
||||
tts.when([obj['Main']()]).then(function () { |
||||
debug_print(obj.constructor.name + ' Main complete'); |
||||
dfd_run_main.resolve("Main_ajax_complete"); |
||||
}); |
||||
} else { |
||||
debug_print(obj.constructor.name + " MAIN FN not found!"); |
||||
dfd_run_main.reject('Main FN not found!'); |
||||
} |
||||
return dfd_run_main; |
||||
} |
||||
|
||||
/* This will Run JS code for Tabs! */ |
||||
function do_run(obj, req) { |
||||
var dfd_run = new tts.DeferredPromise(); |
||||
if (obj[req.params.tab]) { |
||||
tts.when([obj[req.params.tab]()]).then(function () { |
||||
debug_print(obj.constructor.name + ' ' + req.params.tab + ' complete'); |
||||
dfd_run.resolve("fn_ajax_complete"); |
||||
}); |
||||
} else if ( is_404(req.params.tab) ) { |
||||
console.log(obj.constructor.name + " " + req.params.tab + " tab FN not found!"); |
||||
do_404_page(); |
||||
dfd_run.reject('FN not found!');
|
||||
} else { |
||||
dfd_run.resolve("empty_page"); /* Known empty page */ |
||||
} |
||||
return dfd_run; |
||||
} |
||||
|
||||
/* Just checks if file has been loaded once yet */ |
||||
var include_once_files = []; |
||||
function hasLoaded(file) { |
||||
if (include_once_files.indexOf(file) === -1) { |
||||
return false; |
||||
} else { |
||||
return true; |
||||
} |
||||
} |
||||
|
||||
/* JS Loader */ |
||||
function loadJS(scriptFile, version, obj, req, fn) { |
||||
var method_fn = window[fn]; |
||||
var dfd_loadjs = new tts.DeferredPromise(); |
||||
|
||||
tts.getAsset({name: scriptFile + version, path: ajax_folder, ts: version}).then(val=>{ |
||||
tts.when([method_fn(obj, req)]).then(function() { |
||||
dfd_loadjs.resolve("js_complete"); |
||||
}).catch(function (exception) { |
||||
method_fn(obj, req); |
||||
dfd_loadjs.reject('Something went wrong'); |
||||
console.warn("Something went wrong: " + exception);
|
||||
}); |
||||
return dfd_loadjs;
|
||||
}); |
||||
} |
||||
|
||||
/* Does Class StartUp, CSS, and JS - After Main JS has completed loading... */ |
||||
function do_other_FN(obj, req) { |
||||
var className = obj.constructor.name; |
||||
if (obj['StartUp']) { |
||||
obj['StartUp'](); |
||||
} |
||||
var Script_File = className + "-" + req.params.tab + ".js"; |
||||
var CSS_File = className + "-" + req.params.tab + ".css"; |
||||
var MainCSS_File = className + "-Main.css";
|
||||
var dfdScript = doesAssetExists(Script_File); |
||||
dfdScript.then(function (versionNumber) { |
||||
if (versionNumber === 'loaded') { |
||||
do_run(obj, req); |
||||
} else { |
||||
loadJS(Script_File, versionNumber, obj, req, 'do_run'); |
||||
} |
||||
}).catch(function (err) { |
||||
do_run(obj, req); |
||||
}); |
||||
|
||||
var Main_dfd_CSS = doesAssetExists(MainCSS_File); |
||||
Main_dfd_CSS.then(function (versionNumber) { |
||||
if (versionNumber !== 'loaded') { |
||||
var applied_main_css = apply_css(MainCSS_File, versionNumber); |
||||
tts.when([applied_main_css]).then(function() { |
||||
Main_dfd_CSS.resolve("Added main css"); |
||||
}); |
||||
} |
||||
}).catch(function (err) { |
||||
Main_dfd_CSS.reject(err); |
||||
}); |
||||
|
||||
var dfdCSS = doesAssetExists(CSS_File); |
||||
dfdCSS.then(function (versionNumber) { |
||||
if (versionNumber !== 'loaded') { |
||||
var applied_css = apply_css(CSS_File, versionNumber); |
||||
tts.when([applied_main_css]).then(function() { |
||||
dfdCSS.resolve("Added CSS"); |
||||
}); |
||||
} |
||||
}).catch(function (err) { |
||||
dfdCSS.reject(err); |
||||
}); |
||||
} |
||||
|
||||
/* This is the core loader for Tabs and Main Route */ |
||||
var cloneObject = {}; |
||||
function do_tabs(className, req) { |
||||
var myclass = window[className]; |
||||
var obj = new myclass(req); |
||||
cloneObject = obj; |
||||
var MainScript_File = className + "-Main.js"; |
||||
var Main_dfd_Script = doesAssetExists(MainScript_File); |
||||
Main_dfd_Script.then(function (versionNumber) { |
||||
if (versionNumber === 'loaded') { |
||||
var dfd_main_code = do_run_main(obj, req); |
||||
tts.when([dfd_main_code]).then(function () { do_other_FN(obj, req); }); |
||||
} else { |
||||
var dfd_main_code = loadJS(MainScript_File, versionNumber, obj, req, 'do_run_main'); |
||||
tts.when([dfd_main_code]).then(function () { do_other_FN(obj, req); }); |
||||
} |
||||
}).catch(function (err) { |
||||
var dfd_main_code = do_run_main(obj, req); |
||||
tts.when([dfd_main_code]).then(function () { do_other_FN(obj, req); }); |
||||
}); |
||||
return true; |
||||
} |
||||
|
||||
/* Load 404 JS for doing 404 Page */ |
||||
function do_404_page() { |
||||
var ErrorScript_File = "PageNotFound-Main.js"; |
||||
var err_page = new PageNotFound(false); |
||||
if ( hasLoaded(ErrorScript_File) === true ) { |
||||
err_page.Main(); |
||||
} else { |
||||
tts.getAsset({name: ErrorScript_File, path: ajax_folder}).then(val=>{ |
||||
include_once_files.push(ErrorScript_File); |
||||
err_page.Main(); |
||||
}); |
||||
} |
||||
} |
||||
|
||||
/* Is 404 on, if so does Tab Method/File exists, if not was an exception made */ |
||||
function is_404(tab_name) { |
||||
if (do_404_page_on_bad_tabs === false) return false; /* Is 404 off?? */ |
||||
for (i = 0; i < empty_tab_pages.length; i++) { |
||||
if (empty_tab_pages[i] == tab_name) { |
||||
return false; /* Found allowed empty tab page */ |
||||
} |
||||
} |
||||
return true; /* Unable to find tab page hash in allowed list */ |
||||
} |
||||
Loading…
Reference in new issue