PageSourceSearch

https://online.smart-gardener.ru/nassets/7bc22803/custom_form.js?v=1765633899

js smart-gardener.ru collected 2026-09-28 08:54:00 UTC 2,816 bytes, 114 lines download raw bytes

1jQuery.widget( 'gc.customForm', {
2	options: {
3		form: []
4	},
5	selectedFieldEl: null,
6
7	_create: function() {
8		var widget = this;
9
10		for( key in this.options.form.fields ) {
11			var field = this.options.form.fields[key];
12			this.addField( field );
13		}
14	},
15
16	addField: function( field ) {
17
18		var widget = this;
19
20
21		$fieldWrapperEl = $('<div class="field-wrapper"/>');
22		/*$fieldWrapperEl.click( function() {
23			widget.selectField( $(this) );
24		});*/
25
26		$fieldEl = $('<div class="field"/>');
27		$fieldEl.appendTo( $fieldWrapperEl );
28
29		var $fieldsListEl = this.element.find( '.fields' );
30		if ( $fieldsListEl.length == 0 ) {
31			$fieldsListEl = $('<div class="fields"></div>')
32			$fieldsListEl.appendTo( this.element )
33		}
34
35
36		$fieldWrapperEl.appendTo( $fieldsListEl );
37		var type = field.type;
38
39		if ( type == "string" ) {
40			$fieldEl.stringField({ field: field });
41			$fieldEl.data( 'widgetClass', 'stringField' );
42		}
43		if ( type == "text" ) {
44			$fieldEl.textField({ field: field });
45			$fieldEl.data( 'widgetClass', 'textField' );
46		}
47		if ( type == "checkbox" ) {
48			$fieldEl.checkboxField({ field: field });
49			$fieldEl.data( 'widgetClass', 'checkboxField' );
50		}
51		if ( type == "select" ) {
52			$fieldEl.selectField({ field: field });
53			$fieldEl.data( 'widgetClass', 'selectField' );
54		}
55		if ( type == "multi_select" ) {
56			$fieldEl.multiSelectField({ field: field });
57			$fieldEl.data( 'widgetClass', 'multiSelectField' );
58		}
59		if ( type == "date" ) {
60			$fieldEl.dateField({ field: field });
61			$fieldEl.data( 'widgetClass', 'dateField' );
62		}
63		if ( type == "file" ) {
64			$fieldEl.fileField({ field: field });
65			$fieldEl.data( 'widgetClass', 'fileField' );
66		}
67		if ( type == "numeric" ) {
68			$fieldEl.numericField({ field: field });
69			$fieldEl.data( 'widgetClass', 'numericField' );
70		}
71		this.changed();
72
73		$fieldEl.data('gc-' + $fieldEl.data('widgetClass')).afterInit();
74
75		return $fieldWrapperEl;
76	},
77
78	getFields: function() {
79		var customFields = $(this.element).find( '.custom-field');
80		var result = new Array();
81		customFields.each( function( index, el ) {
82			var $fieldEl = $( el );
83			result.push( $fieldEl.data('gc-' + $fieldEl.data('widgetClass')).getField() );
84		})
85		return result;
86	},
87
88	changed: function() {
89/*		if (this.options.valueEl) {
90    		var fields = this.getFormValues();
91    		this.options.valueEl.val(JSON.stringify( { fields: fields }));
92		}*/
93	},
94
95	selectField: function() {
96
97	},
98
99	getFormValues: function() {
100
101		var customFields = $(this.element).find( '.custom-field');
102		var result = {};
103		customFields.each( function( index, el ) {
104			var $fieldEl = $( el );
105			var fieldWidget = $fieldEl.data('gc-' + $fieldEl.data('widgetClass'));
106
107			if (fieldWidget) {
108				var field = fieldWidget.field;
109				result[field.id] = fieldWidget.getValue();
110			}
111		});
112		return result;
113	}
114} );

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.