Created
September 18, 2009 19:39
-
-
Save web-zen/189245 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
YAHOO.util.Event.onDOMReady(function() { | |
YAHOO.namespace("techdocs"); // create namespace for Insert dialog | |
// Build Add a New Task pop up dialog | |
// Instantiate the Add a New Task pop up dialog | |
YAHOO.techdocs.dlgAddTask = new YAHOO.widget.Dialog("dlgAddTask", | |
{ fixedcenter : true, visible : false, constraintoviewport : true, close: false, | |
buttons : [ { text:"Submit", handler:function() {this.submit();}, isDefault:true }, | |
{ text:"Cancel", handler:function() {this.cancel();} } ] | |
}); | |
// Create the success and failure handlers for dlgAddTask | |
YAHOO.techdocs.dlgAddTask.callback = { | |
success: function(o) { | |
var response = o.responseText; | |
YAHOO.techdocs.myDataTable.getDataSource().sendRequest('',{ success: YAHOO.techdocs.myDataTable.onDataReturnInitializeTable,scope: YAHOO.techdocs.myDataTable}); | |
}, | |
failure: function(o) {alert("Submission failed: " + o.status);} | |
}; | |
// Render the Add Task Dialog box to Insert a new task | |
YAHOO.techdocs.dlgAddTask.render(); | |
YAHOO.util.Dom.addClass('divSysNum', 'hide'); | |
// Show the Add a New Task dialog box | |
function dlgAddTaskUsers() { YAHOO.techdocs.dlgAddTask.show(); } | |
// Run dlgAddTaskUsers when btnAddTask is clicked | |
YAHOO.util.Event.addListener("btnAddTask", "click", dlgAddTaskUsers); | |
// Create newSysNum | |
YAHOO.techdocs.createNewSysNum = function () { // Create a new System Number | |
var newSysNum = prompt("Enter the SysNum you would like to add", "") | |
// validate entry is positive Integer | |
if (!/\D/.test(newSysNum) && newSysNum!=""){ // if is a number and not empty string | |
} else { | |
alert('Only Integers allowed for folder names here, ex: 876'); | |
return // is not a positive integer | |
} | |
// Ajax call to create directory | |
YAHOO.util.Connect.asyncRequest( | |
'GET', | |
'taskmanager_db.php?action=createSysNum&newSysNum='+ newSysNum, | |
{ | |
success: function (o) { | |
if (o.statusText == 'OK') { //alert("Ok: " + o.statusText ); | |
if (o.responseText){ | |
if(o.responseText.indexOf('exists') != -1){ // check if dir already exists | |
alert(o.responseText); | |
return; | |
} | |
YAHOO.techdocs.DocTypeonchange("System", function() { // if directory is created then repopulate select box | |
var myselect=document.getElementById("sysNum"); | |
for (var i=0; i< myselect.options.length; i++) { | |
if (myselect[i].value == o.responseText) { // i is your index | |
myselect.selectedIndex = i; | |
} | |
} | |
document.getElementById('xmldocuri').value = '.\\documents\\system\\'+ o.responseText + '\\'; | |
document.getElementById('xmldocfilename').value = 'D'+ o.responseText + '_'; | |
}); | |
} | |
} else { | |
alert(o.statusText ); | |
} | |
}, | |
failure: function (o) { | |
alert(o.statusText); | |
}, | |
scope:this | |
} | |
); | |
} | |
// DocTypeonchange, set options when Component or System selected | |
YAHOO.techdocs.DocTypeonchange = function (args, mycallback){ | |
if (args=="Component"){ // set options for Component | |
YAHOO.util.Dom.addClass('divSysNum', 'hide'); | |
document.getElementById('xmldocuri').value = '.\\documents\\component\\'; | |
document.getElementById('xmldocfilename').value = 'DComp_'; | |
} | |
if (args=="System"){ // set options for System | |
YAHOO.util.Dom.addClass('divSysNum', 'showBlock'); | |
// choose an existing sysnum or add a sysnum folder | |
YAHOO.util.Connect.asyncRequest( | |
'GET', | |
'taskmanager_db.php?action=getSysNums', | |
{ | |
success: function (o) { | |
if (o.statusText == 'OK') { | |
// clear entries from select box | |
var optSysNum = document.getElementById('sysNum'); | |
while (optSysNum.options.length > 0) { | |
optSysNum.options[0] = null; | |
} | |
// get array from php and build select box | |
var sysNumList = []; | |
sysNumList = YAHOO.lang.JSON.parse(o.responseText); | |
function addOption(selectbox, text, value ){ | |
var optn = document.createElement("OPTION"); | |
optn.text = text; | |
optn.value = value; | |
selectbox.options.add(optn); | |
} | |
for (x in sysNumList){ | |
addOption(document.getElementById('sysNum'), sysNumList[x], sysNumList[x]); | |
} | |
if (mycallback){ | |
mycallback(); | |
} | |
} else { | |
alert(o.statusText ); | |
} | |
}, | |
failure: function (o) { | |
alert(o.statusText); | |
}, | |
scope:this | |
} | |
); | |
document.getElementById('xmldocuri').value = '.\\documents\\system\\'; | |
document.getElementById('xmldocfilename').value = 'D'; | |
} | |
} | |
// Update Datatable Records, User Dropdown, Delete tooltip, Dropdown custom formatter, Datatable, onCellClick | |
// Update Record Ajax Function | |
var updateRecord = function(fnCallback, oNewValue) { | |
if ( oNewValue === this.value ) { | |
fnCallback(true,oNewValue); | |
return; | |
} | |
var rec = this.getRecord(); | |
var curXMLDocID = rec.getData("XMLDocID"); | |
var curQueryString = "action=update&XMLDocID=" + encodeURIComponent(curXMLDocID) + "&Field=" + encodeURIComponent(column.key) + "&FieldValue=" + encodeURIComponent(oNewValue); | |
var cObj = YAHOO.util.Connect.asyncRequest( | |
'GET', | |
'taskmanager_db.php?' + curQueryString, | |
{ | |
success: function (o) { | |
if (o.statusText == 'OK') { | |
// alert(o.responseText); | |
fnCallback(true,oNewValue); | |
} else { | |
alert(o.statusText ); | |
} | |
}, | |
failure: function (o) { | |
alert(o.statusText); | |
fnCallback(false,this.value); | |
}, | |
scope:myEditor | |
} | |
); | |
}; | |
// Update Record Ajax Function for Authors, Reviewers, Editors and Publishers | |
var updateUsers = function(fnCallback, oNewValue) { | |
// console.log("oNewValue: " + oNewValue); | |
var rec = this.getRecord(); | |
var curXMLDocID = rec.getData("XMLDocID"); | |
var myColumn = ""; | |
switch(column.key) | |
{ | |
case "Author": | |
var myColumn = "AuthorID"; | |
break; | |
case "Editor": | |
var myColumn = "EditorID"; | |
break; | |
case "Reviewer": | |
var myColumn = "ReviewerID"; | |
break; | |
case "Publisher": | |
var myColumn = "PublisherID"; | |
break; | |
default: | |
} | |
var curQueryString = "action=update-users&XMLDocID=" + encodeURIComponent(curXMLDocID) + "&Field=" + encodeURIComponent(myColumn) + "&FieldValue=" + encodeURIComponent(oNewValue); | |
var cObj = YAHOO.util.Connect.asyncRequest( | |
'GET', | |
'taskmanager_db.php?' + curQueryString, | |
{ | |
success: function (o) { | |
if (o.statusText == 'OK') { | |
// alert(o.responseText); | |
fnCallback(true,oNewValue); | |
} else { | |
alert(o.statusText ); | |
} | |
}, | |
failure: function (o) { | |
alert(o.statusText); | |
fnCallback(false,this.value); | |
}, | |
scope:myEditor | |
} | |
); | |
}; | |
// Build dropdown for Author, Editor, Reviewer, Publisher | |
var users = []; | |
users.push({ value: "0", label: "" }); | |
for (var k in jsUsers) { | |
if (jsUsers.hasOwnProperty(k)) { | |
users.push({ value: k, label: jsUsers[k] }); | |
} | |
} | |
// Delete Record ToolTip | |
var delToolTip = function(el) { | |
el.title = 'Delete Record'; | |
}; | |
// User Dropdown Custom Formatter | |
YAHOO.widget.DataTable.Formatter.lookup = function(elCell, oRecord, oColumn, oData) { | |
var lookupTable = oColumn.lookupTable || (oColumn.editor instanceof YAHOO.widget.DropdownCellEditor) && oColumn.editor.dropdownOptions; | |
if (YAHOO.lang.isArray(lookupTable)) { | |
for (var i = 0; i < lookupTable.length; i++) { | |
if (lookupTable[i].value === oData) { | |
elCell.innerHTML = lookupTable[i].label; | |
return; | |
} | |
} | |
} | |
elCell.innerHTML = oData || ""; // if oData is null, show a blank. | |
}; | |
// Define Editors for DataTable | |
var myEditor = new YAHOO.widget.TextboxCellEditor({disableBtns:false, asyncSubmitter: updateRecord}); | |
var myDDEditor = new YAHOO.widget.DropdownCellEditor({dropdownOptions:users,disableBtns:true, asyncSubmitter: updateUsers}); | |
//Columns actually displayed in myDataTable | |
YAHOO.techdocs.myColumnDefs = [ | |
{key:"XMLDocID", isPrimaryKey:true, hidden:true}, | |
{key:""}, | |
{key:"Title", label: "Title", sortable: "true", editor: myEditor}, | |
{key:"TaskDesc", label: "TaskDesc", minWidth: "200", maxAutoWidth: "200", editor: myEditor}, | |
{key:"XMLDocURI", label: "XMLDocURI", minWidth: "200", editor: myEditor}, | |
{key:"XMLDocFilename", label: "XMLDocFilename", maxAutoWidth: "200", editor: myEditor}, | |
{key:"Author", label: "Author", minWidth: "100", maxAutoWidth: "150", formatter:'lookup', editor: myDDEditor}, | |
{key:"Editor", label: "Editor", minWidth: "100", maxAutoWidth: "150", formatter:'lookup', editor: myDDEditor}, | |
{key:"Reviewer", label: "Reviewer", minWidth: "100", maxAutoWidth: "150", formatter:'lookup', editor: myDDEditor}, | |
{key:"Publisher", label: "Publisher", minWidth: "100", maxAutoWidth: "150", formatter:'lookup', editor: myDDEditor}, | |
{key:"CreatedOn", label: "CreatedOn", sortable: "true", maxAutoWidth: "100"}, | |
{key:"UpdatedOn", label: "UpdatedOn", maxAutoWidth: "100"}, | |
{key:"Standard", label: "Standard", editor: myEditor}, | |
{key:'delete', label:' ', className:'delete-button', action:'delete', formatter: delToolTip} | |
]; | |
// Config variables for myDataTable | |
YAHOO.techdocs.myConfigs = { | |
paginator : new YAHOO.widget.Paginator({ | |
rowsPerPage : 15, | |
selectionMode: "single" | |
}), | |
scrollable: "true", | |
sortedBy:{ | |
key: 'Title', | |
dir: YAHOO.widget.D |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment