bhf 0.6.15 → 0.6.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/{vendor → app}/assets/images/bhf/ajax_loader.gif +0 -0
- data/{vendor → app}/assets/images/bhf/bg.png +0 -0
- data/{vendor → app}/assets/images/bhf/mooeditable-toolbarbuttons-tango.png +0 -0
- data/{vendor → app}/assets/images/bhf/pictos.png +0 -0
- data/{vendor → app}/assets/images/bhf/pictos_2x.png +0 -0
- data/{vendor → app}/assets/images/bhf/small_ajax_loader.gif +0 -0
- data/{vendor → app}/assets/images/bhf/small_ajax_loader_h.gif +0 -0
- data/{vendor → app}/assets/images/bhf/wmd-buttons.png +0 -0
- data/{vendor → app}/assets/images/logo_bhf.svg +0 -0
- data/app/assets/javascripts/bhf/application.js +285 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/AjaxEdit.js +28 -13
- data/app/assets/javascripts/bhf/classes/AjaxEditStack.js +52 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/Ajaxify.js +0 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/ArrayFields.js +0 -0
- data/app/assets/javascripts/bhf/classes/FormHelper.js +97 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/Locale.de-DE.js +0 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/Locale.en-US.js +0 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/MooEditable.js +0 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/MultipleFields.js +0 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/Picker.js +0 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/Picker_Attach.js +0 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/Picker_Date.js +0 -0
- data/app/assets/javascripts/bhf/classes/PlatformHelper.js +59 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/Setlatlng.js +0 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/showdown.js +0 -0
- data/{vendor → app}/assets/javascripts/bhf/classes/wmd.js +0 -0
- data/{vendor → app}/assets/javascripts/bhf/mootools-core-1.4.5-full-compat.js +0 -0
- data/{vendor → app}/assets/javascripts/bhf/mootools-more-1.4.0.1.js +0 -0
- data/{vendor/assets/javascripts/bhf/mootools_ujs_ap.js → app/assets/javascripts/bhf/mootools_ujs.js} +1 -1
- data/{vendor → app}/assets/stylesheets/bhf/MooEditable.css.scss +0 -0
- data/{vendor → app}/assets/stylesheets/bhf/application.css.sass +16 -11
- data/{vendor → app}/assets/stylesheets/bhf/functions.css.sass +0 -0
- data/{vendor → app}/assets/stylesheets/bhf/reset.css.sass +0 -0
- data/{vendor → app}/assets/stylesheets/bhf/typo.css.scss +0 -0
- data/app/controllers/bhf/pages_controller.rb +1 -1
- data/app/views/bhf/entries/_form.haml +1 -1
- data/app/views/bhf/pages/macro/column/_hash.haml +1 -1
- data/app/views/layouts/bhf/application.haml +3 -4
- data/app/views/layouts/bhf/quick_edit.haml +9 -7
- data/config/routes.rb +1 -0
- data/lib/bhf/platform.rb +3 -1
- metadata +36 -35
- data/lib/bhf/view_helpers.rb +0 -19
- data/vendor/assets/javascripts/bhf/application.js +0 -372
- data/vendor/assets/javascripts/bhf/classes/BrowserUpdate.js +0 -185
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df4b4e02c7a3ff276bf5fa43b43f1945ef314175
|
4
|
+
data.tar.gz: 3768bbb9588dd1e84e2b24b3515fde68af523702
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 500ae8b85c83571f366179a8870a2adf50a1ddbed89cb8be8cdc29cf19d9042983627c1ac7018890dc502c0e46eb297a5a46674dc503cb2249c948ac247c4299
|
7
|
+
data.tar.gz: 7ba90cdc49913a0e395ab94090bc93918d1b4d607949b03f962a8fd32b478cf52365b7fe54b8ee937a5ae69d14ef382749354c9afd40ab70cb8c9a2196d232a4
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,285 @@
|
|
1
|
+
//= require turbolinks
|
2
|
+
//= require ./mootools-core-1.4.5-full-compat.js
|
3
|
+
//= require ./mootools-more-1.4.0.1.js
|
4
|
+
//= require ./mootools_ujs
|
5
|
+
//= require_tree ./classes/
|
6
|
+
|
7
|
+
var initHelper = function(callback){
|
8
|
+
var scopedCallback = function(){
|
9
|
+
callback(document.body);
|
10
|
+
};
|
11
|
+
document.addEventListener('page:load', scopedCallback);
|
12
|
+
window.addEvent('domready', scopedCallback);
|
13
|
+
window.addEvent('platformUpdate', callback);
|
14
|
+
window.addEvent('quickEditReady', callback);
|
15
|
+
};
|
16
|
+
|
17
|
+
(function(){
|
18
|
+
var stackIndexCounter = 0;
|
19
|
+
var lang = document.html.get('lang');
|
20
|
+
Locale.use(lang = (lang === 'en') ? 'en-US' : lang = lang+'-'+lang.toUpperCase());
|
21
|
+
|
22
|
+
var ajaxNote = new Ajaxify();
|
23
|
+
document.addEventListener('page:fetch', function(){
|
24
|
+
ajaxNote.loading();
|
25
|
+
});
|
26
|
+
|
27
|
+
var editStack = new AjaxEditStack();
|
28
|
+
|
29
|
+
initHelper(function(mainScope){
|
30
|
+
var quickEditArray = [];
|
31
|
+
var ajaxEditOptions;
|
32
|
+
|
33
|
+
ajaxNote.setup();
|
34
|
+
|
35
|
+
rails.applyEvents(mainScope);
|
36
|
+
|
37
|
+
var jsForm = new FormHelper();
|
38
|
+
mainScope.getElements('.js_bhf_form').each(function(form){
|
39
|
+
jsForm.setup(form);
|
40
|
+
});
|
41
|
+
|
42
|
+
var sharedAjaxEditOptions = {
|
43
|
+
onFailure: function(){
|
44
|
+
ajaxNote.failure();
|
45
|
+
},
|
46
|
+
onStartRequest: function(form){
|
47
|
+
ajaxNote.loading();
|
48
|
+
},
|
49
|
+
onFormInjected: function(form){
|
50
|
+
jsForm.setup(form);
|
51
|
+
scrollContent();
|
52
|
+
ajaxNote.success();
|
53
|
+
},
|
54
|
+
onSave: function(form){
|
55
|
+
// TODO: visual flash of the quick_edit content on success
|
56
|
+
// also after update, create and duplicate
|
57
|
+
ajaxNote.success();
|
58
|
+
},
|
59
|
+
onBeforeSubmit: function(){
|
60
|
+
ajaxNote.loading();
|
61
|
+
jsForm.wysiwyg.each(function(editor){
|
62
|
+
editor.saveContent();
|
63
|
+
});
|
64
|
+
}
|
65
|
+
};
|
66
|
+
|
67
|
+
var platforms = mainScope.getElements('.platform');
|
68
|
+
var mainForm = mainScope.getElementById('main_form');
|
69
|
+
|
70
|
+
if (platforms.length) {
|
71
|
+
ajaxEditOptions = Object.merge({
|
72
|
+
onSuccessAndChange: function(json){
|
73
|
+
var tr = this.wrapElement;
|
74
|
+
tr.getElements('td').each(function(td){
|
75
|
+
var name = td.get('data-column-name');
|
76
|
+
if ( ! name) { return; }
|
77
|
+
var a = td.getElement('a.quick_edit');
|
78
|
+
(a ? a : td).innerHTML = json[name] || '';
|
79
|
+
});
|
80
|
+
},
|
81
|
+
onSuccessAndNext: function(json){
|
82
|
+
var tr = this.wrapElement;
|
83
|
+
var qe;
|
84
|
+
var nextTr = tr.getNext('tr');
|
85
|
+
|
86
|
+
if (nextTr) {
|
87
|
+
editStack.removeAllStacks();
|
88
|
+
editStack.addEditBrick(ajaxEditOptions, nextTr.getElement('a'), nextTr);
|
89
|
+
}
|
90
|
+
else {
|
91
|
+
var platform = tr.getParent('.platform');
|
92
|
+
var loadMore = platform.getElement('.load_more');
|
93
|
+
if (loadMore) {
|
94
|
+
trIndex = tr.getParent('tbody').getElements('tr').indexOf(tr);
|
95
|
+
updatePlatform(loadMore.get('href'), platform, function(){
|
96
|
+
platform.getElements('tbody tr').each(function(newTr, index){
|
97
|
+
if (trIndex === index) {
|
98
|
+
nextTr = newTr.getNext('tr');
|
99
|
+
|
100
|
+
editStack.removeAllStacks();
|
101
|
+
editStack.addEditBrick(ajaxEditOptions, nextTr.getElement('a'), nextTr);
|
102
|
+
}
|
103
|
+
});
|
104
|
+
});
|
105
|
+
}
|
106
|
+
else {
|
107
|
+
nextTr = platform.getElements('tbody tr')[0];
|
108
|
+
|
109
|
+
editStack.removeAllStacks();
|
110
|
+
editStack.addEditBrick(ajaxEditOptions, nextTr.getElement('a'), nextTr);
|
111
|
+
}
|
112
|
+
}
|
113
|
+
}
|
114
|
+
}, sharedAjaxEditOptions);
|
115
|
+
|
116
|
+
|
117
|
+
var updatePlatform = function(href, platform, callback){
|
118
|
+
ajaxNote.loading();
|
119
|
+
new Request.HTML({
|
120
|
+
method: 'get',
|
121
|
+
url: href,
|
122
|
+
onFailure: function(){
|
123
|
+
ajaxNote.failure();
|
124
|
+
},
|
125
|
+
onSuccess: function(a, b, html){
|
126
|
+
platform.innerHTML = html;
|
127
|
+
if (callback) {
|
128
|
+
callback.call();
|
129
|
+
}
|
130
|
+
window.fireEvent('platformUpdate', [platform.getParent()]);
|
131
|
+
}
|
132
|
+
}).send();
|
133
|
+
};
|
134
|
+
|
135
|
+
platforms.each(function(p){
|
136
|
+
new PlatformHelper(p, {
|
137
|
+
onPaginationStart: function(link){
|
138
|
+
updatePlatform(link.get('href'), link.getParent('.platform'));
|
139
|
+
},
|
140
|
+
onQuickEditStart: function(link){
|
141
|
+
editStack.removeAllStacks();
|
142
|
+
editStack.addEditBrick(ajaxEditOptions, link, link.getParent('tr'));
|
143
|
+
},
|
144
|
+
onSearch: function(){
|
145
|
+
ajaxNote.loading();
|
146
|
+
},
|
147
|
+
onSearchFailure: function(){
|
148
|
+
ajaxNote.failure();
|
149
|
+
},
|
150
|
+
onSearchSuccess: function(){
|
151
|
+
window.fireEvent('platformUpdate', [p.getParent()]);
|
152
|
+
}
|
153
|
+
});
|
154
|
+
});
|
155
|
+
}
|
156
|
+
else if (mainForm) {
|
157
|
+
ajaxEditOptions = Object.merge({
|
158
|
+
successAndAdd: function(json){
|
159
|
+
var relation = this.wrapElement.getPrevious('.relation');
|
160
|
+
relation.getPrevious('.empty').addClass('hide');
|
161
|
+
if (relation.hasClass('has_one') || relation.hasClass('embeds_one')) {
|
162
|
+
relation.getNext('.add_field').addClass('hide');
|
163
|
+
}
|
164
|
+
relation.adopt(
|
165
|
+
new Element('li').adopt(
|
166
|
+
new Element('a.quick_edit', {text: json.to_bhf_s || '', href: json.edit_path})
|
167
|
+
)
|
168
|
+
);
|
169
|
+
},
|
170
|
+
successAndChange: function(json){
|
171
|
+
this.wrapElement.set('text', json.to_bhf_s || '');
|
172
|
+
},
|
173
|
+
successAndNext: function(json){
|
174
|
+
var a = this.wrapElement;
|
175
|
+
var li = a.getParent('li');
|
176
|
+
if ( ! li) {
|
177
|
+
this.close();
|
178
|
+
return;
|
179
|
+
}
|
180
|
+
var holder = li.getNext('li');
|
181
|
+
|
182
|
+
if ( ! holder) {
|
183
|
+
holder = li.getParent('ul');
|
184
|
+
}
|
185
|
+
|
186
|
+
editStack.removeAllStacks();
|
187
|
+
editStack.addEditBrick(ajaxEditOptions, holder.getElement('a'));
|
188
|
+
}
|
189
|
+
}, sharedAjaxEditOptions);
|
190
|
+
|
191
|
+
mainForm.getElements('.quick_edit').addEvent('click', function(e){
|
192
|
+
e.preventDefault();
|
193
|
+
|
194
|
+
editStack.removeAllStacks();
|
195
|
+
editStack.addEditBrick(ajaxEditOptions, this);
|
196
|
+
});
|
197
|
+
mainForm.getElements('.delete').addEvent('click', function(e){
|
198
|
+
e.target.addEvents({
|
199
|
+
'ajax:success': function(html){
|
200
|
+
var relation = e.target.getParent('.relation');
|
201
|
+
if (relation.getElements('li').length < 2) {
|
202
|
+
relation.getPrevious('.empty').removeClass('hide');
|
203
|
+
if (relation.hasClass('has_one') || relation.hasClass('embeds_one')) {
|
204
|
+
relation.getNext('.add_field').removeClass('hide');
|
205
|
+
}
|
206
|
+
}
|
207
|
+
e.target.getParent('li').dispose();
|
208
|
+
},
|
209
|
+
'ajax:failure': function(html){
|
210
|
+
alert(Locale.get('Messages.warning'));
|
211
|
+
}
|
212
|
+
});
|
213
|
+
});
|
214
|
+
}
|
215
|
+
else if (mainScope.hasClass('quick_edit_holder')) {
|
216
|
+
ajaxEditOptions = Object.merge({
|
217
|
+
successAndAdd: function(json){
|
218
|
+
var relation = this.wrapElement.getPrevious('.relation');
|
219
|
+
relation.getPrevious('.empty').addClass('hide');
|
220
|
+
if (relation.hasClass('has_one') || relation.hasClass('embeds_one')) {
|
221
|
+
relation.getNext('.add_field').addClass('hide');
|
222
|
+
}
|
223
|
+
relation.adopt(
|
224
|
+
new Element('li').adopt(
|
225
|
+
new Element('a.quick_edit', {text: json.to_bhf_s || '', href: json.edit_path})
|
226
|
+
)
|
227
|
+
);
|
228
|
+
},
|
229
|
+
onSuccessAndChange: function(json){
|
230
|
+
this.wrapElement.set('text', json.to_bhf_s || '');
|
231
|
+
},
|
232
|
+
onClosed: function(){
|
233
|
+
editStack.removeStack();
|
234
|
+
},
|
235
|
+
hideNext: true
|
236
|
+
}, sharedAjaxEditOptions);
|
237
|
+
|
238
|
+
mainScope.getElements('.quick_edit').addEvent('click', function(e){
|
239
|
+
e.preventDefault();
|
240
|
+
editStack.addStack();
|
241
|
+
editStack.addEditBrick(ajaxEditOptions, this);
|
242
|
+
});
|
243
|
+
}
|
244
|
+
|
245
|
+
|
246
|
+
var windowHight = document.body.clientHeight;
|
247
|
+
window.onresize = function(e){
|
248
|
+
windowHight = document.body.clientHeight;
|
249
|
+
};
|
250
|
+
var scrollContent = function(){
|
251
|
+
quickEditArray.each(function(quickEdit){
|
252
|
+
var innerForm = quickEdit.holder.getElement('form');
|
253
|
+
if ( ! innerForm) { return; }
|
254
|
+
var scroll = document.body.scrollTop - 83;
|
255
|
+
if (scroll + innerForm.getSize().y > windowHight) { return; }
|
256
|
+
quickEdit.holder.setStyle('padding-top', scroll);
|
257
|
+
});
|
258
|
+
};
|
259
|
+
// window.onscroll = scrollContent;
|
260
|
+
|
261
|
+
|
262
|
+
mainScope.getElements('.sortable').each(function(sortableElems){
|
263
|
+
new Sortables(sortableElems, {
|
264
|
+
handle: '.handle',
|
265
|
+
onStart: function(element, clone){
|
266
|
+
element.addClass('dragged');
|
267
|
+
},
|
268
|
+
onComplete: function(element){
|
269
|
+
element.removeClass('dragged');
|
270
|
+
new Request({
|
271
|
+
method: 'put',
|
272
|
+
url: this.element.getParent('tbody').get('data-sort-url')
|
273
|
+
}).send({data: {order: this.serialize()}});
|
274
|
+
}
|
275
|
+
});
|
276
|
+
});
|
277
|
+
|
278
|
+
var fm = $('flash_massages');
|
279
|
+
if (fm) {
|
280
|
+
fm.removeClass.delay(10000, fm, 'show');
|
281
|
+
}
|
282
|
+
|
283
|
+
ajaxNote.success();
|
284
|
+
});
|
285
|
+
})();
|
@@ -1,13 +1,14 @@
|
|
1
1
|
var AjaxEdit = new Class({
|
2
2
|
version: 0.2,
|
3
|
-
|
3
|
+
|
4
4
|
options: {
|
5
|
-
holderParent:
|
5
|
+
holderParent: 'content',
|
6
|
+
hideNext: false
|
6
7
|
},
|
7
|
-
|
8
|
+
|
8
9
|
Implements: [Options, Events],
|
9
|
-
|
10
|
-
|
10
|
+
|
11
|
+
initialize: function(_options){
|
11
12
|
this.setOptions(_options);
|
12
13
|
this.holder = new Element('div.quick_edit_holder').addEvents({
|
13
14
|
'click:relay(.open)': function(e){
|
@@ -32,7 +33,7 @@ var AjaxEdit = new Class({
|
|
32
33
|
}.bind(this)
|
33
34
|
});
|
34
35
|
},
|
35
|
-
|
36
|
+
|
36
37
|
startEdit: function(element, wrapElement){
|
37
38
|
this.clean();
|
38
39
|
this.wrapElement = wrapElement ? wrapElement : element;
|
@@ -50,15 +51,20 @@ var AjaxEdit = new Class({
|
|
50
51
|
onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript){
|
51
52
|
this.injectForm(responseHTML);
|
52
53
|
eval(responseJavaScript);
|
54
|
+
|
55
|
+
if (this.options.hideNext) {
|
56
|
+
this.holder.getElement('.save_and_next').addClass('hide');
|
57
|
+
}
|
58
|
+
|
53
59
|
window.fireEvent('quickEditReady', [this.holder]);
|
54
60
|
}.bind(this)
|
55
61
|
}).send();
|
56
62
|
},
|
57
|
-
|
63
|
+
|
58
64
|
submit: function(eventNames){
|
59
65
|
var form = this.holder.getElement('form');
|
60
66
|
this.fireEvent('beforeSubmit');
|
61
|
-
|
67
|
+
|
62
68
|
new Request.JSON({
|
63
69
|
method: form.get('method'),
|
64
70
|
url: form.get('action'),
|
@@ -83,24 +89,33 @@ var AjaxEdit = new Class({
|
|
83
89
|
}.bind(this)
|
84
90
|
}).send({data: form});
|
85
91
|
},
|
86
|
-
|
92
|
+
|
87
93
|
disableButtons: function(){
|
88
94
|
this.holder.getElements('.open, .cancel, .save_and_next, .save').set('disabled', 'disabled');
|
89
95
|
},
|
90
|
-
|
96
|
+
|
91
97
|
clean: function(){
|
92
98
|
document.body.getElements('.live_edit').removeClass('live_edit');
|
93
99
|
},
|
94
|
-
|
100
|
+
|
95
101
|
close: function(){
|
96
102
|
this.clean();
|
97
103
|
this.holder.dispose();
|
104
|
+
this.fireEvent('closed')
|
98
105
|
},
|
99
|
-
|
106
|
+
|
100
107
|
injectForm: function(form){
|
101
108
|
this.holder.innerHTML = form;
|
102
|
-
this.holder.inject(this.options.holderParent);
|
109
|
+
this.holder.inject($(this.options.holderParent));
|
103
110
|
|
104
111
|
this.fireEvent('formInjected', [this.holder]);
|
112
|
+
},
|
113
|
+
|
114
|
+
hide: function(){
|
115
|
+
this.holder.addClass('collapsed');
|
116
|
+
},
|
117
|
+
|
118
|
+
show: function(){
|
119
|
+
this.holder.removeClass('collapsed');
|
105
120
|
}
|
106
121
|
});
|
@@ -0,0 +1,52 @@
|
|
1
|
+
var AjaxEditStack = new Class({
|
2
|
+
version: 0.1,
|
3
|
+
|
4
|
+
options: {
|
5
|
+
},
|
6
|
+
bricksArray: [],
|
7
|
+
bricksIndex: 0,
|
8
|
+
|
9
|
+
Implements: [Options, Events],
|
10
|
+
|
11
|
+
initialize: function(_options) {
|
12
|
+
this.setOptions(_options);
|
13
|
+
},
|
14
|
+
addEditBrick: function(editOptions, link, linkParent){
|
15
|
+
var qi = this.bricksIndex;
|
16
|
+
var qe = this.bricksArray[qi];
|
17
|
+
if ( ! qe) {
|
18
|
+
qe = new AjaxEdit(editOptions);
|
19
|
+
this.bricksArray.push(qe);
|
20
|
+
}
|
21
|
+
|
22
|
+
this.bricksArray.each(function(b, i){
|
23
|
+
if (i === qi) {
|
24
|
+
b.show();
|
25
|
+
}
|
26
|
+
else if (i > qi) {
|
27
|
+
b.close();
|
28
|
+
}
|
29
|
+
});
|
30
|
+
|
31
|
+
qe.startEdit(link, linkParent);
|
32
|
+
},
|
33
|
+
addStack: function(){
|
34
|
+
this.bricksIndex = this.bricksIndex + 1;
|
35
|
+
this.bricksArray.each(function(b){
|
36
|
+
b.hide();
|
37
|
+
});
|
38
|
+
},
|
39
|
+
removeStack: function(){
|
40
|
+
this.bricksArray[this.bricksIndex] = undefined;
|
41
|
+
this.bricksIndex = this.bricksIndex - 1;
|
42
|
+
this.bricksArray = this.bricksArray.clean();
|
43
|
+
(this.bricksArray.getLast() || {show: function(){}}).show();
|
44
|
+
},
|
45
|
+
removeAllStacks: function(){
|
46
|
+
this.bricksArray.clean().each(function(b, i){
|
47
|
+
b.close();
|
48
|
+
});
|
49
|
+
this.bricksArray = [];
|
50
|
+
this.bricksIndex = 0;
|
51
|
+
}
|
52
|
+
});
|
File without changes
|
File without changes
|
@@ -0,0 +1,97 @@
|
|
1
|
+
var FormHelper = new Class({
|
2
|
+
version: 0.1,
|
3
|
+
|
4
|
+
wysiwyg: [],
|
5
|
+
|
6
|
+
options: {
|
7
|
+
},
|
8
|
+
|
9
|
+
// Implements: [Options, Events],
|
10
|
+
|
11
|
+
setup: function(_object, _options) {
|
12
|
+
if ( ! _object) { return; }
|
13
|
+
// this.setOptions(_options);
|
14
|
+
var scope = _object;
|
15
|
+
|
16
|
+
scope.getElements('.wysiwyg').each(function(elem){
|
17
|
+
this.wysiwyg.push(elem.mooEditable());
|
18
|
+
}.bind(this));
|
19
|
+
|
20
|
+
scope.getElements('.multiple_field').each(function(elem){
|
21
|
+
new MultipleFields(elem);
|
22
|
+
});
|
23
|
+
scope.getElements('.array_holder').each(function(elem){
|
24
|
+
new ArrayFields(elem);
|
25
|
+
});
|
26
|
+
|
27
|
+
scope.getElements('.picker').each(function(input){
|
28
|
+
var options = {
|
29
|
+
timePicker: true,
|
30
|
+
format: '%B %d, %Y %H:%M'
|
31
|
+
};
|
32
|
+
if (input.hasClass('date')) {
|
33
|
+
options = {
|
34
|
+
timePicker: false,
|
35
|
+
format: '%B %d, %Y'
|
36
|
+
};
|
37
|
+
}
|
38
|
+
else if (input.hasClass('time')) {
|
39
|
+
options = {
|
40
|
+
pickOnly: 'time',
|
41
|
+
format: '%H:%M'
|
42
|
+
};
|
43
|
+
}
|
44
|
+
|
45
|
+
var hiddenInput = input.clone();
|
46
|
+
input.value = new Date().parse(input.value).format(options.format);
|
47
|
+
input.erase('name');
|
48
|
+
hiddenInput.set('type', 'hidden').inject(input, 'after');
|
49
|
+
|
50
|
+
new Picker.Date(input, Object.merge({
|
51
|
+
onSelect: function(date){
|
52
|
+
hiddenInput.value = date.format('db');
|
53
|
+
}
|
54
|
+
}, options));
|
55
|
+
});
|
56
|
+
|
57
|
+
scope.getElements('.wmd_editor').each(function(mdTa){
|
58
|
+
var headline, toggleHtmlPreview, toggleLivePreview, livePreview, htmlPreview;
|
59
|
+
|
60
|
+
var togglePreview = function(e){
|
61
|
+
var htmlMode = e.target.hasClass('toggle_html_preview');
|
62
|
+
livePreview.toggleClass('hide', htmlMode);
|
63
|
+
htmlPreview.toggleClass('hide', !htmlMode);
|
64
|
+
toggleLivePreview.toggleClass('active', !htmlMode);
|
65
|
+
toggleHtmlPreview.toggleClass('active', htmlMode);
|
66
|
+
};
|
67
|
+
|
68
|
+
headline = new Element('h6.preview_switch', {text: 'Preview'});
|
69
|
+
|
70
|
+
toggleHtmlPreview = new Element('span.toggle_html_preview', {text: 'HTML'})
|
71
|
+
.addEvent('click', togglePreview)
|
72
|
+
.inject(headline);
|
73
|
+
toggleLivePreview = new Element('span.toggle_live_preview', {text: 'Live'})
|
74
|
+
.addEvent('click', togglePreview)
|
75
|
+
.inject(headline);
|
76
|
+
|
77
|
+
headline.inject(mdTa, 'after');
|
78
|
+
|
79
|
+
livePreview = new Element('div.wmd-preview.hide').inject(headline, 'after');
|
80
|
+
htmlPreview = new Element('div.wmd-output.hide').inject(livePreview, 'after');
|
81
|
+
|
82
|
+
new WMDEditor({
|
83
|
+
input: mdTa,
|
84
|
+
button_bar: new Element('div').inject(mdTa, 'before'),
|
85
|
+
preview: livePreview,
|
86
|
+
output: htmlPreview,
|
87
|
+
buttons: 'bold italic link image ol ul heading hr undo redo help',
|
88
|
+
modifierKeys: false,
|
89
|
+
autoFormatting: false
|
90
|
+
});
|
91
|
+
});
|
92
|
+
|
93
|
+
scope.getElements('.map_data_lat').each(function(lat){
|
94
|
+
new Setlatlng(lat);
|
95
|
+
});
|
96
|
+
}
|
97
|
+
});
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,59 @@
|
|
1
|
+
var PlatformHelper = new Class({
|
2
|
+
version: 0.1,
|
3
|
+
|
4
|
+
options: {
|
5
|
+
},
|
6
|
+
|
7
|
+
Implements: [Options, Events],
|
8
|
+
|
9
|
+
initialize: function(_object, _options) {
|
10
|
+
if ( ! _object) { return; }
|
11
|
+
this.setOptions(_options);
|
12
|
+
var scope = _object;
|
13
|
+
var _this = this;
|
14
|
+
|
15
|
+
scope.getElements('.pagination a, thead a').addEvent('click', function(e){
|
16
|
+
e.preventDefault();
|
17
|
+
_this.fireEvent('paginationStart', [this])
|
18
|
+
});
|
19
|
+
scope.getElements('.search').addEvent('submit', function(e){
|
20
|
+
_this.fireEvent('search');
|
21
|
+
e.preventDefault();
|
22
|
+
var hidden_search = this.getElement('.hidden_search');
|
23
|
+
if (hidden_search) {
|
24
|
+
hidden_search.destroy();
|
25
|
+
}
|
26
|
+
new Request.HTML({
|
27
|
+
method: 'get',
|
28
|
+
url: e.target.get('action'),
|
29
|
+
onFailure: function(){
|
30
|
+
_this.fireEvent('searchFailure');
|
31
|
+
},
|
32
|
+
onSuccess: function(a, b, html){
|
33
|
+
scope.innerHTML = html;
|
34
|
+
_this.fireEvent('searchSuccess')
|
35
|
+
}
|
36
|
+
}).send({data: e.target});
|
37
|
+
});
|
38
|
+
scope.getElements('.quick_edit').addEvent('click', function(e){
|
39
|
+
e.preventDefault();
|
40
|
+
_this.fireEvent('quickEditStart', [this]);
|
41
|
+
});
|
42
|
+
scope.getElements('.action a').addEvent('click', function(e){
|
43
|
+
this.addClass('clicked');
|
44
|
+
setTimeout(function(){
|
45
|
+
this.removeClass('clicked');
|
46
|
+
}.bind(this), 1500);
|
47
|
+
});
|
48
|
+
scope.getElements('.delete').addEvent('click', function(e){
|
49
|
+
e.target.addEvents({
|
50
|
+
'ajax:success': function(html){
|
51
|
+
this.getParent('tr').dispose();
|
52
|
+
},
|
53
|
+
'ajax:failure': function(html){
|
54
|
+
alert(Locale.get('Messages.warning'));
|
55
|
+
}
|
56
|
+
});
|
57
|
+
});
|
58
|
+
}
|
59
|
+
});
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/{vendor/assets/javascripts/bhf/mootools_ujs_ap.js → app/assets/javascripts/bhf/mootools_ujs.js}
RENAMED
@@ -37,7 +37,7 @@ window.addEvent('domready', function(){
|
|
37
37
|
applyEvents: function(el){
|
38
38
|
el = $(el || document.body);
|
39
39
|
var apply = function(selector, action, callback){
|
40
|
-
el.addEvent(action
|
40
|
+
el.getElements(selector).addEvent(action, callback);
|
41
41
|
};
|
42
42
|
|
43
43
|
apply('form[data-remote="true"]', 'submit', rails.handleRemote);
|
File without changes
|