Changeset 17782

Show
Ignore:
Timestamp:
07/24/08 09:21:44 (4 months ago)
Author:
carlos
Message:

Finished the Ajax Flat View

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/core/src/net/project/schedule/mvc/handler/main/LinkTasksHandler.java

    r16593 r17782  
    2525import javax.servlet.http.HttpServletResponse; 
    2626 
     27import org.apache.commons.lang.StringUtils; 
     28 
    2729import net.project.base.property.PropertyProvider; 
    2830import net.project.database.DatabaseUtils; 
     
    4749 
    4850        String idList[] = request.getParameterValues("selected"); 
    49  
     51        if(null == idList){ 
     52            idList = StringUtils.split((String) request.getParameter("selectedIds"), ','); 
     53        } 
    5054        //Check to make sure there aren't any shared tasks 
    5155        Map tasks = schedule.getEntryMap(); 
  • trunk/core/src/net/project/schedule/mvc/handler/main/PercentageChangeHandler.java

    r16593 r17782  
    2929import javax.servlet.http.HttpServletRequest; 
    3030import javax.servlet.http.HttpServletResponse; 
     31 
     32import org.apache.commons.lang.StringUtils; 
    3133 
    3234import net.project.base.Module; 
     
    7173        //Change the percentage complete 
    7274        String idList[] = request.getParameterValues("selected"); 
     75        if(null == idList){ 
     76            idList = StringUtils.split((String) request.getParameter("selectedIds"), ','); 
     77        } 
    7378        String percentageString = request.getParameter("percentage"); 
    7479        //try to get rid of % if accidently there 
  • trunk/core/src/net/project/schedule/mvc/handler/main/ShareHandler.java

    r17673 r17782  
    2727import javax.servlet.http.HttpServletRequest; 
    2828import javax.servlet.http.HttpServletResponse; 
     29 
     30import org.apache.commons.lang.StringUtils; 
    2931 
    3032import net.project.base.Module; 
     
    119121        passThru(model, "selected"); 
    120122        Object selected = model.get("selected"); 
     123        if(null == selected){ 
     124            selected = StringUtils.split((String) request.getParameter("selectedIds"), ','); 
     125        } 
    121126        List idList; 
    122127        if(selected instanceof String[]) 
  • trunk/core/src/net/project/schedule/mvc/handler/main/TaskDownHandler.java

    r16593 r17782  
    2323import javax.servlet.http.HttpServletRequest; 
    2424import javax.servlet.http.HttpServletResponse; 
     25 
     26import org.apache.commons.lang.StringUtils; 
    2527 
    2628import net.project.database.DatabaseUtils; 
     
    5557 
    5658        String idList[] = request.getParameterValues("selected"); 
     59        if(null == idList){ 
     60            idList = StringUtils.split((String) request.getParameter("selectedIds"), ','); 
     61        } 
    5762        TaskListUtils.demoteTasks(idList, schedule); 
    5863 
  • trunk/core/src/net/project/schedule/mvc/handler/main/TaskUpHandler.java

    r16593 r17782  
    3131import javax.servlet.http.HttpServletRequest; 
    3232import javax.servlet.http.HttpServletResponse; 
     33 
     34import org.apache.commons.lang.StringUtils; 
    3335 
    3436import net.project.database.DatabaseUtils; 
     
    6971 
    7072        String idList[] = request.getParameterValues("selected"); 
     73        if(null == idList){ 
     74            idList = StringUtils.split((String) request.getParameter("selectedIds"), ','); 
     75        } 
    7176        TaskListUtils.promoteTasks(idList, schedule.getID()); 
    7277 
  • trunk/core/src/net/project/schedule/mvc/handler/main/UnlinkTasksHandler.java

    r16593 r17782  
    2929import javax.servlet.http.HttpServletRequest; 
    3030import javax.servlet.http.HttpServletResponse; 
     31 
     32import org.apache.commons.lang.StringUtils; 
    3133 
    3234import net.project.schedule.TaskDependency; 
     
    7779 
    7880        String idList[] = request.getParameterValues("selected"); 
    79  
     81        if(null == idList){ 
     82            idList = StringUtils.split((String) request.getParameter("selectedIds"), ','); 
     83        } 
     84         
    8085        if (idList.length > 0) { 
    8186            TaskDependency.unlinkTasks(idList, schedule); 
  • trunk/core/web/jsp/schedule/Main.jsp

    r17780 r17782  
    300300             menuItems[menuItems.length] = addCaptureWorkMenuItem(grid); 
    301301             menuItems[menuItems.length] = addDeleteTaskMenuItem(grid); 
     302         menuItems[menuItems.length] = addLinkTaskMenuItem(grid); 
     303         menuItems[menuItems.length] = addModifyTaskMenuItem(grid); 
     304         menuItems[menuItems.length] = addMoveTaskDownMenuItem(grid); 
     305         menuItems[menuItems.length] = addMoveTaskUpMenuItem(grid); 
    302306             menuItems[menuItems.length] = addNotifyTaskMenuItem(grid); 
     307         menuItems[menuItems.length] = addShareTaskMenuItem(grid); 
     308         menuItems[menuItems.length] = addUnLinkTaskMenuItem(grid); 
     309         menuItems[menuItems.length] = addUpdatePercentageWorkMenuItem(grid); 
     310         menuItems[menuItems.length] = addViewTaskPropertiesMenuItem(grid); 
    303311             grid.addRowContextMenu(menuItems); 
    304312         } 
     
    422430} 
    423431 
     432function addLinkTaskMenuItem(grid){ 
     433    var item = {}; 
     434    item.text = '<display:get name="all.global.toolbar.schedule.linktasks" />'; 
     435    item.handler = function (){ 
     436        var ids = grid.getSelectedRowIdsOnlyFromGrid(); 
     437        if(ids != -1){ 
     438            theForm.selectedIds.value = ids; 
     439            theForm.theAction.value = '/MainProcessing/LinkTasks'; 
     440            theForm.action.value = "<%=Action.MODIFY%>"; 
     441            theForm.target = "_self"; 
     442            theForm.submit(); 
     443        } else{ 
     444            var errorMessage = '<display:get name="prm.global.javascript.verifyselection.multipleselectionrequired.error.message" />'; 
     445            extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     446        } 
     447    }; // eo handler 
     448    return item; 
     449} 
     450 
     451function addModifyTaskMenuItem(grid){ 
     452    var item = {}; 
     453    item.text = '<display:get name="all.global.toolbar.standard.modify" />'; 
     454    item.handler = function (){ 
     455        var id = grid.getSelectedRowIdFromGrid(); 
     456        switch (id){ 
     457            case -1: 
     458                var errorMessage = '<display:get name="prm.global.javascript.verifyselection.noselection.error.message" />'; 
     459                extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     460                break; 
     461            case -2: 
     462                var errorMessage = '<display:get name="prm.global.javascript.verifyselection.multiselection.error.message" />'; 
     463                extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     464                break; 
     465            default: 
     466                var link = "<%=baseUrl%>/servlet/ScheduleController/TaskEdit?action=<%=Action.VIEW %>" 
     467                            +"&id="+id 
     468                            +"&module=<%=Module.SCHEDULE%>"; 
     469                self.location = link; 
     470        } // eo switch 
     471    } // eo handler 
     472    return item;     
     473} 
     474 
     475function addMoveTaskDownMenuItem(grid){ 
     476    var item = {}; 
     477    item.text = '<display:get name="all.global.toolbar.schedule.taskdown" />'; 
     478    item.handler = function (){ 
     479        var id = grid.getSelectedNonLastRowIdFromGrid(); 
     480        switch (id){ 
     481            case -1: 
     482                var errorMessage = '<display:get name="prm.global.javascript.verifyselection.noselection.error.message" />'; 
     483                extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     484                break; 
     485            case -2: 
     486                var errorMessage = '<display:get name="prm.global.javascript.verifyselection.multiselection.error.message" />'; 
     487                extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     488                break; 
     489            case -3: 
     490                var errorMessage = '<display:get name="prm.schedule.main.taskatbottomoflist.error.message" />'; 
     491                extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     492                break; 
     493            default: 
     494                theForm.selectedIds.value = id; 
     495                theForm.theAction.value = "/MainProcessing/TaskDown"; 
     496                theForm.action.value = "<%=Action.MODIFY%>"; 
     497                theForm.target = "_self"; 
     498                theForm.submit(); 
     499        } // eo switch 
     500    } // eo handler 
     501    return item; 
     502} 
     503 
     504function addMoveTaskUpMenuItem(grid){ 
     505    var item = {}; 
     506    item.text = '<display:get name="all.global.toolbar.schedule.taskup" />'; 
     507    item.handler = function (){ 
     508        var id = grid.getSelectedNonFirstRowIdFromGrid(); 
     509        switch (id){ 
     510            case -1: 
     511                var errorMessage = '<display:get name="prm.global.javascript.verifyselection.noselection.error.message" />'; 
     512                extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     513                break; 
     514            case -2: 
     515                var errorMessage = '<display:get name="prm.global.javascript.verifyselection.multiselection.error.message" />'; 
     516                extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     517                break; 
     518            case -3: 
     519                var errorMessage = '<display:get name="prm.schedule.main.taskattopoflist.error.message" />'; 
     520                extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     521                break; 
     522            default: 
     523                theForm.selectedIds.value = id; 
     524                theForm.theAction.value = "/MainProcessing/TaskUp"; 
     525                theForm.action.value = "<%=Action.MODIFY%>"; 
     526                theForm.target = "_self"; 
     527                theForm.submit(); 
     528        } // eo switch 
     529    } // eo handler 
     530    return item; 
     531} 
     532 
    424533function addNotifyTaskMenuItem(grid){ 
    425534    var item = {}; 
    426535    item.text = '<display:get name="all.global.toolbar.standard.notify" />'; 
    427536    item.handler = function (){ 
    428         var id = flatView.getSelectedRowIdFromGrid(); 
     537        var id = grid.getSelectedRowIdFromGrid(); 
    429538        switch (id){ 
    430539            case -1: 
    431540                var errorMessage = '<display:get name="prm.global.javascript.verifyselection.noselection.error.message" />'; 
    432541                extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     542                break; 
    433543            case -2: 
    434544                var errorMessage = '<display:get name="prm.global.javascript.verifyselection.multiselection.error.message" />'; 
    435545                extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     546                break; 
    436547            default: 
    437548                            var link = "<%=baseUrl%>/notification/CreateSubscription1.jsp?action=<%=Action.MODIFY %>" 
     
    440551                            var notify_win = openwin_notification(link); 
    441552                            notify_win.focus(); 
     553        } // eo switch 
     554    } // eo handler 
     555    return item; 
     556} 
     557 
     558function addShareTaskMenuItem(grid){ 
     559    var item = {}; 
     560    item.text = '<display:get name="all.global.toolbar.standard.share" />'; 
     561    item.handler = function (){ 
     562        var ids = grid.getSelectedRowIdsFromGrid(); 
     563        if(ids != -1){ 
     564            theForm.selectedIds.value = ids; 
     565            theForm.theAction.value = "/MainProcessing/Share"; 
     566            theForm.action.value = "<%=Action.SHARE%>"; 
     567            theForm.submit(); 
     568        } else{ 
     569            extAlert('Error', '<display:get name="prm.global.javascript.verifyselection.noselection.error.message" />', Ext.MessageBox.ERROR); 
     570        } 
     571    }; // eo handler 
     572    return item; 
     573} 
     574 
     575function addUnLinkTaskMenuItem(grid){ 
     576    var item = {}; 
     577    item.text = '<display:get name="all.global.toolbar.schedule.unlinktasks" />'; 
     578    item.handler = function (){ 
     579        var ids = grid.getSelectedRowIdsOnlyFromGrid(); 
     580        if(ids != -1){ 
     581            theForm.selectedIds.value = ids; 
     582            theForm.theAction.value = "/MainProcessing/UnlinkTasks"; 
     583            theForm.action.value = "<%=Action.MODIFY%>"; 
     584            theForm.target = "_self"; 
     585            theForm.submit(); 
     586        } else{ 
     587            var errorMessage = '<display:get name="prm.global.javascript.verifyselection.multipleselectionrequired.error.message" />'; 
     588            extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     589        } 
     590    }; // eo handler 
     591    return item; 
     592} 
     593 
     594function addUpdatePercentageWorkMenuItem(grid){ 
     595    var item = {}; 
     596    item.text = '<display:get name="all.global.toolbar.schedule.percentage" />'; 
     597    item.handler = function (){ 
     598        var ids = grid.getSelectedRowIdsFromGrid(); 
     599        var objectIds = ''; 
     600        if(ids != -1){ 
     601           var alertMessage = '<%=PropertyProvider.get("prm.schedule.taskview.resource.notallowedforimportedtask.message")%>'; 
     602           var showAlertMessage = false; 
     603 
     604           for (var i = 0; i < ids.length; i++) { 
     605               objectIds+= '&objectID=' + ids[i]; 
     606               if(true == isExternalTask(ids[i]) ){ 
     607                   alertMessage = alertMessage + grid.getRecordById(ids[i]).get('name') + '\n'; 
     608                   showAlertMessage = true; 
     609               } 
     610           } 
     611           if(true == showAlertMessage){ 
     612               extAlert('Error', alertMessage , Ext.MessageBox.ERROR); 
     613               return; 
     614           } 
     615           theForm.selectedIds.value = ids; 
     616           percentageWindow = openwin_dialog('percentage', '<%=baseUrl+"/schedule/PercentComplete.jsp?module="+Module.SCHEDULE+"&action="+Action.MODIFY%>', 175, 450); 
     617        } else{ 
     618            extAlert('Error', '<display:get name="prm.global.javascript.verifyselection.noselection.error.message" />', Ext.MessageBox.ERROR); 
     619        } 
     620    }; // eo handler 
     621    return item; 
     622} 
     623 
     624function addViewTaskPropertiesMenuItem(grid){ 
     625    var item = {}; 
     626    item.text = '<display:get name="prm.schedule.main.properties.tooltip" />'; 
     627    item.handler = function (){ 
     628        var id = grid.getSelectedRowIdFromGrid(); 
     629        switch (id){ 
     630            case -1: 
     631                var errorMessage = '<display:get name="prm.global.javascript.verifyselection.noselection.error.message" />'; 
     632                extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     633                break; 
     634            case -2: 
     635                var errorMessage = '<display:get name="prm.global.javascript.verifyselection.multiselection.error.message" />'; 
     636                extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 
     637                break; 
     638            default: 
     639                var link = "<%=baseUrl%>/servlet/ScheduleController/TaskView?action=<%=Action.VIEW %>" 
     640                            +"&id="+id 
     641                            +"&module=<%=Module.SCHEDULE%>"; 
     642                self.location = link; 
    442643        } // eo switch 
    443644    } // eo handler 
  • trunk/core/web/src/components/gridView.js

    r17750 r17782  
    140140                        items: menuItems 
    141141                      }); 
    142                               contextMenu.showAt(event.getXY()); 
     142                              contextMenu.show(_grid); 
    143143                          } 
    144144                    } 
     
    447447}; 
    448448 
     449GridView.prototype.getSelectedNonLastRowIdFromGrid = function getSelectedNonLastRowIdFromGrid(){ 
     450    var selectionModel = this.getSelectionModel(); 
     451    var rowCount = selectionModel.getCount(); 
     452     
     453    // First, test at least one row was selected 
     454    if(rowCount == 0){ 
     455        return -1; 
     456    } 
     457     
     458    // Now, test only one row was selected 
     459    if(rowCount > 1){ 
     460        return -2; 
     461    } 
     462     
     463    // Test it's not the last record. 
     464    if(selectionModel.hasNext()){ 
     465        return selectionModel.getSelected().id; 
     466    } else{ 
     467        return -3; 
     468    } 
     469}; 
     470 
     471GridView.prototype.getSelectedNonFirstRowIdFromGrid = function getSelectedNonFirstRowIdFromGrid(){ 
     472    var selectionModel = this.getSelectionModel(); 
     473    var rowCount = selectionModel.getCount(); 
     474     
     475    // First, test at least one row was selected 
     476    if(rowCount == 0){ 
     477        return -1; 
     478    } 
     479     
     480    // Now, test only one row was selected 
     481    if(rowCount > 1){ 
     482        return -2; 
     483    } 
     484     
     485    // Test it's not the first record. 
     486    if(selectionModel.hasPrevious()){ 
     487        return selectionModel.getSelected().id; 
     488    } else{ 
     489        return -3; 
     490    } 
     491}; 
     492 
    449493/** 
    450494* Returns an array of IDs related to the rows the user has selected in the Grid. 
     
    473517    return ids; 
    474518}; 
     519 
     520GridView.prototype.getSelectedRowIdsOnlyFromGrid = function getSelectedRowIdOnlyFromGrid(){ 
     521    var selectionModel = this.getSelectionModel(); 
     522    var rowCount = selectionModel.getCount(); 
     523     
     524    // Test at least two rows were selected 
     525    if(rowCount <= 1){ 
     526        return -1; 
     527    } 
     528     
     529    var selectedRows = selectionModel.getSelections(); 
     530    var ids = new Array(); 
     531    for(var i = 0; i < selectedRows.length; i++){ 
     532        ids[ids.length] = selectedRows[i].id; 
     533    } 
     534 
     535    return ids; 
     536};