Changeset 20458

Show
Ignore:
Timestamp:
02/24/10 07:56:58 (5 months ago)
Author:
uroslates
Message:
  • Formatting creation date on MethdologyList? template listing,
  • Changing the notification msg displayed upon successfull template saving("Tempate named A is saved in business space B"). Including business name info.
  • Adding custom pnet ExtJs? based compoenent to be used for Dialog Windows called Ext.pnet.PnetDialogWindow?.
  • Converting Save as Template dialog code to use newly developed component
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/core/db/oracle/create-scripts/versions/9.2.0/update_system_properties.sql

    r20450 r20458  
    992992insert into PN_PROPERTY (CONTEXT_ID, LANGUAGE, PROPERTY_TYPE, PROPERTY, PROPERTY_VALUE, RECORD_STATUS, IS_SYSTEM_PROPERTY, IS_TRANSLATABLE_PROPERTY, PROPERTY_VALUE_CLOB) 
    993993values (2000, 'en', 'text', 'prm.methodology.dialog.saveastemplate.label', 'Save as Template', 'A', 0, 1, null); 
     994 
     995insert into PN_PROPERTY (CONTEXT_ID, LANGUAGE, PROPERTY_TYPE, PROPERTY, PROPERTY_VALUE, RECORD_STATUS, IS_SYSTEM_PROPERTY, IS_TRANSLATABLE_PROPERTY, PROPERTY_VALUE_CLOB) 
     996values (2000, 'en', 'text', 'prm.template.create.success.message', 'A template named {0} was created in business {1}!', 'A', 0, 1, null); 
    994997                                                         
    995998insert 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  
    596596        json.append("createdBy                  :       '" + ( this.createdBy == null ? "" : StringEscapeUtils.escapeJavaScript(this.createdBy) ) + "', \n"); 
    597597        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"); 
    599599        json.append("modifiedById               :       '" + this.modifiedByID + "', \n"); 
    600600        json.append("modifiedDate               :       '" + this.modifiedDate + "', \n"); 
  • trunk/core/src/net/project/view/pages/methodology/MethodologyAjaxHandler.java

    r20359 r20458  
    1212import net.project.persistence.PersistenceException; 
    1313import net.project.security.AuthorizationFailedException; 
    14 import net.project.security.SessionManager; 
    1514import net.project.security.User; 
    1615import net.project.util.StringUtils; 
    1716import net.project.view.pages.base.BasePage; 
     17import net.project.xml.XMLUtils; 
    1818 
    1919import org.apache.log4j.Logger; 
     
    5454                String selectedModules = request.getParameter("selectedModules"); // TODO: refactor request.getParameterValues('selectedModules') - return sting of checked chkboxes 
    5555                String[] modules = selectedModules.split(","); 
     56                String name = request.getParameter("name") != null ? request.getParameter("name").trim() : null; 
    5657                JSONObject result = new JSONObject(); 
    5758                 
     
    6061                        MethodologySpace methodologySpace = new MethodologySpace(); 
    6162 
    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); 
    6464 
    6565                        // prepare the methodology object 
     
    6767                        methodologySpace.setCreatedBy(user.getDisplayName()); 
    6868                        methodologySpace.setCreatedByID(user.getID()); 
    69                         methodologySpace.setName(request.getParameter("name") != null ? request.getParameter("name").trim() : null); 
     69                        methodologySpace.setName(name); 
    7070                        methodologySpace.setDescription (request.getParameter("description")); 
    7171                        methodologySpace.setUseScenario (request.getParameter("useScenario")); 
     
    7878                        if(methodologySpace.isNameExist()){ 
    7979                                String errorMsg = PropertyProvider.get("prm.template.create.namealreadyexist.error.message"); 
    80                                 result.put("status", 0);                        // FAIL indicator 
     80                                result.put("status", 0);                               // FAIL indicator 
    8181                                result.put("message", errorMsg); 
    8282                        } else { 
     
    8484                                 
    8585                                // 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 session 
    8886                                MethodologyProvider methodologyProvider = request.getAttribute("methodologyProvider") != null ? 
    8987                                                (MethodologyProvider) request.getAttribute("methodologyProvider") : new MethodologyProvider(); 
     
    9593                                if (methodologyProvider.hasErrors()) { 
    9694                                        // methodology is created with errors 
    97                                         //result.put("status", 0);                      // FAIL indicator 
    9895                                        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 
    10197                                        result.put("message", PropertyProvider.get("prm.template.create.error.successwitherrors")); 
    10298                                        result.put("errors", methodologyProvider.getAllErrorMessages()); 
     
    104100                                } else { 
    105101                                    methodologySpace.clear(); 
     102                                    methodologySpace.load(); 
    106103                                    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()})); 
    110106                                } 
    111107                                 
  • trunk/core/web/css/methodology/saveAsTemplateBusiness.css

    r20401 r20458  
    3838 
    3939/* 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; } 
    4142#submitBtn, #cancelBtn { margin: 0 2px; font-size: 12px; } 
    4243.x-btn em { padding: 0 30px; } 
  • trunk/core/web/css/methodology/saveAsTemplateProject.css

    r20401 r20458  
    3636#templateDetails { position: absolute; margin-top: 35px; padding-bottom: 20px; overflow: auto; height: 350px; width: 100%; font-size: 13px; } 
    3737/* 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; } 
    3940#submitBtn, #cancelBtn { margin: 0 2px; font-size: 12px; } 
    4041.x-btn em { padding: 0 30px; }  
  • trunk/core/web/jsp/business/Setup.jsp

    r20401 r20458  
    296296        var ajaxRequestFailureMessageValue = '<%=PropertyProvider.get("prm.methodology.dialog.ajaxrequesterror.message")%>'; 
    297297</script> 
     298<template:import type="javascript" src="/src/methodology/PnetDialogWindow.js" /> 
    298299<template:import type="javascript" src="/src/methodology/saveAsTemplate.js" /> 
    299300<script type="text/javascript"> 
  • trunk/core/web/jsp/methodology/MethodologyList.jsp

    r20401 r20458  
    331331        var ajaxRequestFailureMessageValue = '<%=PropertyProvider.get("prm.methodology.dialog.ajaxrequesterror.message")%>'; 
    332332</script> 
     333<template:import type="javascript" src="/src/methodology/PnetDialogWindow.js" /> 
    333334<template:import type="javascript" src="/src/methodology/saveAsTemplate.js" /> 
    334335<template:import type="javascript" src="/src/methodology/methodologyList.js" /> 
     
    341342         
    342343        var userId = '<%=user.getID()%>'; 
     344        var win; 
    343345                 
    344346        Ext.onReady(function() { 
     
    359361                                location.reload(true); 
    360362                        }); 
    361                         // hide Visible To field if Personal Space is selected on page load 
    362                         handleOwningBusinessSelection(userId); 
    363363                }); 
    364364 
  • trunk/core/web/jsp/project/Setup.jsp

    r20401 r20458  
    314314        var ajaxRequestFailureMessageValue = '<%=PropertyProvider.get("prm.methodology.dialog.ajaxrequesterror.message")%>'; 
    315315</script> 
     316<template:import type="javascript" src="/src/methodology/PnetDialogWindow.js" /> 
    316317<template:import type="javascript" src="/src/methodology/saveAsTemplate.js" /> 
    317318<script type="text/javascript"> 
  • trunk/core/web/src/methodology/saveAsTemplate.js

    r20401 r20458  
    99         
    1010        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() { 
    3615                resetForm(); 
    3716                win.hide();      
    3817        } 
    3918 
    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() { 
    5421                // necessary validation 
    5522                if(processForm(Ext.get('saveAsTemplateForm').dom)) { 
     
    11582                                                win.hide(); 
    11683                                                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(); 
    12489                                        } else { 
    12590                                                // hide form submition indicator 
     
    145110                }                        
    146111        } 
    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. 
    153138        function openPopupDelegate(e, callbackFn) { 
    154                 saveCallbackFn = callbackFn; 
     139                if(callbackFn) { 
     140                        saveCallbackFn = callbackFn;                    // set callback function 
     141                } 
    155142                if(e) 
    156143                        e.preventDefault(); 
     144                 
    157145                createPopupDialog(); 
    158146        } 
    159147         
    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 
    191155        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;  
    194157                return true; 
    195158        } 
     
    219182        } 
    220183 
    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  
    222192        function resetErrors() { 
    223193                Ext.DomHelper.overwrite(Ext.get('errorsCnt'), '', true); 
     
    225195        } 
    226196         
    227         // Select all modules checkboxes helper function 
     197        // Helper function - used for selecting all modules checkboxes 
    228198        function selectAllModules() { 
    229199                var modules = Ext.query('input[name=selectedModule]'); 
     
    233203        } 
    234204         
     205        // Helper function - used for getting forms selected modules 
    235206        function getSelectedModules() { 
    236207                var selectedModules = new Array();