Changeset 20458
- Timestamp:
- 02/24/10 07:56:58 (5 months ago)
- Files:
-
- trunk/core/db/oracle/create-scripts/versions/9.2.0/update_system_properties.sql (modified) (1 diff)
- trunk/core/src/net/project/methodology/MethodologySpace.java (modified) (1 diff)
- trunk/core/src/net/project/view/pages/methodology/MethodologyAjaxHandler.java (modified) (8 diffs)
- trunk/core/web/css/methodology/saveAsTemplateBusiness.css (modified) (1 diff)
- trunk/core/web/css/methodology/saveAsTemplateProject.css (modified) (1 diff)
- trunk/core/web/jsp/business/Setup.jsp (modified) (1 diff)
- trunk/core/web/jsp/methodology/MethodologyList.jsp (modified) (3 diffs)
- trunk/core/web/jsp/project/Setup.jsp (modified) (1 diff)
- trunk/core/web/src/methodology/PnetDialogWindow.js (added)
- trunk/core/web/src/methodology/saveAsTemplate.js (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/core/db/oracle/create-scripts/versions/9.2.0/update_system_properties.sql
r20450 r20458 992 992 insert into PN_PROPERTY (CONTEXT_ID, LANGUAGE, PROPERTY_TYPE, PROPERTY, PROPERTY_VALUE, RECORD_STATUS, IS_SYSTEM_PROPERTY, IS_TRANSLATABLE_PROPERTY, PROPERTY_VALUE_CLOB) 993 993 values (2000, 'en', 'text', 'prm.methodology.dialog.saveastemplate.label', 'Save as Template', 'A', 0, 1, null); 994 995 insert into PN_PROPERTY (CONTEXT_ID, LANGUAGE, PROPERTY_TYPE, PROPERTY, PROPERTY_VALUE, RECORD_STATUS, IS_SYSTEM_PROPERTY, IS_TRANSLATABLE_PROPERTY, PROPERTY_VALUE_CLOB) 996 values (2000, 'en', 'text', 'prm.template.create.success.message', 'A template named {0} was created in business {1}!', 'A', 0, 1, null); 994 997 995 998 insert into PN_PROPERTY (CONTEXT_ID, LANGUAGE, PROPERTY_TYPE, PROPERTY, PROPERTY_VALUE, RECORD_STATUS, IS_SYSTEM_PROPERTY, IS_TRANSLATABLE_PROPERTY, PROPERTY_VALUE_CLOB) trunk/core/src/net/project/methodology/MethodologySpace.java
r20389 r20458 596 596 json.append("createdBy : '" + ( this.createdBy == null ? "" : StringEscapeUtils.escapeJavaScript(this.createdBy) ) + "', \n"); 597 597 json.append("createdByHref : '" + SessionManager.getJSPRootURL() + "/blog/view/" + this.createdByID + "/" + this.createdByID + "/person/" + Module.PERSONAL_SPACE + "?module=" + Module.PERSONAL_SPACE + "', \n"); 598 json.append("createdDate : '" + this.createdDate+ "', \n");598 json.append("createdDate : '" + SessionManager.getUser().formatDateForLocale(this.createdDate) + "', \n"); 599 599 json.append("modifiedById : '" + this.modifiedByID + "', \n"); 600 600 json.append("modifiedDate : '" + this.modifiedDate + "', \n"); trunk/core/src/net/project/view/pages/methodology/MethodologyAjaxHandler.java
r20359 r20458 12 12 import net.project.persistence.PersistenceException; 13 13 import net.project.security.AuthorizationFailedException; 14 import net.project.security.SessionManager;15 14 import net.project.security.User; 16 15 import net.project.util.StringUtils; 17 16 import net.project.view.pages.base.BasePage; 17 import net.project.xml.XMLUtils; 18 18 19 19 import org.apache.log4j.Logger; … … 54 54 String selectedModules = request.getParameter("selectedModules"); // TODO: refactor request.getParameterValues('selectedModules') - return sting of checked chkboxes 55 55 String[] modules = selectedModules.split(","); 56 String name = request.getParameter("name") != null ? request.getParameter("name").trim() : null; 56 57 JSONObject result = new JSONObject(); 57 58 … … 60 61 MethodologySpace methodologySpace = new MethodologySpace(); 61 62 62 // TODO: verify access 63 // net.project.security.AccessVerifier.verifyAccess(moduleId, action, null); 63 // TODO: verify access: net.project.security.AccessVerifier.verifyAccess(moduleId, action, null); 64 64 65 65 // prepare the methodology object … … 67 67 methodologySpace.setCreatedBy(user.getDisplayName()); 68 68 methodologySpace.setCreatedByID(user.getID()); 69 methodologySpace.setName( request.getParameter("name") != null ? request.getParameter("name").trim() : null);69 methodologySpace.setName(name); 70 70 methodologySpace.setDescription (request.getParameter("description")); 71 71 methodologySpace.setUseScenario (request.getParameter("useScenario")); … … 78 78 if(methodologySpace.isNameExist()){ 79 79 String errorMsg = PropertyProvider.get("prm.template.create.namealreadyexist.error.message"); 80 result.put("status", 0); // FAIL indicator80 result.put("status", 0); // FAIL indicator 81 81 result.put("message", errorMsg); 82 82 } else { … … 84 84 85 85 // 3 CreateTemplateProcessing.jsp 86 // String infoMsg = PropertyProvider.get("prm.template.create.warning.stoporback.dontclick.message"));87 // load methodologyProvider from session of create new one if one not found in session88 86 MethodologyProvider methodologyProvider = request.getAttribute("methodologyProvider") != null ? 89 87 (MethodologyProvider) request.getAttribute("methodologyProvider") : new MethodologyProvider(); … … 95 93 if (methodologyProvider.hasErrors()) { 96 94 // methodology is created with errors 97 //result.put("status", 0); // FAIL indicator98 95 result.put("status", 1); // OK indicator - Methodology Space is created 99 result.put("hasErrors", 1); // HAS ERRORS indicator - errors occured during creation 100 // TODO: construct error message 96 result.put("hasErrors", 1); // HAS ERRORS indicator - errors occurred during creation 101 97 result.put("message", PropertyProvider.get("prm.template.create.error.successwitherrors")); 102 98 result.put("errors", methodologyProvider.getAllErrorMessages()); … … 104 100 } else { 105 101 methodologySpace.clear(); 102 methodologySpace.load(); 106 103 result.put("status", 1); // OK indicator 107 result.put("hasErrors", 0); // HAS ERRORS indicator - no errors occured during creation 108 // TODO: Template saved message from system properties String infoMsg = PropertyProvider.get("prm.template.create.success.message")); 109 result.put("message", "Template saved!"); 104 result.put("hasErrors", 0); // HAS ERRORS indicator - no errors occurred during creation 105 result.put("message", PropertyProvider.get("prm.template.create.success.message", new Object[]{name, methodologySpace.getParentSpaceName()})); 110 106 } 111 107 trunk/core/web/css/methodology/saveAsTemplateBusiness.css
r20401 r20458 38 38 39 39 /* dialog footer */ 40 #saveAsTmplDialog .x-panel-btns-ct { background-color:#F1F1F1; padding:2px; } 40 /*#saveAsTmplDialog .x-panel-btns-ct { background-color:#F1F1F1; padding:2px; }*/ 41 .pnet-window-cls { background-color:#F1F1F1; padding:2px; } 41 42 #submitBtn, #cancelBtn { margin: 0 2px; font-size: 12px; } 42 43 .x-btn em { padding: 0 30px; } trunk/core/web/css/methodology/saveAsTemplateProject.css
r20401 r20458 36 36 #templateDetails { position: absolute; margin-top: 35px; padding-bottom: 20px; overflow: auto; height: 350px; width: 100%; font-size: 13px; } 37 37 /* form menu */ 38 #saveAsTmplDialog .x-panel-btns-ct { background-color:#F1F1F1; padding:2px; } 38 /*#saveAsTmplDialog .x-panel-btns-ct { background-color:#F1F1F1; padding:2px; }*/ 39 .pnet-window-cls { background-color:#F1F1F1; padding:2px; } 39 40 #submitBtn, #cancelBtn { margin: 0 2px; font-size: 12px; } 40 41 .x-btn em { padding: 0 30px; } trunk/core/web/jsp/business/Setup.jsp
r20401 r20458 296 296 var ajaxRequestFailureMessageValue = '<%=PropertyProvider.get("prm.methodology.dialog.ajaxrequesterror.message")%>'; 297 297 </script> 298 <template:import type="javascript" src="/src/methodology/PnetDialogWindow.js" /> 298 299 <template:import type="javascript" src="/src/methodology/saveAsTemplate.js" /> 299 300 <script type="text/javascript"> trunk/core/web/jsp/methodology/MethodologyList.jsp
r20401 r20458 331 331 var ajaxRequestFailureMessageValue = '<%=PropertyProvider.get("prm.methodology.dialog.ajaxrequesterror.message")%>'; 332 332 </script> 333 <template:import type="javascript" src="/src/methodology/PnetDialogWindow.js" /> 333 334 <template:import type="javascript" src="/src/methodology/saveAsTemplate.js" /> 334 335 <template:import type="javascript" src="/src/methodology/methodologyList.js" /> … … 341 342 342 343 var userId = '<%=user.getID()%>'; 344 var win; 343 345 344 346 Ext.onReady(function() { … … 359 361 location.reload(true); 360 362 }); 361 // hide Visible To field if Personal Space is selected on page load362 handleOwningBusinessSelection(userId);363 363 }); 364 364 trunk/core/web/jsp/project/Setup.jsp
r20401 r20458 314 314 var ajaxRequestFailureMessageValue = '<%=PropertyProvider.get("prm.methodology.dialog.ajaxrequesterror.message")%>'; 315 315 </script> 316 <template:import type="javascript" src="/src/methodology/PnetDialogWindow.js" /> 316 317 <template:import type="javascript" src="/src/methodology/saveAsTemplate.js" /> 317 318 <script type="text/javascript"> trunk/core/web/src/methodology/saveAsTemplate.js
r20401 r20458 9 9 10 10 var win; 11 var initWidth = 600; 12 var initHeight = 460; 13 var saveCallbackFn; // callback function triggered once 'save as template' form is submitted 14 var fbar = [{ 15 id: 'submitBtn', 16 text: footerSubmitLabel, 17 handler: submitTFAjaxHandler 18 },{ 19 id: 'cancelBtn', 20 text: footerCancelLabel, 21 handler: closeTFHandler 22 }]; 23 var restoreTbOpt = { 24 hidden: true, 25 id: 'restore', 26 qtip: 'Restore', 27 handler: function(event, toolEl, panel){ 28 // restore window to initial size 29 panel.setSize(initWidth, initHeight); 30 toolEl.hide(); 31 } 32 }; 33 var toolBar = [restoreTbOpt]; 34 35 function closeTFHandler() { 11 var saveCallbackFn = function() {}; // callback function triggered once 'save as template' form is submitted 12 13 // CLOSE Dialog Window button handler 14 function closeDialogHandler() { 36 15 resetForm(); 37 16 win.hide(); 38 17 } 39 18 40 function resetForm() { 41 Ext.get('saveAsTemplateForm').dom.reset(); 42 selectAllModules(); 43 resetErrors(); 44 } 45 46 function dialogResized(win, width, height) { 47 Ext.get('templateDetails').setWidth(width-10); 48 Ext.get('templateDetails').setHeight(height-100); 49 // show the restore button 50 win.tools['restore'].show(); 51 } 52 53 function submitTFAjaxHandler() { 19 // SUBMIT Dialog Window button handler 20 function submitDialogHandler() { 54 21 // necessary validation 55 22 if(processForm(Ext.get('saveAsTemplateForm').dom)) { … … 115 82 win.hide(); 116 83 resetForm(); 117 // 3. show indicator that form is saved 118 extAlert(templateCreatedDialogTitle, 'The template '+Ext.get('name').getValue()+' is successfully created!', Ext.MessageBox.INFO); 119 120 // trigger callback function if it is defined 121 if(saveCallbackFn) { 122 saveCallbackFn.call(); 123 } 84 // 3. show indication that form is saved 85 extAlert(templateCreatedDialogTitle, jsonData.message, Ext.MessageBox.INFO); 86 87 // trigger CALLBACK function if it is defined 88 saveCallbackFn.call(); 124 89 } else { 125 90 // hide form submition indicator … … 145 110 } 146 111 } 147 148 /* 149 * Function used to create Save as Template popup dialog. 150 * Accepting event parameter that is used to stop the event propagation. 151 * Accepting callbackFn - the one triggered after the form is submitted. 152 */ 112 113 // Function used for creating 'Save as Template' Dialog Window 114 function createPopupDialog() { 115 if(!win) { 116 win = new Ext.pnet.PnetDialogWindow({ 117 id: 'saveAsTmplDialog', 118 title: saveAsTemplateWindowTitleValue, 119 contentEl: 'saveAsTemplateCnt', 120 width: 600, 121 height: 460, 122 submitBtnLabel: footerSubmitLabel, 123 cancelBtnLabel: footerCancelLabel, 124 submitDialogHandler : submitDialogHandler, 125 closeDialogHandler : closeDialogHandler, 126 listeners: { beforehide: resetForm, resize: dialogResized } 127 }); 128 } 129 130 selectAllModules(); 131 win.show(); 132 Ext.get('saveAsTemplateCnt').fadeIn({duration: 2}); // show form elements 133 } 134 135 // Function used to create 'Save as Template' Dialog Window. 136 // param: e - event parameter that is used to stop the event propagation. 137 // param: callbackFn - callback function - triggered after the form is submitted. 153 138 function openPopupDelegate(e, callbackFn) { 154 saveCallbackFn = callbackFn; 139 if(callbackFn) { 140 saveCallbackFn = callbackFn; // set callback function 141 } 155 142 if(e) 156 143 e.preventDefault(); 144 157 145 createPopupDialog(); 158 146 } 159 147 160 function createPopupDialog() { 161 if(!win) { 162 win = new Ext.Window({ 163 id: 'saveAsTmplDialog', 164 title: saveAsTemplateWindowTitle, 165 closeAction: 'hide', 166 collapsible: true, 167 animCollapse: true, 168 border: true, 169 resizable: true, 170 minWidth: 300, 171 width: initWidth, 172 height: initHeight, 173 layout: 'anchor', 174 bodyStyle: 'background: #FFFFFF', 175 contentEl: 'saveAsTemplateCnt', 176 buttons: fbar, 177 tools: toolBar, 178 listeners: { beforehide: resetForm, resize: dialogResized } 179 }); 180 181 selectAllModules(); 182 } 183 win.show(); 184 win.tools['restore'].hide(); // hide restore option on initially 185 186 // show elements 187 Ext.get('saveAsTemplateCnt').fadeIn({duration: 2}); 188 } 189 190 // form validation method 148 // Function triggered to handle dialog resizing CSS issues in the dialogs content 149 function dialogResized(win, width, height) { 150 Ext.get('templateDetails').setWidth(width-10); 151 Ext.get('templateDetails').setHeight(height-100); 152 } 153 154 // Form validation method 191 155 function processForm(myForm) { 192 if(!checkTextbox(myForm.name, nameRequiredMsg)) return false; 193 // if(!checkTextbox(myForm.useScenario, useScenarioRequiredMsg)) return false; 156 if(!checkTextbox(myForm.name, nameRequiredMsg)) return false; 194 157 return true; 195 158 } … … 219 182 } 220 183 221 // Heper function used to reset all previous server side error messages 184 // Helper function - used for reseting 'Save As Template' form and doing relevant cleanup/preparation 185 function resetForm() { 186 Ext.get('saveAsTemplateForm').dom.reset(); 187 selectAllModules(); 188 resetErrors(); 189 } 190 191 // Helper function - used to reset all previous server side error messages 222 192 function resetErrors() { 223 193 Ext.DomHelper.overwrite(Ext.get('errorsCnt'), '', true); … … 225 195 } 226 196 227 // Select all modules checkboxes helper function197 // Helper function - used for selecting all modules checkboxes 228 198 function selectAllModules() { 229 199 var modules = Ext.query('input[name=selectedModule]'); … … 233 203 } 234 204 205 // Helper function - used for getting forms selected modules 235 206 function getSelectedModules() { 236 207 var selectedModules = new Array();
