Changeset 20556

Show
Ignore:
Timestamp:
03/09/10 08:49:45 (5 months ago)
Author:
uroslates
Message:
  • Fix for bug-3148
  • Refactoring Templates related css
  • Templates: Include Modules is made required
  • Fixing issue with Edit Template page modules list display(depending on template parent space)
Files:

Legend:

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

    r20553 r20556  
    14341434      p.property = 'prm.global.tool.template.name'; 
    14351435 
     1436update pn_property p set 
     1437          p.property_value = 'Template Name is a required field' 
     1438where  
     1439          p.context_id = 2000 and 
     1440          p.language = 'en' and 
     1441      p.property = 'prm.template.templifyspace.namerequired.message'; 
     1442 
     1443insert into PN_PROPERTY (CONTEXT_ID, LANGUAGE, PROPERTY_TYPE, PROPERTY, PROPERTY_VALUE, RECORD_STATUS, IS_SYSTEM_PROPERTY, IS_TRANSLATABLE_PROPERTY, PROPERTY_VALUE_CLOB) 
     1444values (2000, 'en', 'text', 'prm.template.templifyspace.includedmodulesrequired.message', 'Included Modules is a required field', 'A', 0, 1, null); 
     1445       
    14361446insert into PN_PROPERTY (CONTEXT_ID, LANGUAGE, PROPERTY_TYPE, PROPERTY, PROPERTY_VALUE, RECORD_STATUS, IS_SYSTEM_PROPERTY, IS_TRANSLATABLE_PROPERTY, PROPERTY_VALUE_CLOB) 
    14371447values (2000, 'en', 'text', 'prm.schedule.workingtimecalendar.defaultbase.name', '{0} Base Calendar', 'A', 0, 1, null); 
  • trunk/core/src/net/project/methodology/MethodologySpace.java

    r20458 r20556  
    6868    private Space parentSpace = null; 
    6969    private String basedOnSpaceID = null; 
     70    private Space basedOnSpace = null; 
    7071    private String createdByID = null; 
    7172    private String createdBy = null; 
     
    279280    public void setBasedOnSpaceID(String basedOnSpaceID) { 
    280281        this.basedOnSpaceID = basedOnSpaceID; 
     282    } 
     283     
     284    public Space getBasedOnSpace() throws PersistenceException { 
     285        if (this.basedOnSpace == null) { 
     286            loadBasedOnSpace(); 
     287        } 
     288        return this.basedOnSpace; 
     289    } 
     290     
     291    void setBasedOnSpace(Space basedOnSpace) { 
     292        this.basedOnSpace = basedOnSpace; 
    281293    } 
    282294 
     
    404416        space.load(); 
    405417        setParentSpace(space); 
     418    } 
     419     
     420    private void loadBasedOnSpace() throws PersistenceException { 
     421        Space space = SpaceFactory.constructSpaceFromID(this.basedOnSpaceID); 
     422        space.load(); 
     423        setBasedOnSpace(space); 
    406424    } 
    407425 
     
    661679        isLoaded = false; 
    662680        basedOnSpaceID = null; 
     681        basedOnSpace = null; 
    663682        modules = null; 
    664683    } 
  • trunk/core/src/net/project/methodology/mvc/MethodologyController.java

    r20391 r20556  
    3838import net.project.security.User; 
    3939import net.project.space.Space; 
     40import net.project.space.SpaceTypes; 
    4041import net.project.util.Conversion; 
    4142 
     
    152153                        model.put("methodologySpaceUseScenario", methodologySpace.getUseScenario()); 
    153154                        model.put("methodologySpaceDescription", net.project.util.HTMLUtils.escape(methodologySpace.getDescription()));                  
    154                         request.setAttribute("cbModules", getCheckboxModel(methodologySpace.getModules())); 
     155                        request.setAttribute("cbModules", getCheckboxModel(methodologySpace.getModules(), methodologySpace.getBasedOnSpace())); 
    155156         
    156157                } catch (Exception e) { 
     
    194195        } 
    195196 
    196         private TreeSet<PnModuleCheckboxModel> getCheckboxModel(List<PnModule> pnModules) { 
    197                 int[] imodules = new int[]{Module.SECURITY, Module.DOCUMENT, Module.PROCESS, Module.WORKFLOW, Module.DISCUSSION, Module.FORM, Module.SCHEDULE}; 
     197        private TreeSet<PnModuleCheckboxModel> getCheckboxModel(List<PnModule> pnModules, Space basedOnSpace) { 
     198                int[] projectmodules = new int[]{Module.SECURITY, Module.DOCUMENT, Module.PROCESS, Module.WORKFLOW, Module.DISCUSSION, Module.FORM, Module.SCHEDULE}; 
     199                int[] businessmodules = new int[]{Module.SECURITY, Module.DOCUMENT, Module.WORKFLOW, Module.DISCUSSION, Module.FORM}; 
     200                int[] imodules; 
     201                String basedOnspaceType = basedOnSpace != null ? basedOnSpace.getType() : SpaceTypes.BUSINESS_SPACE;    // NOTE: hardcodding that if basedOnSpace is not specified(legacy cod) than set show only Business related modules 
     202                 
     203                if(basedOnspaceType.equals(SpaceTypes.BUSINESS_SPACE)) { 
     204                        imodules = businessmodules; 
     205                } else { 
     206                        imodules = projectmodules; 
     207                } 
    198208                TreeSet<PnModuleCheckboxModel> cbModules = new TreeSet<PnModuleCheckboxModel>(new Comparator<PnModuleCheckboxModel>() { 
    199209                    // Comparator interface requires defining compare method. 
  • trunk/core/src/net/project/view/pages/methodology/MethodologyAjaxHandler.java

    r20458 r20556  
    1515import net.project.util.StringUtils; 
    1616import net.project.view.pages.base.BasePage; 
    17 import net.project.xml.XMLUtils; 
    1817 
    1918import org.apache.log4j.Logger; 
  • trunk/core/web/css/extjs/businessTheme.css

    r20521 r20556  
    11/* Overriding ExtJs Window styles */ 
    2 .x-window-tl  { background-image:url(/images/extjs/customized/business/window/left-corners.png); } 
    3 .x-window-tr  { background-image:url(/images/extjs/customized/business/window/right-corners.png); } 
    4 .x-window-tc  { background-image:url(/images/extjs/customized/business/window/top-bottom.png); } 
    5 .x-window-ml  { background-image:url(/images/extjs/customized/business/window/left-right.gif); } 
    6 .x-window-mr  { background-image:url(/images/extjs/customized/business/window/left-right.gif); } 
    7 .x-window-bl  { background-image:url(/images/extjs/customized/business/window/left-corners.png); } 
    8 .x-window-br  { background-image:url(/images/extjs/customized/business/window/right-corners.png); } 
    9 .x-window-bc  { background-image:url(/images/extjs/customized/business/window/top-bottom.png); } 
    10 .x-tool               { background:transparent url(/images/extjs/customized/business/window/tool-sprites.gif) no-repeat scroll 0 0; } 
    11 .x-window-mc  { background:#B9E8A4 none repeat scroll 0 0; border:1px solid #B9E8A4; } 
     2.pnet-window-cls .x-window-tl         { background-image:url(/images/extjs/customized/business/window/left-corners.png); } 
     3.pnet-window-cls .x-window-tr         { background-image:url(/images/extjs/customized/business/window/right-corners.png); } 
     4.pnet-window-cls .x-window-tc         { background-image:url(/images/extjs/customized/business/window/top-bottom.png); } 
     5.pnet-window-cls .x-window-ml         { background-image:url(/images/extjs/customized/business/window/left-right.gif); } 
     6.pnet-window-cls .x-window-mr         { background-image:url(/images/extjs/customized/business/window/left-right.gif); } 
     7.pnet-window-cls .x-window-bl         { background-image:url(/images/extjs/customized/business/window/left-corners.png); } 
     8.pnet-window-cls .x-window-br { background-image:url(/images/extjs/customized/business/window/right-corners.png); } 
     9.pnet-window-cls .x-window-bc         { background-image:url(/images/extjs/customized/business/window/top-bottom.png); } 
     10.pnet-window-cls .x-tool              { background:transparent url(/images/extjs/customized/business/window/tool-sprites.gif) no-repeat scroll 0 0; } 
     11.pnet-window-cls .x-window-mc { background:#B9E8A4 none repeat scroll 0 0; border:1px solid #B9E8A4; } 
    1212 
    13 body.x-body-masked .x-window-plain .x-window-mc { background:#C2FFB4 none repeat scroll 0 0; } 
     13/*body.x-body-masked .x-window-plain .x-window-mc { background:#C2FFB4 none repeat scroll 0 0; }*/ 
    1414 
    1515/* toolbar items */ 
    16 .x-tool-restore { background-position: 0 -45px;} 
    17 .x-tool-restore-over { background-position: -15px -45px;} 
    18 .x-tool-toggle { background-position: 0 -60px; } 
    19 .x-tool-toggle-over { background-position: -15px -60px; } 
    20 .x-tool-close { background-position: 0 0; } 
    21 .x-tool-close-over { background-position: -15px 0; } 
     16.pnet-window-cls .x-tool-restore { background-position: 0 -45px;} 
     17.pnet-window-cls .x-tool-restore-over { background-position: -15px -45px;} 
     18.pnet-window-cls .x-tool-toggle { background-position: 0 -60px; } 
     19.pnet-window-cls .x-tool-toggle-over { background-position: -15px -60px; } 
     20.pnet-window-cls .x-tool-close { background-position: 0 0; } 
     21.pnet-window-cls .x-tool-close-over { background-position: -15px 0; } 
  • trunk/core/web/css/methodology/methodologyList.css

    r20391 r20556  
    3535.loadIndicator { margin-left: 30px; color: #AAAAAA; display: inline; } 
    3636.loadIndicator strong { margin-left: 10px; } 
    37  
    38 /* Overriding ExtJs Window styles */ 
    39 .x-window-tl    { background-image:url(/images/extjs/customized/business/window/left-corners.png); } 
    40 .x-window-tr    { background-image:url(/images/extjs/customized/business/window/right-corners.png); } 
    41 .x-window-tc    { background-image:url(/images/extjs/customized/business/window/top-bottom.png); } 
    42 .x-window-ml    { background-image:url(/images/extjs/customized/business/window/left-right.gif); } 
    43 .x-window-mr    { background-image:url(/images/extjs/customized/business/window/left-right.gif); } 
    44 .x-window-bl    { background-image:url(/images/extjs/customized/business/window/left-corners.png); } 
    45 .x-window-br    { background-image:url(/images/extjs/customized/business/window/right-corners.png); } 
    46 .x-window-bc    { background-image:url(/images/extjs/customized/business/window/top-bottom.png); } 
    47 .x-tool                 { background:transparent url(/images/extjs/customized/business/window/tool-sprites.gif) no-repeat scroll 0 0; } 
    48 .x-window-mc    { background:#B9E8A4 none repeat scroll 0 0; border:1px solid #B9E8A4; } 
    49 body.x-body-masked .x-window-plain .x-window-mc { background:#C2FFB4 none repeat scroll 0 0; } 
  • trunk/core/web/jsp/business/Setup.jsp

    r20547 r20556  
    245245                                </p> 
    246246                                <p id="modulesIncluded"> 
    247                                         <div class="left non-required"><display:get name="prm.template.create.includedmodules" />:</div> 
     247                                        <div class="left required"><display:get name="prm.template.create.includedmodules" />:</div> 
    248248                                        <div class="right"> 
    249249                                                <ul> 
     
    307307<script type="text/javascript"> 
    308308        var nameRequiredMsg = '<%=PropertyProvider.get("prm.template.templifyspace.namerequired.message")%>'; 
    309         // var useScenarioRequiredMsg = '<%=PropertyProvider.get("prm.template.templifyspace.usescenariorequired.message")%>'; 
     309        var includedModulesRequiredMsg = '<%=PropertyProvider.get("prm.template.templifyspace.includedmodulesrequired.message")%>'; 
    310310        var userId = '<%=user.getID()%>'; 
    311311         
  • trunk/core/web/jsp/methodology/MethodologyList.jsp

    r20522 r20556  
    163163<link type="text/css" rel="stylesheet" href="/styles/methodology/saveAsTemplate.css" /> 
    164164<link type="text/css" rel="stylesheet" href="/styles/methodology/methodologyList.css" /> 
    165 <!-- link type="text/css" rel="stylesheet" href="/styles/methodology/saveAsTemplateBusiness.css" /--> 
    166165<link type="text/css" rel="stylesheet" href="/styles/extjs/businessTheme.css" /> 
    167166<link type="text/css" rel="stylesheet" href="/styles/pnetDialogWindow.css" /> 
     
    266265                                        </p> 
    267266                                        <p id="modulesIncluded"> 
    268                                                 <div class="left non-required"><display:get name="prm.template.create.includedmodules" />:</div> 
     267                                                <div class="left required"><display:get name="prm.template.create.includedmodules" />:</div> 
    269268                                                <div class="right"> 
    270269                                                        <ul> 
     
    334333 
    335334        var nameRequiredMsg = '<%=PropertyProvider.get("prm.template.templifyspace.namerequired.message")%>'; 
    336         // var useScenarioRequiredMsg = '<%=PropertyProvider.get("prm.template.templifyspace.usescenariorequired.message")%>'; 
     335        var includedModulesRequiredMsg = '<%=PropertyProvider.get("prm.template.templifyspace.includedmodulesrequired.message")%>'; 
    337336         
    338337        var userId = '<%=user.getID()%>'; 
  • trunk/core/web/jsp/methodology/PropertiesEdit.jsp

    r20522 r20556  
    9696         
    9797        if(!checkTextbox(myForm.methodologySpaceName,"<%=PropertyProvider.get("prm.template.create.name.required.message")%>")) return false; 
    98         // if(!checkTextbox(myForm.useScenario,"<%=PropertyProvider.get("prm.template.create.usescenario.required.message")%>")) return false; 
     98        if(!checkCheckBox_NoSelect(myForm.selectedModules, "<%=PropertyProvider.get("prm.template.templifyspace.includedmodulesrequired.message")%>")) return false; 
    9999        return true; 
    100100 } 
     
    218218                <%-- Methodology Modules --%> 
    219219                <p id="modulesIncluded"> 
    220                         <div class="left non-required"><span>Included Modules:<span></div> 
     220                        <div class="left required"><span>Included Modules:<span></div> 
    221221                        <div class="right"> 
    222222 
  • trunk/core/web/jsp/project/Setup.jsp

    r20521 r20556  
    246246                                </p> 
    247247                                <p id="modulesIncluded"> 
    248                                         <div class="left non-required"><display:get name="prm.template.create.includedmodules" />:</div> 
     248                                        <div class="left required"><display:get name="prm.template.create.includedmodules" />:</div> 
    249249                                        <div class="right"> 
    250250                                                <ul> 
     
    307307<script type="text/javascript"> 
    308308        var nameRequiredMsg = '<%=PropertyProvider.get("prm.template.templifyspace.namerequired.message")%>'; 
    309         // var useScenarioRequiredMsg = '<%=PropertyProvider.get("prm.template.templifyspace.usescenariorequired.message")%>'; 
     309        var includedModulesRequiredMsg = '<%=PropertyProvider.get("prm.template.templifyspace.includedmodulesrequired.message")%>'; 
    310310        var userId = '<%=user.getID()%>'; 
    311311                 
  • trunk/core/web/jsp/security/group/GroupRemoveProcessing.jsp

    r18888 r20556  
    9191        request.setAttribute("action", Integer.toString(net.project.security.Action.VIEW)); 
    9292        ServletSecurityProvider.setAndCheckValues(request); 
    93 %>     
    94                 
    95 <%-- Goback to the Security Console --%> 
    96 <jsp:forward page="GroupListView.jsp" /
     93       
     94        // Go back to the Security Console 
     95        response.sendRedirect("/security/group/GroupListView.jsp?module="+Module.DIRECTORY); 
     96%
  • trunk/core/web/src/methodology/saveAsTemplate.js

    r20521 r20556  
    128128        } 
    129129         
    130         // Function triggered to handle dialog resizing CSS issues in the dialogs content 
    131         function dialogResized(win, width, height) { 
    132                 Ext.get('templateDetails').setWidth(width-10); 
    133                 Ext.get('templateDetails').setHeight(height-100); 
    134         } 
    135          
    136130        // Form validation method 
    137131        function processForm(myForm) { 
    138                 if(!checkTextbox(myForm.name, nameRequiredMsg)) return false;  
     132                if(!checkTextbox(myForm.name, nameRequiredMsg)) return false; 
     133                if(!checkCheckBox_NoSelect(myForm.selectedModule, includedModulesRequiredMsg)) return false; 
    139134                return true; 
    140135        }