121 lines
3.5 KiB
JavaScript
121 lines
3.5 KiB
JavaScript
define(function (require, exports, module) {
|
|
var ev = require("../platform/EventObject.js");
|
|
var widget = require("./widget.js");
|
|
var mp = require("./widget_message_popup.js");
|
|
var container = $("div.travel-theme-wrap");
|
|
var tpl = container.find("script").doT();
|
|
var listContainer = container.find("ul");
|
|
var sessMgr = require("../account/sessionMgr.js");
|
|
var dlg = $("#save-travel-method");
|
|
|
|
var ThemeManagerUi = function () {
|
|
var that = this;
|
|
ev.apply(this);
|
|
|
|
var initList = function () {
|
|
listContainer.empty();
|
|
if (sessMgr.current && sessMgr.current.savedProfile)
|
|
listContainer.html(tpl(_.values(sessMgr.current.savedProfile.list || [])));
|
|
};
|
|
|
|
var init = function () {
|
|
$("#travel-theme-select").focus(function () {
|
|
$(this).parent().parent().addClass("hover");
|
|
}).blur(function () {
|
|
$(this).parent().parent().removeClass("hover");
|
|
});
|
|
$("#btn-save-travel-theme").click(function () {
|
|
that.showCreateDlg();
|
|
});
|
|
$("#save-travel-method button.button-primary").click(function () {
|
|
if (that.createProfile(dlg.find(":text").val()))
|
|
that.closeCreateDlg();
|
|
});
|
|
$(document).on("click", ".travel-theme-wrap .fa-times", function () {
|
|
var li = $(this).closest("li");
|
|
var name = li.attr("data-name");
|
|
|
|
if (name) {
|
|
mp.confirm("出行模式", "确定要删除出行模式【" + name + "】?", function () {
|
|
that.removeProfile(name);
|
|
});
|
|
}
|
|
return false;
|
|
});
|
|
$(document).on("click", ".travel-theme-wrap li", function () {
|
|
var li = $(this).closest("li");
|
|
var name = li.attr("data-name");
|
|
|
|
var cp = _.findWhere(sessMgr.current.savedProfile.list, { name: name });
|
|
if (cp) {
|
|
that.selectProfile(cp);
|
|
mp.showMessagePopup("ok", "已加载出行模式【" + name + "】");
|
|
}
|
|
|
|
return false;
|
|
});
|
|
};
|
|
this.selectProfile = function (profile) {
|
|
sessMgr.currentProfile = _.clone(profile);
|
|
};
|
|
this.createProfile = function (name) {
|
|
if (that.isProfileExist(name)) {
|
|
mp.showMessagePopup("error", "同名的出行模式已经存在了,请换个名字哦。");
|
|
return false;
|
|
}
|
|
|
|
var cp = _.clone(sessMgr.currentProfile);
|
|
cp.name = name;
|
|
if (!sessMgr.current.savedProfile)
|
|
sessMgr.current.savedProfile = {};
|
|
if (!sessMgr.current.savedProfile.list)
|
|
sessMgr.current.savedProfile.list = [];
|
|
sessMgr.current.savedProfile.list.push(cp);
|
|
that.closeCreateDlg();
|
|
mp.showMessagePopup("ok", "保存成功");
|
|
sessMgr.save();
|
|
listContainer.append(tpl([cp]));
|
|
|
|
return true;
|
|
};
|
|
this.isProfileExist = function (name) {
|
|
return (sessMgr.current.savedProfile && _.findWhere(sessMgr.current.savedProfile.list, { name: name })) || false;
|
|
};
|
|
this.removeProfile = function (name) {
|
|
if (!that.isProfileExist(name)) {
|
|
return true;
|
|
}
|
|
var p = _.findWhere(sessMgr.current.savedProfile.list, { name: name });
|
|
_.removeFromArray(sessMgr.current.savedProfile.list, p);
|
|
|
|
//从列表移除
|
|
container.find("li[data-name='" + name + "']").remove();
|
|
sessMgr.save();
|
|
|
|
return true;
|
|
};
|
|
this.showCreateDlg = function () {
|
|
var cp = sessMgr.currentProfile;
|
|
var name = "";
|
|
|
|
if (cp.fromText && cp.toText)
|
|
name = cp.fromText + "-" + cp.toText;
|
|
dlg.find(":text").val(name);
|
|
|
|
widget.showFloatDialog(dlg);
|
|
};
|
|
this.closeCreateDlg = function () {
|
|
widget.hideFloatDialog(dlg);
|
|
};
|
|
initList();
|
|
sessMgr.on("sessionChanged", initList);
|
|
init();
|
|
|
|
return this;
|
|
};
|
|
ThemeManagerUi.prototype = Object.create(ev);
|
|
ThemeManagerUi.constructor = ThemeManagerUi;
|
|
|
|
return new ThemeManagerUi();
|
|
});
|