define(['modules/templates/template', 'modules/templates/addtemplate'], function (Template, AddTemplate) {
var tps = {};
tps.title = GetTextByKey("P_TEMPLATES", 'Templates');
tps.description = GetTextByKey("P_TEMPLATES", 'Templates');
tps.version = '1.0';
var datacontent = null;
var searchinputcontrol = undefined;
var makeinputcontrol = undefined;
var modelinputcontrol = undefined;
var typeinputcontrol = undefined;
var groupinputcontrol = undefined;
tps.createContent = function (args) {
sectiontype = 1;//sectiontype:0 - global,1 - normal
if (args && args.length > 0)
templatestatus = eval(args[0]);//templatestatus:0 - draft,1 - published
//templatereadonly = !IsAdmin;
var content = $('
');
function createHeader() {
var header = $('');
var title = tps.title + " - " + (templatestatus == 0 ? GetTextByKey("P_DRAFT", 'Draft') : GetTextByKey("P_PUBLISHED", 'Published'))
header.append($('').text(title));
setPageTitle(title, true);
var search_bar = $('');
header.append(search_bar);
search_bar.append('');
if (!teamintelligence) {
search_bar.append('' + GetTextByKey("P_IPT_MAKE_COLON", "Make:") + '');
makeinputcontrol = $('');
makeinputcontrol.change(function () {
showAssetModels();
});
search_bar.append(makeinputcontrol);
search_bar.append('' + GetTextByKey("P_IPT_MODEL_COLON", "Model:") + '');
modelinputcontrol = $('').css('width', 160).dropdown([], {
search: true,
multiselect: true,
allowselectall: true,
textKey: 'Name',
valueKey: 'ID',
parent: '#content'
});
search_bar.append(modelinputcontrol);
search_bar.append('' + GetTextByKey("P_IPT_TYPE_COLON", "Type:") + '');
typeinputcontrol = $('').css('width', 160).dropdown([], {
search: true,
multiselect: true,
allowselectall: true,
textKey: 'Name',
valueKey: 'ID',
parent: '#content'
});
search_bar.append(typeinputcontrol);
search_bar.append('' + GetTextByKey("P_AM_ASSETGROUP_COLON", "Asset Group:") + '');
groupinputcontrol = $('').css('width', 160).dropdown([], {
search: true,
multiselect: true,
allowselectall: true,
textKey: 'Name',
valueKey: 'Id',
parent: '#content'
});
search_bar.append(groupinputcontrol);
getAssetMakes();
getAssetModels();
getAssetTypes();
getAssetGroups();
}
searchinputcontrol = $('');
search_bar.append(searchinputcontrol);
searchinputcontrol.keydown(function (e) {
if (e.keyCode == 13 || e.keyCode == 9)
tps.refresh();
});
var btnRefresh = $('');
search_bar.append(btnRefresh);
btnRefresh.click(function () {
tps.refresh();
});
var func = $('');
if (!templatereadonly) {
var iconAdd = $('' + GetTextByKey("P_IPT_ADD", "Add") + '').click(function () {
editable = true;
tps.addTemplate();
});
func.append(iconAdd);
}
var iconRefresh = $('' + GetTextByKey("P_IPT_REFRESH", "Refresh") + '').click(function () {
tps.refresh();
});
func.append(iconRefresh);
header.append(func)
return header;
}
content.append(createHeader());
var dataheader = $('');
dataheader.append('');
dataheader.append('' + GetTextByKey("P_IPT_NAME", "Name") + '
');
//dataheader.append('Display Text
');
dataheader.append('' + GetTextByKey("P_IPT_NOTES", "Notes") + '
');
dataheader.append('');
content.append(dataheader);
datacontent = $('');
content.append(datacontent);
this.refresh();
return content;
}
tps.addTemplate = function () {
var s = new AddTemplate(tps);
$('#right_popup').empty().append(s.createContent());
showRightPopup(true);
}
tps.refresh = function () {
datacontent.empty();
var searchtxt = searchinputcontrol.val();
searchtxt = htmlencode(searchtxt);
var makeid = -1;
var modelids = [];
var typeids = [];
var groupids = [];
if (!teamintelligence) {
makeid = makeinputcontrol.val();
modelids = modelinputcontrol.dropdownVals();
typeids = typeinputcontrol.dropdownVals();
groupids = groupinputcontrol.dropdownVals();
}
var p = JSON.stringify([teamintelligence, templatestatus, searchtxt, makeid, JSON.stringify(modelids), JSON.stringify(typeids), JSON.stringify(groupids)]);
showloading(true);
inspectionrequest("GetTemplates", htmlencode(p), function (data) {
showloading(false);
datacontent.empty();
if (data) {
for (var i = 0; i < data.length; i++) {
var s = new Template(tps, data[i], i);
datacontent.append(s.createContent());
}
}
}, function (err) {
showloading(false);
});
}
var makesdata = undefined;
var modelsdata = undefined;
var typesdata = undefined;
var groupsdata = undefined;
function getAssetMakes() {
inspectionrequest("GetAssetMakes", "", function (data) {
if (data && data.length > 0) {
makesdata = data;
showAssetMakes();
}
}, function (err) {
});
}
function getAssetModels() {
var ps = [-1, ""];
inspectionrequest("GetAssetModels", JSON.stringify(ps), function (data) {
if (data && data.length > 0) {
modelsdata = data;
showAssetModels();
}
}, function (err) {
});
}
function getAssetTypes() {
inspectionrequest("GetAssetTypes", "", function (data) {
if (data && data.length > 0) {
typesdata = data;
showAssetTypes();
}
}, function (err) {
});
}
function getAssetGroups() {
inspectionrequest("GetAssetGroups", "", function (data) {
if (data && data.length > 0) {
groupsdata = data;
showAssetGroups();
}
}, function (err) {
});
}
function showAssetMakes() {
makeinputcontrol.append('');
if (makesdata && makesdata.length > 0) {
for (var i = 0; i < makesdata.length; i++) {
var item = makesdata[i];
makeinputcontrol.append('');
}
showAssetModels();
}
}
function showAssetModels() {
var makeid = makeinputcontrol.val();
if (!makeid || makeid == "-1")
modelinputcontrol.dropdownDisabled(true);
else
modelinputcontrol.dropdownDisabled(false);
var match_items = [];
if (modelsdata && modelsdata.length > 0 && makeid != "-1") {
for (var i = 0; i < modelsdata.length; i++) {
var item = modelsdata[i];
if (item.MakeID == parseInt(makeid)) {
match_items.push(item);
}
}
}
modelinputcontrol.dropdownSource(match_items);
modelinputcontrol.dropdownVals([-1]);
}
function showAssetTypes() {
var match_items = [];
if (typesdata && typesdata.length > 0) {
for (var i = 0; i < typesdata.length; i++) {
match_items.push(typesdata[i]);
}
}
typeinputcontrol.dropdownSource(match_items);
}
function showAssetGroups() {
var match_items = [];
if (groupsdata && groupsdata.length > 0) {
for (var i = 0; i < groupsdata.length; i++) {
match_items.push(groupsdata[i]);
}
}
groupinputcontrol.dropdownSource(match_items);
}
return tps;
});