Changeset 17847
- Timestamp:
- 08/07/08 11:05:04 (3 weeks ago)
- Files:
-
- trunk/core/src/net/project/schedule/mvc/handler/main/IndentHandler.java (modified) (2 diffs)
- trunk/core/src/net/project/schedule/mvc/handler/main/UnindentHandler.java (modified) (2 diffs)
- trunk/core/web/jsp/schedule/Main.jsp (modified) (7 diffs)
- trunk/core/web/src/indentedView.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/core/src/net/project/schedule/mvc/handler/main/IndentHandler.java
r16593 r17847 31 31 import javax.servlet.http.HttpServletRequest; 32 32 import javax.servlet.http.HttpServletResponse; 33 34 import org.apache.commons.lang.StringUtils; 33 35 34 36 import net.project.database.DatabaseUtils; … … 73 75 String parentTask = request.getParameter("parentTask"); 74 76 String idList[] = request.getParameterValues("selected"); 77 if(null == idList){ 78 idList = StringUtils.split((String) request.getParameter("selectedIds"), ','); 79 } 75 80 76 81 ErrorReporter er = TaskListUtils.indentTasks(idList, parentTask, schedule); trunk/core/src/net/project/schedule/mvc/handler/main/UnindentHandler.java
r16593 r17847 23 23 import javax.servlet.http.HttpServletRequest; 24 24 import javax.servlet.http.HttpServletResponse; 25 26 import org.apache.commons.lang.StringUtils; 25 27 26 28 import net.project.database.DatabaseUtils; … … 62 64 63 65 String idList[] = request.getParameterValues("selected"); 66 if(null == idList){ 67 idList = StringUtils.split((String) request.getParameter("selectedIds"), ','); 68 } 64 69 65 70 TaskListUtils.unindentTasks(idList, schedule); trunk/core/web/jsp/schedule/Main.jsp
r17827 r17847 143 143 <template:import type="javascript" src="/src/dhtml/tree.js" /> 144 144 <template:import type="javascript" src="/src/dhtml/xmlrequest.js" /> 145 <template:import type="javascript" src="/src/blogit.js" /> 145 146 <template:import type="javascript" src="/src/components/gridView.js" /> 146 <template:import type="javascript" src="/src/blogit.js" />147 147 <template:import type="javascript" src="/src/indentedView.js" /> 148 148 … … 277 277 flatView.init('schedule-grid'); 278 278 flatView.addEditCellHandling(JSPRootURL + '/ajax/schedule/WorkplanUpdate', JSPRootURL + '/ajax/schedule/WorkplanUpdateValidator'); 279 setRowContextMenu(flatView );279 setRowContextMenu(flatView, false); 280 280 } 281 281 … … 287 287 setTreeGridColumns(indentedView); 288 288 indentedView.init('schedule-grid'); 289 setRowContextMenu(indentedView );289 setRowContextMenu(indentedView, true); 290 290 } 291 291 … … 333 333 } 334 334 335 function setRowContextMenu(grid ){335 function setRowContextMenu(grid, isTree){ 336 336 var menuItems = new Array(); 337 337 if(null != grid){ … … 349 349 menuItems[menuItems.length] = addUpdatePercentageWorkMenuItem(grid); 350 350 menuItems[menuItems.length] = addViewTaskPropertiesMenuItem(grid); 351 if(isTree){ 352 menuItems[menuItems.length] = addIndentTaskMenuItem(grid); 353 menuItems[menuItems.length] = addUnIndentTaskMenuItem(grid); 354 } 351 355 grid.addRowContextMenu(menuItems); 352 356 } … … 466 470 extAlert('Error', '<display:get name="prm.global.javascript.verifyselection.noselection.error.message" />', Ext.MessageBox.ERROR); 467 471 } 472 }; // eo handler 473 return item; 474 } 475 476 function addIndentTaskMenuItem(grid){ 477 var item = {}; 478 item.text = '<display:get name="all.global.toolbar.schedule.taskright" />'; 479 item.handler = function (){ 480 var result = grid.getSelectedAdjoiningRowIdsFromGrid(); 481 var parent = result.parent; 482 var ids = result.ids; 483 switch (parent){ 484 case -1: 485 var errorMessage = '<display:get name="prm.global.javascript.verifyselection.noselection.error.message" />'; 486 extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 487 break; 488 case -2: 489 var errorMessage = '<prm.schedule.main.cannotindentfirsttask.error.message" />'; 490 extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 491 break; 492 case -3: 493 var errorMessage = '<prm.global.javascript.verifyadjoiningselection.error.message" />'; 494 extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 495 break; 496 default: 497 theForm.theAction.value = "/MainProcessing/Indent"; 498 theForm.parentTask.value = parent; 499 theForm.action.value = "<%=Action.MODIFY%>"; 500 theForm.selectedIds.value = ids; 501 theForm.target = "_self"; 502 theForm.submit(); 503 } // eo switch 468 504 }; // eo handler 469 505 return item; … … 608 644 } else{ 609 645 extAlert('Error', '<display:get name="prm.global.javascript.verifyselection.noselection.error.message" />', Ext.MessageBox.ERROR); 646 } 647 }; // eo handler 648 return item; 649 } 650 651 function addUnIndentTaskMenuItem(grid){ 652 var item = {}; 653 item.text = '<display:get name="all.global.toolbar.schedule.taskleft" />'; 654 item.handler = function (){ 655 var ids = grid.getSelectedRowIdsFromGrid(); 656 if(ids != -1){ 657 theForm.theAction.value = "/MainProcessing/Unindent"; 658 theForm.action.value = "<%=Action.MODIFY%>"; 659 theForm.selectedIds.value = ids; 660 theForm.target = "_self"; 661 theForm.submit(); 662 }else{ 663 var errorMessage = '<display:get name="prm.global.javascript.verifyselection.noselection.error.message" />'; 664 extAlert('Error', errorMessage , Ext.MessageBox.ERROR); 610 665 } 611 666 }; // eo handler trunk/core/web/src/indentedView.js
r17827 r17847 311 311 return ids; 312 312 }; 313 314 TreeGrid.prototype.getSelectedAdjoiningRowIdsFromGrid = function getSelectedAdjoiningRowIdsFromGrid(){ 315 var result = {}; 316 317 // Selected records are driven by highligthed grid rows 318 var selectionModel = this.getSelectionModel(); 319 var rowCount = selectionModel.getCount(); 320 321 // Test at least one row was selected 322 if(rowCount == 0){ 323 result.parent = -1; 324 return result; 325 } 326 327 var selectedRows = selectionModel.getSelections(); 328 var ids = new Array(); 329 // Check it is not selected the first row 330 if(selectionModel.isSelected(0)){ 331 result.parent = -2; 332 return result; 333 } 334 // Now the selected row is its parent 335 var temp = new Array(); 336 temp[0] = selectedRows[0]; 337 selectionModel.selectRecords(temp); 338 selectionModel.selectPrevious(); 339 result.parent = selectionModel.getSelected().id; 340 341 // Check selected rows (before getting the parent) are in sequence. 342 var startSelection = selectedRows[0].get('sequence'); 343 ids[ids.length] = selectedRows[0].id; 344 for(var i = 1; i < selectedRows.length; i++){ 345 if(selectedRows[i].get('sequence') != (startSelection + 1)){ 346 result.parent = -3; 347 return result; 348 } else{ 349 ids[ids.length] = selectedRows[i].id; 350 } 351 } 352 result.ids = ids; 353 return result; 354 };
