From 0f74429d814427fa1dbfc47bd40946188993a8ff Mon Sep 17 00:00:00 2001 From: Frank Dillon Date: Fri, 13 Jun 2008 16:53:28 +0000 Subject: [PATCH] Fixes to project management system introduced by removing legacy Ajax module --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset/Wobject/ProjectManager.pm | 41 +++------ www/extras/wobject/ProjectManager/cMenu.js | 31 ++++++- www/extras/wobject/ProjectManager/modal.js | 100 ++++++++------------- 4 files changed, 79 insertions(+), 94 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index cc47713aa..6c882a420 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -4,6 +4,7 @@ - fixed: Shop Payment Methods - fixed: Asset Manager breaks when an asset is locked - fixed: Asset Manager is slow to load + - fixed: project management application unable to add or edit tasks. 7.5.12 - skipping this release diff --git a/lib/WebGUI/Asset/Wobject/ProjectManager.pm b/lib/WebGUI/Asset/Wobject/ProjectManager.pm index 5072729cc..e0d3fdf83 100644 --- a/lib/WebGUI/Asset/Wobject/ProjectManager.pm +++ b/lib/WebGUI/Asset/Wobject/ProjectManager.pm @@ -1178,27 +1178,6 @@ sub www_editTask { my $config = $session->config; my $i18n = $self->i18n; my $user = $session->user; - my $style = $session->style; - - my $extras = $config->get("extrasURL"); - my $assetExtras = $config->get("extrasURL")."/wobject/ProjectManager"; - - $style->setScript($assetExtras."/projectDisplay.js",{ - type=>"text/javascript" - } - ); - $style->setScript($assetExtras."/taskEdit.js",{ - type=>"text/javascript" - } - ); - - $var->{'form.header'} = qq{ - - - - - - }; #Set variables from form data my $projectId = $form->get("projectId"); @@ -1575,7 +1554,7 @@ sub www_viewProject { #Set page styles - $style->setLink($assetExtras."/modal.css", { + $style->setLink($assetExtras."/subModal.css", { rel=>"stylesheet", type=>"text/css", } @@ -1596,15 +1575,7 @@ sub www_viewProject { type=>"text/javascript", } ); - #$style->setScript($extras."/js/at/AjaxRequest.js",{ - # type=>"text/javascript" - # } - #); - $style->setScript($assetExtras."/modal.js",{ - type=>"text/javascript" - } - ); $style->setScript($extras."/contextMenu/contextMenu.js",{ type=>"text/javascript" } @@ -1619,6 +1590,11 @@ sub www_viewProject { $self->session->url->extras('yui/build/event/event-min.js'), { type=>'text/javascript' } ); + + $self->session->style->setScript( + $self->session->url->extras('yui/build/dom/dom-min.js'), + { type=>'text/javascript' } + ); $self->session->style->setScript( $self->session->url->extras('yui/build/connection/connection-min.js'), @@ -1630,6 +1606,11 @@ sub www_viewProject { { type=>'text/javascript' } ); + $style->setScript($assetExtras."/modal.js",{ + type=>"text/javascript" + } + ); + #$self->session->style->setScript( # $self->session->url->extras('yui-webgui/build/datepicker/datepicker.js'), # { type=>'text/javascript' } diff --git a/www/extras/wobject/ProjectManager/cMenu.js b/www/extras/wobject/ProjectManager/cMenu.js index 47ccad106..8785513c4 100644 --- a/www/extras/wobject/ProjectManager/cMenu.js +++ b/www/extras/wobject/ProjectManager/cMenu.js @@ -302,11 +302,36 @@ function cMenu_draw(){ var output = ""; output += '
'; for (i=0;i" + this.linkLabels[i] + "
"; + + output += "" + this.linkLabels[i] + "
"; } output += '
'; if (this.type == "image") { diff --git a/www/extras/wobject/ProjectManager/modal.js b/www/extras/wobject/ProjectManager/modal.js index 5f5fb00f4..e1d9d2788 100644 --- a/www/extras/wobject/ProjectManager/modal.js +++ b/www/extras/wobject/ProjectManager/modal.js @@ -7,30 +7,11 @@ function initPopUp() { var elms = document.getElementsByTagName('a'); for (i = 0; i < elms.length; i++) { if (elms[i].className.indexOf("submodal") == 0) { - YAHOO.util.Event.addListener(elms[i], "click", showEditWindow); + YAHOO.util.Event.addListener(elms[i], "click", showPopWin); } } } -function showEditWindow(e) { - var link = YAHOO.util.Event.getTarget(e); - - if(link == "") { - alert ("Could not get target from event. Pop up failed. Please refresh the page and try again."); - return; - } - - var id = link.id; - var url = getWebguiProperty("pageURL"); - url += "?func=editTask"; - url += ";projectId="+getProjectFromId(id); - url += ";taskId="+getTaskFromId(id); - - window.open(url, "task", 'status=1,scrollbars=0,toolbar=0,location=0,menubar=0,directories=0,resizable=1,height=600,width=400'); - - return false; -} - function getProjectFromId(id) { var parts = id.split("~~"); return parts[0]; @@ -41,6 +22,21 @@ function getTaskFromId(id) { return parts[1]; } +function getInsertAtFromId(id) { + var parts = id.split("~~"); + if(parts.length < 3) return null; + var pos = parts[2]; + if(pos == "") return null; + return pos; +} + +function hidePopWin() { + var taskDialog = document.getElementById("popupInner"); + var parent = taskDialog.parentNode; + parent.removeChild(taskDialog); + initPopUp(); +} + function showPopWin( e ) { @@ -51,8 +47,14 @@ function showPopWin( e ) { return; } - var urlpart = link.href.split("?"); - + var id = link.id; + var url = getWebguiProperty("pageURL"); + var dataPart = "func=editTask&projectId=" + getProjectFromId(id) + "&taskId=" + getTaskFromId(id); + var insertAt = getInsertAtFromId(id); + if(insertAt) { + dataPart += "&insertAt="+insertAt; + } + this.success = true; this.taskDialog = null; @@ -60,60 +62,36 @@ function showPopWin( e ) { success : doDialog, failure : function(req) { this.success = false; } } + + if(this.success == false) { + alert("Could not retrieve task form due to a connection error. Pop up failed. Please refresh the page and try again."); + } - var status = YAHOO.util.Connect.asyncRequest('POST',urlpart[0],callback,urlpart[1]); + var status = YAHOO.util.Connect.asyncRequest('POST',url,callback,dataPart); } function doDialog (req) { var contentArea = document.getElementById("contentArea"); - alert(contentArea); contentArea.innerHTML = "" + contentArea.innerHTML + req.responseText; - this.taskDialog = document.getElementById("taskDialog"); + var taskDialog = document.getElementById("popupInner"); // Instantiate the Dialog - var dialog = new YAHOO.widget.Dialog(this.taskDialog, { + var dialog = new YAHOO.widget.Dialog(taskDialog, { width : "400px", - fixedcenter : true, - visible : false, - constraintoviewport : true, - modal : true, - buttons : [ - { text:"Submit", handler:this.handleSubmit, isDefault:true }, - { text:"Cancel", handler:this.handleCancel } ] - } - ); - - // Wire up the success and failure handlers - dialog.callback = { - success: handleSuccess, - failure: handleFailure - }; + fixedcenter : false, + visible : true, + constraintoviewport : false, + modal : false, + x : 200, + y : 200 + }); // Render the Dialog dialog.render(); } -function handleSubmit(e) { - document.editTaskForm.submit(); -}; - -function handleCancel(e) { - document.editTaskForm.cancel(); -}; - -function handleSuccess(e) { - //var response = o.responseText; - //response = response.split("