Changeset 13316 in main
- Timestamp:
- 03/07/17 00:06:33 (5 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/db/src/main/scripts/mysql/data-dataset.sql
r13106 r13316 130 130 where dstiv.INDICATOR_VIEW_NAME = tivd.INDICATOR_VIEW_NAME 131 131 and tivd.DATASET_NAME is not null 132 group by tivd.DATASET_NAME 132 group by tivd.DATASET_NAME, dstiv.DATA_SOURCE_NAME 133 133 ; 134 134 … … 140 140 where DATASET_NAME is not null 141 141 and INDICATOR_VIEW_NAME is not null 142 group by DATASET_NAME142 group by INDICATOR_VIEW_NAME, DATASET_NAME 143 143 ; 144 144 -
trunk/db/src/main/scripts/mysql/data-dataset_record.sql
r13106 r13316 65 65 66 66 67 select * from DATASET_RECORD; 68 69 delete from DATASET_RECORD; 70 71 /* do a straight grab - dump in all the values */ 72 insert into DATASET_RECORD ( 73 NAME, DATASET_NAME, 67 68 create table TMP_DATASET_RECORD( 69 INDICATOR_VIEW_NAME varchar (400), 70 DATASET_NAME varchar (100) not null, 71 /* */ 72 PERIOD_DIMENSION_NAME varchar (100) not null, 73 PERIOD_DIMENSION_VALUE varchar (100) not null, 74 DIMENSION_1_NAME varchar (100) not null, 75 DIMENSION_1_VALUE varchar (100) not null, 76 DIMENSION_2_NAME varchar (100) not null, 77 DIMENSION_2_VALUE varchar (100) not null, 78 /* */ 79 NUMERATOR double, 80 DENOMINATOR double, 81 VALUE double, /* can be null because if insufficient etc. 0 is not correct and * or ** is NOT allowed! */ 82 LOWER_CONFIDENCE_VALUE double, 83 UPPER_CONFIDENCE_VALUE double, 84 LABEL varchar (100), 85 NOTE varchar (2000), 86 /* */ 87 SORT_ORDER int default null, 88 ACTIVE_FLAG varchar (1) 89 ); 90 91 92 /* do a straight grab - dump in all the values. Note have to do a temp table 93 insert that does not have a composite PK because the dataset name is more 94 general as it combines geocnty, georegion, geosarea etc and thus has the 95 same multiple state records which will cause dup PK issues. 96 */ 97 insert into TMP_DATASET_RECORD ( 98 INDICATOR_VIEW_NAME, DATASET_NAME, 74 99 DIMENSION_1_NAME, DIMENSION_2_NAME, PERIOD_DIMENSION_NAME, 75 100 DIMENSION_1_VALUE, DIMENSION_2_VALUE, PERIOD_DIMENSION_VALUE, 76 101 VALUE, LOWER_CONFIDENCE_VALUE, UPPER_CONFIDENCE_VALUE, NUMERATOR, DENOMINATOR, 77 102 NOTE, ACTIVE_FLAG) 78 select ivv.INDICATOR_VIEW_NAME, 103 select 104 ivv.INDICATOR_VIEW_NAME, 79 105 concat(ivv.INDICATOR_VIEW_NAME, 80 106 '|', ivv.DIMENSION_1_NAME, ':', ivv.DIMENSION_1_VALUE, … … 90 116 91 117 /* set the US dataset name */ 92 update DATASET_RECORDdr118 update TMP_DATASET_RECORD tdr 93 119 set DATASET_NAME = ifnull( 94 120 (select tivd.DATASET_NAME 95 121 from TMP_INDICATOR_VIEW_DATASET tivd 96 where tivd.INDICATOR_VIEW_NAME = dr.NAME97 and tivd.PERIOD_DIMENSION_NAME = dr.PERIOD_DIMENSION_NAME122 where tivd.INDICATOR_VIEW_NAME = tdr.INDICATOR_VIEW_NAME 123 and tivd.PERIOD_DIMENSION_NAME = tdr.PERIOD_DIMENSION_NAME 98 124 and tivd.DATASET_NAME like '%.US' 99 125 limit 1 100 126 ), DATASET_NAME) 101 where dr.DIMENSION_1_NAME = 'US'102 or dr.DIMENSION_2_NAME = 'US'127 where tdr.DIMENSION_1_NAME = 'US' 128 or tdr.DIMENSION_2_NAME = 'US' 103 129 ; 104 130 105 131 /* set the non US dataset name */ 106 update DATASET_RECORDdr132 update TMP_DATASET_RECORD tdr 107 133 set DATASET_NAME = ifnull( 108 134 (select tivd.DATASET_NAME 109 135 from TMP_INDICATOR_VIEW_DATASET tivd 110 where tivd.INDICATOR_VIEW_NAME = dr.NAME111 and tivd.PERIOD_DIMENSION_NAME = dr.PERIOD_DIMENSION_NAME136 where tivd.INDICATOR_VIEW_NAME = tdr.INDICATOR_VIEW_NAME 137 and tivd.PERIOD_DIMENSION_NAME = tdr.PERIOD_DIMENSION_NAME 112 138 and tivd.DATASET_NAME not like '%.US' 113 139 limit 1 114 140 ), DATASET_NAME) 115 where dr.DIMENSION_1_NAME != 'US' 116 and dr.DIMENSION_2_NAME != 'US' 117 ; 118 119 120 121 /* could update the DS NAME - not doing for now as this column might not be used. 122 update DATASET_RECORD ds 123 set NAME = concat(DATASET_NAME, 124 '|', DIMENSION_1_NAME, ':', DIMENSION_1_VALUE, 125 '|', DIMENSION_2_NAME, ':', DIMENSION_2_VALUE, 126 '|', PERIOD_DIMENSION_NAME, ':', PERIOD_DIMENSION_VALUE) 127 ; 128 */ 129 130 131 132 45,132 IVV rows 133 19,897 inserted into DATASET_RECORDs 141 where tdr.DIMENSION_1_NAME != 'US' 142 and tdr.DIMENSION_2_NAME != 'US' 143 ; 144 145 146 /* now insert the unique records into the real dataset_record table */ 147 select * from DATASET_RECORD; 148 delete from DATASET_RECORD; 149 150 insert into DATASET_RECORD ( 151 NAME, DATASET_NAME, 152 DIMENSION_1_NAME, DIMENSION_2_NAME, PERIOD_DIMENSION_NAME, 153 DIMENSION_1_VALUE, DIMENSION_2_VALUE, PERIOD_DIMENSION_VALUE, 154 VALUE, LOWER_CONFIDENCE_VALUE, UPPER_CONFIDENCE_VALUE, NUMERATOR, DENOMINATOR, 155 NOTE, ACTIVE_FLAG) 156 select 157 concat(DATASET_NAME, 158 '|', DIMENSION_1_NAME, ':', DIMENSION_1_VALUE, 159 '|', DIMENSION_2_NAME, ':', DIMENSION_2_VALUE, 160 '|', PERIOD_DIMENSION_NAME, ':', PERIOD_DIMENSION_VALUE) as TEMP_NAME, 161 DATASET_NAME, 162 DIMENSION_1_NAME, DIMENSION_2_NAME, PERIOD_DIMENSION_NAME, 163 DIMENSION_1_VALUE, DIMENSION_2_VALUE, PERIOD_DIMENSION_VALUE, 164 VALUE, LOWER_CONFIDENCE_VALUE, UPPER_CONFIDENCE_VALUE, 165 NUMERATOR, DENOMINATOR, 166 NOTE, ACTIVE_FLAG 167 from TMP_DATASET_RECORD 168 group by TEMP_NAME 169 ; 170 171 drop table TMP_DATASET_RECORD; 172 134 173 135 174 … … 139 178 group by INDICATOR_VIEW_NAME 140 179 ; 141 142 ==> 6605 rows143 144 145 146 147 148 VALUE:149 series that are not used at this point:150 AgeGrp11151 Eligible152 153 category:154 AcuteChronic155 AgeGpChldPov156 157 VIEW:158 category: GeoMSA159 series: Eligible160 161 180 162 181 -
trunk/db/src/main/scripts/mysql/tab_c-dataset.sql
r13090 r13316 68 68 69 69 create table DATASET_RECORD( 70 71 72 /* probably not needed but semi leave in for now just in case */ 70 /* probably not needed but semi leave in for now just in case */ 73 71 NAME varchar (400), /* not null, composite built by the app. DS_NAME|PD_NAME|PD_VAL|DIM1_NAME|DIM1_VAL|DIM2_NAME|DIM2_VALUE */ 74 75 76 72 DATASET_NAME varchar (100) not null, 77 73 /* */ -
trunk/db/src/main/scripts/mysql/tab_d-user_auth.sql
r11662 r13316 9 9 drop table AUTHORITY; 10 10 drop table ROLE; 11 drop table ROLE_TO_AUTHORITY;11 drop table AUTHORITY_TO_ROLE; 12 12 drop table USER; 13 drop table USER_TO_ROLE;14 drop table USER_TO_AUTHORITY;13 drop table ROLE_TO_USER; 14 drop table AUTHORITY_TO_USER; 15 15 16 16 /*------------------------------ END OF FILE ------------------------------*/ -
trunk/db/src/main/scripts/mysql/update.sql
r13004 r13316 71 71 data-dimension_period.sql 72 72 73 table-repair.sql 74 73 75 Data update scripts: 74 76 data-cleanup.sql /* removes unused and orphanded I, IV, IVV, DSC DSCV, DSS, DSSV and few misc updates */ -
trunk/ibisph-admin/src/main/webapp/WEB-INF/config/spring/dispatcher_servlet.xml
r13313 r13316 141 141 <entry key="edit/indicator/dataset/data_sources/**" value-ref="indicatorDatasetEditDataSourcesController"/> 142 142 <entry key="edit/indicator/dataset/dimensions/**" value-ref="indicatorDatasetEditDimensionsController"/> 143 <entry key="edit/indicator/dataset/records/**"value-ref="indicatorDatasetEditRecordsController"/>143 <entry key="edit/indicator/dataset/record/list/**" value-ref="indicatorDatasetEditRecordsController"/> 144 144 145 145 <entry key="save/indicator/dataset/list/**" value-ref="indicatorDatasetSaveListController"/> … … 147 147 <entry key="save/indicator/dataset/data_sources/**" value-ref="indicatorDatasetSaveDataSourcesController"/> 148 148 <entry key="save/indicator/dataset/dimensions/**" value-ref="indicatorDatasetSaveDimensionsController"/> 149 <entry key="save/indicator/dataset/record s/**"value-ref="indicatorDatasetSaveRecordsController"/>149 <entry key="save/indicator/dataset/record/list/**" value-ref="indicatorDatasetSaveRecordsController"/> 150 150 151 151 <entry key="indicator/dataset/*.xml" value-ref="indicatorDatasetViewXMLController"/> -
trunk/ibisph-admin/src/main/webapp/WEB-INF/jsp/_menu_items.jsp
r13315 r13316 27 27 28 28 PAGE NAVIGATION DESIGN NOTES: 29 - All pages navigation needs to go through script. The reason for this is 30 that pages can be modified and need to be posted back to the server. 29 - All page navigation needs to go through requestPage script. The reason for 30 this is that pages can be modified and need to be posted back to the server 31 and list pages need to handle the selectedName. 31 32 - The nav menu and internal page links need to build the page request URL 32 33 based on the either the "selectedXXXXName" session model value or in the 33 34 case of a list page the selectedName element. 34 35 - Script checks for the existance of a "selectedName" element on the page. 35 If exists then its a list page and the desired page request URL needs to36 adjusted to set the user's selected list item prior to posting/making the37 page request. This is done via stripping all text after the last "/" then38 adding the selectedName value along with ".html". Otherwise the menus39 a re typically built at page generation time using the selectedXXXXName40 session variables.36 If exists AND the user is tranversing down to a sub selection, the then 37 the desired page request URL needs to be adjusted to set the user's selected 38 list item prior to posting/making the page request. This is done via 39 stripping all text after the last "/" then adding the selectedName value 40 along with ".html". Otherwise the menus are typically built at page 41 generation time using the selectedXXXXName session variables. 41 42 - Controllers should pick up the selected name from the end of the requested 42 43 URL path. If not found then get the last known value in the user's session. 43 44 If still not found then one can be determined from a collection etc. 44 - Each page should have a " pageRequest" hidden element. This element has45 two purposes:45 - Each page should have a "requestedPageURL" hidden element. This element 46 has two purposes: 46 47 1) The value should be set to match a navigation menu element's ID attribute. 47 48 Onload script then reads this element's value to get the current nav 48 menu associated with that page and adds a CSS class to the element which49 changes the elements apperance (on menu item).49 menu associated with that page and adds a CSS "On" class to the element 50 which changes the elements apperance (on menu item). 50 51 2) When the page is posting data back to the server, the script that is 51 52 used to submit the request first sets this hidden's value to the page -
trunk/ibisph-admin/src/main/webapp/WEB-INF/jsp/chart/list.jsp
r13315 r13316 80 80 <a href="javascript:requestPage('edit/chart/detail')">Edit Detail</a> 81 81 </li> 82 <!-- 82 83 <li id="newButton" class="Button" title="Creates/adds a new item"> 83 84 <a href="javascript:requestPage('edit/chart/detail/-NEW-.html')">Add New</a> 84 85 </li> 86 --> 85 87 <li id="saveButton" class="Button" title="Commit/save the changes"> 86 88 <a href="javascript:requestPage('edit/chart/list')">Save</a> -
trunk/ibisph-admin/src/main/webapp/WEB-INF/jsp/data_source/detail.jsp
r13315 r13316 18 18 { 19 19 var msg = ""; 20 if(isBlank(document.form.name.value)) 21 { 22 msg = msg + "- The 'Name' field can not be blank and must be unique.\n"; 23 document.form.name.focus(); 24 } 20 25 if(isBlank(document.form.title.value)) 21 26 { … … 73 78 <table class="Detail" summary="Layout - left column is the label/title, right column contains associated input elements."> 74 79 <tr> 80 <c:if test="${empty dataSource.name}"> 81 <th scope="row">Name *</th> 82 <td class="ContentName"> 83 <input name="name" value=""/> 84 </td> 85 </c:if> 86 <c:if test="${not empty dataSource.name}"> 75 87 <th scope="row">Name:</th> 76 88 <td class="ContentName"> … … 78 90 <input type="hidden" name="name" value="${dataSource.name}"/> 79 91 </td> 92 </c:if> 80 93 </tr> 81 94 <tr><td colspan="2"><hr align="center"/></td></tr> -
trunk/ibisph-admin/src/main/webapp/WEB-INF/jsp/dimension/values.jsp
r13315 r13316 96 96 <table class="List" summary="List table - Top row contains the column titles, following rows represent a data record row."> 97 97 <tr> 98 <th scope="col" class=" Title">Value *</th>98 <th scope="col" class="Name">Value *</th> 99 99 <th scope="col" class="Title">Title *</th> 100 <th scope="col" class=" Title">Description</th>100 <th scope="col" class="Description">Description</th> 101 101 <th scope="col" class="SortOrder" title="Value used to determine how to order records (must be blank or numeric and can include decimal points).">Sort Order</th> 102 102 <th scope="col" class="ActiveFlag" title="Controls if this item shows up in validation lists and if it is publishable.">Active</th> … … 106 106 <c:set var="setModified">onchange="setModified(${loopStatus.index});"</c:set> 107 107 <tr> 108 <td class=" Title">108 <td class="Name"> 109 109 ${value.value} 110 110 <input type="hidden" name="name" value="${value.value}"/> … … 116 116 <input type="text" name="title" maxlength="100" value="${value.title}" ${setModified}/> 117 117 </td> 118 <td >118 <td class="Description"> 119 119 <input type="text" name="description" maxlength="500" value="${value.description}" ${setModified}/> 120 120 </td> -
trunk/ibisph-admin/src/main/webapp/WEB-INF/jsp/indicator/dataset/_menu_items.jsp
r13315 r13316 25 25 </li> 26 26 <li id="indicator/dataset/dimensions"><a href="javascript:requestPage('edit/indicator/dataset/dimensions', '${selectedDatasetName}')" title="Datasets's dimensions.">Dataset Dimensions</a></li> 27 <li id="indicator/dataset/record s"><a href="javascript:requestPage('edit/indicator/dataset/records', '${selectedDatasetName}')" title="Datasets's values, confidence limits etc.">Dataset Records</a></li>27 <li id="indicator/dataset/record/list"><a href="javascript:requestPage('edit/indicator/dataset/record/list', '${selectedDatasetName}')" title="Datasets's values, confidence limits etc.">Dataset Records</a></li> 28 28 </ul> 29 29 </li> -
trunk/ibisph-admin/src/main/webapp/WEB-INF/jsp/user/_menu_items.jsp
r11972 r13316 3 3 <%@ include file="../_menu_items.jsp"%> 4 4 5 <li id="user/list" ><a href="javascript:requestPage('edit/user/list')" title="List of">User List</a></li> 6 <li id="user/detail"><a href="javascript:requestPage('edit/user/detail/${selectedUserID}.html')" title="Detail of">User Detail</a></li> 7 <li id="user/authorities"><a href="javascript:requestPage('edit/user/authorities/${selectedUserID}.html')" title="Assign/maintain user authorities">User Authorities</a></li> 8 <li id="user/roles"><a href="javascript:requestPage('edit/user/roles/${selectedUserID}.html')" title="Assign/maintain user roles">User Roles</a></li> 9 5 <li id="user/list" ><a href="javascript:requestPage('edit/user/list')" title="List of">User List</a></li> 6 <li id="user/detail"><a href="javascript:requestPage('edit/user/detail', '${selectedUserID}')" title="Detail of">User Detail</a></li> 7 <li id="user/authorities"><a href="javascript:requestPage('edit/user/authorities', '${selectedUserID}')" title="Assign/maintain user authorities">User Authorities</a></li> 8 <li id="user/roles"><a href="javascript:requestPage('edit/user/roles', '${selectedUserID}')" title="Assign/maintain user roles">User Roles</a></li> -
trunk/ibisph-admin/src/main/webapp/WEB-INF/jsp/value_attribute/detail.jsp
r13315 r13316 101 101 <th scope="row"><label for="footnoteCode">Footnote Code</label></th> 102 102 <td> 103 <input type="text" name="footnoteCode" id="footnoteCode" maxlength="10" onchange="setModified();" value="${valueAttribute.footnoteCode}"/> 103 <input type="text" name="footnoteCode" id="footnoteCode" 104 maxlength="10" onchange="setModified();" 105 value="${valueAttribute.footnoteCode}" 106 style="min-width:6em; max-width:6em;" 107 /> 104 108 </td> 105 109 </tr> … … 108 112 <th scope="row"><label for="sortOrder">Sort Order</label></th> 109 113 <td class="SortOrder"> 110 <input type="text" name="sortOrder" id="sortOrder" maxlength="10" onchange="setModified();" value="${valueAttribute.sortOrder}"/> 114 <input type="text" name="sortOrder" id="sortOrder" maxlength="10" 115 onchange="setModified();" value="${valueAttribute.sortOrder}" 116 /> 111 117 </td> 112 118 </tr> -
trunk/ibisph-admin/src/main/webapp/js/common.js
r13315 r13316 71 71 * a redirect to that URL (redirect avoids forward's dup posting problem when 72 72 * the back button is pressed). 73 * b) list page's requested "selectedName" are handled. 74 * 3 Use cases:75 * 1) Complete URL/direct request. This is when the URL ends with ".html". It76 * is almost always used by a list page's detail page request link.77 * NOTE: If a selectedName element exists, then the name needs to be grabbed78 * from the end of the URL request and set.79 * 2) Left nav tab request - page has a selectedName element (list pages). Always80 * use the page's selectedName if it exists (unless it is complete URL). The73 * b) list page's requested "selectedName" are handled. 3 Use cases: 74 * 1) Complete URL/direct request. No processing is used. This is when the 75 * URL ends with ".html". It is almost always used by a list page's detail 76 * page request link or when referring to a dimension to edit etc. 77 * NOTE: If a selectedName element exists, then the URL's filename needs to 78 * be grabbed from the end of the URL request and radio set to handle [back]. 79 * 2) Left nav tab request from a page has a selectedName element (list pages). 80 * If not complete URL and a list type page use the page's selectedName. The 81 81 * URL is built by the components of prefix, base URL, selectedName, .html. 82 * 3) Left nav tab request - no selectedName element (non list detail pages).82 * 3) Left nav tab request - no selectedName element (non list, detail pages). 83 83 * Use the supplied selectedName parameter value to build the complete URL. 84 * Note that m ostpages (not IP or IPV) do not even need a value as the84 * Note that many pages (not IP or IPV) do not even need a value as the 85 85 * controller gets the appropriate xyzSelectedName value from the session. 86 86 * The IP and IPV left nav specifies the session value (selectedIndicatorName) … … 88 88 * IP/IPV is displayed (different way of creating a "new" IP). 89 89 * 90 91 *@param url complete URL. 92 *@param optionalURLModifierArgument arg that is passed to the URL modifier. 93 * This allows the modifier to do special checks etc. 90 *@param url partial or complete URL. 91 *@param selectedName default name to use if a selectedName element is not found 92 * and if a complete URL is not specified. 94 93 */ 95 94 function requestPage(url, selectedName) 96 95 { 96 var urlIsComplete = ((url.endsWith(".html") || (-1 != url.indexOf(".html?"))) && !url.endsWith("/.html")); 97 var selectedNameElement = getSelectedNameElement(); 98 99 // if selectedname element then list type page. 100 if(null != selectedNameElement) 101 { 102 // Complete request URL - user clicked on a complete URL request link. 103 // Set the selected name just in case back button is used. 104 if(urlIsComplete) 105 { 106 selectedName = getSelectedNameFromURL(url); 107 setSelectedNameElement(selectedName); 108 } 109 110 // else incomplete URL - process for a selectedName value. The selectedName 111 // can only be set if the current page name's path segments are included 112 // in the requested URL. This avoids the issue when traversing back up 113 // from a sub list type page to a parent type page (IP dataset or view 114 // list back to the main IP list). 115 else 116 { 117 var s = selectedNameElement.value; 118 if(!isBlank(s) && !isBlank(global.pageName)) 119 { 120 var pathSegmentsToTest = global.pageName.split("/"); 121 var pathToTest = ""; 122 for (var i = 0; i < pathSegmentsToTest.length - 1; i++) pathToTest = pathToTest + pathSegmentsToTest[i] + "/"; 123 if(-1 != url.indexOf(pathToTest)) selectedName = s; 124 } 125 } 126 } 127 128 // if incomplete URL request (left nav selection) and a selectName passed in 129 // then build a complete URL by adding the selected name value. 130 if(!urlIsComplete && isDefined(selectedName)) 131 { 132 if(!url.endsWith("/")) url = url + "/"; 133 url = url + selectedName + ".html"; 134 } 135 136 // do any special processing - if the function exists. 137 if("function" == (typeof requestPageURLModifier)) url = requestPageURLModifier(url, selectedName); 138 if("function" == (typeof requestPagePreValidation)) requestPagePreValidation(); 139 140 97 141 // Build a fully qualified URL. _head.jsp defines the js global.contextPath 98 142 // variable. If there's a requestPageURLModifier function then call. 99 143 url = global.contextPath + url; 100 144 101 // use case #1 - fully specified URL. Only need to set selectedName and use.102 if(url.endsWith(".html") || (url.indexOf(".html?") != -1))103 {104 selectedName = getSelectedNameFromURL(url);105 }106 107 // use cases 2&3 - incomplete URL. If there's a selectedName element then108 // have to use it. Else use the passed selectedName. Build the URL.109 else110 {111 var selectedNameElement = getSelectedNameElement();112 if(null != selectedNameElement)113 {114 selectedName = selectedNameElement.value;115 }116 if(!isBlank(selectedName))117 {118 var pathSeperator = "/";119 if(url.endsWith(pathSeperator)) pathSeperator = "";120 url = url + pathSeperator + selectedName + ".html";121 }122 }123 124 // set the selectedName (if there is one).125 if(!isBlank(selectedName)) setSelectedNameElement(selectedName);126 127 // do any special processing - if the function exists.128 if("function" == (typeof requestPageURLModifier)) url = requestPageURLModifier(url, selectedName);129 if("function" == (typeof requestPagePreValidation)) requestPagePreValidation();130 131 145 // If the form is valid (which checks for modified first) then set the new page 132 146 // request to the parameter and call the form's post action via the submit method. … … 135 149 if(isFormValid()) 136 150 { 137 if(isDefined(document.form.requestedPageURL)) document.form.requestedPageURL.value = url; 151 var requestedPageURLElement = document.form.requestedPageURL; 152 if(isDefined(requestedPageURLElement)) requestedPageURLElement.value = url; 138 153 document.form.submit(); 139 154 } -
trunk/ibisph/src/main/java/org/ibisph/indicatorprofile/springmvc/databean/EditIndicatorViewDimensionValuesController.java
r11875 r13316 24 24 protected String categoryDimensionValuesModelName = "categoryDimensionValues"; 25 25 protected String seriesDimensionValuesModelName = "seriesDimensionValues"; 26 protected String constantDimensionValuesModelName = "constantDimensionValues"; 26 27 27 28 /**
Note: See TracChangeset
for help on using the changeset viewer.