vendor/assets/javascripts/bhf/application.js in bhf-0.6.2 vs vendor/assets/javascripts/bhf/application.js in bhf-0.6.3
- old
+ new
@@ -4,344 +4,344 @@
//= require ./mootools_ujs_ap
//= require_tree ./classes/
var ajaxNote = new Ajaxify();
var quickEdit = new AjaxEdit();
-var pageSetup = function(){
- window.addEvent('domready', function(){
- ajaxNote.setup();
- var lang = document.html.get('lang');
- if (lang === 'en') {
- lang = 'en-US';
- }
- else {
- lang = lang+'-'+lang.toUpperCase();
- }
- Locale.use(lang);
- var wysiwyg = [];
- var setupJsForm = function(scope){
- scope.getElements('.wysiwyg').each(function(elem){
- wysiwyg.push(elem.mooEditable());
- });
+var bhfInit = function(){
+ ajaxNote.setup();
+ var lang = document.html.get('lang');
+ if (lang === 'en') {
+ lang = 'en-US';
+ }
+ else {
+ lang = lang+'-'+lang.toUpperCase();
+ }
+ Locale.use(lang);
+ var wysiwyg = [];
+ var setupJsForm = function(scope){
+ scope.getElements('.wysiwyg').each(function(elem){
+ wysiwyg.push(elem.mooEditable());
+ });
+
+ scope.getElements('.multiple_field').each(function(elem){
+ new MultipleFields(elem);
+ });
+ scope.getElements('.array_holder').each(function(elem){
+ new ArrayFields(elem);
+ });
+
+ scope.getElements('.picker').each(function(input){
+ var options = {
+ timePicker: true,
+ format: '%B %d, %Y %H:%M'
+ };
+ if (input.hasClass('date')) {
+ options = {
+ timePicker: false,
+ format: '%B %d, %Y'
+ };
+ }
+ else if (input.hasClass('time')) {
+ options = {
+ pickOnly: 'time',
+ format: '%H:%M'
+ };
+ }
- scope.getElements('.multiple_field').each(function(elem){
- new MultipleFields(elem);
- });
- scope.getElements('.array_holder').each(function(elem){
- new ArrayFields(elem);
- });
+ var hiddenInput = input.clone();
+ input.value = new Date().parse(input.value).format(options.format);
+ input.erase('name');
+ hiddenInput.set('type', 'hidden').inject(input, 'after');
- scope.getElements('.picker').each(function(input){
- var options = {
- timePicker: true,
- format: '%B %d, %Y %H:%M'
- };
- if (input.hasClass('date')) {
- options = {
- timePicker: false,
- format: '%B %d, %Y'
- };
+ new Picker.Date(input, Object.merge({
+ onSelect: function(date){
+ hiddenInput.value = date.format('db');
}
- else if (input.hasClass('time')) {
- options = {
- pickOnly: 'time',
- format: '%H:%M'
- };
- }
-
- var hiddenInput = input.clone();
- input.value = new Date().parse(input.value).format(options.format);
- input.erase('name');
- hiddenInput.set('type', 'hidden').inject(input, 'after');
-
- new Picker.Date(input, Object.merge({
- onSelect: function(date){
- hiddenInput.value = date.format('db');
- }
- }, options));
- });
+ }, options));
+ });
+
+ scope.getElements('.wmd_editor').each(function(mdTa){
+ var headline, toggleHtmlPreview, toggleLivePreview, livePreview, htmlPreview;
- scope.getElements('.wmd_editor').each(function(mdTa){
- var headline, toggleHtmlPreview, toggleLivePreview, livePreview, htmlPreview;
-
- var togglePreview = function(e){
- var htmlMode = e.target.hasClass('toggle_html_preview');
- livePreview.toggleClass('hide', htmlMode);
- htmlPreview.toggleClass('hide', !htmlMode);
- toggleLivePreview.toggleClass('active', !htmlMode);
- toggleHtmlPreview.toggleClass('active', htmlMode);
- };
-
- headline = new Element('h6.preview_switch', {text: 'Preview'});
-
- toggleHtmlPreview = new Element('span.toggle_html_preview', {text: 'HTML'})
- .addEvent('click', togglePreview)
- .inject(headline);
- toggleLivePreview = new Element('span.toggle_live_preview', {text: 'Live'})
- .addEvent('click', togglePreview)
- .inject(headline);
+ var togglePreview = function(e){
+ var htmlMode = e.target.hasClass('toggle_html_preview');
+ livePreview.toggleClass('hide', htmlMode);
+ htmlPreview.toggleClass('hide', !htmlMode);
+ toggleLivePreview.toggleClass('active', !htmlMode);
+ toggleHtmlPreview.toggleClass('active', htmlMode);
+ };
+
+ headline = new Element('h6.preview_switch', {text: 'Preview'});
+
+ toggleHtmlPreview = new Element('span.toggle_html_preview', {text: 'HTML'})
+ .addEvent('click', togglePreview)
+ .inject(headline);
+ toggleLivePreview = new Element('span.toggle_live_preview', {text: 'Live'})
+ .addEvent('click', togglePreview)
+ .inject(headline);
- headline.inject(mdTa, 'after');
-
- livePreview = new Element('div.wmd-preview.hide').inject(headline, 'after');
- htmlPreview = new Element('div.wmd-output.hide').inject(livePreview, 'after');
-
- new WMDEditor({
- input: mdTa,
- button_bar: new Element('div').inject(mdTa, 'before'),
- preview: livePreview,
- output: htmlPreview,
- buttons: 'bold italic link image ol ul heading hr undo redo help',
- modifierKeys: false,
- autoFormatting: false
+ headline.inject(mdTa, 'after');
+
+ livePreview = new Element('div.wmd-preview.hide').inject(headline, 'after');
+ htmlPreview = new Element('div.wmd-output.hide').inject(livePreview, 'after');
+
+ new WMDEditor({
+ input: mdTa,
+ button_bar: new Element('div').inject(mdTa, 'before'),
+ preview: livePreview,
+ output: htmlPreview,
+ buttons: 'bold italic link image ol ul heading hr undo redo help',
+ modifierKeys: false,
+ autoFormatting: false
+ });
+ });
+
+ scope.getElements('.map_data_lat').each(function(lat){
+ new Setlatlng(lat);
+ });
+ };
+
+ quickEdit.setup({
+ holderParent: $('content'),
+ onStartRequest: function(form){
+ ajaxNote.loading();
+ },
+ onFormInjected: function(form){
+ setupJsForm(form);
+ scrollContent();
+ ajaxNote.success();
+ },
+ onSave: function(form){
+ ajaxNote.success();
+ },
+ onBeforeSubmit: function(){
+ ajaxNote.loading();
+ wysiwyg.each(function(elem){
+ elem.saveContent();
+ });
+ }
+ });
+
+ var platforms = document.body.getElements('.platform');
+ var mainForm = document.id('main_form');
+
+ if (platforms.length) {
+ var setupSortables = function(scope){
+ scope.getElements('.sortable').each(function(sortableElems){
+ new Sortables(sortableElems, {
+ handle: '.handle',
+ onStart: function(element, clone){
+ element.addClass('dragged');
+ },
+ onComplete: function(element){
+ element.removeClass('dragged');
+ new Request({
+ method: 'put',
+ url: this.element.getParent('tbody').get('data-sort-url')
+ }).send({data: {order: this.serialize()}});
+ }
});
});
-
- scope.getElements('.map_data_lat').each(function(lat){
- new Setlatlng(lat);
- });
};
+ var updatePlatform = function(href, platform, callback){
+ ajaxNote.loading();
+ new Request.HTML({
+ method: 'get',
+ url: href,
+ onSuccess: function(a, b, html, js){
+ platform.innerHTML = html;
+ if (callback) {
+ callback.call();
+ }
+ setupSortables(platform);
+ Browser.exec(js);
+ ajaxNote.success();
+ windowHight = document.body.clientHeight;
+ document.body.fireEvent('platformUpdate');
+ }
+ }).send();
+ };
- quickEdit.setup({
- holderParent: $('content'),
- onStartRequest: function(form){
+ platforms.addEvents({
+ 'click:relay(.pagination a, thead a)': function(e){
+ e.preventDefault();
+ updatePlatform(this.get('href'), this.getParent('.platform'));
+ },
+ 'submit:relay(.search)': function(e){
ajaxNote.loading();
+ e.preventDefault();
+ var parent = this.getParent('.platform');
+ var hidden_search = e.target.getElement('.hidden_search');
+ if (hidden_search) {
+ hidden_search.destroy();
+ }
+
+ new Request.HTML({
+ method: 'get',
+ url: this.get('action'),
+ onSuccess: function(a, b, html){
+ parent.innerHTML = html;
+ setupSortables(parent);
+ ajaxNote.success();
+ }
+ }).send({data: this});
},
- onFormInjected: function(form){
- setupJsForm(form);
- scrollContent();
- ajaxNote.success();
+ 'click:relay(.quick_edit)': function(e){
+ e.preventDefault();
+ quickEdit.startEdit(this, this.getParent('tr'));
},
- onSave: function(form){
- ajaxNote.success();
+ 'click:relay(.action a)': function(e){
+ this.addClass('clicked');
+ setTimeout(function(){
+ this.removeClass('clicked');
+ }.bind(this), 1500);
},
- onBeforeSubmit: function(){
- ajaxNote.loading();
- wysiwyg.each(function(elem){
- elem.saveContent();
+ 'click:relay(.delete)': function(e){
+ e.target.addEvents({
+ 'ajax:success': function(html){
+ this.getParent('tr').dispose();
+ },
+ 'ajax:failure': function(html){
+ alert(Locale.get('Messages.warning'));
+ }
});
}
});
- var platforms = document.body.getElements('.platform');
- var mainForm = document.id('main_form');
-
- if (platforms.length) {
- var setupSortables = function(scope){
- scope.getElements('.sortable').each(function(sortableElems){
- new Sortables(sortableElems, {
- handle: '.handle',
- onStart: function(element, clone){
- element.addClass('dragged');
- },
- onComplete: function(element){
- element.removeClass('dragged');
- new Request({
- method: 'put',
- url: this.element.getParent('tbody').get('data-sort-url')
- }).send({data: {order: this.serialize()}});
- }
- });
+ quickEdit.addEvents({
+ successAndChange: function(json){
+ var tr = this.wrapElement;
+ tr.getElements('td').each(function(td){
+ var name = td.get('data-column-name');
+ if ( ! name) { return; }
+ var a = td.getElement('a.quick_edit');
+ (a ? a : td).innerHTML = json[name] || '';
});
- };
- var updatePlatform = function(href, platform, callback){
- ajaxNote.loading();
- new Request.HTML({
- method: 'get',
- url: href,
- onSuccess: function(a, b, html, js){
- platform.innerHTML = html;
- if (callback) {
- callback.call();
- }
- setupSortables(platform);
- Browser.exec(js);
- ajaxNote.success();
- windowHight = document.body.clientHeight;
- }
- }).send();
- };
+ },
+ successAndNext: function(json){
+ var tr = this.wrapElement;
+ var nextTr = tr.getNext('tr');
- platforms.addEvents({
- 'click:relay(.pagination a, thead a)': function(e){
- e.preventDefault();
- updatePlatform(this.get('href'), this.getParent('.platform'));
- },
- 'submit:relay(.search)': function(e){
- ajaxNote.loading();
- e.preventDefault();
- var parent = this.getParent('.platform');
- var hidden_search = e.target.getElement('.hidden_search');
- if (hidden_search) {
- hidden_search.destroy();
- }
-
- new Request.HTML({
- method: 'get',
- url: this.get('action'),
- onSuccess: function(a, b, html){
- parent.innerHTML = html;
- setupSortables(parent);
- ajaxNote.success();
- }
- }).send({data: this});
- },
- 'click:relay(.quick_edit)': function(e){
- e.preventDefault();
- quickEdit.startEdit(this, this.getParent('tr'));
- },
- 'click:relay(.action a)': function(e){
- this.addClass('clicked');
- setTimeout(function(){
- this.removeClass('clicked');
- }.bind(this), 1500);
- },
- 'click:relay(.delete)': function(e){
- e.target.addEvents({
- 'ajax:success': function(html){
- this.getParent('tr').dispose();
- },
- 'ajax:failure': function(html){
- alert('Something went wrong!');
- }
- });
+ if (nextTr) {
+ quickEdit.startEdit(nextTr.getElement('a'), nextTr);
}
- });
-
- quickEdit.addEvents({
- successAndChange: function(json){
- var tr = this.wrapElement;
- tr.getElements('td').each(function(td){
- var name = td.get('data-column-name');
- if ( ! name) { return; }
- var a = td.getElement('a.quick_edit');
- (a ? a : td).innerHTML = json[name] || '';
- });
- },
- successAndNext: function(json){
- var tr = this.wrapElement;
- var nextTr = tr.getNext('tr');
-
- if (nextTr) {
- quickEdit.startEdit(nextTr.getElement('a'), nextTr);
+ else {
+ var platform = tr.getParent('.platform');
+ var loadMore = platform.getElement('.load_more');
+ if (loadMore) {
+ trIndex = tr.getParent('tbody').getElements('tr').indexOf(tr);
+ updatePlatform(loadMore.get('href'), platform, function(){
+ platform.getElements('tbody tr').each(function(newTr, index){
+ if (trIndex === index) {
+ nextTr = newTr.getNext('tr');
+ quickEdit.startEdit(nextTr.getElement('a'), nextTr);
+ }
+ });
+ });
}
else {
- var platform = tr.getParent('.platform');
- var loadMore = platform.getElement('.load_more');
- if (loadMore) {
- trIndex = tr.getParent('tbody').getElements('tr').indexOf(tr);
- updatePlatform(loadMore.get('href'), platform, function(){
- platform.getElements('tbody tr').each(function(newTr, index){
- if (trIndex === index) {
- nextTr = newTr.getNext('tr');
- quickEdit.startEdit(nextTr.getElement('a'), nextTr);
- }
- });
- });
- }
- else {
- nextTr = platform.getElements('tbody tr')[0];
- quickEdit.startEdit(nextTr.getElement('a'), nextTr);
- }
+ nextTr = platform.getElements('tbody tr')[0];
+ quickEdit.startEdit(nextTr.getElement('a'), nextTr);
}
}
- });
- setupSortables(document.body);
- }
- else if (mainForm) {
- setupJsForm(mainForm);
+ }
+ });
+ setupSortables(document.body);
+ }
+ else if (mainForm) {
+ setupJsForm(mainForm);
- mainForm.addEvents({
- 'click:relay(.quick_edit)': function(e){
- e.preventDefault();
- quickEdit.startEdit(this);
- },
- 'click:relay(.delete)': function(e){
- e.target.addEvents({
- 'ajax:success': function(html){
- var relation = e.target.getParent('.relation');
- if (relation.getElements('li').length < 2) {
- relation.getPrevious('.empty').removeClass('hide');
- if (relation.hasClass('has_one') || relation.hasClass('embeds_one')) {
- relation.getNext('.add_field').removeClass('hide');
- }
+ mainForm.addEvents({
+ 'click:relay(.quick_edit)': function(e){
+ e.preventDefault();
+ quickEdit.startEdit(this);
+ },
+ 'click:relay(.delete)': function(e){
+ e.target.addEvents({
+ 'ajax:success': function(html){
+ var relation = e.target.getParent('.relation');
+ if (relation.getElements('li').length < 2) {
+ relation.getPrevious('.empty').removeClass('hide');
+ if (relation.hasClass('has_one') || relation.hasClass('embeds_one')) {
+ relation.getNext('.add_field').removeClass('hide');
}
- e.target.getParent('li').dispose();
- },
- 'ajax:failure': function(html){
- alert('Something went wrong!');
}
- });
- }
- });
-
- quickEdit.addEvents({
- successAndAdd: function(json){
- var relation = this.wrapElement.getPrevious('.relation');
- relation.getPrevious('.empty').addClass('hide');
- if (relation.hasClass('has_one') || relation.hasClass('embeds_one')) {
- relation.getNext('.add_field').addClass('hide');
+ e.target.getParent('li').dispose();
+ },
+ 'ajax:failure': function(html){
+ alert(Locale.get('Messages.warning'));
}
- relation.adopt(
- new Element('li').adopt(
- new Element('a.quick_edit', {text: json.to_bhf_s || '', href: json.edit_path})
- )
- );
- },
- successAndChange: function(json){
- this.wrapElement.set('text', json.to_bhf_s || '');
- },
- successAndNext: function(json){
- var a = this.wrapElement;
- var li = a.getParent('li');
- if ( ! li) {
- this.close();
- return;
- }
- var holder = li.getNext('li');
+ });
+ }
+ });
- if ( ! holder) {
- holder = li.getParent('ul');
- }
- quickEdit.startEdit(holder.getElement('a'));
+ quickEdit.addEvents({
+ successAndAdd: function(json){
+ var relation = this.wrapElement.getPrevious('.relation');
+ relation.getPrevious('.empty').addClass('hide');
+ if (relation.hasClass('has_one') || relation.hasClass('embeds_one')) {
+ relation.getNext('.add_field').addClass('hide');
}
- });
- }
- var windowHight = document.body.clientHeight;
- window.onresize = function(e){
- windowHight = document.body.clientHeight;
- };
- var scrollContent = function(){
- var innerForm = quickEdit.holder.getElement('form');
- if ( ! innerForm) { return; }
- var scroll = document.body.scrollTop-70;
- if (scroll < 10) {
- scroll = 10;
- }
- if (scroll + innerForm.getSize().y > windowHight) { return; }
- quickEdit.holder.setStyle('padding-top', scroll);
- };
- window.onscroll = scrollContent;
+ relation.adopt(
+ new Element('li').adopt(
+ new Element('a.quick_edit', {text: json.to_bhf_s || '', href: json.edit_path})
+ )
+ );
+ },
+ successAndChange: function(json){
+ this.wrapElement.set('text', json.to_bhf_s || '');
+ },
+ successAndNext: function(json){
+ var a = this.wrapElement;
+ var li = a.getParent('li');
+ if ( ! li) {
+ this.close();
+ return;
+ }
+ var holder = li.getNext('li');
- var fm = $('flash_massages');
- if (fm) {
- fm.removeClass.delay(4000, fm, 'show');
+ if ( ! holder) {
+ holder = li.getParent('ul');
+ }
+ quickEdit.startEdit(holder.getElement('a'));
+ }
+ });
+ }
+ var windowHight = document.body.clientHeight;
+ window.onresize = function(e){
+ windowHight = document.body.clientHeight;
+ };
+ var scrollContent = function(){
+ var innerForm = quickEdit.holder.getElement('form');
+ if ( ! innerForm) { return; }
+ var scroll = document.body.scrollTop-70;
+ if (scroll < 10) {
+ scroll = 10;
}
+ if (scroll + innerForm.getSize().y > windowHight) { return; }
+ quickEdit.holder.setStyle('padding-top', scroll);
+ };
+ window.onscroll = scrollContent;
- new BrowserUpdate({vs:{i:8,f:7,o:10.01,s:4,n:9}});
- });
+ var fm = $('flash_massages');
+ if (fm) {
+ fm.removeClass.delay(4000, fm, 'show');
+ }
+
+ new BrowserUpdate({vs:{i:8,f:7,o:10.01,s:4,n:9}});
};
-pageSetup();
+window.addEvent('domready', bhfInit);
+
if (document.addEventListener) {
document.addEventListener('page:fetch', function(){
ajaxNote.loading();
});
document.addEventListener('page:load', function(){
quickEdit.removeEvents();
- pageSetup();
+ bhfInit();
rails.applyEvents();
ajaxNote.success();
});
}