www/common/columns/add_linkeditem_column.js

Code
Comments
Other
Rev Date Author Line
7851 14 Oct 20 nicklas 1 /* $Id $
7851 14 Oct 20 nicklas 2   ------------------------------------------------------------------
7851 14 Oct 20 nicklas 3   Copyright (C) 2020 Nicklas Nordborg
7851 14 Oct 20 nicklas 4
7851 14 Oct 20 nicklas 5   This file is part of BASE - BioArray Software Environment.
7851 14 Oct 20 nicklas 6   Available at http://base.thep.lu.se/
7851 14 Oct 20 nicklas 7
7851 14 Oct 20 nicklas 8   BASE is free software; you can redistribute it and/or
7851 14 Oct 20 nicklas 9   modify it under the terms of the GNU General Public License
7851 14 Oct 20 nicklas 10   as published by the Free Software Foundation; either version 3
7851 14 Oct 20 nicklas 11   of the License, or (at your option) any later version.
7851 14 Oct 20 nicklas 12
7851 14 Oct 20 nicklas 13   BASE is distributed in the hope that it will be useful,
7851 14 Oct 20 nicklas 14   but WITHOUT ANY WARRANTY; without even the implied warranty of
7851 14 Oct 20 nicklas 15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
7851 14 Oct 20 nicklas 16   GNU General Public License for more details.
7851 14 Oct 20 nicklas 17
7851 14 Oct 20 nicklas 18   You should have received a copy of the GNU General Public License
7851 14 Oct 20 nicklas 19   along with BASE. If not, see <http://www.gnu.org/licenses/>.
7851 14 Oct 20 nicklas 20   ------------------------------------------------------------------
7851 14 Oct 20 nicklas 21
7851 14 Oct 20 nicklas 22   @author Nicklas
7851 14 Oct 20 nicklas 23 */
7851 14 Oct 20 nicklas 24 'use strict';
7851 14 Oct 20 nicklas 25
7851 14 Oct 20 nicklas 26 var Configure = function()
7851 14 Oct 20 nicklas 27 {
7851 14 Oct 20 nicklas 28   var configure = {};
7851 14 Oct 20 nicklas 29   
7851 14 Oct 20 nicklas 30   /**
7851 14 Oct 20 nicklas 31     Initialize the page.
7851 14 Oct 20 nicklas 32   */
7851 14 Oct 20 nicklas 33   configure.initPage = function()
7851 14 Oct 20 nicklas 34   {
7853 19 Oct 20 nicklas 35     Events.addEventHandler('presets', 'change', configure.presetSelected);
7851 14 Oct 20 nicklas 36     Events.addEventHandler(document.body, 'click', configure.hideMessage);
7851 14 Oct 20 nicklas 37     
7851 14 Oct 20 nicklas 38     // Buttons
7851 14 Oct 20 nicklas 39     Buttons.addClickHandler('close', App.closeWindow);
7851 14 Oct 20 nicklas 40     Buttons.addClickHandler('btnAdd', configure.addColumn);
7851 14 Oct 20 nicklas 41   }
7851 14 Oct 20 nicklas 42   
7853 19 Oct 20 nicklas 43   configure.presetSelected = function(event)
7853 19 Oct 20 nicklas 44   {
7853 19 Oct 20 nicklas 45     var frm = document.forms['linkedItems'];
7853 19 Oct 20 nicklas 46     
7853 19 Oct 20 nicklas 47     if (frm.presets.selectedIndex > 0)
7853 19 Oct 20 nicklas 48     {
7853 19 Oct 20 nicklas 49       var selected = frm.presets[frm.presets.selectedIndex];
7853 19 Oct 20 nicklas 50       frm.linkName.value = Data.get(selected, 'linkname');
7853 19 Oct 20 nicklas 51       Forms.selectListOption(frm.targetItemType, Data.get(selected, 'targettype'));
7853 19 Oct 20 nicklas 52       frm.presets.selectedIndex = 0;
7853 19 Oct 20 nicklas 53     }
7853 19 Oct 20 nicklas 54   }
7853 19 Oct 20 nicklas 55   
7851 14 Oct 20 nicklas 56   configure.addColumn = function(event)
7851 14 Oct 20 nicklas 57   {
7851 14 Oct 20 nicklas 58     var frm = document.forms['linkedItems'];
7851 14 Oct 20 nicklas 59     
7851 14 Oct 20 nicklas 60     var data = {};
7851 14 Oct 20 nicklas 61     data.linkName = frm.linkName.value;
7851 14 Oct 20 nicklas 62
7851 14 Oct 20 nicklas 63     if (!data.linkName)
7851 14 Oct 20 nicklas 64     {
7851 14 Oct 20 nicklas 65       Forms.showNotification('linkName', 'A link name is requried!');
7851 14 Oct 20 nicklas 66       return;
7851 14 Oct 20 nicklas 67     }
7851 14 Oct 20 nicklas 68
7851 14 Oct 20 nicklas 69     data.targetItemType = frm.targetItemType.value;
7851 14 Oct 20 nicklas 70     data.property = '|'+data.linkName;
7852 16 Oct 20 nicklas 71     if (data.targetItemType) 
7852 16 Oct 20 nicklas 72     {
7852 16 Oct 20 nicklas 73       data.property += '|'+data.targetItemType;
7852 16 Oct 20 nicklas 74       // Store the selected target type in "recently used" list
7852 16 Oct 20 nicklas 75       var url = 'ajax.jsp?ID='+App.getSessionId();
7852 16 Oct 20 nicklas 76       url += '&cmd=AddRecentlyUsedLinkTargetType&itemType='+encodeURIComponent(data.targetItemType);
7852 16 Oct 20 nicklas 77       var request = Ajax.getXmlHttpRequest();
7852 16 Oct 20 nicklas 78       request.open("POST", url, true);
7852 16 Oct 20 nicklas 79       request.send(null);
7852 16 Oct 20 nicklas 80     }
7851 14 Oct 20 nicklas 81     data.title = data.linkName;
7851 14 Oct 20 nicklas 82     Events.sendCustomEvent(window.opener.Doc.element('selectLinkedItemColumn'), 'base-selected', data);
7851 14 Oct 20 nicklas 83     
7851 14 Oct 20 nicklas 84     frm.linkName.value = '';
7851 14 Oct 20 nicklas 85     frm.linkName.focus();
7851 14 Oct 20 nicklas 86     
7851 14 Oct 20 nicklas 87     Doc.element('added-column-msg').innerHTML = '1 column has been added to the table.';
7851 14 Oct 20 nicklas 88     Doc.show('added-column-msg');
7851 14 Oct 20 nicklas 89     event.stopPropagation(); // To prevent the hideMessage() method from executing
7851 14 Oct 20 nicklas 90   }
7851 14 Oct 20 nicklas 91   
7851 14 Oct 20 nicklas 92   configure.hideMessage = function(event)
7851 14 Oct 20 nicklas 93   {
7851 14 Oct 20 nicklas 94     Doc.hide('added-column-msg');
7851 14 Oct 20 nicklas 95   }
7851 14 Oct 20 nicklas 96
7851 14 Oct 20 nicklas 97
7851 14 Oct 20 nicklas 98   return configure;
7851 14 Oct 20 nicklas 99 }();
7851 14 Oct 20 nicklas 100
7851 14 Oct 20 nicklas 101 Doc.onLoad(Configure.initPage);