mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Revert "Nanoui now supports use of multiple templates (#5105)"
This reverts commit a2841ce9d6.
It turns out nanoui already supports multiple templates.
This commit is contained in:
@@ -519,8 +519,3 @@ nanoui is used to open and update nano browser uis
|
||||
*/
|
||||
/datum/nanoui/proc/update(var/force_open = 0)
|
||||
src_object.ui_interact(user, ui_key, src, force_open, master_ui, state)
|
||||
|
||||
/datum/nanoui/proc/append_template(var/key, var/filename)
|
||||
add_template(key, filename)
|
||||
open()
|
||||
update(1)
|
||||
|
||||
@@ -7,7 +7,8 @@ function NanoStateClass() {
|
||||
return;
|
||||
}
|
||||
|
||||
this.key = this.key.toLowerCase();
|
||||
this.key = this.key.toLowerCase();
|
||||
|
||||
NanoStateManager.addState(this);*/
|
||||
}
|
||||
|
||||
@@ -17,99 +18,102 @@ NanoStateClass.prototype.contentRendered = false;
|
||||
NanoStateClass.prototype.mapInitialised = false;
|
||||
|
||||
NanoStateClass.prototype.isCurrent = function () {
|
||||
return NanoStateManager.getCurrentState() == this;
|
||||
return NanoStateManager.getCurrentState() == this;
|
||||
};
|
||||
|
||||
NanoStateClass.prototype.onAdd = function (previousState) {
|
||||
// Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function
|
||||
NanoBaseCallbacks.addCallbacks();
|
||||
NanoBaseHelpers.addHelpers();
|
||||
// Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function
|
||||
|
||||
NanoBaseCallbacks.addCallbacks();
|
||||
NanoBaseHelpers.addHelpers();
|
||||
};
|
||||
|
||||
NanoStateClass.prototype.onRemove = function (nextState) {
|
||||
// Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function
|
||||
NanoBaseCallbacks.removeCallbacks();
|
||||
NanoBaseHelpers.removeHelpers();
|
||||
// Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function
|
||||
|
||||
NanoBaseCallbacks.removeCallbacks();
|
||||
NanoBaseHelpers.removeHelpers();
|
||||
};
|
||||
|
||||
NanoStateClass.prototype.onBeforeUpdate = function (data) {
|
||||
// Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function
|
||||
data = NanoStateManager.executeBeforeUpdateCallbacks(data);
|
||||
return data; // Return data to continue, return false to prevent onUpdate and onAfterUpdate
|
||||
// Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function
|
||||
|
||||
data = NanoStateManager.executeBeforeUpdateCallbacks(data);
|
||||
|
||||
return data; // Return data to continue, return false to prevent onUpdate and onAfterUpdate
|
||||
};
|
||||
|
||||
NanoStateClass.prototype.onUpdate = function (data) {
|
||||
// Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function
|
||||
try
|
||||
{
|
||||
if (!this.layoutRendered || (data['config'].hasOwnProperty('autoUpdateLayout') && data['config']['autoUpdateLayout']))
|
||||
{
|
||||
$("#uiLayout").html(NanoTemplate.parse('layout', data)); // render the 'mail' template to the #mainTemplate div
|
||||
this.layoutRendered = true;
|
||||
}
|
||||
if (!this.contentRendered || (data['config'].hasOwnProperty('autoUpdateContent') && data['config']['autoUpdateContent']))
|
||||
{
|
||||
var content = "";
|
||||
var keys = NanoTemplate.getKeys();
|
||||
for (i = 0; i < keys.length; i++) {
|
||||
if(keys[i] == "layout"){ continue; }
|
||||
content += NanoTemplate.parse(keys[i], data);
|
||||
}
|
||||
$("#uiContent").html(content); // render the 'mail' template to the #mainTemplate div
|
||||
this.contentRendered = true;
|
||||
}
|
||||
if (NanoTemplate.templateExists('mapContent'))
|
||||
{
|
||||
if (!this.mapInitialised)
|
||||
{
|
||||
// Add drag functionality to the map ui
|
||||
$('#uiMap').draggable();
|
||||
$('#uiMapTooltip')
|
||||
.off('click')
|
||||
.on('click', function (event) {
|
||||
event.preventDefault();
|
||||
$(this).fadeOut(400);
|
||||
});
|
||||
this.mapInitialised = true;
|
||||
}
|
||||
// Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function
|
||||
|
||||
$("#uiMapContent").html(NanoTemplate.parse('mapContent', data)); // render the 'mapContent' template to the #uiMapContent div
|
||||
try
|
||||
{
|
||||
if (!this.layoutRendered || (data['config'].hasOwnProperty('autoUpdateLayout') && data['config']['autoUpdateLayout']))
|
||||
{
|
||||
$("#uiLayout").html(NanoTemplate.parse('layout', data)); // render the 'mail' template to the #mainTemplate div
|
||||
this.layoutRendered = true;
|
||||
}
|
||||
if (!this.contentRendered || (data['config'].hasOwnProperty('autoUpdateContent') && data['config']['autoUpdateContent']))
|
||||
{
|
||||
$("#uiContent").html(NanoTemplate.parse('main', data)); // render the 'mail' template to the #mainTemplate div
|
||||
this.contentRendered = true;
|
||||
}
|
||||
if (NanoTemplate.templateExists('mapContent'))
|
||||
{
|
||||
if (!this.mapInitialised)
|
||||
{
|
||||
// Add drag functionality to the map ui
|
||||
$('#uiMap').draggable();
|
||||
|
||||
if (data['config'].hasOwnProperty('showMap') && data['config']['showMap'])
|
||||
{
|
||||
$('#uiContent').addClass('hidden');
|
||||
$('#uiMapWrapper').removeClass('hidden');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#uiMapWrapper').addClass('hidden');
|
||||
$('#uiContent').removeClass('hidden');
|
||||
}
|
||||
}
|
||||
if (NanoTemplate.templateExists('mapHeader'))
|
||||
{
|
||||
$("#uiMapHeader").html(NanoTemplate.parse('mapHeader', data)); // render the 'mapHeader' template to the #uiMapHeader div
|
||||
}
|
||||
if (NanoTemplate.templateExists('mapFooter'))
|
||||
{
|
||||
$("#uiMapFooter").html(NanoTemplate.parse('mapFooter', data)); // render the 'mapFooter' template to the #uiMapFooter div
|
||||
}
|
||||
}
|
||||
catch(error)
|
||||
{
|
||||
alert('ERROR: An error occurred while rendering the UI: ' + error.message);
|
||||
return;
|
||||
}
|
||||
$('#uiMapTooltip')
|
||||
.off('click')
|
||||
.on('click', function (event) {
|
||||
event.preventDefault();
|
||||
$(this).fadeOut(400);
|
||||
});
|
||||
|
||||
this.mapInitialised = true;
|
||||
}
|
||||
|
||||
$("#uiMapContent").html(NanoTemplate.parse('mapContent', data)); // render the 'mapContent' template to the #uiMapContent div
|
||||
|
||||
if (data['config'].hasOwnProperty('showMap') && data['config']['showMap'])
|
||||
{
|
||||
$('#uiContent').addClass('hidden');
|
||||
$('#uiMapWrapper').removeClass('hidden');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#uiMapWrapper').addClass('hidden');
|
||||
$('#uiContent').removeClass('hidden');
|
||||
}
|
||||
}
|
||||
if (NanoTemplate.templateExists('mapHeader'))
|
||||
{
|
||||
$("#uiMapHeader").html(NanoTemplate.parse('mapHeader', data)); // render the 'mapHeader' template to the #uiMapHeader div
|
||||
}
|
||||
if (NanoTemplate.templateExists('mapFooter'))
|
||||
{
|
||||
$("#uiMapFooter").html(NanoTemplate.parse('mapFooter', data)); // render the 'mapFooter' template to the #uiMapFooter div
|
||||
}
|
||||
}
|
||||
catch(error)
|
||||
{
|
||||
alert('ERROR: An error occurred while rendering the UI: ' + error.message);
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
NanoStateClass.prototype.onAfterUpdate = function (data) {
|
||||
// Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function
|
||||
NanoStateManager.executeAfterUpdateCallbacks(data);
|
||||
// Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function
|
||||
|
||||
NanoStateManager.executeAfterUpdateCallbacks(data);
|
||||
};
|
||||
|
||||
NanoStateClass.prototype.alertText = function (text) {
|
||||
// Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function
|
||||
alert(text);
|
||||
// Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function
|
||||
|
||||
alert(text);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
|
||||
var NanoTemplate = function () {
|
||||
|
||||
var _templateData = {};
|
||||
var _templateData = {};
|
||||
|
||||
var _templates = {};
|
||||
var _compiledTemplates = {};
|
||||
var _templates = {};
|
||||
var _compiledTemplates = {};
|
||||
|
||||
var _helpers = {};
|
||||
|
||||
var init = function () {
|
||||
// We store templateData in the body tag, it's as good a place as any
|
||||
var init = function () {
|
||||
// We store templateData in the body tag, it's as good a place as any
|
||||
_templateData = $('body').data('templateData');
|
||||
|
||||
if (_templateData == null)
|
||||
@@ -18,101 +18,94 @@ var NanoTemplate = function () {
|
||||
}
|
||||
|
||||
loadNextTemplate();
|
||||
};
|
||||
};
|
||||
|
||||
var loadNextTemplate = function () {
|
||||
// we count the number of templates for this ui so that we know when they've all been rendered
|
||||
var templateCount = Object.size(_templateData);
|
||||
var loadNextTemplate = function () {
|
||||
// we count the number of templates for this ui so that we know when they've all been rendered
|
||||
var templateCount = Object.size(_templateData);
|
||||
|
||||
if (!templateCount)
|
||||
{
|
||||
$(document).trigger('templatesLoaded');
|
||||
return;
|
||||
}
|
||||
if (!templateCount)
|
||||
{
|
||||
$(document).trigger('templatesLoaded');
|
||||
return;
|
||||
}
|
||||
|
||||
// load markup for each template and register it
|
||||
for (var key in _templateData)
|
||||
{
|
||||
if (!_templateData.hasOwnProperty(key))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
// load markup for each template and register it
|
||||
for (var key in _templateData)
|
||||
{
|
||||
if (!_templateData.hasOwnProperty(key))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$.when($.ajax({
|
||||
url: _templateData[key],
|
||||
cache: false,
|
||||
dataType: 'text'
|
||||
}))
|
||||
.done(function(templateMarkup) {
|
||||
$.when($.ajax({
|
||||
url: _templateData[key],
|
||||
cache: false,
|
||||
dataType: 'text'
|
||||
}))
|
||||
.done(function(templateMarkup) {
|
||||
|
||||
templateMarkup += '<div class="clearBoth"></div>';
|
||||
templateMarkup += '<div class="clearBoth"></div>';
|
||||
|
||||
try
|
||||
{
|
||||
NanoTemplate.addTemplate(key, templateMarkup);
|
||||
}
|
||||
catch(error)
|
||||
{
|
||||
alert('ERROR: An error occurred while loading the UI: ' + error.message);
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
NanoTemplate.addTemplate(key, templateMarkup);
|
||||
}
|
||||
catch(error)
|
||||
{
|
||||
alert('ERROR: An error occurred while loading the UI: ' + error.message);
|
||||
return;
|
||||
}
|
||||
|
||||
delete _templateData[key];
|
||||
delete _templateData[key];
|
||||
|
||||
loadNextTemplate();
|
||||
})
|
||||
.fail(function () {
|
||||
alert('ERROR: Loading template ' + key + '(' + _templateData[key] + ') failed!');
|
||||
});
|
||||
loadNextTemplate();
|
||||
})
|
||||
.fail(function () {
|
||||
alert('ERROR: Loading template ' + key + '(' + _templateData[key] + ') failed!');
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var compileTemplates = function () {
|
||||
var compileTemplates = function () {
|
||||
|
||||
for (var key in _templates) {
|
||||
try {
|
||||
_compiledTemplates[key] = doT.template(_templates[key], null, _templates)
|
||||
}
|
||||
catch (error) {
|
||||
alert(error.message);
|
||||
}
|
||||
}
|
||||
};
|
||||
for (var key in _templates) {
|
||||
try {
|
||||
_compiledTemplates[key] = doT.template(_templates[key], null, _templates)
|
||||
}
|
||||
catch (error) {
|
||||
alert(error.message);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
init: function () {
|
||||
init();
|
||||
},
|
||||
addTemplate: function (key, templateString) {
|
||||
_templates[key] = templateString;
|
||||
},
|
||||
templateExists: function (key) {
|
||||
return _templates.hasOwnProperty(key);
|
||||
},
|
||||
getKeys: function () {
|
||||
var _keys = [];
|
||||
for(var key in _templates) {
|
||||
_keys.push(key);
|
||||
}
|
||||
return _keys;
|
||||
},
|
||||
parse: function (templateKey, data) {
|
||||
if (!_compiledTemplates.hasOwnProperty(templateKey) || !_compiledTemplates[templateKey]) {
|
||||
if (!_templates.hasOwnProperty(templateKey)) {
|
||||
alert('ERROR: Template "' + templateKey + '" does not exist in _compiledTemplates!');
|
||||
return '<h2>Templateerror (does not exist)</h2>';
|
||||
}
|
||||
compileTemplates();
|
||||
}
|
||||
if (typeof _compiledTemplates[templateKey] != 'function') {
|
||||
alert(_compiledTemplates[templateKey]);
|
||||
alert('ERROR: Template "' + templateKey + '" failed to compile!');
|
||||
return '<h2>Template error (failed to compile)</h2>';
|
||||
}
|
||||
return _compiledTemplates[templateKey].call(this, data['data'], data['config'], _helpers);
|
||||
},
|
||||
return {
|
||||
init: function () {
|
||||
init();
|
||||
},
|
||||
addTemplate: function (key, templateString) {
|
||||
_templates[key] = templateString;
|
||||
},
|
||||
templateExists: function (key) {
|
||||
return _templates.hasOwnProperty(key);
|
||||
},
|
||||
parse: function (templateKey, data) {
|
||||
if (!_compiledTemplates.hasOwnProperty(templateKey) || !_compiledTemplates[templateKey]) {
|
||||
if (!_templates.hasOwnProperty(templateKey)) {
|
||||
alert('ERROR: Template "' + templateKey + '" does not exist in _compiledTemplates!');
|
||||
return '<h2>Template error (does not exist)</h2>';
|
||||
}
|
||||
compileTemplates();
|
||||
}
|
||||
if (typeof _compiledTemplates[templateKey] != 'function') {
|
||||
alert(_compiledTemplates[templateKey]);
|
||||
alert('ERROR: Template "' + templateKey + '" failed to compile!');
|
||||
return '<h2>Template error (failed to compile)</h2>';
|
||||
}
|
||||
return _compiledTemplates[templateKey].call(this, data['data'], data['config'], _helpers);
|
||||
},
|
||||
addHelper: function (helperName, helperFunction) {
|
||||
if (!jQuery.isFunction(helperFunction)) {
|
||||
alert('NanoTemplate.addHelper failed to add ' + helperName + ' as it is not a function.');
|
||||
@@ -136,7 +129,7 @@ var NanoTemplate = function () {
|
||||
delete _helpers[helperName];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}();
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user