Changeset 6337
- Timestamp:
- Oct 28, 2013, 4:29:30 PM (9 years ago)
- Location:
- trunk/www
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/www/biomaterials/lists/members/add_members.js
r6306 r6337 40 40 } 41 41 42 addMembers.addSelected = function( )42 addMembers.addSelected = function(event) 43 43 { 44 var selected = top['members'].Table.getSelected(0); 44 var tableId = Data.get(event.currentTarget, 'table-id'); 45 var selected = top['members'].Table.getSelected(tableId); 45 46 if (selected.length == 0) 46 47 { -
trunk/www/biomaterials/lists/members/add_members_frameset.jsp
r6306 r6337 40 40 DbControl dc = sc.newDbControl(); 41 41 String urlToController = ""; 42 String tableId = ""; 42 43 try 43 44 { … … 47 48 { 48 49 urlToController = "biosources"; 50 tableId = "biosources"; 49 51 } 50 52 else if (memberType == Item.SAMPLE) 51 53 { 52 54 urlToController = "samples"; 55 tableId = "samples"; 53 56 } 54 57 else if (memberType == Item.EXTRACT) 55 58 { 56 59 urlToController = "extracts"; 60 tableId = "extracts"; 57 61 } 58 62 } … … 72 76 73 77 <base:buttongroup subclass="dialogbuttons topborder"> 74 <base:button id="btnAddSelected" title="Add selected" />78 <base:button id="btnAddSelected" title="Add selected" data-table-id="<%=tableId%>" /> 75 79 <base:button id="btnAddPage" title="Add current page" /> 76 80 <base:button id="btnAddAll" title="Add all" /> -
trunk/www/include/scripts/table.js
r6336 r6337 641 641 } 642 642 643 /** 644 Toggle the selected status of a checkbox with 645 @param tableDiv The ID or main table element 646 647 @returns The toggled element or null if no element was found 648 */ 649 table.toggleCheckBox = function(tableDiv, itemId) 650 { 651 tableDiv = Doc.element(tableDiv); 652 var frm = document.forms[tableDiv.id]; 653 654 for (var i=0; i < frm.elements.length; i++) 655 { 656 var element = frm.elements[i]; 657 if (element.type == 'checkbox' && element.name == itemId) 658 { 659 element.checked = !element.checked; 660 return element; 661 } 662 } 663 return null; 664 } 665 666 /** 667 Get the ID of all selected items in a table. 668 669 @param tableDiv The ID or main table element 670 @param regexp An optional regular expression matching the names 671 of checkboxes that can be selected, if not specified it matches 672 checkboxes with numeric names (eg. the name is the id of the item 673 in the table) 674 @return An array object with the ID:s 675 */ 676 table.getSelected = function(tableDiv, regexp) 677 { 678 tableDiv = Doc.element(tableDiv); 679 if (!regexp) regexp = /\d+/; 680 681 var frm = document.forms[tableDiv.id]; 682 var items = []; 683 if (frm.item_id) 684 { 685 // Radio buttons 686 var element = Forms.getCheckedRadio(frm.item_id); 687 if (element != null) 688 { 689 items[items.length] = element.value; 690 } 691 } 692 else 693 { 694 // Checkboxes 695 for (var i=0; i < frm.elements.length; i++) 696 { 697 var element = frm.elements[i]; 698 if (element.type == 'checkbox' && element.name.match(regexp) && element.checked) 699 { 700 items[items.length] = element.value; 701 } 702 } 703 } 704 return items; 705 } 706 643 707 644 708 /** … … 646 710 method (older way) or an event notification (new way). 647 711 648 @param tableId The ID attribute of the table tag 712 @param tableDiv The ID or main table element 713 @param regexp An optional regular expression matching the names 714 of checkboxes that can be selected, if not specified it matches 715 checkboxes with numeric names (eg. the name is the id of the item 716 in the table) 649 717 650 718 @return The number of selected items … … 728 796 return numSelected; 729 797 } 730 731 // ------- OLD CODE BELOW ------------------ 732 table.poolItems = function(submitPage, ID, tableId, itemType, cmd, regexp) 733 { 734 var frm = document.forms[tableId]; 735 if (Forms.numChecked(frm) < 1) 736 { 737 Forms.showNotification('check.uncheck', 'Please select at least one item in the list', null, 'pointer-left'); 738 return; 739 } 740 var oldAction = frm.action; 741 var oldCmd = frm.cmd.value; 742 frm.action = submitPage; 743 frm.cmd.value = cmd ? cmd : "NewPooledItem"; 744 frm.target = 'NewPooledItem'+tableId; 745 Main.openPopup('', 'NewPooledItem'+tableId, 750, 500); 746 frm.submit(); 747 frm.target = window.name; 748 frm.action = oldAction; 749 frm.cmd.value = oldCmd; 750 } 751 752 753 /** 754 Return the selected items to the parent using a 755 callback function. 756 @param tableId The ID attribute of the table tag 757 @param callback A function object which should take two parameters: 758 the ID and title of the selected item 759 @return The number of selected items 760 */ 761 table.returnSelected = function(tableId, callback) 762 { 763 if (!callback) return 0; 764 var frm = document.forms[tableId]; 765 var numSelected = 0; 766 if (frm.item_id) 767 { 768 var element = Forms.getCheckedRadio(frm.item_id); 769 if (element != null) 770 { 771 callback(element.value, element.title); 772 numSelected = 1; 773 } 774 } 775 else 776 { 777 for (var i=0; i < frm.elements.length; i++) // > 778 { 779 var element = frm.elements[i]; 780 if (element.type == 'checkbox' && element.name.match(/\d+/) && element.checked) 781 { 782 callback(element.name, element.title); 783 numSelected++; 784 } 785 } 786 } 787 return numSelected; 788 } 789 790 791 /** 792 Get the ID of all selected items. 793 @param tableId The ID attribute of the table tag 794 @return An array object with the ID:s 795 */ 796 table.getSelected = function(tableId) 797 { 798 var frm = document.forms[tableId]; 799 var items = new Array(); 800 if (frm.item_id) 801 { 802 var element = Forms.getCheckedRadio(frm.item_id); 803 if (element != null) 804 { 805 items[items.length] = element.value; 806 } 807 } 808 else 809 { 810 for (var i=0; i < frm.elements.length; i++) // > 811 { 812 var element = frm.elements[i]; 813 if (element.type == 'checkbox' && element.name.match(/\d+/) && element.checked) 814 { 815 items[items.length] = element.name; 816 } 817 } 818 } 819 return items; 820 } 821 822 823 table.itemOnClick = function(tableId, evt, itemId, mode, viewFunction, editFunction, returnFunction) 824 { 825 var frm = document.forms[tableId]; 826 if (mode == 'selectone') 827 { 828 var index = Forms.checkRadio(frm.item_id, itemId); 829 returnFunction(frm.item_id.length ? frm.item_id[index] : frm.item_id); 830 } 831 else if (mode == 'selectmultiple' || mode == 'selectmultiplenobuttons') 832 { 833 var checkbox = table.toggleCheckBox(tableId, itemId); 834 returnFunction(checkbox); 835 } 836 else 837 { 838 if (evt && (evt.altKey || evt.ctrlKey || evt.shiftKey)) 839 { 840 editFunction(itemId); 841 } 842 else 843 { 844 viewFunction(itemId); 845 } 846 } 847 } 848 849 table.toggleCheckBox = function(tableId, itemId) 850 { 851 var frm = document.forms[tableId]; 852 for (var i=0; i < frm.elements.length; i++) // > 853 { 854 var element = frm.elements[i]; 855 if (element.type == 'checkbox' && element.name == itemId) 856 { 857 element.checked = !element.checked; 858 return element; 859 } 860 } 861 return null; 862 } 863 798 864 799 return table; 865 800 }();
Note: See TracChangeset
for help on using the changeset viewer.