MWF.xDesktop.requireApp("Template", "Explorer", null, false); MWF.xDesktop.requireApp("Attendance", "Explorer", null, false); MWF.xDesktop.requireApp("Selector", "package", null, false); MWF.xApplication.Attendance.ScheduleExplorer = new Class({ Extends: MWF.xApplication.Attendance.Explorer, Implements: [Options, Events], initialize: function(node, app, actions, options){ this.setOptions(options); this.app = app; this.path = "/x_component_Attendance/$ScheduleExplorer/"; this.cssPath = "/x_component_Attendance/$ScheduleExplorer/"+this.options.style+"/css.wcss"; this._loadCss(); this.actions = actions; this.node = $(node); this.initData(); if (!this.personActions) this.personActions = new MWF.xAction.org.express.RestActions(); }, loadView : function(){ this.view = new MWF.xApplication.Attendance.ScheduleExplorer.View(this.elementContentNode, this.app,this, this.viewData, this.options.searchKey ); this.view.load(); this.setContentSize(); }, createDocument: function(){ if(this.view)this.view._createDocument(); } }); MWF.xApplication.Attendance.ScheduleExplorer.View = new Class({ Extends: MWF.xApplication.Attendance.Explorer.View, _createItem: function(data){ return new MWF.xApplication.Attendance.ScheduleExplorer.Document(this.table, data, this.explorer, this); }, _getCurrentPageData: function(callback, count){ this.actions.listSchedule(function(json){ if (callback) callback(json); }); }, _removeDocument: function(documentData, all){ this.actions.deleteSchedule(documentData.id, function(json){ this.explorer.view.reload(); this.app.notice(this.app.lp.deleteDocumentOK, "success"); }.bind(this)); }, _createDocument: function(){ var schedule = new MWF.xApplication.Attendance.ScheduleExplorer.Schedule(this.explorer); schedule.create(); }, _openDocument: function( documentData ){ var schedule = new MWF.xApplication.Attendance.ScheduleExplorer.Schedule(this.explorer, documentData ); schedule.edit(); } }); MWF.xApplication.Attendance.ScheduleExplorer.Document = new Class({ Extends: MWF.xApplication.Attendance.Explorer.Document }); MWF.xApplication.Attendance.ScheduleExplorer.Schedule = new Class({ Extends: MWF.xApplication.Attendance.Explorer.PopupForm, options : { "width": 600, "height": 450, "hasTop" : true, "hasBottom" : true, "title" : "", "draggable" : true, "closeAction" : true }, _createTableContent: function(){ var lp = this.app.lp.schedule; var html = ""+ "" + ""+ " " + ""+ " " + ""+ " " + ""+ " " + ""+ " " + ""+ " " + "
"+lp.setSchedule+"
"; this.formTableArea.set("html",html); MWF.xDesktop.requireApp("Template", "MForm", function(){ this.form = new MForm( this.formTableArea, this.data, { isEdited : this.isEdited || this.isNew, itemTemplate : { unitName : { text: lp.unit, type : "org", orgType : "unit" }, onDutyTime : { text: lp.workTime, tType : "time",notEmpty:true }, offDutyTime : { text: lp.offTime, tType : "time",notEmpty:true }, lateStartTime : { text: lp.lateTime, tType : "time",notEmpty:true}, leaveEarlyTime : { text:lp.leaveEarlyTime, tType : "time" }, absenceStartTime : { text:lp.absenteeismTime, tType : "time" } } }, this.app); this.form.load(); }.bind(this), true); }, _ok: function( data, callback ){ this.app.restActions.saveSchedule(data, function(json){ if( callback )callback(json); }.bind(this)); } }); // // //MWF.xApplication.Attendance.ScheduleExplorer.Schedule2 = new Class({ // Extends: MWF.widget.Common, // options: { // "width": "600", // "height": "450" // }, // initialize: function( explorer, data ){ // this.explorer = explorer; // this.app = explorer.app; // this.data = data || {}; // this.css = this.explorer.css; // // this.load(); // }, // load: function(){ // this.data.workTime = this.data.onDutyTime; // this.data.offTime = this.data.offDutyTime; // this.data.unit = this.data.unitName; // this.data.lateTime = this.data.lateStartTime; // this.data.leaveEarlyTime =this.data.leaveEarlyStartTime; // this.data.absenteeismTime =this.data.absenceStartTime; // }, // // open: function(e){ // this.isNew = false; // this.isEdited = false; // }, // create: function(){ // this.isNew = true; // this._open(); // }, // edit: function(){ // this.isEdited = true; // this._open(); // }, // _open : function(){ // this.createMarkNode = new Element("div", { // "styles": this.css.createMarkNode, // "events": { // "mouseover": function(e){e.stopPropagation();}, // "mouseout": function(e){e.stopPropagation();} // } // }).inject(this.app.content, "after"); // // this.createAreaNode = new Element("div", { // "styles": this.css.createAreaNode // }); // // this.createNode(); // // this.createAreaNode.inject(this.createMarkNode, "after"); // this.createAreaNode.fade("in"); // // this.unit.focus(); // // this.setCreateNodeSize(); // this.setCreateNodeSizeFun = this.setCreateNodeSize.bind(this); // this.addEvent("resize", this.setCreateNodeSizeFun); // }, // createNode: function(){ // var _self = this; // this.createNode = new Element("div", { // "styles": this.css.createNode // }).inject(this.createAreaNode); // // // this.createIconNode = new Element("div", { // "styles": this.isNew ? this.css.createNewNode : this.css.createIconNode // }).inject(this.createNode); // // // this.createFormNode = new Element("div", { // "styles": this.css.createFormNode // }).inject(this.createNode); // // var lp = this.app.lp.schedule; // // var inputStyle = "width: 99%; border:1px solid #999; background-color:#FFF; border-radius: 3px; box-shadow: 0px 0px 6px #CCC;height: 26px;"; // var inputTimeStyle = "width: 99%; border:1px solid #999; background-color:#FFF; border-radius: 3px; box-shadow: 0px 0px 6px #CCC;height: 26px;"+ // "background : url(/x_component_Attendance/$ScheduleExplorer/default/icon/calendar.png) 98% center no-repeat"; // var inputPersonStyle = "width: 99%; border:1px solid #999; background-color:#FFF; border-radius: 3px; box-shadow: 0px 0px 6px #CCC;height: 26px;"+ // "background : url(/x_component_Attendance/$PermissionExplorer/default/icon/selectperson.png) 98% center no-repeat"; // // var html = "" + // ""+ // "" + // "" + // ""+ // "" + // ""+ // "" + // ""+ // ""+ // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "" + // "
" + lp.setSchedule + "
" + lp.unit + ":"+ // (!this.isNew && !this.isEdited ? "" : // ("")) + // "
"+ // (!this.isNew && !this.isEdited ? "" :("")) + // (!this.isNew && !this.isEdited ? "" :("")) + // //"注:不选择" + lp.unit + "则为默认排班"+ // "
"+lp.workTime+":" + // (!this.isNew && !this.isEdited ? "" : // ("")) + // "
"+lp.offTime+":" + // (!this.isNew && !this.isEdited ? "" : // ("")) + // "
"+lp.lateTime+":" + // (!this.isNew && !this.isEdited ? "" : // ("")) + // "
"+lp.leaveEarlyTime+":" + // (!this.isNew && !this.isEdited ? "" : // ("")) + // "
"+lp.absenteeismTime+":" + // (!this.isNew && !this.isEdited ? "" : // ("")) + // "
"; // this.createFormNode.set("html", html); // // this.unit = this.createFormNode.getElement("#unit"); // this.workTime = this.createFormNode.getElement("#workTime"); // this.offTime = this.createFormNode.getElement("#offTime"); // this.lateTime = this.createFormNode.getElement("#lateTime"); // this.leaveEarlyTime = this.createFormNode.getElement("#leaveEarlyTime"); // this.absenteeismTime = this.createFormNode.getElement("#absenteeismTime"); // // this.createFormNode.getElement("#selUnit").addEvent("click",function(){ // _self.selectUnit(this,"d"); // }) // this.createFormNode.getElement("#selTopUnit").addEvent("click",function(){ // _self.selectUnit(this,"c"); // }) // // this.workTime.addEvent("click",function(){ // _self.selectCalendar(this); // }) // this.offTime.addEvent("click",function(){ // _self.selectCalendar(this); // }) // this.lateTime.addEvent("click",function(){ // _self.selectCalendar(this); // }) // this.leaveEarlyTime.addEvent("click",function(){ // _self.selectCalendar(this); // }) // this.absenteeismTime.addEvent("click",function(){ // _self.selectCalendar(this); // }) // // this.cancelActionNode = new Element("div", { // "styles": this.css.createCancelActionNode, // "text": this.app.lp.cancel // }).inject(this.createFormNode); // this.createOkActionNode = new Element("div", { // "styles": this.css.createOkActionNode, // "text": this.app.lp.ok // }).inject(this.createFormNode); // // this.cancelActionNode.addEvent("click", function(e){ // this.cancelCreate(e); // }.bind(this)); // this.createOkActionNode.addEvent("click", function(e){ // this.okCreate(e); // }.bind(this)); // }, // // setCreateNodeSize: function (width, height, top, left) { // if (!width)width = this.options && this.options.width ? this.options.width : "50%" // if (!height)height = this.options && this.options.height ? this.options.height : "50%" // if (!top) top = this.options && this.options.top ? this.options.top : 0; // if (!left) left = this.options && this.options.left ? this.options.left : 0; // // var allSize = this.app.content.getSize(); // var limitWidth = allSize.x; //window.screen.width // var limitHeight = allSize.y; //window.screen.height // // "string" == typeof width && (1 < width.length && "%" == width.substr(width.length - 1, 1)) && (width = parseInt(limitWidth * parseInt(width, 10) / 100, 10)); // "string" == typeof height && (1 < height.length && "%" == height.substr(height.length - 1, 1)) && (height = parseInt(limitHeight * parseInt(height, 10) / 100, 10)); // 300 > width && (width = 300); // 220 > height && (height = 220); // top = top || parseInt((limitHeight - height) / 2, 10); // left = left || parseInt((limitWidth - width) / 2, 10); // // this.createAreaNode.setStyles({ // "width": "" + width + "px", // "height": "" + height + "px", // "top": "" + top + "px", // "left": "" + left + "px" // }); // // this.createNode.setStyles({ // "width": "" + width + "px", // "height": "" + height + "px" // }); // // var iconSize = this.createIconNode ? this.createIconNode.getSize() : {x: 0, y: 0}; // var topSize = this.formTopNode ? this.formTopNode.getSize() : {x: 0, y: 0}; // var bottomSize = this.formBottomNode ? this.formBottomNode.getSize() : {x: 0, y: 0}; // // var contentHeight = height - iconSize.y - topSize.y - bottomSize.y; // //var formMargin = formHeight -iconSize.y; // this.createFormNode.setStyles({ // "height": "" + contentHeight + "px" // }); // }, // cancelCreate: function(e){ // var _self = this; // var unit = this.unit.get("value"); // if ( this.isNew && unit!="" && unit!="default" ){ // this.app.confirm("warn", e, // this.app.lp.create_cancel_title, // this.app.lp.create_cancel, "320px", "100px", // function(){ // _self.createMarkNode.destroy(); // _self.createAreaNode.destroy(); // this.close(); // },function(){ // this.close(); // } // ); // }else{ // this.createMarkNode.destroy(); // this.createAreaNode.destroy(); // delete _self; // } // }, // okCreate: function(e){ // var data = { // "id" : (this.data && this.data.id) ? this.data.id : null, // "unitName": this.unit.get("value"), // "onDutyTime": this.workTime.get("value"), // "offDutyTime": this.offTime.get("value"), // "lateStartTime": this.lateTime.get("value"), // "leaveEarlyStartTime": this.leaveEarlyTime.get("value"), // "absenceStartTime": this.absenteeismTime.get("value") // }; // // if (data.onDutyTime && data.offDutyTime && data.lateStartTime ){ // this.app.restActions.saveSchedule(data, function(json){ // if( json.type == "ERROR" ){ // this.app.notice( json.message , "error"); // }else{ // this.createMarkNode.destroy(); // this.createAreaNode.destroy(); // if(this.explorer.view)this.explorer.view.reload(); // this.app.notice( this.isNew ? this.app.lp.createSuccess : this.app.lp.updateSuccess , "success"); // } // // this.app.processConfig(); // }.bind(this)); // }else{ // this.app.notice( "请选择上班打卡时间、下班打卡时间和迟到起算时间", "error"); // } // }, // selectCalendar : function( calendarNode ){ // MWF.require("MWF.widget.Calendar", function(){ // var calendar = new MWF.widget.Calendar( calendarNode, { // "style": "xform", // "timeOnly": true, // "isTime": true, // "target": this.app.content // }); // calendar.show(); // }.bind(this)); // }, // selectUnit: function(el, type ){ // var options = { // "type": type == "d" ? "unit" : "topUnit", // "title": type == "d" ? "选择部门" : "选择公司", // "values": this.data.unit || [], // "count" : "1", // "onComplete": function(items){ // this.data.unit = []; // items.each(function(item){ // this.data.unit.push(item.data.name); // }.bind(this)); // this.unit.set("value",this.data.unit); // }.bind(this) // }; // var selector = new MWF.O2Selector(this.app.content, options); // } //});