Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<% ' General depository for frequently used javascript functions for our "list control" ******* %>
<!--#include file="iijsls.str"-->
<% ' Main listFunction object, to allow other frames to access global functions, ' and to serve as a data cache. This will be instantiated in the list script. %> function listFuncs(sortby, specSort, mainframe){ //general
this.sel = -1; this.lastSel = 0; this.bHasList = true; this.noupdate = false; this.sortAsc = true; //functions
this.addItem=addItem; this.delItem=delItem; this.moveItem=moveItem; this.sortList = sortList; this.reSort = reSort; this.writeList=buildListForm; this.SetListVals=SetListVals; this.writeCol = writeCol; this.loadList = loadList; //specifics
this.sortby = sortby; this.specSort =specSort; this.mainframe = mainframe; }
<% ' ******* Sets the current selection ******* %> function setLastSel(id) { for (var i=0; i < cachedList.length; i++) { if (cachedList[i].id == id) { listFunc.sel = i; return; } } }
<% ' ******* Used throughout the list "controls" to write out a table cell. ******* %> <% ' ******* a, the align parameter, is optional ******* %> function writeCol(colspan,w,str,a) { var writestr = "<TD"; if (colspan != "") { writestr += " COLSPAN = " + colspan } if (w != "") { writestr += " WIDTH = " + w; } if (a != "") { writestr += " ALIGN = " + a; } writestr += "><%= sFont("","","",True) %>" + str + "</FONT></TD>";
return writestr; } <% '***** This is the sortOrder function that allows heading to be sorted by string values, rather than numerically... **** %> function sortOrder(a,b) { <% ' a and b are automatically passed in by the JScript array sort function ' In this case, they are array items which contain custom objects. The ' listFunc.sortby is set in the call to sortList, which is executed when ' the user clicks a heading. The entry points are in the files labled ii*hd.asp ' (ie, iiacsshd.asp, etc.) The sortby property will contain the name of the ' property on the object to sort by, for example filename or date... 'listFunc is required in order for this to work properly... %> if (listFunc != null) { if (listFunc.specSort != "") { astr = a[listFunc.specSort] + a[listFunc.sortby]; bstr = b[listFunc.specSort] + b[listFunc.sortby]; } else { astr = a[listFunc.sortby]; bstr = b[listFunc.sortby]; } if (!isNaN(astr)) { astr = astr.toString(); bstr = bstr.toString(); } lcastr = astr.toLowerCase(); lcbstr = bstr.toLowerCase(); if (lcastr < lcbstr) { retval = -1; } else { if (lcastr > lcbstr) { retval = 1; } else { retval = 0; } } if (!listFunc.sortAsc) { retval = retval * -1; } return retval; } } <% '***** Sort routine called by headings ***** %> <% '***** This requires the sortOrder function ***** %> function sortList(sortby) { if (listFunc != null) { i= listFunc.sel; if (i != -1) { lastsel = cachedList[i].id }
if (sortby != listFunc.sortby) { listFunc.sortby = sortby; listFunc.sortAsc = true; } else { listFunc.sortAsc = !listFunc.sortAsc; } var num = parseFloat(cachedList[sortby]); if (isNaN(num)) { cachedList.sort(sortOrder); } else { cachedList.sort(numOrder); } if (i != -1) { setLastSel(lastsel); } loadList(); } }
<% '**** List Resorting function *** %> function reSort() { //set our sortAsc so we aren't just reversing the list...
listFunc.sortAsc = !listFunc.sortAsc; sortList(listFunc.sortby); }
<% '**** List Delete function *** %> function delItem(){ if (listFunc.sel >= 0) { listFunc.noupdate = true; i=eval(listFunc.sel); cachedList[i].deleted=true; cachedList[i].updated=true; i=i-1; <% 'run through the list to find the Next non-deleted item %> for (var j=i; j >=0; j--) { if (cachedList[j].deleted){ } else{ break } } listFunc.sel=j; loadList(); } else{ alert("<%= L_SELECTITEM_TEXT %>"); } } <% '**** List Delete function *** %>
function initParam(paramVal,defaultVal) { if (paramVal == null) { return defaultVal; } return paramVal; } function addItem() { var i=cachedList.length; listFunc.noupdate = true; cachedList[i]=new listObj(i); cachedList[i].newitem=true; cachedList[i].updated=true; listFunc.sel=i; loadList(); } function moveItem(dir){ sel = eval(listFunc.sel); if (sel > -1){ if (!cachedList[sel].deleted){ if ((sel + dir >= 0) && (sel + dir < (cachedList.length))){ cachedList[sel].id += dir; cachedList[sel].updated = true; sel += dir; cachedList[sel].id -= dir; listFunc.sel = sel; cachedList.sort(sortOrder); loadList(); } } } }
|