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(); });