cmc-sales/webroot/js/jobindex.js
2011-03-23 16:01:09 +11:00

110 lines
2.1 KiB
JavaScript
Executable file

function requiredFieldValidator(value) {
if (value == null || value == undefined || !value.length)
return {
valid:false,
msg:"This is a required field"
};
else
return {
valid:true,
msg:null
};
}
var grid;
var data = [];
var columns = [
{
id:"title",
name:"Title",
field:"title",
width:120,
cssClass:"cell-title",
editor:TextCellEditor,
validator:requiredFieldValidator
},
{
id:"desc",
name:"Description",
field:"description",
width:100,
editor:LongTextCellEditor
},
{
id:"duration",
name:"Duration",
field:"duration",
editor:TextCellEditor
},
{
id:"%",
name:"% Complete",
field:"percentComplete",
width:80,
resizable:false,
formatter:GraphicalPercentCompleteCellFormatter,
editor:PercentCompleteCellEditor
},
{
id:"start",
name:"Start",
field:"start",
minWidth:60,
editor:DateCellEditor
},
{
id:"finish",
name:"Finish",
field:"finish",
minWidth:60,
editor:DateCellEditor
},
{
id:"effort-driven",
name:"Effort Driven",
width:80,
minWidth:20,
maxWidth:80,
cssClass:"cell-effort-driven",
field:"effortDriven",
formatter:BoolCellFormatter,
editor:YesNoCheckboxCellEditor
}
];
var options = {
editable: true,
enableAddRow: true,
enableCellNavigation: true,
asyncEditorLoading: false,
autoEdit: false
};
$(function()
{
for (var i=0; i<500; i++) {
var d = (data[i] = {});
d["title"] = "Task " + i;
d["description"] = "This is a sample task description.\n It can be multiline";
d["duration"] = "5 days";
d["percentComplete"] = Math.round(Math.random() * 100);
d["start"] = "01/01/2009";
d["finish"] = "01/05/2009";
d["effortDriven"] = (i % 5 == 0);
}
grid = new Slick.Grid("#myGrid", data, columns, options);
//grid.registerPlugin(new Slick.CellRangeSelector());
grid.setSelectionModel(new Slick.CellSelectionModel());
grid.onAddNewRow.subscribe(function(e, args) {
var item = args.item;
var column = args.column;
grid.invalidateRow(data.length);
data.push(item);
grid.updateRowCount();
grid.render();
});
});