1 package org.kuali.ole.describe.controller;
2
3 import com.google.common.base.Joiner;
4 import org.apache.log4j.Logger;
5 import org.kuali.ole.describe.bo.BoundwithSelection;
6 import org.kuali.ole.describe.bo.DocumentSelectionTree;
7 import org.kuali.ole.describe.bo.DocumentTreeNode;
8 import org.kuali.ole.describe.bo.TransferRightToLeft;
9 import org.kuali.ole.describe.form.BoundwithForm;
10 import org.kuali.ole.docstore.common.document.BibTree;
11 import org.kuali.ole.docstore.common.document.Holdings;
12 import org.kuali.ole.docstore.common.exception.DocstoreException;
13 import org.kuali.ole.docstore.model.xmlpojo.ingest.Response;
14 import org.kuali.ole.docstore.model.xmlpojo.ingest.ResponseDocument;
15 import org.kuali.ole.docstore.model.xstream.ingest.ResponseHandler;
16 import org.kuali.ole.select.util.TransferUtil;
17 import org.kuali.rice.core.api.util.tree.Node;
18 import org.kuali.rice.core.api.util.tree.Tree;
19 import org.kuali.rice.krad.util.GlobalVariables;
20 import org.kuali.rice.krad.util.KRADConstants;
21 import org.kuali.rice.krad.web.form.UifFormBase;
22 import org.springframework.stereotype.Controller;
23 import org.springframework.validation.BindingResult;
24 import org.springframework.web.bind.annotation.ModelAttribute;
25 import org.springframework.web.bind.annotation.RequestMapping;
26 import org.springframework.web.servlet.ModelAndView;
27 import javax.servlet.http.HttpServletRequest;
28 import javax.servlet.http.HttpServletResponse;
29 import java.util.ArrayList;
30 import java.util.HashMap;
31 import java.util.List;
32
33
34
35
36
37
38
39
40 @Controller
41 @RequestMapping(value = "/transferController")
42 public class TransferController
43 extends BoundwithController {
44 private static final Logger LOG = Logger.getLogger(TransferController.class);
45
46 @Override
47 @RequestMapping(params = "methodToCall=start")
48 public ModelAndView start(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
49 HttpServletRequest request, HttpServletResponse response) {
50 LOG.debug("Inside the workbenchForm--TransferController start method");
51 if (request.getSession().getAttribute("LeftList") != null && request.getSession().getAttribute("RightList") != null) {
52 request.getSession().removeAttribute("LeftList");
53 request.getSession().removeAttribute("RightList");
54 }
55 return super.start(form, result, request, response);
56 }
57
58
59 @RequestMapping(params = "methodToCall=selectRootNodeItems")
60 public ModelAndView selectRootNodeItems(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
61 HttpServletRequest request, HttpServletResponse response) throws Exception {
62 List<String> bibIdentifierListForTree1 = new ArrayList<String>();
63 List<String> bibInstanceListForTree1 = new ArrayList<String>();
64 List<String> bibItemListForTree1 = new ArrayList<String>();
65 List<String> bibIdentifierListForTree2 = new ArrayList<String>();
66 List<String> destBibIdentifierListForTree2 = new ArrayList<String>();
67 List<String> destInstanceIdentifierListForTree2 = new ArrayList<String>();
68 List<String> itemsSelectedListForRightTree = new ArrayList<String>();
69 List<String> bibIdentifiersSelectedListForLeftTree = new ArrayList<String>();
70 List<String> bibIdentifiersListWhenInstanceSelectedForLeftTree = new ArrayList<String>();
71 List<String> instanceIdentifiersToDelete = new ArrayList<String>();
72 boolean transferInstance = true;
73
74
75
76
77
78 String status1 = "";
79 String status2 = "";
80
81 BoundwithForm transferForm = (BoundwithForm) form;
82
83
84
85
86
87
88 transferForm.setTransferLeftTree(true);
89 transferForm.setTransferRighttree(false);
90
91 transferForm.setInDeleteLeftTree("false");
92 transferForm.setInDeleteRightTree("false");
93
94 Tree<DocumentTreeNode, String> leftTree = transferForm.getLeftTree();
95 Node<DocumentTreeNode, String> leftTreeRootElement = leftTree.getRootElement();
96 Tree<DocumentTreeNode, String> rightTree = transferForm.getRightTree();
97 Node<DocumentTreeNode, String> rightTreeRootElement = rightTree.getRootElement();
98 List<String> bibIdentifiersToDelete = new ArrayList<String>();
99 String deleteResponseFromDocStore = "";
100
101 status1 = selectCheckedNodesTree1(leftTreeRootElement, bibIdentifierListForTree1, bibInstanceListForTree1,
102 bibItemListForTree1, bibIdentifiersSelectedListForLeftTree,
103 bibIdentifiersListWhenInstanceSelectedForLeftTree, bibIdentifiersToDelete,
104 instanceIdentifiersToDelete);
105 selectCheckedNodesTree2(rightTreeRootElement, bibIdentifierListForTree2, itemsSelectedListForRightTree,
106 destBibIdentifierListForTree2, destInstanceIdentifierListForTree2);
107 LOG.debug("bibIdentifiersToDelete " + bibIdentifiersToDelete);
108
109
110
111 if (leftTreeRootElement == null) {
112
113
114 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection1", "error.transfer.empty.records", "left");
115 } else if (rightTreeRootElement == null) {
116
117 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection2", "error.transfer.empty.records", "right");
118 } else if (bibIdentifiersSelectedListForLeftTree.size() > 0) {
119
120 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection1", "error.transfer.invalid", "Bib", "left");
121 } else if (bibInstanceListForTree1.size() == 0 && bibItemListForTree1.size() == 0) {
122
123 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection1", "error.transfer.selected.none", "left");
124 } else if (itemsSelectedListForRightTree.size() > 0) {
125
126 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection2", "error.transfer.invalid", "Item", "right");
127 } else if (destBibIdentifierListForTree2.size() == 0 && destInstanceIdentifierListForTree2.size() == 0) {
128
129 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection2", "error.transfer.selected.none", "right");
130 } else if (bibInstanceListForTree1.size() > 0 && bibItemListForTree1.size() > 0) {
131
132 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection1", "error.transfer.selected.multiple", "Instances", "items", "left");
133 } else if (destBibIdentifierListForTree2.size() > 0 && destInstanceIdentifierListForTree2.size() > 0) {
134
135 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection2", "error.transfer.selected.multiple", "Bibs", "instances", "right");
136 } else if (destBibIdentifierListForTree2.size() > 1) {
137
138 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection2", "error.transfer.selected.invalid", "bib", "right");
139 } else if (destInstanceIdentifierListForTree2.size() > 1) {
140
141 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection2", "error.transfer.selected.invalid", "instance", "right");
142 } else if (bibInstanceListForTree1.size() > 0 && destInstanceIdentifierListForTree2.size() > 0) {
143
144 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection1", "error.transfer.left", "Instances", "Instances");
145 } else if (bibItemListForTree1.size() > 0 && destBibIdentifierListForTree2.size() > 0) {
146
147 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection1", "error.transfer.left", "Items", "Bibs");
148 }
149
150
151
152
153 else if (bibInstanceListForTree1.size() > 0) {
154 for (String bibUuid : bibIdentifiersListWhenInstanceSelectedForLeftTree) {
155 if (destBibIdentifierListForTree2.contains(bibUuid)) {
156
157 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection2", "error.transfer.bib");
158 transferInstance = false;
159 break;
160 }
161 }
162 if (transferInstance) {
163 String destBibIdentifier = destBibIdentifierListForTree2.get(0);
164 if (bibIdentifiersToDelete.size() > 0) {
165 transferForm.setDocFormat("marc");
166 transferForm.setDocCategory("work");
167 transferForm.setDocType("bibliographic");
168
169
170
171 transferForm.setBibInstanceListForTree1(bibInstanceListForTree1);
172 transferForm.setDestBibIdentifier(destBibIdentifier);
173
174
175
176 transferForm.setDeleteVerifyResponse(TransferUtil.getInstance().checkItemExistsInOleForBibs(bibIdentifiersToDelete));
177 transferForm.setDeleteIds(bibIdentifiersToDelete);
178 TransferUtil.getInstance().deleteVerify(transferForm, bibIdentifiersToDelete);
179 return getUIFModelAndView(transferForm);
180 }
181 TransferUtil.getInstance().transferInstances(bibInstanceListForTree1, destBibIdentifier);
182 TransferUtil.getInstance().copyToTree(transferForm, bibIdentifierListForTree1, "leftTree");
183 TransferUtil.getInstance().copyToTree(transferForm, bibIdentifierListForTree2, "rightTree");
184
185 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection2", "info.transfer", "Instances");
186 }
187 } else if (bibItemListForTree1.size() > 0) {
188 String destInstanceIdentifier = destInstanceIdentifierListForTree2.get(0);
189 if (instanceIdentifiersToDelete.size() > 0) {
190 transferForm.setDocFormat("oleml");
191 transferForm.setDocCategory("work");
192 transferForm.setDocType("holdings");
193
194
195
196 transferForm.setBibItemListForTree1(bibItemListForTree1);
197 transferForm.setDestInstanceIdentifier(destInstanceIdentifier);
198
199
200 transferForm.setDeleteVerifyResponse(TransferUtil.getInstance().checkItemExistsInOleForHoldings(instanceIdentifiersToDelete));
201 transferForm.setDeleteIds(instanceIdentifiersToDelete);
202 TransferUtil.getInstance().deleteVerify(transferForm, instanceIdentifiersToDelete);
203 return getUIFModelAndView(transferForm);
204
205 }
206 TransferUtil.getInstance().transferItems(bibItemListForTree1, destInstanceIdentifier);
207 TransferUtil.getInstance().copyToTree(transferForm, bibIdentifierListForTree1, "leftTree");
208 TransferUtil.getInstance().copyToTree(transferForm, bibIdentifierListForTree2, "rightTree");
209
210 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection2", "info.transfer", "Items");
211 } else {
212
213 GlobalVariables.getMessageMap().putErrorForSectionId("TransferTreeSection2", "error.transfer.bib");
214 }
215 return navigate(transferForm, result, request, response);
216
217 }
218
219
220
221
222 @RequestMapping(params = "methodToCall=transferRightToLeft")
223 public ModelAndView transferRightToLeft(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
224 HttpServletRequest request, HttpServletResponse response) throws Exception {
225 BoundwithForm transferForm = (BoundwithForm) form;
226
227
228
229
230
231
232 transferForm.setInDeleteLeftTree("false");
233 transferForm.setInDeleteRightTree("false");
234 transferForm.setTransferLeftTree(false);
235 transferForm.setTransferRighttree(true);
236 TransferRightToLeft transferRightToLeft = new TransferRightToLeft();
237 transferRightToLeft.transferRightToLeft(transferForm, result, request, response);
238 return navigate(transferForm, result, request, response);
239
240 }
241
242 private String selectCheckedNodesTree1(Node<DocumentTreeNode, String> rootElement,
243 List<String> bibIdentifierListForTree1, List<String> bibInstanceListForTree1,
244 List<String> bibItemListForTree1,
245 List<String> bibIdentifiersSelectedListForLeftTree,
246 List<String> bibIdentifiersListWhenInstanceSelectedForLeftTree,
247 List<String> bibIdentifiersToDelete,
248 List<String> instanceIdentifiersToDelete) {
249
250 BoundwithSelection boundwithSelection;
251 DocumentTreeNode documentTreeNode;
252 String status = "success";
253 String bibTitle = "";
254 int instanceCount = 0;
255 int itemCount = 0;
256 List<String> instanceidenifiersListTemp = new ArrayList<String>();
257 if (rootElement != null) {
258 List<Node<DocumentTreeNode, String>> list = rootElement.getChildren();
259 for (Node<DocumentTreeNode, String> marcNode : list) {
260 instanceCount = 0;
261 itemCount = 0;
262 String instanceUUID = "";
263 documentTreeNode = marcNode.getData();
264
265 bibTitle = documentTreeNode.getTitle();
266 String bibUUID = marcNode.getNodeType();
267 bibIdentifierListForTree1.add(bibUUID);
268 LOG.info("documentTreeNode.isSelectTree1()-->" + documentTreeNode.isSelect());
269 if (documentTreeNode.isSelect()) {
270 bibIdentifiersSelectedListForLeftTree.add(bibUUID);
271 break;
272 }
273 List<Node<DocumentTreeNode, String>> instanceList = marcNode.getChildren();
274 List<Node<DocumentTreeNode, String>> itemList = null;
275 instanceidenifiersListTemp.clear();
276 for (Node<DocumentTreeNode, String> instanceNode : instanceList) {
277 itemCount = 0;
278 documentTreeNode = instanceNode.getData();
279 instanceUUID = instanceNode.getNodeType();
280 LOG.debug("instanceUUID out of select " + instanceUUID);
281 if (documentTreeNode.isSelect()) {
282 instanceCount++;
283
284 LOG.debug("instanceUUID " + instanceUUID);
285 bibInstanceListForTree1.add(instanceUUID);
286
287 bibIdentifiersListWhenInstanceSelectedForLeftTree.add(bibUUID);
288 }
289 itemList = instanceNode.getChildren();
290 for (Node<DocumentTreeNode, String> itemNode : itemList) {
291 documentTreeNode = itemNode.getData();
292 if (documentTreeNode.isSelect()) {
293 itemCount++;
294 String itemUUID = itemNode.getNodeType();
295 LOG.debug("itemUUID " + itemUUID);
296 bibItemListForTree1.add(itemUUID);
297 }
298 }
299 if (instanceNode.getNumberOfChildren() > 0 && itemCount == itemList.size()) {
300 instanceidenifiersListTemp.add(instanceUUID);
301
302 }
303 }
304 if (marcNode.getNumberOfChildren() > 0 && instanceCount == instanceList.size()) {
305 bibIdentifiersToDelete.add(bibUUID);
306 LOG.debug("in if of no instances bibIdentifierToDelete " + bibIdentifiersToDelete);
307 }
308 instanceIdentifiersToDelete.addAll(instanceidenifiersListTemp);
309 }
310 }
311 return status;
312 }
313
314
315 private void selectCheckedNodesTree2(Node<DocumentTreeNode, String> rootElement,
316 List<String> bibIdentifierListForTree2,
317 List<String> itemsSelectedListForRightTree,
318 List<String> destBibIdentifierListForTree2,
319 List<String> destInstanceIdentifierListForTree2) {
320
321 BoundwithSelection boundwithSelection;
322 DocumentTreeNode documentTreeNode;
323 if (rootElement != null) {
324 List<Node<DocumentTreeNode, String>> list = rootElement.getChildren();
325 for (Node<DocumentTreeNode, String> marcNode : list) {
326 documentTreeNode = marcNode.getData();
327 String bibUUID = marcNode.getNodeType();
328 bibIdentifierListForTree2.add(bibUUID);
329 LOG.info("documentTreeNode.isSelectTree1()-->" + documentTreeNode.isSelect());
330 if (documentTreeNode.isSelect()) {
331 destBibIdentifierListForTree2.add(bibUUID);
332 }
333 List<Node<DocumentTreeNode, String>> instanceList = marcNode.getChildren();
334 for (Node<DocumentTreeNode, String> instanceNode : instanceList) {
335 documentTreeNode = instanceNode.getData();
336 if (documentTreeNode.isSelect()) {
337 String instanceUUID = instanceNode.getNodeType();
338 destInstanceIdentifierListForTree2.add(instanceUUID);
339 }
340 List<Node<DocumentTreeNode, String>> itemList = instanceNode.getChildren();
341 for (Node<DocumentTreeNode, String> itemNode : itemList) {
342 documentTreeNode = itemNode.getData();
343 if (documentTreeNode.isSelect()) {
344 String itemUUID = itemNode.getNodeType();
345
346 itemsSelectedListForRightTree.add(itemUUID);
347 break;
348 }
349 }
350
351 }
352 }
353 }
354 }
355
356 String listToCsv(List<String> listOfStrings, char separator) {
357 StringBuilder sb = new StringBuilder();
358
359
360 for (int i = 0; i < listOfStrings.size() - 1; i++) {
361 sb.append(listOfStrings.get(i));
362 sb.append(separator);
363 }
364
365 sb.append(listOfStrings.get(listOfStrings.size() - 1));
366 return sb.toString();
367 }
368
369 @RequestMapping(params = "methodToCall=delete")
370 public ModelAndView delete(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
371 HttpServletRequest request, HttpServletResponse httpResponse) throws Exception {
372 StringBuilder uuidList = new StringBuilder();
373 BoundwithForm transferForm = (BoundwithForm) form;
374 DocumentSelectionTree documentSelectionTree = new DocumentSelectionTree();
375
376
377 transferForm.setInDeleteLeftTree("false");
378 transferForm.setInDeleteRightTree("false");
379
380
381 String deleteVerifyResponse = transferForm.getDeleteVerifyResponse();
382 if (deleteVerifyResponse.contains("Failed")) {
383
384
385
386
387
388 String message = "location";
389 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection1", "info.transfer.delete.failure", message);
390 } else if (deleteVerifyResponse.contains("success")) {
391 String treeId = transferForm.getActionParamaterValue("treeId");
392 if (transferForm.getDocType().equalsIgnoreCase("bibliographic")) {
393 if (transferForm.getDestBibIdentifier() != null && transferForm.getDestBibIdentifier().length() > 0) {
394 TransferUtil.getInstance().transferInstances(transferForm.getBibInstanceListForTree1(),
395 transferForm.getDestBibIdentifier());
396
397 if (treeId.equalsIgnoreCase("leftTree")) {
398 HashMap leftList = (HashMap) request.getSession().getAttribute("LeftList");
399 if (leftList.size() == 1) {
400 clearTree(transferForm, result, request, httpResponse);
401 }
402 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection2", "info.transfer.instance.success");
403 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection1", "info.transfer.instance.success.bib.delete");
404 } else {
405 HashMap rightList = (HashMap) request.getSession().getAttribute("RightList");
406 if (rightList.size() == 1) {
407 clearTree(transferForm, result, request, httpResponse);
408 }
409 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection1", "info.transfer.instance.success");
410 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection2", "info.transfer.instance.success.bib.delete");
411 }
412 getDocstoreClientLocator().getDocstoreClient().deleteBibs(transferForm.getDeleteIds());
413 } else {
414 TransferUtil.getInstance().transferItems(transferForm.getBibItemListForTree1(),
415 transferForm.getDestInstanceIdentifier());
416
417 Holdings holdings = null;
418 try {
419 holdings = getDocstoreClientLocator().getDocstoreClient().retrieveHoldings(transferForm.getDeleteIds().get(0));
420 }
421 catch (Exception e) {
422 DocstoreException docstoreException = (DocstoreException) e;
423 if (org.apache.commons.lang3.StringUtils.isNotEmpty(docstoreException.getErrorCode())) {
424 GlobalVariables.getMessageMap().putError(KRADConstants.GLOBAL_ERRORS, docstoreException.getErrorCode());
425 } else {
426 GlobalVariables.getMessageMap().putError(KRADConstants.GLOBAL_ERRORS, e.getMessage());
427 }
428 }
429 BibTree bibTree = null;
430 try {
431 bibTree = getDocstoreClientLocator().getDocstoreClient().retrieveBibTree(holdings.getBib().getId());
432 }
433 catch (Exception e) {
434 DocstoreException docstoreException = (DocstoreException) e;
435 if (org.apache.commons.lang3.StringUtils.isNotEmpty(docstoreException.getErrorCode())) {
436 GlobalVariables.getMessageMap().putError(KRADConstants.GLOBAL_ERRORS, docstoreException.getErrorCode());
437 } else {
438 GlobalVariables.getMessageMap().putError(KRADConstants.GLOBAL_ERRORS, e.getMessage());
439 }
440 }
441 if(bibTree.getHoldingsTrees() != null && bibTree.getHoldingsTrees().size() > 1) {
442 if (treeId.equalsIgnoreCase("leftTree")) {
443 HashMap leftList = (HashMap) request.getSession().getAttribute("LeftList");
444 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection2", "info.transfer.item.success");
445 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection1", "info.transfer.item.success.holdings.delete");
446 } else {
447 HashMap rightList = (HashMap) request.getSession().getAttribute("RightList");
448 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection1", "info.transfer.item.success");
449 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection2", "info.transfer.item.success.holdings.delete");
450 }
451 try {
452 getDocstoreClientLocator().getDocstoreClient().deleteHoldings(transferForm.getDeleteIds().get(0));
453 }
454 catch (Exception e) {
455 DocstoreException docstoreException = (DocstoreException) e;
456 if (org.apache.commons.lang3.StringUtils.isNotEmpty(docstoreException.getErrorCode())) {
457 GlobalVariables.getMessageMap().putError(KRADConstants.GLOBAL_ERRORS, docstoreException.getErrorCode());
458 } else {
459 GlobalVariables.getMessageMap().putError(KRADConstants.GLOBAL_ERRORS, e.getMessage());
460 }
461 }
462 }
463 else {
464 if (treeId.equalsIgnoreCase("leftTree")) {
465 HashMap leftList = (HashMap) request.getSession().getAttribute("LeftList");
466 if (leftList.size() == 1) {
467 clearTree(transferForm, result, request, httpResponse);
468 }
469 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection2", "info.transfer.item.success");
470 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection1", "info.transfer.item.success.bib.instance.delete");
471 } else {
472 HashMap rightList = (HashMap) request.getSession().getAttribute("RightList");
473 if (rightList.size() == 1) {
474 clearTree(transferForm, result, request, httpResponse);
475 }
476 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection1", "info.transfer.item.success");
477 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection2", "info.transfer.item.success.bib.instance.delete");
478 }
479 try {
480 getDocstoreClientLocator().getDocstoreClient().deleteBib(holdings.getBib().getId());
481 }
482 catch (Exception e) {
483 DocstoreException docstoreException = (DocstoreException) e;
484 if (org.apache.commons.lang3.StringUtils.isNotEmpty(docstoreException.getErrorCode())) {
485 GlobalVariables.getMessageMap().putError(KRADConstants.GLOBAL_ERRORS, docstoreException.getErrorCode());
486 } else {
487 GlobalVariables.getMessageMap().putError(KRADConstants.GLOBAL_ERRORS, e.getMessage());
488 }
489 }
490 }
491 }
492 } else if (transferForm.getDocType().equalsIgnoreCase("holdings")) {
493 TransferUtil.getInstance().transferItems(transferForm.getBibItemListForTree1(),
494 transferForm.getDestInstanceIdentifier());
495
496 if (treeId.equalsIgnoreCase("leftTree")) {
497 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection2", "info.transfer.item.success");
498 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection1", "info.transfer.item.success.holdings.delete");
499 } else {
500 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection1", "info.transfer.item.success");
501 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection2", "info.transfer.item.success.holdings.delete");
502 }
503 for(String id : transferForm.getDeleteIds()) {
504 getDocstoreClientLocator().getDocstoreClient().deleteHoldings(id);
505 }
506 }
507
508
509 transferForm.setShowBoundwithTree(false);
510 }
511 return getUIFModelAndView(transferForm);
512 }
513
514 @RequestMapping(params = "methodToCall=OnlyTransfer")
515 public ModelAndView OnlyTransfer(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
516 HttpServletRequest request, HttpServletResponse httpResponse) throws Exception {
517 BoundwithForm transferForm = (BoundwithForm) form;
518 String treeId = transferForm.getActionParamaterValue("treeId");
519 if (transferForm.getDocType().equalsIgnoreCase("bibliographic")) {
520 if (transferForm.getDestBibIdentifier() != null && transferForm.getDestBibIdentifier().length() > 0) {
521 TransferUtil.getInstance().transferInstances(transferForm.getBibInstanceListForTree1(),
522 transferForm.getDestBibIdentifier());
523
524 if (treeId.equalsIgnoreCase("leftTree")) {
525 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection2", "info.transfer", "Instance");
526 } else {
527 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection1", "info.transfer", "Instance");
528 }
529 } else {
530 TransferUtil.getInstance().transferItems(transferForm.getBibItemListForTree1(),
531 transferForm.getDestInstanceIdentifier());
532
533 if (treeId.equalsIgnoreCase("leftTree")) {
534 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection2", "info.transfer", "Item");
535 } else {
536 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection1", "info.transfer", "Item");
537 }
538 }
539 } else if (transferForm.getDocType().equalsIgnoreCase("instance")) {
540 TransferUtil.getInstance().transferItems(transferForm.getBibItemListForTree1(),
541 transferForm.getDestInstanceIdentifier());
542
543 GlobalVariables.getMessageMap().putInfoForSectionId("TransferTreeSection1", "info.transfer", "Item");
544 }
545
546 transferForm.setInDeleteLeftTree("false");
547 transferForm.setInDeleteRightTree("false");
548 return getUIFModelAndView(transferForm);
549 }
550
551
552
553
554
555
556 public void setPageNextPreviousAndEntriesInfo(BoundwithForm boundwithForm) {
557 this.totalRecCount = boundwithForm.getSearchResponse().getTotalRecordCount();
558 this.start = boundwithForm.getSearchResponse().getStartIndex();
559 this.pageSize = boundwithForm.getSearchResponse().getPageSize();
560 boundwithForm.setPreviousFlag(getWorkbenchPreviousFlag());
561 boundwithForm.setNextFlag(getWorkbenchNextFlag());
562 boundwithForm.setPageShowEntries(getWorkbenchPageShowEntries());
563 }
564
565 }