類似Gmail的任務列表

obj.Work_list_WinView = function viewTaskDetial() {
// Ext.QuickTips.init();

var o = Ext.getCmp("Work_list_winView");
if (!o) {

var locFun = {
add : function() {
var newNode = new Ext.tree.TreeNode({
text : '*',
id : '-1',
leaf : true,

});
tree.getRootNode().appendChild(newNode);
treeEditer.editNode = newNode;
treeEditer.startEdit(newNode.ui.textNode);
},

del : function() {
var selectedNode = tree.getSelectionModel().getSelectedNode();
if (selectedNode) {
Ext.Msg
.confirm(
'系統確認',
'是否刪除"' + selectedNode.attributes.text
+ '"計劃',
function(btn) {
if (btn == 'yes') {
if (locFun
.IsNotEditNodeNum(selectedNode.attributes.id)) {
Ext.Ajax
.request({
url : 'deleteWork_list.action',
params : {
ids : selectedNode.attributes.id
},
method : 'post',
scope : this,
callback : function(
options,
success,
response) {
if (success) {
tree
.getRootNode()
.removeChild(
selectedNode,
true),
Ext.Msg
.alert(
"系統提示",
Ext.util.JSON
.decode(response.responseText).msg);

}
}
});
} else {
tree.getRootNode().removeChild(
selectedNode, true);
}

}
});
} else {
Ext.Msg.alert("系統提示", "請單擊刪除行");
}
},
// 編輯詳情
edit : function() {
tree.hide();
work_list_Form.show();
var selectedNode = tree.getSelectionModel().getSelectedNode();
var work_list_id = selectedNode.attributes.id;
work_list_Form.getForm().load({
waitMsg : '正在加載數據',
waitTitle : '提示',
url : 'load4UpdateWork_list.action?ids=' + work_list_id,
method : 'post',
success : function(work_list_Form, action) {
Ext.Msg.alert('提示', '加載成功');
},
failure : function() {
Ext.Msg.alert('錯誤', '服務器出現錯誤請稍後再試');
}
});
},
update : function() {
work_list_Form.getForm().doAction('submit', {
waitMsg : '正在加載數據',
waitTitle : '提示',
url : 'updateWork_list.action',
method : 'post',
params : {},
success : function(work_list_Form, action) {
Ext.Msg.alert('提示', '加載成功');
},
failure : function() {
Ext.Msg.alert('錯誤', '服務器出現錯誤請稍後再試');
}
});
},
// val 不爲* ''返回true
IsNotEmpty : function(val) {
if (val != '*' && val != '') {
return true;
} else {
return false;
}
},
// 判斷是否IsNotEditNodeNum
IsNotEditNodeNum : function(val) {
if (val != -1) {
return true;
} else {
return false;
}
},
// 交換數據
exChangeOrder : function() {
var nodes = tree.getRootNode().childNodes;
var ids = "";
for ( var n = 0; n < nodes.length; n++) {
if (nodes[n].id != -1) {
ids = ids + nodes[n].id + ',';
}
}

ids = ids + 'IDEND' + ",";
for ( var n = 0; n < nodes.length; n++) {
if (nodes[n].attributes.work_list_order) {
ids = ids + nodes[n].attributes.work_list_order + ',';
}
}
Ext.Ajax.request({
url : 'exChangeNodeOrderByIds.action',
params : {
ids : ids
},
method : 'post',
scope : this,
callback : function(options, success, response) {

}
});
}
};
// 用於判斷任務是否超時
var nowDate = new Date().format('Y-m-d');
var treeLoad = new Ext.tree.TreeLoader({
dataUrl : 'getWork_listTree.action',
baseParams : {
'work_list.work_list_creator' : currentUser.username
},
createNode : function(attr) {
attr.work_list_dueDate = new Date(attr.work_list_dueDate.time)
.format('Y-m-d');
attr.work_list_creat = new Date(attr.work_list_creat.time)
.format('Y-m-d');
attr.iconCls = 'node_icon';
if (attr.work_list_dueDate < nowDate
&& attr.work_list_state != "completed") {
attr.cls = 'fontRedColor';
}
return Ext.tree.TreeLoader.prototype.createNode
.call(this, attr);
}
});

var tree = new Ext.tree.TreePanel(
{
id : 'Work_list_WinView_tree',
useArrows : true,
autoScroll : true,
animate : true,
enableDD : true,
containerScroll : true,
rootVisible : false,
frame : true,
loader : treeLoad,
buttonAlign : 'center',
buttons : [ {
icon : 'images/addwork_list.jpg',
handler : locFun.add
}, {
icon : 'images/deletework_list.jpg',
handler : locFun.del
} ],
root : new Ext.tree.AsyncTreeNode({}),
contextMenu : new Ext.menu.Menu({
items : [ {
text : '刪除',
handler : locFun.del
}, {
text : '編輯',
handler : locFun.edit
} ],
}),
listeners : {
'checkchange' : function(node, checked) {
// css complete 定義到index.html.css
if (locFun.IsNotEmpty(node.attributes.text)) {
if (checked) {
node.getUI().addClass('completed');
} else {
node.getUI().removeClass('completed');
}
;
Ext.Ajax
.request({
url : 'updateWork_listById.action',
params : {
'work_list.work_list_id' : node.attributes.id,
'work_list.text' : node.attributes.text,
'work_list.checked' : checked,
},
method : 'post',
scope : this,
callback : function(options,
success, response) {
}
});
} else {
Ext.Msg.alert('系統提示', '請填寫工作內容');
}
},
'textchange' : function(node, text, oldText) {
if (locFun.IsNotEmpty(node.attributes.text)) {
if (locFun.IsNotEditNodeNum(node.attributes.id)) {
Ext.Ajax
.request({
url : 'updateWork_listById.action',
params : {
'work_list.work_list_id' : node.attributes.id,
'work_list.text' : text,
'work_list.checked' : node.attributes.checked,
},
method : 'post',
scope : this,
callback : function(options,
success, response) {
}
});
} else {
Ext.Ajax
.request({
url : 'addWork_list.action',
params : {
'work_list.text' : text,
'work_list.work_list_id' : node.attributes.id,
'work_list.work_list_creator' : currentUser.username,
'work_list.work_list_note' : '',
'work_list.work_list_state' : 'uncompleted',
'work_list.pid' : '0',
'work_list.leaf' : true,
'work_list.uiprovider' : 'col',
'work_list.iconcls' : '',
'work_list.checked' : false
},
method : 'post',
scope : this,
callback : function(options,
success, response) {
if (success) {
this.getRootNode()
.reload();
}
}
});

}
} else {
this.getRootNode().removeChild(node);
}
},
contextmenu : function(node, e) {
node.select();
var c = node.getOwnerTree().contextMenu;
c.contextNode = node;
c.showAt(e.getXY());
}

// 'beforemovenode' : function(tree, node, oldParent,
// newParent, index) {
// 及時交換,即拖動則交換
// Ext.Ajax
// .request({
// url : 'exChangeNodeOrder.action',
// params : {
// ids : oldParent.indexOf(node) + ","
// + index,
// 'work_list.work_list_creator' : currentUser.username
// },
// method : 'post',
// scope : this,
// callback : function(options, success,
// response) {
// }
// });
// }

},
});
tree.getRootNode().expand(true);

var treeEditer = new Ext.tree.TreeEditor(tree, {
allowBlank : false
});

// 重寫dblclick事件
Ext.tree.TreeNodeUI.prototype.onDblClick = function(e) {
};

tree.on('dblclick', function(node, e) {
treeEditer.editNode = node;
treeEditer.startEdit(node.ui.textNode);
});

// 延時執行定時器
var task = new Ext.util.DelayedTask(function() {
locFun.exChangeOrder();
});

tree.on('movenode', function() {
task.delay(1000);
});

var work_list_Form = new Ext.form.FormPanel({
labelAlign : 'right',
labelWidth : 80,
autoScroll : true,
frame : true,
buttonAlign : 'center',
buttons : [ {
text : '保存',
handler : locFun.update
}, {
text : '返回',
handler : function() {
work_list_Form.hide();
tree.show();
}
} ],
reader : new Ext.data.JsonReader({
root : 'root'
}, [ {
name : 'work_list.work_list_id',
mapping : 'work_list_id'
}, {
name : 'work_list.work_list_creat',
mapping : 'work_list_creat',
type : 'date',
dateFormat : 'Y-m-d\\TH:i:s'
}, {
name : 'work_list.work_list_creator',
mapping : 'work_list_creator'
}, {
name : 'work_list.work_list_dueDate',
mapping : 'work_list_dueDate'
}, {
name : 'work_list.work_list_title',
mapping : 'work_list_title'
}, {
name : 'work_list.work_list_note',
mapping : 'work_list_note'
}, {
name : 'work_list.work_list_state',
mapping : 'work_list_state'
}, {
name : 'work_list.work_list_order',
mapping : 'work_list_order'
}, {
name : 'work_list.pid',
mapping : 'pid'
}, {
name : 'work_list.pname',
mapping : 'pname'
}, {
name : 'work_list.text',
mapping : 'text'
}, {
name : 'work_list.leaf',
mapping : 'leaf'
}, {
name : 'work_list.cls',
mapping : 'cls'
}, {
name : 'work_list.uiprovider',
mapping : 'uiprovider'
}, {
name : 'work_list.iconcls',
mapping : 'iconcls'
}, {
name : 'work_list.checked',
mapping : 'checked'
} ]),
items : [ {
layout : 'column',
items : [ {
columnWidth : 1,
layout : 'form',
defaults : {
anchor : '98%'
},
defaultType : 'textfield',
items : [ {
hidden : true,
fieldLabel : 'ID',
name : 'work_list.work_list_id',
}, {
hidden : true,
fieldLabel : '創建時間',
name : 'work_list.work_list_creat',
xtype : 'datefield',
format : 'Y-m-d\\TH:i:s'
}, {
hidden : true,
fieldLabel : '創建人',
name : 'work_list.work_list_creator',
}, {
fieldLabel : '截止日期',
name : 'work_list.work_list_dueDate',
xtype : 'datefield',
format : 'Y-m-d\\TH:i:s'
}, {
fieldLabel : '標題',
name : 'work_list.work_list_title',
}, {
fieldLabel : '備註',
name : 'work_list.work_list_note',
xtype : 'textarea',
}, {
hidden : true,
fieldLabel : '狀態',
name : 'work_list.work_list_state',
}, {
hidden : true,
fieldLabel : '排序ID',
name : 'work_list.work_list_order',
}, {
hidden : true,
fieldLabel : 'pid',
name : 'work_list.pid',
}, {
hidden : true,
fieldLabel : 'pname',
name : 'work_list.pname',
}, {
fieldLabel : '內容',
name : 'work_list.text',
}, {
hidden : true,
fieldLabel : 'leaf',
name : 'work_list.leaf',
}, {
hidden : true,
fieldLabel : 'cls',
name : 'work_list.cls',
}, {
hidden : true,
fieldLabel : 'uiprovider',
name : 'work_list.uiprovider',
}, {
hidden : true,
fieldLabel : 'iconcls',
name : 'work_list.iconcls',
}, {
hidden : true,
fieldLabel : 'checked',
name : 'work_list.checked',
} ]
} ]
} ]
});

var Work_list = new Ext.Window({
id : 'Work_list_winView',
// title : Ext.util.Format.date(new Date(), 'Y-m-d') + '工作表',
title : '工作表',
width : 400,
// height:400,
// autoScroll : true,
plain : true,
frame : true,
autoHeight : true,
closeAction : 'hide',
constrain : true,
items : [ tree, work_list_Form ],
listeners : {
'beforehide' : function() {
treeEditer.cancelEdit();
}
}
});
work_list_Form.hide();
Work_list.show();

} else {
o.show();
}
};
obj.Work_list_WinView();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章