PageSourceSearch

https://saturn.tlt.co.jp/pdocs/js/search/modal_selectlamp_scripts.js

js tlt.co.jp collected 2026-09-24 18:15:30 UTC 8,711 bytes, 266 lines download raw bytes

1/**
2 * script for search
3 */
4$(document).ready(function() {
5		   
6	// open [select lamp product modal]
7	$(".openSelectLampProductModal").click(function() {
8		// get searchTypename & set searchTypename text
9		var searchTypename = $(this).attr('id').replace("_select", "");
10		$("#searchTypename_id").text(searchTypename);
11		var typename = "";
12		
13		// deferred
14		var deferred = new $.Deferred();
15		
16		// ajax
17		var data = {"katameis" : searchTypename };
18		$.ajax({
19			type : "POST",
20			url : "./api_getTypename", // リクエストURL
21			contentType : "application/json",
22			dataType : "json",
23			data : JSON.stringify(data),
24			cache : false,
25		}).done(function(data){
26			typename = data.result.typename;
27			// モーダル画面に設定
28			if (typename) {
29				$("#typename_id").text(typename);
30			} else {
31				$("#typename_id").text(searchTypename);
32			}
33		}).fail(function(){
34			
35		}).always(function(){
36            //ajax処理を終了したことをDeferredオブジェクトに通知
37            deferred.resolve();
38		});
39			
40		deferred.done(function(){
41			// table display none
42			$(".selectLampTable").css("display", "none");
43			
44			// open modal
45			$('[data-remodal-id=select-lamp-modal]').remodal().open();
46        });
47	});
48
49	// event::closing [select lamp product modal]
50	$("#close_select_lamp_modal").click(function(e) {
51		
52		// get checked 
53		var lampCheckedList = new Array();
54		$('input.lamp-action-check:checked').each(function(){
55			if( $(this).val() != null ) {
56				lampCheckedList.push( $(this).val() );
57			}
58		});
59		
60		// get sTypename
61		var searchTypename = $("#searchTypename_id").text();
62		
63		// error check
64		// 商品種別マスタ1 取得
65		var mShubetsu = $("#" + searchTypename + "_shohinMasutaShubetsu").val();
66		// 組合構成商品マスタ種別1 取得
67		var kShubetsu = $("#" + searchTypename + "_koseiMasutaShubetsu").val();
68		// プラス形名フラグ 取得
69		var pFlug = $("#" + searchTypename + "_plusFlug").val();
70		// プラス形名構成器具商品マスタ種別1 取得
71		var pShubetsu = $("#" + searchTypename + "_plusKoseiShubetsu").val();
72		
73		// (プラス形名フラグがTRUEの場合かつ、プラス形名構成器具商品マスタ種別1が空でない場合)
74		if(pFlug == "true" && pShubetsu != null){
75			//(プラス形名構成器具商品マスタ種別1 が非梱)、または、(プラス形名構成器具商品マスタ種別1 が組合、かつ、組合構成商品マスタ1が非梱)の場合エラーチェック
76			if (pShubetsu == "C" || (pShubetsu == "B" && kShubetsu == "C")) {
77				if (lampCheckedList.length == 0) {
78					alert("ランプを1つ以上選択する必要があります。");
79					return false;
80				}
81			}
82		}else{
83			// (商品種別マスタ1が非梱)、または、(商品種別マスタ1が組合、かつ、組合構成商品マスタ1が非梱)の場合エラーチェック
84			if (mShubetsu == "C" || (mShubetsu == "B" && kShubetsu == "C")) {
85				if (lampCheckedList.length == 0) {
86					alert("ランプを1つ以上選択する必要があります。");
87					return false;
88				}
89			}
90		}
91		
92	});
93
94	// event::closed [select lamp product modal]
95	$(document).on("closed", "#select_lamp_modal_area", function (e) {
96		
97		// push cancel button. return false;
98		if (e.reason == "cancellation") {
99			// select lamp table clear
100			$(".selectLampTable tbody").empty();  
101			
102			// return false
103			return false;
104		}	
105		
106		// get checked
107		var searchTypename = $("#searchTypename_id").text();
108		var lampCheckedList = new Array();
109		
110		// フォルダ管理に追加するため選択ランプの形名と検索形名を保持する
111		var selectLampList = new Array();
112		
113		$('input.lamp-action-check:checked').each(function(){
114			if( $(this).val() != null ) {
115				lampCheckedList.push( $(this).val() );
116				
117				// フォルダ管理に追加するため選択ランプの形名と検索形名を保持する
118				var selectLamp = {};
119				selectLamp.searchTypeName = $(this).val();
120				selectLamp.typeName = $(this).closest('td').next('td').text();
121				selectLampList.push(selectLamp);
122			}
123		});
124		
125		// 一つも選択されていないとき空文字をセットする
126		if(0==selectLampList.length){
127			var selectLamp = {};
128			selectLamp.searchTypeName = "";
129			selectLamp.typeName = "";
130			selectLampList.push(selectLamp);
131		}
132		
133		// select lamp table clear
134		$(".selectLampTable tbody").empty();   
135		   
136		// change lamp icon status
137		var lampstatus_id = "#" + searchTypename + "_lamp_status";
138		if (lampCheckedList.length > 0) {
139			$(lampstatus_id).css('visibility', 'visible');
140		} else {
141			$(lampstatus_id).css('visibility', 'hidden');
142		}
143			
144		// set lampSearchTypename in hidden
145		var lamphidden_id = "#" + searchTypename + "_selected";
146		var lamphidden_value = lampCheckedList.join(",");
147		$(lamphidden_id).val(lamphidden_value);
148		
149		// 選択ランプがデフォルトであれば空文字とする
150		var defaultLampSearchTypeNameId = "#" + searchTypename + "_defaultlamptypename";
151		for(var i=0; i<selectLampList.length; i++){
152			if(selectLampList[i]['searchTypeName']==$(defaultLampSearchTypeNameId).val()){
153				selectLampList[i]['searchTypeName']="";
154				selectLampList[i]['typeName']="";
155			}
156		}
157		
158		// フォルダ管理に追加するため選択ランプの形名と検索形名を保持する
159		var selectLampListId = "#" + searchTypename + "_selectlamplist";
160		$(selectLampListId).val(JSON.stringify(selectLampList));
161			
162		// update localstorage
163		var typenamelist = load_mylist();
164		if (typenamelist[searchTypename] === void 0) {;} 
165		else {
166			typenamelist[searchTypename] = $(lamphidden_id).val();
167			window.localStorage.setItem("mylist" , JSON.stringify(typenamelist));
168		}
169	});
170
171	// event::opened [select lamp product modal]
172	$(document).on('opened', '#select_lamp_modal_area', function () {
173		
174		// get typename
175		var searchTypename = $("#searchTypename_id").text();
176		   
177		// ajax
178		var data = {"katameis" : searchTypename };
179		var def = $.ajax({
180			type : "POST",
181			url : "./api_getReplaceableLampProduct", // リクエストURL
182			contentType : "application/json",
183			dataType : "json",
184			data : JSON.stringify(data),
185			cache : false,
186		    beforeSend:function() {
187		    	loadingView(true);
188		    }
189		}).done(function(data) {
190		}).fail(function(data) {
191		}).always(function() {
192		});
193		
194		// 0.8s wait
195		setTimeout(function(){
196	        $.when(def).done(function(data){
197				success(data, searchTypename);
198				loadingView(false);
199	        });
200	    },800);
201	});
202});
203
204
205// ajax successed
206function success(data, searchTypename) {
207	
208	var insert = [];
209	var defaultLampSearchTypename = $("#" + searchTypename + "_defaultlamptypename").val();
210	for (var cnt = 0; cnt < data.result.products.length; cnt++) {
211		// get hinmai1(s_db_11_data5) not exist hinmai2(goodsname)
212		var goodsname = data.result.products[cnt].specD.s_db_ll_data5;
213		if (typeof goodsname == "undefined") {
214			if (null != data.result.products[cnt].goodsname) {
215				goodsname = data.result.products[cnt].goodsname;
216			} else {
217				// null = 「-」
218				goodsname = "-";
219			}
220		}
221 	
222		// output html
223		var insertHtml = "<tr>"
224				+ "<td>" 
225					+ "<input id='" + data.result.products[cnt].searchTypename
226					+ "_chk' type='checkbox' name='lamp-action-chk' class='lamp-action-check' value='"
227					+ data.result.products[cnt].searchTypename + "'>"
228				+ "</td>"
229				+ "<td>" + data.result.products[cnt].typename + "</td>"
230				+ "<td>" + goodsname + "</td>"
231		+ "</tr>";
232		
233		// デフォルトランプが存在する場合は、先頭へ表示
234		if (defaultLampSearchTypename == data.result.products[cnt].searchTypename) {
235			insert.unshift(insertHtml);
236		} else {
237			insert.push(insertHtml);
238		}
239	}
240	$(".selectLampTable tbody").append(insert.join(""));	
241	$(".selectLampTable").css("display", "");
242 
243	// check selected lamp
244	var selectedlamp_value = $("#" + searchTypename + "_selected").val();
245	var selectedlamp_str = selectedlamp_value.split(",");
246	$.each(selectedlamp_str, function(index, val){
247		if(selectedlamp_str == ""){}
248		else {
249			$('#' + val + '_chk').prop('checked',true);
250		}
251	});
252}
253
254// ajax failed
255function error(XMLHttpRequest, textStatus, errorThrown) {
256	;
257}
258
259//画像描画Loding...処理
260function loadingView(flag) {
261	$('#loading-img').fadeOut().queue(function() {
262		$('#loading-img').remove();
263	});
264	if(!flag) return;
265	$('#loading-view').append('<div id="loading-img"><div class="loadingMsg">Now Loading...</div></div>').hide().fadeIn();
266}

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.