activeadmin-regex-input 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- //= require webui-popover
1
+ //= require_tree ./lib
2
2
 
3
3
  // https://css-tricks.com/snippets/javascript/get-url-variables/
4
4
  // Get url query params
@@ -7,7 +7,7 @@ function getQueryVariable(key)
7
7
  const query = decodeURI(window.location.search.substring(1));
8
8
  let vars = query.split("&");
9
9
  for (let i = 0; i < vars.length; i++) {
10
- var pair = vars[i].split("=");
10
+ let pair = vars[i].split("=");
11
11
  if(pair[0] === key){
12
12
  // Replace + in url with space, might make the previous data became wrong
13
13
  return decodeURIComponent(pair[1].replace('+', ' '));
@@ -18,8 +18,8 @@ function getQueryVariable(key)
18
18
 
19
19
  // Init all reqex input
20
20
  function initRegexInputs(inputs) {
21
- for (let item of inputs) {
22
- let input = $(item);
21
+ inputs.each((index) => {
22
+ let input = $(inputs[index]);
23
23
  const regex = new RegExp(input.data('regex'));
24
24
  const example = input.data('example');
25
25
 
@@ -37,7 +37,6 @@ function initRegexInputs(inputs) {
37
37
 
38
38
  // Show popover and change color if current input doesn't match regex
39
39
  input.on('keyup', event => {
40
- console.log(input.val());
41
40
  if (!regex.test(input.val())) {
42
41
  input.css('border-color', 'red');
43
42
  input.webuiPopover('show');
@@ -46,7 +45,7 @@ function initRegexInputs(inputs) {
46
45
  input.css('border-color', '#c9d0d6');
47
46
  }
48
47
  });
49
- }
48
+ });
50
49
  }
51
50
 
52
51
  $(document).ready(() => {
@@ -1,3 +1,3 @@
1
1
  /*
2
- *= require webui-popover
2
+ *= require_tree ./lib
3
3
  */
@@ -0,0 +1,330 @@
1
+ /*
2
+ * webui popover plugin - v1.2.17
3
+ * A lightWeight popover plugin with jquery ,enchance the popover plugin of bootstrap with some awesome new features. It works well with bootstrap ,but bootstrap is not necessary!
4
+ * https://github.com/sandywalker/webui-popover
5
+ *
6
+ * Made by Sandy Duan
7
+ * Under MIT License
8
+ */
9
+ .webui-popover-content {
10
+ display: none;
11
+ }
12
+ .webui-popover-rtl {
13
+ direction: rtl;
14
+ text-align: right;
15
+ }
16
+ /* webui popover */
17
+ .webui-popover {
18
+ position: absolute;
19
+ top: 0;
20
+ left: 0;
21
+ z-index: 9999;
22
+ display: none;
23
+ min-width: 50px;
24
+ min-height: 32px;
25
+ padding: 1px;
26
+ text-align: left;
27
+ white-space: normal;
28
+ background-color: #ffffff;
29
+ background-clip: padding-box;
30
+ border: 1px solid #cccccc;
31
+ border: 1px solid rgba(0, 0, 0, 0.2);
32
+ border-radius: 6px;
33
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
34
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
35
+ }
36
+ .webui-popover.top,
37
+ .webui-popover.top-left,
38
+ .webui-popover.top-right {
39
+ margin-top: -10px;
40
+ }
41
+ .webui-popover.right,
42
+ .webui-popover.right-top,
43
+ .webui-popover.right-bottom {
44
+ margin-left: 10px;
45
+ }
46
+ .webui-popover.bottom,
47
+ .webui-popover.bottom-left,
48
+ .webui-popover.bottom-right {
49
+ margin-top: 10px;
50
+ }
51
+ .webui-popover.left,
52
+ .webui-popover.left-top,
53
+ .webui-popover.left-bottom {
54
+ margin-left: -10px;
55
+ }
56
+ .webui-popover.pop {
57
+ -webkit-transform: scale(0.8);
58
+ -o-transform: scale(0.8);
59
+ transform: scale(0.8);
60
+ -webkit-transition: transform 0.15s cubic-bezier(0.3, 0, 0, 1.5);
61
+ -o-transition: transform 0.15s cubic-bezier(0.3, 0, 0, 1.5);
62
+ transition: transform 0.15s cubic-bezier(0.3, 0, 0, 1.5);
63
+ opacity: 0;
64
+ filter: alpha(opacity=0);
65
+ }
66
+ .webui-popover.pop-out {
67
+ -webkit-transition-property: "opacity,transform";
68
+ -o-transition-property: "opacity,transform";
69
+ transition-property: "opacity,transform";
70
+ -webkit-transition: 0.15s linear;
71
+ -o-transition: 0.15s linear;
72
+ transition: 0.15s linear;
73
+ opacity: 0;
74
+ filter: alpha(opacity=0);
75
+ }
76
+ .webui-popover.fade,
77
+ .webui-popover.fade-out {
78
+ -webkit-transition: opacity 0.15s linear;
79
+ -o-transition: opacity 0.15s linear;
80
+ transition: opacity 0.15s linear;
81
+ opacity: 0;
82
+ filter: alpha(opacity=0);
83
+ }
84
+ .webui-popover.out {
85
+ opacity: 0;
86
+ filter: alpha(opacity=0);
87
+ }
88
+ .webui-popover.in {
89
+ -webkit-transform: none;
90
+ -o-transform: none;
91
+ transform: none;
92
+ opacity: 1;
93
+ filter: alpha(opacity=100);
94
+ }
95
+ .webui-popover .webui-popover-content {
96
+ padding: 9px 14px;
97
+ overflow: auto;
98
+ display: block;
99
+ }
100
+ .webui-popover .webui-popover-content > div:first-child {
101
+ width: 99%;
102
+ }
103
+ .webui-popover-inner .close {
104
+ font-family: arial;
105
+ margin: 8px 10px 0 0;
106
+ float: right;
107
+ font-size: 16px;
108
+ font-weight: bold;
109
+ line-height: 16px;
110
+ color: #000000;
111
+ text-shadow: 0 1px 0 #fff;
112
+ opacity: 0.2;
113
+ filter: alpha(opacity=20);
114
+ text-decoration: none;
115
+ }
116
+ .webui-popover-inner .close:hover,
117
+ .webui-popover-inner .close:focus {
118
+ opacity: 0.5;
119
+ filter: alpha(opacity=50);
120
+ }
121
+ .webui-popover-inner .close:after {
122
+ content: "\00D7";
123
+ width: 0.8em;
124
+ height: 0.8em;
125
+ padding: 4px;
126
+ position: relative;
127
+ }
128
+ .webui-popover-title {
129
+ padding: 8px 14px;
130
+ margin: 0;
131
+ font-size: 14px;
132
+ font-weight: bold;
133
+ line-height: 18px;
134
+ background-color: #ffffff;
135
+ border-bottom: 1px solid #f2f2f2;
136
+ border-radius: 5px 5px 0 0;
137
+ }
138
+ .webui-popover-content {
139
+ padding: 9px 14px;
140
+ overflow: auto;
141
+ display: none;
142
+ }
143
+ .webui-popover-inverse {
144
+ background-color: #333333;
145
+ color: #eeeeee;
146
+ }
147
+ .webui-popover-inverse .webui-popover-title {
148
+ background: #333333;
149
+ border-bottom: 1px solid #3b3b3b;
150
+ color: #eeeeee;
151
+ }
152
+ .webui-no-padding .webui-popover-content {
153
+ padding: 0;
154
+ }
155
+ .webui-no-padding .list-group-item {
156
+ border-right: none;
157
+ border-left: none;
158
+ }
159
+ .webui-no-padding .list-group-item:first-child {
160
+ border-top: 0;
161
+ }
162
+ .webui-no-padding .list-group-item:last-child {
163
+ border-bottom: 0;
164
+ }
165
+ .webui-popover > .webui-arrow,
166
+ .webui-popover > .webui-arrow:after {
167
+ position: absolute;
168
+ display: block;
169
+ width: 0;
170
+ height: 0;
171
+ border-color: transparent;
172
+ border-style: solid;
173
+ }
174
+ .webui-popover > .webui-arrow {
175
+ border-width: 11px;
176
+ }
177
+ .webui-popover > .webui-arrow:after {
178
+ border-width: 10px;
179
+ content: "";
180
+ }
181
+ .webui-popover.top > .webui-arrow,
182
+ .webui-popover.top-right > .webui-arrow,
183
+ .webui-popover.top-left > .webui-arrow {
184
+ bottom: -11px;
185
+ left: 50%;
186
+ margin-left: -11px;
187
+ border-top-color: #999999;
188
+ border-top-color: rgba(0, 0, 0, 0.25);
189
+ border-bottom-width: 0;
190
+ }
191
+ .webui-popover.top > .webui-arrow:after,
192
+ .webui-popover.top-right > .webui-arrow:after,
193
+ .webui-popover.top-left > .webui-arrow:after {
194
+ content: " ";
195
+ bottom: 1px;
196
+ margin-left: -10px;
197
+ border-top-color: #ffffff;
198
+ border-bottom-width: 0;
199
+ }
200
+ .webui-popover.right > .webui-arrow,
201
+ .webui-popover.right-top > .webui-arrow,
202
+ .webui-popover.right-bottom > .webui-arrow {
203
+ top: 50%;
204
+ left: -11px;
205
+ margin-top: -11px;
206
+ border-left-width: 0;
207
+ border-right-color: #999999;
208
+ border-right-color: rgba(0, 0, 0, 0.25);
209
+ }
210
+ .webui-popover.right > .webui-arrow:after,
211
+ .webui-popover.right-top > .webui-arrow:after,
212
+ .webui-popover.right-bottom > .webui-arrow:after {
213
+ content: " ";
214
+ left: 1px;
215
+ bottom: -10px;
216
+ border-left-width: 0;
217
+ border-right-color: #ffffff;
218
+ }
219
+ .webui-popover.bottom > .webui-arrow,
220
+ .webui-popover.bottom-right > .webui-arrow,
221
+ .webui-popover.bottom-left > .webui-arrow {
222
+ top: -11px;
223
+ left: 50%;
224
+ margin-left: -11px;
225
+ border-bottom-color: #999999;
226
+ border-bottom-color: rgba(0, 0, 0, 0.25);
227
+ border-top-width: 0;
228
+ }
229
+ .webui-popover.bottom > .webui-arrow:after,
230
+ .webui-popover.bottom-right > .webui-arrow:after,
231
+ .webui-popover.bottom-left > .webui-arrow:after {
232
+ content: " ";
233
+ top: 1px;
234
+ margin-left: -10px;
235
+ border-bottom-color: #ffffff;
236
+ border-top-width: 0;
237
+ }
238
+ .webui-popover.left > .webui-arrow,
239
+ .webui-popover.left-top > .webui-arrow,
240
+ .webui-popover.left-bottom > .webui-arrow {
241
+ top: 50%;
242
+ right: -11px;
243
+ margin-top: -11px;
244
+ border-right-width: 0;
245
+ border-left-color: #999999;
246
+ border-left-color: rgba(0, 0, 0, 0.25);
247
+ }
248
+ .webui-popover.left > .webui-arrow:after,
249
+ .webui-popover.left-top > .webui-arrow:after,
250
+ .webui-popover.left-bottom > .webui-arrow:after {
251
+ content: " ";
252
+ right: 1px;
253
+ border-right-width: 0;
254
+ border-left-color: #ffffff;
255
+ bottom: -10px;
256
+ }
257
+ .webui-popover-inverse.top > .webui-arrow,
258
+ .webui-popover-inverse.top-left > .webui-arrow,
259
+ .webui-popover-inverse.top-right > .webui-arrow,
260
+ .webui-popover-inverse.top > .webui-arrow:after,
261
+ .webui-popover-inverse.top-left > .webui-arrow:after,
262
+ .webui-popover-inverse.top-right > .webui-arrow:after {
263
+ border-top-color: #333333;
264
+ }
265
+ .webui-popover-inverse.right > .webui-arrow,
266
+ .webui-popover-inverse.right-top > .webui-arrow,
267
+ .webui-popover-inverse.right-bottom > .webui-arrow,
268
+ .webui-popover-inverse.right > .webui-arrow:after,
269
+ .webui-popover-inverse.right-top > .webui-arrow:after,
270
+ .webui-popover-inverse.right-bottom > .webui-arrow:after {
271
+ border-right-color: #333333;
272
+ }
273
+ .webui-popover-inverse.bottom > .webui-arrow,
274
+ .webui-popover-inverse.bottom-left > .webui-arrow,
275
+ .webui-popover-inverse.bottom-right > .webui-arrow,
276
+ .webui-popover-inverse.bottom > .webui-arrow:after,
277
+ .webui-popover-inverse.bottom-left > .webui-arrow:after,
278
+ .webui-popover-inverse.bottom-right > .webui-arrow:after {
279
+ border-bottom-color: #333333;
280
+ }
281
+ .webui-popover-inverse.left > .webui-arrow,
282
+ .webui-popover-inverse.left-top > .webui-arrow,
283
+ .webui-popover-inverse.left-bottom > .webui-arrow,
284
+ .webui-popover-inverse.left > .webui-arrow:after,
285
+ .webui-popover-inverse.left-top > .webui-arrow:after,
286
+ .webui-popover-inverse.left-bottom > .webui-arrow:after {
287
+ border-left-color: #333333;
288
+ }
289
+ .webui-popover i.icon-refresh:before {
290
+ content: "";
291
+ }
292
+ .webui-popover i.icon-refresh {
293
+ display: block;
294
+ width: 30px;
295
+ height: 30px;
296
+ font-size: 20px;
297
+ top: 50%;
298
+ left: 50%;
299
+ position: absolute;
300
+ margin-left: -15px;
301
+ margin-right: -15px;
302
+ background: url(../img/loading.gif) no-repeat;
303
+ }
304
+ @-webkit-keyframes rotate {
305
+ 100% {
306
+ -webkit-transform: rotate(360deg);
307
+ }
308
+ }
309
+ @keyframes rotate {
310
+ 100% {
311
+ transform: rotate(360deg);
312
+ }
313
+ }
314
+ .webui-popover-backdrop {
315
+ background-color: rgba(0, 0, 0, 0.65);
316
+ width: 100%;
317
+ height: 100%;
318
+ position: fixed;
319
+ top: 0;
320
+ left: 0;
321
+ z-index: 9998;
322
+ }
323
+ .webui-popover .dropdown-menu {
324
+ display: block;
325
+ position: relative;
326
+ top: 0;
327
+ border: none;
328
+ box-shadow: none;
329
+ float: none;
330
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeadmin-regex-input
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Canh Nguyen
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: jquery-rails
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '3.1'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '3.1'
69
55
  description: A simple filter input for active admin with checking at client if input
70
56
  match predefined regex.
71
57
  email: xuancanh.1994@gmail.com
@@ -74,13 +60,16 @@ extensions: []
74
60
  extra_rdoc_files: []
75
61
  files:
76
62
  - ".gitignore"
63
+ - CHANGELOG.md
77
64
  - Gemfile
78
65
  - Gemfile.lock
79
66
  - README.md
80
67
  - Rakefile
81
68
  - activeadmin-regex-input.gemspec
69
+ - app/assets/javascript/active_admin/lib/webui-popover.js
82
70
  - app/assets/javascript/active_admin/regex_input.js
83
71
  - app/assets/stylesheets/active_admin/_regex_input.scss
72
+ - app/assets/stylesheets/active_admin/lib/webui-popover.css
84
73
  - lib/activeadmin-regex-input.rb
85
74
  - lib/activeadmin/regex-input/engine.rb
86
75
  - lib/activeadmin/regex-input/version.rb
@@ -105,8 +94,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
94
  version: '0'
106
95
  requirements: []
107
96
  rubyforge_project:
108
- rubygems_version: 2.6.11
97
+ rubygems_version: 2.5.1
109
98
  signing_key:
110
99
  specification_version: 4
111
- summary: Formtastic Regex Input
100
+ summary: Active Admin Regex Input
112
101
  test_files: []