|
28 | 28 | import org.springframework.extensions.webscripts.WebScriptResponse; |
29 | 29 |
|
30 | 30 | import es.keensoft.alfresco.model.DatalistModel; |
| 31 | +import es.keensoft.alfresco.model.DatalistModel.DataListStatus; |
31 | 32 |
|
32 | 33 | public class DataListWebScript extends AbstractWebScript { |
33 | 34 |
|
34 | | - private static final String JSON_CODE = "code"; |
| 35 | + private static final String REPLACE_DESK_MARK = "[REPLACE]"; |
| 36 | + private static final String ADD_DESC_MARK = "[ADD]"; |
| 37 | + |
| 38 | + private static final String JSON_CODE = "code"; |
35 | 39 | private static final String JSON_VALUE = "value"; |
36 | 40 |
|
37 | 41 | private static final String DATALIST_CONTAINER_ID = "dataLists"; |
@@ -71,8 +75,21 @@ public void execute(WebScriptRequest request, WebScriptResponse response) throws |
71 | 75 | siteId = siteInfo.getShortName(); |
72 | 76 | } |
73 | 77 | } |
74 | | - if (siteId != null && existsDatalist(siteId, targetedDataListName)) { |
75 | | - sites.add(siteService.getSite(siteId)); |
| 78 | + DataListStatus siteStatus = DataListStatus.NONE; |
| 79 | + if (siteId != null) { |
| 80 | + siteStatus = existsDatalist(siteId, targetedDataListName); |
| 81 | + switch(siteStatus) { |
| 82 | + case NONE: |
| 83 | + sites = siteService.listSites(null, DATALIST_PRESET); |
| 84 | + break; |
| 85 | + case ADD: |
| 86 | + sites = siteService.listSites(null, DATALIST_PRESET); |
| 87 | + sites.add(siteService.getSite(siteId)); |
| 88 | + break; |
| 89 | + case REPLACE: |
| 90 | + sites.add(siteService.getSite(siteId)); |
| 91 | + break; |
| 92 | + } |
76 | 93 | } else { |
77 | 94 | sites = siteService.listSites(null, DATALIST_PRESET); |
78 | 95 | } |
@@ -168,18 +185,29 @@ public int compare(Map.Entry<String, String> o1, |
168 | 185 | return sortedMap; |
169 | 186 | } |
170 | 187 |
|
171 | | - private boolean existsDatalist(String siteId, String targetedDataListName) { |
| 188 | + private DataListStatus existsDatalist(String siteId, String targetedDataListName) { |
172 | 189 |
|
173 | 190 | NodeRef dataListContainer = SiteServiceImpl.getSiteContainer(siteId, DATALIST_CONTAINER_ID, true, siteService, transactionService, taggingService); |
174 | 191 | List<ChildAssociationRef> dataListsNodes = nodeService.getChildAssocs(dataListContainer); |
175 | 192 | for (ChildAssociationRef dataList : dataListsNodes) { |
176 | 193 | if (dataList.getTypeQName().isMatch(ContentModel.ASSOC_CONTAINS)) { |
177 | 194 | if (nodeService.getProperty(dataList.getChildRef(), ContentModel.PROP_TITLE).toString().equals(targetedDataListName)) { |
178 | | - return true; |
| 195 | + Object description = nodeService.getProperty(dataList.getChildRef(), ContentModel.PROP_DESCRIPTION); |
| 196 | + if (description != null) { |
| 197 | + if (description.toString().indexOf(ADD_DESC_MARK) > 0) { |
| 198 | + return DataListStatus.ADD; |
| 199 | + } else if (description.toString().indexOf(REPLACE_DESK_MARK) > 0) { |
| 200 | + return DataListStatus.REPLACE; |
| 201 | + } else { |
| 202 | + return DataListStatus.REPLACE; |
| 203 | + } |
| 204 | + } else { |
| 205 | + return DataListStatus.REPLACE; |
| 206 | + } |
179 | 207 | } |
180 | 208 | } |
181 | 209 | } |
182 | | - return false; |
| 210 | + return DataListStatus.NONE; |
183 | 211 |
|
184 | 212 | } |
185 | 213 |
|
|
0 commit comments