MWF.xApplication.Strategy = MWF.xApplication.Strategy || {};
//MWF.xDesktop.requireApp("Template", "Explorer", null, false);
MWF.xDesktop.requireApp("Strategy", "Template", null, false);
MWF.xDesktop.requireApp("Template", "MPopupForm", null, false);
MWF.xDesktop.requireApp("Template", "MForm", null, false);
MWF.xDesktop.requireApp("Strategy","Attachment",null,false);
MWF.xApplication.Strategy.KeyWorkForm = new Class({
Extends: MPopupForm,
Implements: [Options, Events],
options: {
"style": "default",
"width": "90%",
"height": "100%",
"hasTop": true,
"hasIcon": false,
"hasBottom": false,
"title": "",
"draggable": false,
"closeAction": true
},
initialize: function (explorer, actions, data, options) {
this.setOptions(options);
this.explorer = explorer;
this.app = explorer.app;
this.lp = this.app.lp.keyWork.popupForm;
this.actions = this.app.restActions;
this.path = "/x_component_Strategy/$KeyWorkForm/";
this.cssPath = this.path + this.options.style + "/css.wcss";
this._loadCss();
this.options.title = this.lp.title;
this.defaultYear = this.options.year;
this.data = data || {};
this.actions = actions;
this.orgActions = MWF.Actions.get("x_organization_assemble_control");
},
load: function () {
var now = new Date();
this.thisYear = now.getFullYear();
if (this.options.isNew) {
this.create();
} else if (this.options.isEdited) {
this.edit();
} else {
this.open();
}
},
createTopNode: function () {
if (!this.formTopNode) {
this.formTopNode = new Element("div.formTopNode", {
"styles": this.css.formTopNode
}).inject(this.formNode);
this.formTopTextNode = new Element("div", {
"styles": this.css.formTopTextNode,
"text": this.data.title ? this.data.title : this.lp.addTitle
}).inject(this.formTopNode);
if (this.options.closeAction) {
this.formTopCloseActionNode = new Element("div", {"styles": this.css.formTopCloseActionNode}).inject(this.formTopNode);
this.formTopCloseActionNode.addEvent("click", function () {
this.close();
}.bind(this))
}
this._createTopContent();
}
},
_createTopContent: function () {
},
_createTableContent: function () {
this.getData(function(){
this.createTableInfo();
}.bind(this));
},
getData:function(callback){
if(!this.options.isNew){
if(this.data.id){
this.id = this.data.id;
}else if(this.options.id){
this.id = this.options.id;
}
this.actions.getKeyWorkById(this.id,function(json){
this.data = json.data;
this.formTopTextNode.set("text",this.data.strategydeploytitle);
if(callback)callback();
}.bind(this));
}else{
this.orgActions.listTopUnit(function(json){
if(json.type == "success"){
if(json.data && json.data.length>0){
this.data.deptlist = json.data[0].distinguishedName;
if(callback)callback();
}
}
}.bind(this))
}
},
createTableInfo:function(){
//var html = "
" +
var html = "" +
"" +
" | " +
" | " +
"
"+
"" +
" | " +
" | " +
"
"+
"" +
" | " +
" | " +
"
"+
"" +
" | " +
" | " +
"
"+
//"" +
//" | " +
//" | " +
//"
"+
"
";
this.formTableArea.set("html", html);
this.loadForm();
if(this.options.isNew || this.options.isEdited){
this.createActionBar();
}
},
loadForm: function(){
this.keyWorkForm = new MForm(this.formTableArea, this.data, {
style: "default",
isEdited: this.isEdited || this.isNew,
itemTemplate: this.getItemTemplate(this.lp )
},this.app,this.css);
this.keyWorkForm.load();
var taObj = this.formTableArea.getElements("textarea");
taObj.setStyles({height:"100px"});
//this.attachmentArea = this.formTableArea.getElement("[item='attachments']");
//this.loadAttachment( this.attachmentArea );
},
getItemTemplate: function( lp ){
_self = this;
return {
"sequencenumber":{
text:lp.sequencenumber+":",
notEmpty:true
},
"strategydeploytitle":{
text:lp.title+":",
notEmpty:true
},
"strategydeployyear":{
text:lp.year+":",
notEmpty:true,
type:this.options.isNew?"select":"innerText",
value:this.defaultYear||this.thisYear,
attr : {style:"width:100%;height:30px;border-radius:3px;"},
selectValue:lp.selectYears.split(","),
selecTtext:lp.selectYears.split(",")
},
"deptlist":{
text:lp.department+":",
isEdited:false,
notEmpty:true,
type: "org",
orgType:"unit",
name:"deptlist",
count: 0,
attr : {readonly:true}
},
"strategydeploydescribe":{
type:"textarea",
attr:{style:"height:100px"},
text:lp.description+":"
}
};
},
loadAttachment: function( area ){
//this.attachment = new MWF.xApplication.Execution.Attachment( area, this.app, this.actions, this.app.lp, {
// documentId : this.data.id,
// isNew : this.options.isNew,
// isEdited : this.options.isEdited,
// onQueryUploadAttachment : function(){
// this.attachment.isQueryUploadSuccess = true;
// if( !this.data.id || this.data.id=="" ){
// var data = this.form.getResult(true, ",", true, false, true);
// if( !data ){
// this.attachment.isQueryUploadSuccess = false;
// return;
// }
// if(this.options.isNew){
// data.centerId = this.options.centerWorkId || this.data.centerWorkId || this.data.centerId ;
// }
// this.app.restActions.saveTask(data, function(json){
// if(json.type && json.type == "success"){
// if(json.data.id) {
// this.attachment.options.documentId = json.data.id;
// this.data.id = json.data.id;
// //this.options.isNew = false;
// }
// }
// }.bind(this), function(xhr,text,error){
// this.showErrorMessage(xhr,text,error)
// }.bind(this),false)
// }
// }.bind(this)
//});
//
//this.attachment.load();
},
createActionBar:function(){
this.actionContent = new Element("div.actionContent",{"styles":this.css.actionContent}).inject(this.formTableContainer);
this.actionBar = new Element("div.actionBar",{"styles":this.css.actionBar}).inject(this.actionContent);
this.saveAction = new Element("div.saveAction",{
"styles":this.css.saveAction,
"text":this.lp.saveAction
}).inject(this.actionBar).
addEvents({
"click":function(){
this.save();
}.bind(this)
});
this.cancelAction = new Element("div.cancelAction",{
"styles":this.css.cancelAction,
"text":this.lp.cancelAction
}).inject(this.actionBar).
addEvents({
"click":function(){
this.close();
}.bind(this)
});
},
save:function(callback){
var data = this.keyWorkForm.getResult(true, ",", true, false, true);
if(data){
this.app.createShade();
data.deptlist = data.deptlist.split(",");
this.actions.saveKeyWork(data,function(json){
if(json.type == "success"){
this.close();
this.fireEvent("postSave", json);
}else if(json.type == "error"){
this.app.notice(json.message,"error");
}
this.app.destroyShade();
if(callback)callback();
}.bind(this),function(xhr,text,error){
this.app.showErrorMessage(xhr,text,error);
this.app.destroyShade();
}.bind(this));
}
},
createShade: function(o,txtInfo){
var defaultObj = this.content;
var obj = o || defaultObj;
var txt = txtInfo || "loading...";
if(this.shadeDiv){ this.shadeDiv.destroy()}
if(this["shadeTxtDiv"]) this["shadeTxtDiv"].destroy();
this.shadeDiv = new Element("div.shadeDiv").inject(obj);
this.inforDiv = new Element("div.inforDiv",{
styles:{"height":"16px","display":"inline-block","position":"absolute","background-color":"#000000","border-radius":"3px","padding":"5px 10px"}
}).inject(this.shadeDiv);
this.loadImg = new Element("img.loadImg",{
styles:{"width":"16px","height":"16px","float":"left"},
src:this.path+"default/icon/loading.gif"
}).inject(this.inforDiv);
this.shadeTxtSpan = new Element("span.shadeTxtSpan").inject(this.inforDiv);
this.shadeTxtSpan.set("text",txt);
this.shadeDiv.setStyles({
"width":"100%","height":"100%","position":"absolute","opacity":"0.6","background-color":"#cccccc","z-index":"999"
});
this.shadeTxtSpan.setStyles({"color":"#ffffff","font-size":"12px","display":"inline-block","line-height":"16px","padding-left":"5px"});
var x = obj.getSize().x;
var y = obj.getSize().y;
this.shadeDiv.setStyles({
"left":(obj.getLeft()-defaultObj.getLeft())+"px",
"top":(obj.getTop()-defaultObj.getTop())+"px",
"width":x+"px",
"height":y+"px"
});
if(obj.getStyle("position")=="absolute"){
this.shadeDiv.setStyles({
"left":"0px",
"top":"0px"
})
}
this.inforDiv.setStyles({
"left":(x/2)+"px",
"top":(y/2)+"px"
})
},
destroyShade : function(){
if(this.shadeDiv) this.shadeDiv.destroy();
//if(this.shadeDiv) this.shadeDiv.destroy()
},
showErrorMessage:function(xhr,text,error){
var errorText = error;
var errorMessage;
if (xhr) errorMessage = xhr.responseText;
if(errorMessage!=""){
var e = JSON.parse(errorMessage);
if(e.message){
this.notice( e.message,"error");
}else{
this.notice( errorText,"error");
}
}else{
this.notice(errorText,"error");
}
}
});