more updates to asset manager

This commit is contained in:
JT Smith 2004-12-20 21:19:46 +00:00
parent a9764115fd
commit 13e3a21baf
5 changed files with 98 additions and 69 deletions

View file

@ -12,30 +12,48 @@ function Asset() {
this.lastUpdate = "";
this.icon = "";
this.div = null;
this.isParent=false;
//methods
this.edit = Asset_edit;
this.view = Asset_view;
this.setRank = Asset_setRank;
this.displayProperties = Asset_displayProperties;
this.setParent = Asset_setParent;
}
//---------Method Implementations -------------
//Moving to a new parent (move)
//----------------------
//url + ?||& + func=setParent&assetId= + assetId
function Asset_setParent(asset) {
//parentURL
location.href = "http://" + manager.tools.getHostName(location.href) + manager.tools.addParamDelimiter(this.url) + "func=setParent&assetId="+ asset.assetId;
}
//Set the rank of an asset amongst its siblings (move)
//---------------------------------------------
//url + ?||& + func=setRank&rank= + newRank
function Asset_setRank(rank) {
//to child
location.href = "http://" + manager.tools.getHostName(location.href) + manager.tools.addParamDelimiter(this.url) + "func=setRank&rank="+ rank;
}
//Edit the properties of an asset (edit)
//-------------------------------
//url + ?||& + func=edit
function Asset_edit() {
location.href = manager.tools.addParamDelimiter(this.url) + "func=edit";
location.href = "http://" + manager.tools.getHostName(location.href) + manager.tools.addParamDelimiter(this.url) + "func=edit&afterEdit=assetManager";
}
//View an asset (view)
//-------------
//url + ?||& + func=view
function Asset_view() {
location.href = manager.tools.addParamDelimiter(this.url) + "func=view";
location.href = "http://" + manager.tools.getHostName(location.href) + this.url;
}
function Asset_displayProperties() {

View file

@ -1,6 +1,6 @@
//--------Constructor--------------------
function AssetManager(assetArrayData,headerArrayData,lables,crumbtrail) {
function AssetManager(assetArrayData,headerArrayData,labels,crumbtrail) {
this.tools = new Tools();
this.contextMenu = new ContextMenu();
this.display = new Display();
@ -16,7 +16,7 @@ function AssetManager(assetArrayData,headerArrayData,lables,crumbtrail) {
this.parentURL = "";
this.lables = lables;
this.labels = labels;
this.crumbtrail = crumbtrail;
this.parentURL = "d";
this.renderAssets = AssetManager_renderAssets;
@ -27,8 +27,6 @@ function AssetManager(assetArrayData,headerArrayData,lables,crumbtrail) {
this.buildCrumbTrail = AssetManager_buildCrumbTrail;
this.displayContextMenu = AssetManager_displayContextMenu;
this.editTree=AssetManager_editTree;
this.setParent=AssetManager_setParent;
this.setRank=AssetManager_setRank;
this.remove = AssetManager_remove;
this.cut = AssetManager_cut;
this.copy = AssetManager_copy;
@ -86,7 +84,12 @@ function AssetManager_renderAssets() {
for (k=0;k<this.columnHeadings.length;k++) {
id = 'am_grid.row' + '.' + i + '.col.' + k;
gridStr+= '<td id="' + id + '" class="am-grid-col-' + k +'">' + this.assetArrayData[i][k] + '</td>';
gridStr+= '<td id="' + id + '" class="am-grid-col-' + k +'">';
if (k == 1) {
gridStr +='<img src="' + asset.icon + '" border="0"/>';
}
gridStr+=this.assetArrayData[i][k] + '</td>';
// eventStr += 'document.getElementById("' + id + '").asset = AssetManager_getManager().assets[' + i + '];';
}
}
@ -106,35 +109,46 @@ function AssetManager_buildCrumbTrail() {
var crumbtrail = document.getElementById("crumbtrail");
var contents = "<table><tr>";
var parentAssets = new Array();
for (i=0;i<this.crumbtrail.length;i++) {
contents += '<td id="' + this.crumbtrail[i][0] + '" class="crumbtrail">' + this.crumbtrail[i][1] + '</td>';
contents += '<td id="' + this.crumbtrail[i][0] + '" class="crumbtrail">' + this.crumbtrail[i][2] + '</td>';
if (i != this.crumbtrail.length -1) {
contents += "<td>&nbsp;->&nbsp;</td>";
}
}
this.parentURL = "http://" + this.tools.getHostName("http://www.yahoo.com") + this.crumbtrail[this.crumbtrail.length -1][1];
this.parentURL = "http://" + this.tools.getHostName(location.href) + this.crumbtrail[this.crumbtrail.length -1][1];
contents += '</tr></table>';
crumbtrail.innerHTML = contents;
// for (i=0;i<this.crumbtrail.length;i++) {
//build assets attach the div properties
for (i=0; i< this.crumbtrail.length; i++ ) {
var asset = new Asset();
asset.title = this.crumbtrail[i][2];
asset.url = this.crumbtrail[i][1];
asset.assetId = this.crumbtrail[i][0];
asset.div = document.getElementById(this.crumbtrail[i][0]);
asset.div.ondblclick=AssetManager_getManager().eventManager.assetDoubleClick;
asset.div.onmousedown=AssetManager_getManager().eventManager.assetMouseDown;
asset.div.oncontextmenu=AssetManager_getManager().eventManager.assetRightClick;
asset.isParent = true;
document.getElementById(this.crumbtrail[i][0]).asset = asset;
this.assets[this.assets.length] = asset;
// var obj = document.getElementById(this.crumbtrail[i][0]);
// this.crumbtrail
// contents += '<td id="' + this.crumbtrail[i][0] + '" class="crumbtrail">' + this.crumbtrail[i][1] + '</td>';
// if (i != this.crumbtrail.lenght) {
// contents += "<td>&nbsp;->&nbsp;</td>";
// }
//}
}
}
function AssetManager_getAsset(obj) {
while (obj.tagName!=this.display.topLevelElement && obj.className != "am-grid-row") {
while (obj.tagName!=this.display.topLevelElement && !obj.asset) {
obj=this.display.dom? obj.parentNode : obj.parentElement
}
@ -146,19 +160,19 @@ function AssetManager_displayContextMenu(x,y) {
var arr = new Array();
if (this.display.overObjects.length == 1) {
arr[arr.length] = new ContextMenuItem("View","javascript:manager.display.contextMenu.owner.view()");
arr[arr.length] = new ContextMenuItem("Edit","javascript:manager.display.contextMenu.owner.edit()");
arr[arr.length] = new ContextMenuItem(this.labels["view"],"javascript:manager.display.contextMenu.owner.view()");
arr[arr.length] = new ContextMenuItem(this.labels["edit"],"javascript:manager.display.contextMenu.owner.edit()");
}
arr[arr.length] = new ContextMenuItem("Delete","javascript:manager.remove()");
arr[arr.length] = new ContextMenuItem("<img src='/Extras/assetManager/breakerLine.gif'>","");
arr[arr.length] = new ContextMenuItem("Cut","javascript:AssetManager_getManager().cut()");
arr[arr.length] = new ContextMenuItem("Copy","javascript:manager.copy()");
arr[arr.length] = new ContextMenuItem(this.labels["delete"],"javascript:manager.remove()");
arr[arr.length] = new ContextMenuItem("<img src='/extras/assetManager/breakerLine.gif'>","");
arr[arr.length] = new ContextMenuItem(this.labels["cut"],"javascript:AssetManager_getManager().cut()");
arr[arr.length] = new ContextMenuItem(this.labels["copy"],"javascript:manager.copy()");
if (this.display.overObjects.length ==1) {
arr[arr.length] = new ContextMenuItem("<img src='/Extras/assetManager/breakerLine.gif'>","");
arr[arr.length] = new ContextMenuItem("Edit Tree","javascript:manager.editTree()");
arr[arr.length] = new ContextMenuItem("Properties","javascript:manager.display.contextMenu.owner.displayProperties()");
arr[arr.length] = new ContextMenuItem("<img src='/extras/assetManager/breakerLine.gif'>","");
arr[arr.length] = new ContextMenuItem(this.labels["editTree"],"javascript:manager.editTree()");
arr[arr.length] = new ContextMenuItem(this.labels["properties"],"javascript:manager.display.contextMenu.owner.displayProperties()");
}
// alert("x = " + x + " y= " + y);
@ -168,23 +182,10 @@ function AssetManager_displayContextMenu(x,y) {
//url + ?||& + func=editTree
function AssetManager_editTree() {
//parentURL
location.href = this.tools.addParamDelimiter(this.parentURL) + "func=editTree";
}
//Moving to a new parent (move)
//----------------------
//url + ?||& + func=setParent&assetId= + assetId
function AssetManager_setParent(parentId) {
location.href = this.tools.addParamDelimiter(this.parentURL) + "func=setParent&assetId="+ parentId;
}
//Set the rank of an asset amongst its siblings (move)
//---------------------------------------------
//url + ?||& + func=setRank&rank= + newRank
function AssetManager_setRank(rank) {
location.href = this.tools.addParamDelimiter(this.parentURL) + "func=setRank&rank="+ rank;
}
//Copy an asset to the clipboard (copy)
//------------------------------
@ -211,6 +212,7 @@ function AssetManager_remove() {
function AssetManager_getSelectedAssetIds() {
var assetIds = "";
alert(this.display.overObjects.length);
for (i=0;i<this.display.overObjects.length;i++) {
assetIds += "&assetId=" + this.display.overObjects[i].assetId;
}

View file

@ -39,6 +39,7 @@ function Display() {
this.keyUp = Display_keyUp;
this.selectAsset = Display_selectAsset;
this.isSelected = Display_isSelected;
this.clearSelectedAssets = Display_clearSelectedAssets;
}
//---------Method Implementations -------------
@ -60,7 +61,7 @@ function Display_hidePropertiesWindow() {
}
function Display_displayPropertiesWindow(html) {
temp = "<table border='1' cellspacing='0'><tr><td><table border='0'><tr bgcolor='#000000'><td width='325' class='dragable'><font color='#FFFFFF'>PROPERTIES</font></td><td align='right'><a href='javascript:manager.display.hidePropertiesWindow()'>X</a></td></tr><tr><td colspan='2'>" + html + "</td></tr></table></td></tr></table>";
temp = "<table border='1' cellspacing='0'><tr><td><table border='0'><tr bgcolor='#000000'><td width='325' class='dragable'><font color='#FFFFFF'>" + manager.labels['properties'] + "</font></td><td align='right'><a href='javascript:manager.display.hidePropertiesWindow()'>X</a></td></tr><tr><td colspan='2'>" + html + "</td></tr></table></td></tr></table>";
propWindow = document.getElementById("propertiesWindow");
propWindow.innerHTML=temp;
@ -78,12 +79,12 @@ function Display_dragStart(firedobj,xCoordinate,yCoordinate) {
while (firedobj.tagName!=this.topLevelElement && firedobj.className.indexOf("am-grid-row") == -1 && firedobj.className != "dragable") {
while (firedobj.tagName!=this.topLevelElement && !firedobj.asset && firedobj.className != "dragable") {
firedobj=manager.display.dom? firedobj.parentNode : firedobj.parentElement
}
if (firedobj.className.indexOf("am-grid-row") == -1 && firedobj.className != "dragable") {
if ((!firedobj.asset || firedobj.asset.isParent) && firedobj.className != "dragable") {
return;
}
@ -97,7 +98,12 @@ function Display_dragStart(firedobj,xCoordinate,yCoordinate) {
this.pageHeight = window.document.body.scrollHeight;
this.pageWidth = window.document.body.scrollWidth;
this.focusObjects[0]=firedobj
if (firedobj.asset) {
this.focusObjects[0]=firedobj.asset;
}else {
this.focusObjects[0] = firedobj;
}
//this.bringToFront(this.focusObject);
//hack to get the transparency - need to make generic
@ -130,7 +136,12 @@ function Display_dragStop() {
//if (this.focusObjects.dragDescriptor.clazzName == "activityMenuItem") {
if (this.overObjects[0] && this.overObjects[0].assetId && this.overObjects[0] != this.focusObjects[0]) {
this.focusObjects[0].setRank(this.overObjects[0].rank);
if (this.overObjects[0].isParent) {
this.focusObjects[0].setParent(this.overObjects[0]);
}else {
this.focusObjects[0].setRank(this.overObjects[0].rank);
}
}
//this.focusObject.style.top=0;
//this.focusObject.style.left=0;
@ -169,6 +180,14 @@ function Display_selectAsset(asset) {
}
}
function Display_clearSelectedAssets() {
for (i=0;i<this.overObjects.length;i++) {
this.overObjects[i].div.style.backgroundColor="white";
}
this.overObjects=new Array();
}
function Display_move(e){
if (this.dragEnabled){
@ -180,9 +199,11 @@ function Display_move(e){
this.focusObjects[0].style.top=this.dom? this.temp2+e.clientY-this.y : this.temp2+event.clientY-this.y
}else {
var act = this.spy(this.dom? e.pageX: (e.clientX + document.body.scrollLeft),this.dom? e.pageY: (e.clientY + document.body.scrollTop));
if (act && act.asset) {
this.selectAsset(act.asset);
}else {
this.clearSelectedAssets();
}
if (this.overObjects[0] != this.focusObjects[0]) {

View file

@ -106,10 +106,14 @@ function EventManager_documentMouseUp(e) {
//obj = manager.tools.getActivity(obj);
var asset = manager.getAsset(obj);
if (manager.display.contextMenu.owner && (!asset || asset.assetId != manager.display.contextMenu.owner.assetId)) {
manager.display.contextMenu.hide();
}else {
if (!asset) {
manager.display.clearSelectedAssets();
}
}
manager.display.dragStop();
//if (obj) manager.display.selectActivity(obj);

View file

@ -28,15 +28,12 @@ function Tools() {
}
function Tools_getHostName(url) {
debug(url);
var serverParts = url.split("/");
return serverParts[2];
}
//returns a ? or & based on contents of url
function Tools_addParamDelimiter(url) {
function Tools_addParamDelimiter(url) {
if (url.indexOf("?") == -1) {
return url + "?";
}else {
@ -45,19 +42,6 @@ function Tools_addParamDelimiter(url) {
}
//returns a ? or & based on contents of url
function Tools_addParamDelimiter(url) {
var serverParts = location.href.split("/");
var server = serverParts[0] + "//" +serverParts[2];
if (url.indexOf("?") == -1) {
return server + url + "?";
}else {
return server + url + "&";
}
}
//---------Method Implementations -------------
//utility method to cancle a build in event.