PageSourceSearch

https://my.sequoiasoft.com/akuiteo.clients/js/akuiteo/lib/akmultiselector.js?build=null

js sequoiasoft.com collected 2026-10-08 20:29:24 UTC 7,343 bytes, 189 lines download raw bytes

1/**
2 * S�lecteur multiple
3 */
4var AKMultiSelector = function () {
5	var title='';
6	var prefix='';
7	var leftList=null;
8	var rightList=null;
9	var okAction=null;
10	var defaultAction=null;
11	var output=null;
12	var parent = null;
13		
14    this.init = function(options) {
15    	this.title = options.title;
16    	this.prefix = options.prefix;
17    	this.okAction = options.okAction;
18    	this.defaultAction = options.defaultAction;
19    	this.parent = options.parent;
20    	this._createContent();
21    };
22    
23    this._createContent = function() {
24    	var content = '';
25    	content +='<div class="modal fade" data-toggle="modal" role="dialog" aria-hidden="true" id="'+this.prefix+'_window">';
26    	content +='<div class="modal-dialog">';
27    	content +='<div class="modal-content">';
28    	content +='	<div class="modal-header">';
29    	content +='		<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>';
30    	content +='		<h4>'+ this.title+'</h4>';
31    	content +='	</div>';
32    	content +='	<div class="modal-body">';
33    	content +='		<table border="0" cellspacing="5" cellpading=""><tr>';
34    	content +='			<td>';
35    	content +='				<select multiple="multiple" style="height:300px; width:200px" id="'+this.prefix+'_left">';
36    	content +='				</select>';
37    	content +='			</td>';
38    	content +='			<td width="10px;"></td>';
39    	content +='			<td style="vertical-align:middle">';
40    	content +='				<button class="btn btn-default" id="'+this.prefix+'_btn_left"><i class="icon-arrow-left"></i></button><br/>';
41    	content +='				<button class="btn btn-default" id="'+this.prefix+'_btn_right"><i class="icon-arrow-right"></i></button>';
42    	content +='			</td>';
43    	content +='			<td width="10px;"></td>';
44    	content +='			<td>';
45    	content +='				<select multiple="multiple" style="height:300px; width:200px" id="'+this.prefix+'_right">';
46    	content +='				</select>';
47    	content +='			</td>';
48    	content +='			<td width="10px;"></td>';
49    	content +='			<td style="vertical-align:middle">';
50    	content +='				<button class="btn btn-default" id="'+this.prefix+'_btn_up"><i class="icon-arrow-up"></i></button><br/>';
51    	content +='				<button class="btn btn-default" id="'+this.prefix+'_btn_down"><i class="icon-arrow-down"></i></button>';
52    	content +='			</td>';			    							    		
53    	content +='		</tr></table>';
54    	content +='	</div>';
55    	content +='	<div class="modal-footer">';
56    	content +='		<a href="#" class="btn btn-primary" id="'+this.prefix+'_btn_ok">'+ keywords['aktable.ok']+'</a>';
57    	if (this.defaultAction != null) {
58    		content +='		<a href="#" class="btn btn-info" id="'+this.prefix+'_btn_default">'+ keywords['aktable.default.value']+'</a>';
59    	}
60    	content +='		<a href="#" class="btn btn-default" id="'+this.prefix+'_btn_cancel">'+ keywords['aktable.cancel']+'</a>';
61    	content +='	</div>';
62    	content +='	</div>';
63    	content +='	</div>';
64    	content +='</div>';
65    	$(document.body).append(content);
66    	
67		var parent = this;
68		
69		$('#' + parent.prefix + '_btn_left').click(function() {
70			parent._rightToLeft();
71		});
72		$('#' + parent.prefix + '_btn_right').click(function() {
73			parent._leftToRight();
74		});		
75		$('#' + parent.prefix + '_btn_up').click(function() {
76			parent._up();
77		});
78		$('#' + parent.prefix + '_btn_down').click(function() {
79			parent._down();
80		});		
81		
82		$('#' + parent.prefix + '_btn_ok').click(function() {
83			parent.okAction(parent.parent);
84			$('#' + parent.prefix + '_window').modal('hide');
85		});
86		if (parent.defaultAction != null) {
87			$('#' + parent.prefix + '_btn_default').click(function() {
88				parent.defaultAction(parent.parent);
89				$('#' + parent.prefix + '_window').modal('hide');
90			});			
91		}
92		$('#' + parent.prefix + '_btn_cancel').click(function() {
93			$('#' + parent.prefix + '_window').modal('hide');
94		});
95		
96    };
97    
98    this.open = function(leftList,rightList) {
99    	var parent = this;
100    	// Efface les contenus des sélections
101    	$('#' + this.prefix + '_left').find('option').remove();
102    	$('#' + this.prefix + '_right').find('option').remove();
103    	
104    	var content = '';
105    	
106    	$.each(leftList, function (key, currentElement) {
107    		content +='<option value="'+ currentElement.key +'">'+ currentElement.value +'</option>';    		
108    	});
109    	
110    	$('#' + this.prefix + '_left').html(content);
111    	// Ajoute le double clic sur les options
112    	$('#' + this.prefix + '_left').find('option').each(function(){
113    		  $(this).dblclick( function () {
114    		     parent._leftToRight();
115    		  });
116    	});
117    	
118    	
119    	content = '';
120    	$.each(rightList, function (key, currentElement) {
121    		content +='<option value="'+ currentElement.key +'">'+ currentElement.value +'</option>';    		
122    	});
123    	
124    	$('#' + this.prefix + '_right').html(content);
125    	// Ajoute le double clic sur les options
126    	$('#' + this.prefix + '_right').find('option').each(function(){
127    		  $(this).dblclick( function () {
128    			  parent._rightToLeft();
129    		  });
130    	});    	
131    	
132    	$('#' + this.prefix + '_window').modal('show');	
133    };
134    
135    this._leftToRight = function() {
136    	var parent = this;
137        $('#' + this.prefix +'_left option:selected').each(function(){
138        	$('#' + parent.prefix +'_right').append('<option value="'+ $(this).val() +'">'+ $(this).text() +'</option>');
139        	$('#' + parent.prefix +'_right option:last').dblclick( function () {
140  			  parent._rightToLeft();
141  		  	});
142        	$(this).remove();
143        });
144    };
145
146    this._rightToLeft = function() {
147    	var parent = this;
148        $('#' + this.prefix +'_right option:selected').each(function(){
149        	$('#' + parent.prefix +'_left').append('<option value="'+ $(this).val() +'">'+ $(this).text() +'</option>');
150        	$('#' + parent.prefix +'_left option:last').dblclick( function () {
151    			  parent._leftToRight();
152    		  	});        	
153        	$(this).remove();
154        });
155    };    
156
157    this._up = function() {
158    	var selectId = '#' + this.prefix +'_right';  
159        $(selectId + ' option:selected').each( function() {
160            var newPos = $(selectId + ' option').index(this) - 1;
161            if (newPos > -1) {
162                $(selectId + ' option').eq(newPos).before("<option value='"+$(this).val()+"' selected='selected'>"+$(this).text()+"</option>");
163                $(this).remove();
164            }
165        });    	
166    };
167    
168    this._down = function() {
169    	var selectId = '#' + this.prefix +'_right';
170        var countOptions = $(selectId + ' option').size();
171        $(selectId + ' option:selected').each( function() {
172            var newPos = $(selectId + ' option').index(this) + 1;
173            if (newPos < countOptions) {
174                $(selectId + ' option').eq(newPos).after("<option value='"+$(this).val()+"' selected='selected'>"+$(this).text()+"</option>");
175                $(this).remove();
176            }
177        });    	
178    }; 
179    
180    
181    this.getSelection = function() {
182    	var result = []; 
183    	$('#' + this.prefix +'_right option').each( function() {
184    		result.push($(this).val());
185    	});
186    	return result;
187    };
188
189};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.