PageSourceSearch

https://yourautomationhub.io/js/views/SubmitForm.js

js yourautomationhub.io collected 2026-10-03 20:36:53 UTC 20,987 bytes, 366 lines download raw bytes

1/****************************************************************** 
2	Licensed Materials - Property of HCL
3
4	5698-WSE
5	(C) Copyright HCL Technologies Ltd. 2019 All rights reserved. 
6	
7 *******************************************************************/
8if (!hcl_modules ) {
9	 var hcl_modules = {};
10}
11hcl_modules["submitFormView"] = (function($) {
12	'use strict';
13
14	var tracer = hcl_modules["Tracer"]("js.view.submitFormView");
15	var trace = function(msg){
16		tracer.info(msg);
17	};
18	
19	var viewName = "submitFormView";
20	
21	function init(params) {
22		trace("init");
23		$('#main').append('<section id ="submit-form-container"></section>	');
24		_buildView();			
25		
26	};
27	
28	function scrollTopDetail() {
29													
30		window.scrollTo(0, 0);
31		
32		$(".submitFormView").fadeIn('fast');
33	};
34	
35	
36	function _buildView(){ 
37		trace("buildView");
38		var submitClass = "box-text-sizing";
39		if(isFromIE11()){
40                   submitClass = "box-text-sizing-ie11";
41		}
42		$( "#submit-form-container" ).append('<div class="container-fluid submitFormView view" style="min-height:400px">'+
43								'          <div class="row d-flex justify-content-center"  >'+
44								'              <div class="col-sm-12 blue-banner">'+
45								'                  <div class="'+submitClass+'" style="clear:both;text-align:center">' +
46								'                      <div class="paragraph_title paragraph_title-white">'+ Config.labels.LBL_READY +'</div>'+
47								'                 </div>'+
48								'              </div>'+
49								'          </div>'+
50								'          <div class="row d-flex justify-content-center"  >'+
51								'              <div class="col-sm-5">'+
52								'                  <div style="margin:30px 40px 40px 50px;clear:both" class="mp-list">' +
53								'                      <div class="paragraph_title">'+ Config.labels.SUBMITFORM_TITLE +'</div>'+
54								'                      <div class="spacer"></div>'+
55															Config.labels.SUBMITFORM_BODY +
56								'							<img src="images/schedule_demo.png">'+
57								'                 </div>'+
58								'	           </div>' +
59								'              <div class="col-sm-7">'+		
60								'                  <div class="d-flex-none justify-content-center mail-spinner" style="display:none;margin-top:30%">'+
61								'                      <div class="spinner-grow text-primary" role="status">'+
62								'                           <span class="sr-only">'+Config.labels.LBL_LOADING +'</span>'+
63								'                      </div>'+
64								'                  </div>'+
65								'                  <div class="card mcard shadow" style="width:90%" id="addPluginMail">'+
66								'                      <div class="card-body ">'+
67
68								//'                          <form class="needs-validation" novalidate id="opensourceForm" action="sendMail" method="get">'+
69								'                          <form class="needs-validation" novalidate id="opensourceForm" >'+
70								'                              <div class="row">'+
71								'                                  <div class="col">'+
72							    '                                      <div class="form-group">'+
73							    '                                          <label for="githubUrl" class="col-form-label-lg">'+ Config.labels.SUBMITFORM_L_GITHUB +'</label>'+
74							    '                                          <input type="url" class="form-control form-control-lg " id="githubUrl" placeholder="'+ Config.labels.SUBMITFORM_P_GITHUB +'" name="githubUrl" required>'+
75							    '                                          <div class="valid-feedback">'+ Config.labels.SUBMITFORM_M_VALID +'</div>'+
76							    '                                          <div class="invalid-feedback">'+ Config.labels.SUBMITFORM_E_MANDATORYMESSAGE +'</div>'+
77							    '                                      </div>'+
78								'                                  </div>'+
79							    '                              </div>'+
80								'                              <div class="row">'+
81								'                                  <div class="col">'+
82							    '                                      <div class="form-group">'+
83							    '                                          <label for="pluginName" class="col-form-label-lg">'+ Config.labels.SUBMITFORM_L_PNAME +'</label>'+
84							    '                                          <input type="text" class="form-control form-control-lg" id="pluginName" placeholder="'+ Config.labels.SUBMITFORM_P_PNAME +'" name="pluginName" required>'+
85							    '                                          <div class="valid-feedback">'+ Config.labels.SUBMITFORM_M_VALID +'</div>'+
86							    '                                          <div class="invalid-feedback">'+ Config.labels.SUBMITFORM_E_MANDATORYMESSAGE +'</div>'+
87							    '                                      </div>'+
88								'                                  </div>'+
89							    '                              </div>'+
90								'                              <div class="row">'+
91								'                                  <div class="col">'+
92								'                                      <div class="form-group">'+
93							    '                                          <label for="name" class="col-form-label-lg">'+ Config.labels.SUBMITFORM_L_VERSION +'</label>'+
94							    '                                          <input type="text" class="form-control form-control-lg" id="version" placeholder="'+ Config.labels.SUBMITFORM_P_VERSION +'" name="version" required>'+
95							    '                                          <div class="valid-feedback">'+ Config.labels.SUBMITFORM_M_VALID +'</div>'+
96							    '                                          <div class="invalid-feedback">'+ Config.labels.SUBMITFORM_E_MANDATORYMESSAGE +'</div>'+
97							    '                                       </div>'+
98								'                                  </div>'+
99							    '                              </div>'+
100								'                              <div class="row">'+
101								'                                  <div class="col">'+
102								'                                      <div class="form-group">'+
103							    '                                          <label for="shortDescription" class="col-form-label-lg">'+ Config.labels.SUBMITFORM_L_SDESCRIPTION +'</label>'+
104							    '                                          <textarea class="form-control form-control-lg" rows="3" id="shortDescription" placeholder="'+ Config.labels.SUBMITFORM_P_SDESCRIPTION +'" required name="shortDescription"></textarea>'+
105							    '                                          <div class="valid-feedback">'+ Config.labels.SUBMITFORM_M_VALID +'</div>'+
106							    '                                          <div class="invalid-feedback">'+ Config.labels.SUBMITFORM_E_MANDATORYMESSAGE +'</div>'+
107							    '                                       </div>'+
108								'                                  </div>'+
109							    '                              </div>'+
110								'                              <div class="row">'+
111								'                                  <div class="col">'+
112								'                                      <div class="form-group">'+
113							    '                                          <label for="generalDescription" class="col-form-label-lg">'+ Config.labels.SUBMITFORM_L_GDESCRIPTION +'</label>'+
114							    '                                          <textarea class="form-control form-control-lg" rows="3" id="generalDescription" placeholder="'+ Config.labels.SUBMITFORM_P_GDESCRIPTION +'" required name="generalDescription"></textarea>'+
115							    '                                          <div class="valid-feedback">'+ Config.labels.SUBMITFORM_M_VALID +'</div>'+
116							    '                                          <div class="invalid-feedback">'+ Config.labels.SUBMITFORM_E_MANDATORYMESSAGE +'</div>'+
117							    '                                       </div>'+
118								'                                  </div>'+
119							    '                              </div>'+
120								
121								'                              <div class="row">'+
122								'                                  <div class="col">'+
123								'                                      <div class="form-group">'+
124							    '                                          <label for="category" style="width: 100%" class="col-form-label-lg">'+ Config.labels.SUBMITFORM_L_CATEGORY +
125                                '           								    <select class="select2_category form-control form-control-lg" id="category" name="category" required id="category" style="width: 100%" multiple="multiple">'+
126								
127                                '                                               </select>'+
128								'                                           </label>'+
129							    '                                          <div class="valid-feedback">'+ Config.labels.SUBMITFORM_M_VALID +'</div>'+
130							    '                                          <div class="invalid-feedback">'+ Config.labels.SUBMITFORM_E_MANDATORYMESSAGE +'</div>'+
131							    '                                       </div>'+
132								'                                  </div>'+
133							    '                              </div>'+
134								'                              <div class="row">'+	
135								'                                  <div class="col">'+								
136                                '                                      <div class="form-check form-check-inline">'+
137                                '                                             <input class="form-check-input supportChk" type="radio" name="supported" id="yes" value="yes" checked>'+
138                                '                                             <label class="form-check-label" for="yes">'+
139                                                                                    Config.labels.SUBMIT_FORM_SUPPORTED +
140                                '                                             </label>'+
141                                '                                      </div>'+
142								 '                                      <div class="form-check form-check-inline">'+
143                                '                                             <input class="form-check-input supportChk" type="radio" name="supported" id="no" value="no">'+
144                                '                                             <label class="form-check-label" for="yes">'+
145                                                                                    Config.labels.SUBMIT_FORM_NOT_SUPPORTED +
146                                '                                             </label>'+
147                                '                                      </div>'+
148							    '                                  </div>'+		
149							    '                              </div>'+		
150								'                              <div class="row" id="supportInfo">'+
151								'                                  <div class="col">'+
152								'                                      <div class="form-group">'+ 
153							    '                                          <label for="supportContact" class="col-form-label-lg">'+ Config.labels.SUBMIT_FORM_SUPPORT_URL +'</label>'+
154							    '                                          <input type="text" class="form-control form-control-lg" id="supportContact" placeholder="'+ Config.labels.SUBMIT_FORM_SUPPORT_URL_PLACEHOLDER +'" name="supportContact">'+
155							    '                                          <div class="valid-feedback">'+ Config.labels.SUBMITFORM_M_VALID +'</div>'+
156							    '                                          <div class="invalid-feedback">'+ Config.labels.SUBMITFORM_E_MANDATORYMESSAGE +'</div>'+
157							    '                                       </div>'+
158								'                                  </div>'+
159							    '                              </div>'+								
160								'                              <div class="row">'+
161								'                                  <div class="col">'+
162								'                                      <div class="form-group">'+
163							    '                                          <label for="organization" class="col-form-label-lg">'+ Config.labels.SUBMITFORM_L_ORGANIZATION +'</label>'+
164							    '                                          <input type="text" class="form-control form-control-lg" id="organization" placeholder="'+ Config.labels.SUBMITFORM_P_ORGANIZATION +'" name="organization" required>'+
165							    '                                          <div class="valid-feedback">'+ Config.labels.SUBMITFORM_M_VALID +'</div>'+
166							    '                                          <div class="invalid-feedback">'+ Config.labels.SUBMITFORM_E_MANDATORYMESSAGE +'</div>'+
167							    '                                       </div>'+
168								'                                  </div>'+
169							    '                              </div>'+
170								'                              <div class="row">'+
171								'                                  <div class="col-md-6 col-sm-12">'+
172								'                                     <div class="form-group">'+
173							    '                                         <label for="name" class="col-form-label-lg">'+ Config.labels.SUBMITFORM_L_FNAME +'</label>'+
174							    '                                         <input type="text" class="form-control form-control-lg" id="name" placeholder="'+ Config.labels.SUBMITFORM_P_FNAME +'" name="name" required>'+
175							    '                                         <div class="valid-feedback">'+ Config.labels.SUBMITFORM_M_VALID +'</div>'+
176							    '                                         <div class="invalid-feedback">'+ Config.labels.SUBMITFORM_E_MANDATORYMESSAGE +'</div>'+
177							    '                                     </div>'+
178								'                                  </div>'+
179								'                                  <div class="col-md-6 col-sm-12">'+
180								'                                      <div class="form-group">'+
181							    '                                          <label for="surname" class="col-form-label-lg">'+ Config.labels.SUBMITFORM_L_LNAME +'</label>'+
182							    '                                          <input type="text" class="form-control form-control-lg" id="surname" placeholder="'+ Config.labels.SUBMITFORM_P_LNAME +'" name="surname" required>'+
183							    '                                          <div class="valid-feedback">'+ Config.labels.SUBMITFORM_M_VALID +'</div>'+
184							    '                                          <div class="invalid-feedback">'+ Config.labels.SUBMITFORM_E_MANDATORYMESSAGE +'</div>'+
185							    '                                      </div>'+
186							    '                                 </div>'+
187			                    '                              </div>'+
188								'                              <div class="row">'+
189								'                                  <div class="col-md-6 col-sm-12">'+
190								'                                     <div class="form-group">'+
191							    '                                         <label for="email" class="col-form-label-lg">'+ Config.labels.SUBMITFORM_L_EMAIL +'</label>'+
192							    '                                         <input type="email" class="form-control form-control-lg" id="email" placeholder="'+ Config.labels.SUBMITFORM_P_EMAIL +'" name="email" required>'+
193							    '                                         <div class="valid-feedback">'+ Config.labels.SUBMITFORM_M_VALID +'</div>'+
194							    '                                         <div class="invalid-feedback">'+ Config.labels.SUBMITFORM_E_MANDATORYMESSAGE +'</div>'+
195							    '                                     </div>'+
196								'                                  </div>'+
197								'                                  <div class="col-md-6 col-sm-12">'+
198								'                                      <div class="form-group" >'+
199							    '                                          <label for="phone" class="col-form-label-lg">'+ Config.labels.SUBMITFORM_L_PHONE +'</label>'+
200							    '                                          <input type="text" class="form-control form-control-lg" id="surname" placeholder="'+ Config.labels.SUBMITFORM_P_PHONE +'" name="phone">'+
201							    '                                          <div class="v
201alid-feedback">'+ Config.labels.SUBMITFORM_M_VALID +'</div>'+
202							    '                                          <div class="invalid-feedback">'+ Config.labels.SUBMITFORM_E_MANDATORYMESSAGE +'</div>'+
203							    '                                      </div>'+
204							    '                                 </div>'+
205			                    '                              </div>'+
206								'                              <div id="recaptcha" class="g-recaptcha" style="margin-bottom:20px"></div>'+
207								'	                           <div class="col-12 col-sm" id="submitButton">'+
208								'                                  <div class="d-flex justify-content-center">'+
209								'                                      <button class="btn btn-style-3" style="line-height:2; width:12em">'+ Config.labels.SUBMITFORM_B_SUBMIT +'</button>' +
210								'                                  </div>'+
211								'                               </div>'+
212							    '                        </form>'+
213								'                      </div>'+
214								'                  </div>'+
215								'	           </div>' +
216								'	      </div>' +
217								'   </div>'
218					            );
219		
220		scrollTopDetail();
221		
222		
223		
224		$(".select2_category").select2({
225		  placeholder: Config.labels.SUBMIT_FORM_SUPPORT_SELECT_OPTION,
226
227		  tags: true,
228		  tokenSeparators: [',', ' ']
229		  
230		});
231		
232		for(var tag in Config.Tags){
233			var newOption = new Option(Config.glbTags[tag], tag, false, false);
234			$('.select2_category').append(newOption).trigger('change');
235			
236		}
237	
238		$(".supportChk").bind("change", _support);
239		
240		$("#createintegration").bind("click", _openView);
241		
242		$('#opensourceForm').bind('submit',null, submitFunc);
243		 grecaptcha.render('recaptcha', {
244          'sitekey' : Config.captha_sitekey
245        });
246
247		
248	};
249	
250	function _openView(e) {
251		Config.controller.openView("integrationsView");
252		gtag('event', Config.labels.BUTTON_TOOLKIT_DOCUMENTATION , {
253			'event_category' : 'click'
254		});
255		e.preventDefault();
256	};
257	
258    function _support(e){
259	
260		if (e.currentTarget.id ==="no") {
261			$("#supportInfo").hide();
262				$("#supportContact").removeAttr("required");
263		} else 	{
264			$("#supportInfo").show();
265			$("#supportContact").prop("required", "required");
266		} 
267		e.preventDefault();
268	};
269	
270	function submitFunc(e){
271		
272		
273		var response = grecaptcha.getResponse();
274
275		if(response.length == 0) {
276			//reCaptcha not verified
277			alert("Please confirm you are not a robot");
278		} else {
279			//reCaptch verified
280			
281			var form = e.currentTarget;
282			if (form.checkValidity() === false) {
283			  form.classList.add('was-validated');	
284			  event.preventDefault();
285			  event.stopPropagation();
286			} else {
287				form.classList.add('was-validated');	
288				
289				var postData = $(this).serializeArray(); 
290				var jsonData = {};
291				var category ="";
292				for (var i=0; i<postData.length; i++) {
293					if (postData[i].name =="category") {
294						category += postData[i].value + ", ";
295						jsonData[postData[i].name] = category;
296					} else {
297						jsonData[postData[i].name] = postData[i].value;
298					}
299					
300				}	
301				$(".mail-spinner").addClass('d-flex').removeClass('d-flex-none');
302				$(".mail-spinner").show();
303				$("#addPluginMail").hide();
304				$.ajax({ 
305					type: "POST",
306					dataType: "json",
307					url: Config.contextPath +"/rest/Mail/addplugin",
308					data: JSON.stringify( jsonData ),
309					async: false,
310					success: function(data){
311						_success(data);
312					 return data;
313					},
314					error: function(jqXHR, textStatus, errorThrown) {
315						$(".mail-spinner").addClass('d-flex-none').removeClass('d-flex');
316						$(".mail-spinner").hide();
317						$("#addPluginMail").show();
318						if (jqXHR.responseJSON) {
319							alert(jqXHR.responseJSON.cause);
320						} else {
321							alert("error"+errorThrown);
322						}
323						
324					}
325			 });
326			
327				
328				
329				
330				
331			}
332        }
333	
334	 e.preventDefault();
335	
336	};
337	
338	function _success(data){
339		if (data.status ==="successful") {
340			$(".mail-spinner").addClass('d-flex-none').removeClass('d-flex');
341			$(".mail-spinner").hide();
342			$("#addPluginMail").show();
343			$( "#submit-form-container" ).remove();
344			Config.controller.openView("thanksView", null);
345			gtag('event', "SubmitForm", {
346					'event_category' : 'submit'
347				});
348		}	
349		
350	};
351	
352	var Class = function(params) {
353		
354		init(params);	
355
356		this.updateView = function(options){
357			if (!$("#submit-form-container").length) {
358				init(options) ;
359			}
360		};
361
362	};
363	
364	return Class;
365
366})(jQuery);

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.