c80_contest 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8589be081b886f52a64155f93fd213212bdb464
|
4
|
+
data.tar.gz: 0f520526b5c616e128d99cebad12fe29176d629e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54652353065ecc637623af8f306769d15392ee352461f3843a146c937ed52a80cdcb69f35dd0528db276701465bfffa98c5d55357c6edbd58027cd5ed8d32ea9
|
7
|
+
data.tar.gz: ac0b82549ed7284a26b7fe29c851614ef0d7a7beca11ac8ec56ae51ec9298389440332dc76593dfe19c65cee292659f31fb6c5ca6c8d0f42e28b8744ea8d31f1
|
@@ -106,8 +106,14 @@ $(function () {
|
|
106
106
|
});
|
107
107
|
|
108
108
|
//noinspection JSUnresolvedFunction
|
109
|
-
$form.find('input#bid_phone').jqxMaskedInput({
|
110
|
-
|
109
|
+
// $form.find('input#bid_phone').jqxMaskedInput({
|
110
|
+
// mask: '+# (###) ###-##-##'
|
111
|
+
// });
|
112
|
+
|
113
|
+
var numberedFromClass = new Numbered('form#form_bid input#bid_phone', {
|
114
|
+
mask: '+# (###) ###-##-##',
|
115
|
+
empty: '_',
|
116
|
+
placeholder: true
|
111
117
|
});
|
112
118
|
|
113
119
|
setTimeout(function () {
|
@@ -0,0 +1,240 @@
|
|
1
|
+
/*! numbered v1.0.2 | pavel-yagodin | MIT License | https://github.com/CSSSR/jquery.numbered */
|
2
|
+
(function (root, factory) {
|
3
|
+
if (typeof define === 'function' && define.amd) {
|
4
|
+
define([], factory);
|
5
|
+
} else if (typeof exports === 'object') {
|
6
|
+
module.exports = factory();
|
7
|
+
} else {
|
8
|
+
root.Numbered = factory();
|
9
|
+
}
|
10
|
+
}(this, function () {
|
11
|
+
'use strict';
|
12
|
+
|
13
|
+
var defaults = {
|
14
|
+
mask: '+7 (###) ### - ## - ##',
|
15
|
+
numbered: '#',
|
16
|
+
empty: '_',
|
17
|
+
placeholder: false
|
18
|
+
};
|
19
|
+
|
20
|
+
var Numbered = function (target, params) {
|
21
|
+
var self = this;
|
22
|
+
|
23
|
+
if (typeof target !== 'object') {
|
24
|
+
self.inputs = document.querySelectorAll(target);
|
25
|
+
} else if (typeof target.length !== 'undefined') {
|
26
|
+
self.inputs = target;
|
27
|
+
} else {
|
28
|
+
self.inputs = [target];
|
29
|
+
}
|
30
|
+
self.inputs = Array.prototype.slice.call(self.inputs);
|
31
|
+
|
32
|
+
params = params || (typeof self.inputs[0].numbered !== 'undefined' ? self.inputs[0].numbered.params : {});
|
33
|
+
|
34
|
+
for (var def in defaults) {
|
35
|
+
if (typeof params[def] === 'undefined') {
|
36
|
+
params[def] = defaults[def];
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
self.params = params;
|
41
|
+
self.config = {};
|
42
|
+
|
43
|
+
self.config.placeholder = self.params.mask.replace(new RegExp(self.params.numbered, 'g'), self.params.empty);
|
44
|
+
self.config.numbered = self.params.numbered.replace(/([()[\]\.^\#$|?+-])/g, '\\\\$1');
|
45
|
+
self.config.numberedCol = self.params.mask.split(self.params.numbered).length -1;
|
46
|
+
self.config.empty = self.params.empty.replace(/([()[\]\.^\#$|?+-])/g, '\\$1');
|
47
|
+
self.config.mask = self.params.mask.replace(/([()[\]\.^\#$|?+-])/g, '\\$1').replace(new RegExp(self.config.numbered, 'g'), '(\\d)');
|
48
|
+
self.config.maskNums = self.params.mask.replace(/[^\d]/gi, '').split('');
|
49
|
+
self.config.maskNumsCol = self.config.maskNums.length;
|
50
|
+
self.config.regexp = new RegExp('^' + self.config.mask + '$');
|
51
|
+
self.config.events = ['input', 'change', 'click', 'focusin', 'blur'];
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
self._eventFire = function(el, etype){
|
56
|
+
if (el.fireEvent) {
|
57
|
+
el.fireEvent('on' + etype);
|
58
|
+
} else {
|
59
|
+
var evObj = document.createEvent('Events');
|
60
|
+
evObj.initEvent(etype, true, false);
|
61
|
+
el.dispatchEvent(evObj);
|
62
|
+
}
|
63
|
+
};
|
64
|
+
|
65
|
+
self._getSelectionRange = function (oElm) {
|
66
|
+
var r = { text: '', start: 0, end: 0, length: 0 };
|
67
|
+
if (oElm.setSelectionRange) {
|
68
|
+
r.start= oElm.selectionStart;
|
69
|
+
r.end = oElm.selectionEnd;
|
70
|
+
r.text = (r.start != r.end) ? oElm.value.substring(r.start, r.end): '';
|
71
|
+
} else if (document.selection) {
|
72
|
+
var oR;
|
73
|
+
if (oElm.tagName && oElm.tagName === 'TEXTAREA') {
|
74
|
+
var oS = document.selection.createRange().duplicate();
|
75
|
+
oR = oElm.createTextRange();
|
76
|
+
var sB = oS.getBookmark();
|
77
|
+
oR.moveToBookmark(sB);
|
78
|
+
} else {
|
79
|
+
oR = document.selection.createRange().duplicate();
|
80
|
+
}
|
81
|
+
|
82
|
+
r.text = oR.text;
|
83
|
+
for (; oR.moveStart('character', -1) !== 0; r.start++);
|
84
|
+
r.end = r.text.length + r.start;
|
85
|
+
}
|
86
|
+
r.length = r.text.length;
|
87
|
+
return r;
|
88
|
+
};
|
89
|
+
|
90
|
+
|
91
|
+
self.magic = function (event) {
|
92
|
+
var numbered = this.numbered;
|
93
|
+
var value = numbered.input.value || ' ';
|
94
|
+
var valueFormatted = value.replace(/[^\d]/gi, '').split('').join('');
|
95
|
+
var valueFormattedArr = valueFormatted.split('');
|
96
|
+
var valueFormattedCol = valueFormattedArr.length;
|
97
|
+
var valueFormattedIndex = 0;
|
98
|
+
var positionStart = -1;
|
99
|
+
var positionEnd = -1;
|
100
|
+
var positionOld = self._getSelectionRange(numbered.input);
|
101
|
+
var maskNumsIndex = 0;
|
102
|
+
var valueFormattedRes = [];
|
103
|
+
var maskSplit = numbered.params.mask.split('');
|
104
|
+
|
105
|
+
for (var key in maskSplit) {
|
106
|
+
var val = maskSplit[key];
|
107
|
+
key = parseInt(key);
|
108
|
+
if (maskNumsIndex <= numbered.config.maskNumsCol && val == numbered.config.maskNums[maskNumsIndex] && val == valueFormattedArr[valueFormattedIndex]) {
|
109
|
+
valueFormattedRes.push(val);
|
110
|
+
maskNumsIndex++;
|
111
|
+
valueFormattedIndex++;
|
112
|
+
} else if(val == numbered.params.numbered) {
|
113
|
+
if (positionStart < 0) {
|
114
|
+
positionStart = key;
|
115
|
+
}
|
116
|
+
if(valueFormattedIndex < valueFormattedCol) {
|
117
|
+
valueFormattedRes.push(valueFormattedArr[valueFormattedIndex]);
|
118
|
+
valueFormattedIndex++;
|
119
|
+
positionEnd = key;
|
120
|
+
} else {
|
121
|
+
valueFormattedRes.push(numbered.params.empty);
|
122
|
+
}
|
123
|
+
} else {
|
124
|
+
valueFormattedRes.push(val);
|
125
|
+
}
|
126
|
+
}
|
127
|
+
value = valueFormattedRes.join('');
|
128
|
+
|
129
|
+
|
130
|
+
var position = (positionEnd >= 0 ? positionEnd + 1 : positionStart);
|
131
|
+
if (event.type !== 'click') {
|
132
|
+
if ((event.type === 'blur' || event.type === 'change') && valueFormattedIndex - maskNumsIndex === 0 && !numbered.params.placeholder) {
|
133
|
+
this.value = '';
|
134
|
+
} else if (numbered.oldValue !== numbered.input.value || event.type === 'focusin') {
|
135
|
+
this.value = value;
|
136
|
+
}
|
137
|
+
}
|
138
|
+
|
139
|
+
if(event.type !== 'change' && event.type !== 'blur' && (event.type !== 'click' || (numbered.lastEvent === 'focusin' && event.type === 'click'))) {
|
140
|
+
if (numbered.input.setSelectionRange) {
|
141
|
+
numbered.input.setSelectionRange(position, position);
|
142
|
+
} else if (numbered.input.createTextRange) {
|
143
|
+
var range = numbered.input.createTextRange();
|
144
|
+
range.collapse(true);
|
145
|
+
range.moveEnd('character', position);
|
146
|
+
range.moveStart('character', position);
|
147
|
+
range.select();
|
148
|
+
}
|
149
|
+
}
|
150
|
+
|
151
|
+
numbered.oldValue = this.value;
|
152
|
+
numbered.lastEvent = event.type;
|
153
|
+
return event.target;
|
154
|
+
};
|
155
|
+
|
156
|
+
for (var index in self.inputs) {
|
157
|
+
var $input = self.inputs[index];
|
158
|
+
var is = false;
|
159
|
+
if (typeof $input.numbered === 'оbject' || typeof $input.numbered !== 'undefined') {
|
160
|
+
is = true;
|
161
|
+
}
|
162
|
+
$input.numbered = {
|
163
|
+
input: self.inputs[index],
|
164
|
+
config: self.config,
|
165
|
+
params: self.params,
|
166
|
+
oldValue: false
|
167
|
+
};
|
168
|
+
|
169
|
+
if (!is) {
|
170
|
+
for (var key in self.config.events) {
|
171
|
+
$input.addEventListener(self.config.events[key], self.magic);
|
172
|
+
}
|
173
|
+
self._eventFire($input, 'blur');
|
174
|
+
}
|
175
|
+
self.inputs[index] = $input;
|
176
|
+
}
|
177
|
+
|
178
|
+
self.destroy = function () {
|
179
|
+
var self = this;
|
180
|
+
for (var index in self.inputs) {
|
181
|
+
var $input = self.inputs[index];
|
182
|
+
|
183
|
+
for (var key in self.config.events) {
|
184
|
+
$input.removeEventListener(self.config.events[key], self.magic);
|
185
|
+
$input.numbered = null;
|
186
|
+
}
|
187
|
+
}
|
188
|
+
return null;
|
189
|
+
};
|
190
|
+
|
191
|
+
self.validate = function () {
|
192
|
+
var self = this;
|
193
|
+
var res = self.inputs.length > 1 ? [] : false;
|
194
|
+
for (var index in self.inputs) {
|
195
|
+
var $input = self.inputs[index];
|
196
|
+
var validate;
|
197
|
+
|
198
|
+
if (self.inputs[index].numbered.config.regexp.test(self.inputs[index].numbered.input.value)) {
|
199
|
+
validate = 1;
|
200
|
+
} else if (self.inputs[index].numbered.input.value === '' || self.inputs[index].numbered.input.value === self.inputs[index].numbered.config.placeholder) {
|
201
|
+
validate = 0;
|
202
|
+
} else {
|
203
|
+
validate = -1;
|
204
|
+
}
|
205
|
+
|
206
|
+
if (self.inputs.length > 1) {
|
207
|
+
res.push(validate);
|
208
|
+
} else {
|
209
|
+
res = validate;
|
210
|
+
}
|
211
|
+
}
|
212
|
+
return res;
|
213
|
+
};
|
214
|
+
|
215
|
+
self.reInit = function () {
|
216
|
+
var self = this;
|
217
|
+
var res = self.inputs.length > 1 ? [] : false;
|
218
|
+
for (var index in self.inputs) {
|
219
|
+
var $input = self.inputs[index];
|
220
|
+
self._eventFire($input, 'blur');
|
221
|
+
}
|
222
|
+
return res;
|
223
|
+
};
|
224
|
+
|
225
|
+
self.setVal = function (value) {
|
226
|
+
var self = this;
|
227
|
+
var res = self.inputs.length > 1 ? [] : false;
|
228
|
+
for (var index in self.inputs) {
|
229
|
+
var $input = self.inputs[index];
|
230
|
+
$input.value = value;
|
231
|
+
self._eventFire($input, 'blur');
|
232
|
+
}
|
233
|
+
return res;
|
234
|
+
};
|
235
|
+
|
236
|
+
return self;
|
237
|
+
};
|
238
|
+
|
239
|
+
return Numbered;
|
240
|
+
}));
|
data/lib/c80_contest/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: c80_contest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- C80609A
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -265,6 +265,7 @@ files:
|
|
265
265
|
- app/assets/javascripts/lib/fileinput/themes/gly/theme.js
|
266
266
|
- app/assets/javascripts/lib/jqx/jqxcore.js
|
267
267
|
- app/assets/javascripts/lib/jqx/jqxmaskedinput.js
|
268
|
+
- app/assets/javascripts/lib/numbered/numbered.js
|
268
269
|
- app/assets/stylesheets/c80_contest.scss
|
269
270
|
- app/assets/stylesheets/c80_contest/backend/bid_page.scss
|
270
271
|
- app/assets/stylesheets/c80_contest/backend/settings_page.scss
|