bhf 0.6.15 → 0.6.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/{vendor → app}/assets/images/bhf/ajax_loader.gif +0 -0
  3. data/{vendor → app}/assets/images/bhf/bg.png +0 -0
  4. data/{vendor → app}/assets/images/bhf/mooeditable-toolbarbuttons-tango.png +0 -0
  5. data/{vendor → app}/assets/images/bhf/pictos.png +0 -0
  6. data/{vendor → app}/assets/images/bhf/pictos_2x.png +0 -0
  7. data/{vendor → app}/assets/images/bhf/small_ajax_loader.gif +0 -0
  8. data/{vendor → app}/assets/images/bhf/small_ajax_loader_h.gif +0 -0
  9. data/{vendor → app}/assets/images/bhf/wmd-buttons.png +0 -0
  10. data/{vendor → app}/assets/images/logo_bhf.svg +0 -0
  11. data/app/assets/javascripts/bhf/application.js +285 -0
  12. data/{vendor → app}/assets/javascripts/bhf/classes/AjaxEdit.js +28 -13
  13. data/app/assets/javascripts/bhf/classes/AjaxEditStack.js +52 -0
  14. data/{vendor → app}/assets/javascripts/bhf/classes/Ajaxify.js +0 -0
  15. data/{vendor → app}/assets/javascripts/bhf/classes/ArrayFields.js +0 -0
  16. data/app/assets/javascripts/bhf/classes/FormHelper.js +97 -0
  17. data/{vendor → app}/assets/javascripts/bhf/classes/Locale.de-DE.js +0 -0
  18. data/{vendor → app}/assets/javascripts/bhf/classes/Locale.en-US.js +0 -0
  19. data/{vendor → app}/assets/javascripts/bhf/classes/MooEditable.js +0 -0
  20. data/{vendor → app}/assets/javascripts/bhf/classes/MultipleFields.js +0 -0
  21. data/{vendor → app}/assets/javascripts/bhf/classes/Picker.js +0 -0
  22. data/{vendor → app}/assets/javascripts/bhf/classes/Picker_Attach.js +0 -0
  23. data/{vendor → app}/assets/javascripts/bhf/classes/Picker_Date.js +0 -0
  24. data/app/assets/javascripts/bhf/classes/PlatformHelper.js +59 -0
  25. data/{vendor → app}/assets/javascripts/bhf/classes/Setlatlng.js +0 -0
  26. data/{vendor → app}/assets/javascripts/bhf/classes/showdown.js +0 -0
  27. data/{vendor → app}/assets/javascripts/bhf/classes/wmd.js +0 -0
  28. data/{vendor → app}/assets/javascripts/bhf/mootools-core-1.4.5-full-compat.js +0 -0
  29. data/{vendor → app}/assets/javascripts/bhf/mootools-more-1.4.0.1.js +0 -0
  30. data/{vendor/assets/javascripts/bhf/mootools_ujs_ap.js → app/assets/javascripts/bhf/mootools_ujs.js} +1 -1
  31. data/{vendor → app}/assets/stylesheets/bhf/MooEditable.css.scss +0 -0
  32. data/{vendor → app}/assets/stylesheets/bhf/application.css.sass +16 -11
  33. data/{vendor → app}/assets/stylesheets/bhf/functions.css.sass +0 -0
  34. data/{vendor → app}/assets/stylesheets/bhf/reset.css.sass +0 -0
  35. data/{vendor → app}/assets/stylesheets/bhf/typo.css.scss +0 -0
  36. data/app/controllers/bhf/pages_controller.rb +1 -1
  37. data/app/views/bhf/entries/_form.haml +1 -1
  38. data/app/views/bhf/pages/macro/column/_hash.haml +1 -1
  39. data/app/views/layouts/bhf/application.haml +3 -4
  40. data/app/views/layouts/bhf/quick_edit.haml +9 -7
  41. data/config/routes.rb +1 -0
  42. data/lib/bhf/platform.rb +3 -1
  43. metadata +36 -35
  44. data/lib/bhf/view_helpers.rb +0 -19
  45. data/vendor/assets/javascripts/bhf/application.js +0 -372
  46. data/vendor/assets/javascripts/bhf/classes/BrowserUpdate.js +0 -185
@@ -132,6 +132,8 @@ header
132
132
  background: #EAEAEA
133
133
  box-sizing: border-box
134
134
  +box-shadow(0, 1, 4, rgba($k1, 0.5))
135
+ .quick_edit_helper,
136
+ #main
135
137
  > h3
136
138
  padding: 9px 20px
137
139
  background: #dbdbdb
@@ -153,14 +155,21 @@ header
153
155
  color: $g3
154
156
  +text-shadow(#fff)
155
157
  .quick_edit_holder
156
- +transition-duration(0.3)
157
- +transition-delay(0.2)
158
+ &.collapsed
159
+ width: 50px
160
+ max-width: auto
161
+ background: rgb(197, 197, 197)
162
+ .quick_edit_helper
163
+ display: none
164
+
158
165
  overflow-x: auto
159
166
  position: relative
160
167
  max-width: 400px
161
168
  width: 400px
162
169
  vertical-align: top
170
+ padding: 0
163
171
  form
172
+ padding: 10px 20px
164
173
  margin-left: 0
165
174
  padding-bottom: 10px
166
175
  .node,
@@ -175,10 +184,6 @@ header
175
184
  width: 300px
176
185
  height: 100px
177
186
 
178
- .quick_edit_holder
179
- padding: 0
180
- form
181
- padding: 10px 20px
182
187
  .group
183
188
  margin-top: 0
184
189
  margin-bottom: 10px
@@ -197,10 +202,10 @@ header
197
202
  &:focus
198
203
  outline: 0
199
204
  &.save
200
- border-right: 1px solid $b2
201
205
  &:hover
202
206
  color: darken($b2, 15%)
203
207
  &.save_and_next
208
+ border-left: 1px solid $b2
204
209
  text-indent: -9999px
205
210
  background: image-url('bhf/pictos.png') no-repeat -140px -40px
206
211
  width: 40px
@@ -209,7 +214,7 @@ header
209
214
  background-position: -140px -90px
210
215
 
211
216
 
212
- > button
217
+ .quick_edit_helper > a
213
218
  &.cancel,
214
219
  &.open
215
220
  float: right
@@ -626,7 +631,8 @@ input[type="submit"].alt_button,
626
631
  +text-shadow(#444, -1)
627
632
  +transition-duration(0.3)
628
633
  &:hover
629
- background: $b1
634
+ background: $b1
635
+ text-decoration: none
630
636
  &:active
631
637
  background: darken($b2, 5%)
632
638
  &:focus
@@ -947,8 +953,7 @@ input[type="submit"].alt_button,
947
953
  marign-left: -120px
948
954
  font-weight: bold
949
955
 
950
-
951
-
956
+
952
957
 
953
958
  .wmd-preview,
954
959
  .wmd-output
@@ -14,7 +14,7 @@ class Bhf::PagesController < Bhf::ApplicationController
14
14
 
15
15
  @platforms = platform_options.each_with_object([]) do |opts, obj|
16
16
  platform = Bhf::Platform.new(opts, @page, current_account)
17
- next if platform.model.bhf_embedded? || platform.table_hide?
17
+ next if platform.table_hide?
18
18
  platform.pagination = Bhf::Pagination.new(platform.entries_per_page)
19
19
  paginate_platform_objects(platform)
20
20
  obj << platform
@@ -1,4 +1,4 @@
1
- - html = { id: (:main_form unless @quick_edit), multipart: (!@quick_edit && @platform.has_file_upload?) }
1
+ - html = { id: (:main_form unless @quick_edit), multipart: (!@quick_edit && @platform.has_file_upload?), class: 'js_bhf_form' }
2
2
  = form_for @object, url: @form_url, builder: Bhf::Form::Builder, html: html do |f|
3
3
 
4
4
  - if f.object.errors.any?
@@ -1 +1 @@
1
- = f.object.send(field.name).inspect
1
+ = object.send(column.name).inspect
@@ -6,9 +6,6 @@
6
6
  %link{href: '/favicon.ico', rel: 'icon', type: 'image/x-icon'}
7
7
  - (['bhf/application'] + Bhf::Engine.config.css.to_a).each do |css|
8
8
  = stylesheet_link_tag css
9
- - (['bhf/application'] + Bhf::Engine.config.js.to_a).each do |js|
10
- = javascript_include_tag js, {:'data-turbolinks-eval' => false}
11
-
12
9
  %body
13
10
  %header
14
11
  %h1
@@ -30,4 +27,6 @@
30
27
  = render 'bhf/user'
31
28
  = render 'bhf/footer'
32
29
 
33
- =# yield :js_inject
30
+ - (['bhf/application'] + Bhf::Engine.config.js.to_a).each do |js|
31
+ = javascript_include_tag js, {:'data-turbolinks-eval' => false}
32
+
@@ -1,7 +1,9 @@
1
- %button.alt_button.cancel= t('bhf.quick_edit.buttons.cancel')
2
- %button.alt_button.open= t('bhf.quick_edit.buttons.open')
3
- = yield
4
- .button.group
5
- %button.save{class: ('create' if @object.new_record?)}= @object.new_record? ? t('bhf.quick_edit.buttons.create') : t('bhf.quick_edit.buttons.save')
6
- - unless @object.new_record?
7
- %button.save_and_next{title: t('bhf.quick_edit.buttons.save_and_next')}= t('bhf.quick_edit.buttons.save_and_next')
1
+ .quick_edit_helper
2
+ %a.alt_button.cancel= t('bhf.quick_edit.buttons.cancel')
3
+ - unless @platform.table_hide?
4
+ %a.alt_button.open= t('bhf.quick_edit.buttons.open')
5
+ = yield
6
+ .button.group
7
+ %button.save{class: ('create' if @object.new_record?)}= @object.new_record? ? t('bhf.quick_edit.buttons.create') : t('bhf.quick_edit.buttons.save')
8
+ - unless @object.new_record?
9
+ %button.save_and_next{title: t('bhf.quick_edit.buttons.save_and_next')}= t('bhf.quick_edit.buttons.save_and_next')
data/config/routes.rb CHANGED
@@ -1,3 +1,4 @@
1
1
  unless Bhf::Engine.config.remove_default_routes
2
2
  Rails.application.routes.draw(&Bhf::Engine.config.bhf_routes)
3
+ #(bhf_)((.+)_?(path|url))
3
4
  end
data/lib/bhf/platform.rb CHANGED
@@ -22,6 +22,7 @@ module Bhf
22
22
  model_name = I18n.t(t_model_path, count: 0, default: @name.singularize.capitalize)
23
23
  @title_zero = I18n.t("bhf.platforms.#{@name}.title", count: 0, default: model_name)
24
24
 
25
+ @model = model
25
26
  @page_name = page_name
26
27
  @user = user
27
28
  end
@@ -31,7 +32,7 @@ module Bhf
31
32
  end
32
33
 
33
34
  def table_hide?
34
- table_options(:hide) == true
35
+ table_options(:hide) == true || model.bhf_embedded?
35
36
  end
36
37
 
37
38
  def search_field?
@@ -81,6 +82,7 @@ module Bhf
81
82
  end
82
83
 
83
84
  def model
85
+ return @model if @model
84
86
  return @data['model'].constantize if @data['model']
85
87
  @name.singularize.camelize.constantize
86
88
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bhf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.15
4
+ version: 0.6.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Pawlik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-09 00:00:00.000000000 Z
11
+ date: 2013-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -87,6 +87,40 @@ extensions: []
87
87
  extra_rdoc_files:
88
88
  - README.md
89
89
  files:
90
+ - app/assets/images/bhf/ajax_loader.gif
91
+ - app/assets/images/bhf/bg.png
92
+ - app/assets/images/bhf/mooeditable-toolbarbuttons-tango.png
93
+ - app/assets/images/bhf/pictos.png
94
+ - app/assets/images/bhf/pictos_2x.png
95
+ - app/assets/images/bhf/small_ajax_loader.gif
96
+ - app/assets/images/bhf/small_ajax_loader_h.gif
97
+ - app/assets/images/bhf/wmd-buttons.png
98
+ - app/assets/images/logo_bhf.svg
99
+ - app/assets/javascripts/bhf/application.js
100
+ - app/assets/javascripts/bhf/classes/AjaxEdit.js
101
+ - app/assets/javascripts/bhf/classes/AjaxEditStack.js
102
+ - app/assets/javascripts/bhf/classes/Ajaxify.js
103
+ - app/assets/javascripts/bhf/classes/ArrayFields.js
104
+ - app/assets/javascripts/bhf/classes/FormHelper.js
105
+ - app/assets/javascripts/bhf/classes/Locale.de-DE.js
106
+ - app/assets/javascripts/bhf/classes/Locale.en-US.js
107
+ - app/assets/javascripts/bhf/classes/MooEditable.js
108
+ - app/assets/javascripts/bhf/classes/MultipleFields.js
109
+ - app/assets/javascripts/bhf/classes/Picker.js
110
+ - app/assets/javascripts/bhf/classes/Picker_Attach.js
111
+ - app/assets/javascripts/bhf/classes/Picker_Date.js
112
+ - app/assets/javascripts/bhf/classes/PlatformHelper.js
113
+ - app/assets/javascripts/bhf/classes/Setlatlng.js
114
+ - app/assets/javascripts/bhf/classes/showdown.js
115
+ - app/assets/javascripts/bhf/classes/wmd.js
116
+ - app/assets/javascripts/bhf/mootools-core-1.4.5-full-compat.js
117
+ - app/assets/javascripts/bhf/mootools-more-1.4.0.1.js
118
+ - app/assets/javascripts/bhf/mootools_ujs.js
119
+ - app/assets/stylesheets/bhf/MooEditable.css.scss
120
+ - app/assets/stylesheets/bhf/application.css.sass
121
+ - app/assets/stylesheets/bhf/functions.css.sass
122
+ - app/assets/stylesheets/bhf/reset.css.sass
123
+ - app/assets/stylesheets/bhf/typo.css.scss
90
124
  - app/controllers/bhf/application_controller.rb
91
125
  - app/controllers/bhf/embed_entries_controller.rb
92
126
  - app/controllers/bhf/entries_controller.rb
@@ -175,40 +209,7 @@ files:
175
209
  - lib/bhf/pagination.rb
176
210
  - lib/bhf/platform.rb
177
211
  - lib/bhf/settings.rb
178
- - lib/bhf/view_helpers.rb
179
212
  - lib/rails/generators/bhf/templates/initializer.rb
180
- - vendor/assets/images/bhf/ajax_loader.gif
181
- - vendor/assets/images/bhf/bg.png
182
- - vendor/assets/images/bhf/mooeditable-toolbarbuttons-tango.png
183
- - vendor/assets/images/bhf/pictos.png
184
- - vendor/assets/images/bhf/pictos_2x.png
185
- - vendor/assets/images/bhf/small_ajax_loader.gif
186
- - vendor/assets/images/bhf/small_ajax_loader_h.gif
187
- - vendor/assets/images/bhf/wmd-buttons.png
188
- - vendor/assets/images/logo_bhf.svg
189
- - vendor/assets/javascripts/bhf/application.js
190
- - vendor/assets/javascripts/bhf/classes/AjaxEdit.js
191
- - vendor/assets/javascripts/bhf/classes/Ajaxify.js
192
- - vendor/assets/javascripts/bhf/classes/ArrayFields.js
193
- - vendor/assets/javascripts/bhf/classes/BrowserUpdate.js
194
- - vendor/assets/javascripts/bhf/classes/Locale.de-DE.js
195
- - vendor/assets/javascripts/bhf/classes/Locale.en-US.js
196
- - vendor/assets/javascripts/bhf/classes/MooEditable.js
197
- - vendor/assets/javascripts/bhf/classes/MultipleFields.js
198
- - vendor/assets/javascripts/bhf/classes/Picker.js
199
- - vendor/assets/javascripts/bhf/classes/Picker_Attach.js
200
- - vendor/assets/javascripts/bhf/classes/Picker_Date.js
201
- - vendor/assets/javascripts/bhf/classes/Setlatlng.js
202
- - vendor/assets/javascripts/bhf/classes/showdown.js
203
- - vendor/assets/javascripts/bhf/classes/wmd.js
204
- - vendor/assets/javascripts/bhf/mootools-core-1.4.5-full-compat.js
205
- - vendor/assets/javascripts/bhf/mootools-more-1.4.0.1.js
206
- - vendor/assets/javascripts/bhf/mootools_ujs_ap.js
207
- - vendor/assets/stylesheets/bhf/MooEditable.css.scss
208
- - vendor/assets/stylesheets/bhf/application.css.sass
209
- - vendor/assets/stylesheets/bhf/functions.css.sass
210
- - vendor/assets/stylesheets/bhf/reset.css.sass
211
- - vendor/assets/stylesheets/bhf/typo.css.scss
212
213
  - README.md
213
214
  homepage: http://github.com/antpaw/bhf
214
215
  licenses:
@@ -1,19 +0,0 @@
1
- module Bhf
2
- module ViewHelpers
3
- module ActionView
4
-
5
- def bhf_edit(object, options = {}) # TODO: add a block of html for custom editing buttons and links
6
- return unless session[Bhf::Engine.config.session_auth_name.to_s] == true
7
-
8
- options[:platform_name] ||= object.class.to_s.pluralize.downcase
9
-
10
- if object.respond_to?(:'bhf_can_edit?', true)
11
- return unless object.bhf_can_edit?(options)
12
- end
13
-
14
- render partial: 'bhf/helper/frontend_edit', locals: { platform_name: options[:platform_name], object: object }
15
- end
16
-
17
- end
18
- end
19
- end
@@ -1,372 +0,0 @@
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_ap
5
- //= require_tree ./classes/
6
- var lang = document.html.get('lang');
7
- if (lang === 'en') {
8
- lang = 'en-US';
9
- }
10
- else {
11
- lang = lang+'-'+lang.toUpperCase();
12
- }
13
- Locale.use(lang);
14
-
15
- var ajaxNote = new Ajaxify();
16
- var bhfInit = function(){
17
- var quickEdit = new AjaxEdit();
18
- ajaxNote.setup();
19
- var wysiwyg = [];
20
- var setupJsForm = function(scope){
21
- scope.getElements('.wysiwyg').each(function(elem){
22
- wysiwyg.push(elem.mooEditable());
23
- });
24
-
25
- scope.getElements('.multiple_field').each(function(elem){
26
- new MultipleFields(elem);
27
- });
28
- scope.getElements('.array_holder').each(function(elem){
29
- new ArrayFields(elem);
30
- });
31
-
32
- scope.getElements('.picker').each(function(input){
33
- var options = {
34
- timePicker: true,
35
- format: '%B %d, %Y %H:%M'
36
- };
37
- if (input.hasClass('date')) {
38
- options = {
39
- timePicker: false,
40
- format: '%B %d, %Y'
41
- };
42
- }
43
- else if (input.hasClass('time')) {
44
- options = {
45
- pickOnly: 'time',
46
- format: '%H:%M'
47
- };
48
- }
49
-
50
- var hiddenInput = input.clone();
51
- input.value = new Date().parse(input.value).format(options.format);
52
- input.erase('name');
53
- hiddenInput.set('type', 'hidden').inject(input, 'after');
54
-
55
- new Picker.Date(input, Object.merge({
56
- onSelect: function(date){
57
- hiddenInput.value = date.format('db');
58
- }
59
- }, options));
60
- });
61
-
62
- scope.getElements('.wmd_editor').each(function(mdTa){
63
- var headline, toggleHtmlPreview, toggleLivePreview, livePreview, htmlPreview;
64
-
65
- var togglePreview = function(e){
66
- var htmlMode = e.target.hasClass('toggle_html_preview');
67
- livePreview.toggleClass('hide', htmlMode);
68
- htmlPreview.toggleClass('hide', !htmlMode);
69
- toggleLivePreview.toggleClass('active', !htmlMode);
70
- toggleHtmlPreview.toggleClass('active', htmlMode);
71
- };
72
-
73
- headline = new Element('h6.preview_switch', {text: 'Preview'});
74
-
75
- toggleHtmlPreview = new Element('span.toggle_html_preview', {text: 'HTML'})
76
- .addEvent('click', togglePreview)
77
- .inject(headline);
78
- toggleLivePreview = new Element('span.toggle_live_preview', {text: 'Live'})
79
- .addEvent('click', togglePreview)
80
- .inject(headline);
81
-
82
- headline.inject(mdTa, 'after');
83
-
84
- livePreview = new Element('div.wmd-preview.hide').inject(headline, 'after');
85
- htmlPreview = new Element('div.wmd-output.hide').inject(livePreview, 'after');
86
-
87
- new WMDEditor({
88
- input: mdTa,
89
- button_bar: new Element('div').inject(mdTa, 'before'),
90
- preview: livePreview,
91
- output: htmlPreview,
92
- buttons: 'bold italic link image ol ul heading hr undo redo help',
93
- modifierKeys: false,
94
- autoFormatting: false
95
- });
96
- });
97
-
98
- scope.getElements('.map_data_lat').each(function(lat){
99
- new Setlatlng(lat);
100
- });
101
- };
102
- var windowHight = document.body.clientHeight;
103
- window.onresize = function(e){
104
- windowHight = document.body.clientHeight;
105
- };
106
- var scrollContent = function(){
107
- var innerForm = quickEdit.holder.getElement('form');
108
- if ( ! innerForm) { return; }
109
- var scroll = document.body.scrollTop-83;
110
- if (scroll + innerForm.getSize().y > windowHight) { return; }
111
- quickEdit.holder.setStyle('padding-top', scroll);
112
- };
113
- // window.onscroll = scrollContent;
114
-
115
- quickEdit.setup({
116
- holderParent: $('content'),
117
- onStartRequest: function(form){
118
- ajaxNote.loading();
119
- },
120
- onFormInjected: function(form){
121
- setupJsForm(form);
122
- scrollContent();
123
- ajaxNote.success();
124
- },
125
- onSave: function(form){
126
- ajaxNote.success();
127
- },
128
- onBeforeSubmit: function(){
129
- ajaxNote.loading();
130
- wysiwyg.each(function(elem){
131
- elem.saveContent();
132
- });
133
- }
134
- });
135
-
136
- var platforms = document.body.getElements('.platform');
137
- var mainForm = document.id('main_form');
138
-
139
- if (platforms.length) {
140
- var setupSortables = function(scope){
141
- scope.getElements('.sortable').each(function(sortableElems){
142
- new Sortables(sortableElems, {
143
- handle: '.handle',
144
- onFailure: function(invalidForm){
145
- ajaxNote.failure();
146
- },
147
- onStart: function(element, clone){
148
- element.addClass('dragged');
149
- },
150
- onComplete: function(element){
151
- element.removeClass('dragged');
152
- new Request({
153
- method: 'put',
154
- url: this.element.getParent('tbody').get('data-sort-url')
155
- }).send({data: {order: this.serialize()}});
156
- }
157
- });
158
- });
159
- };
160
- var updatePlatform = function(href, platform, callback){
161
- ajaxNote.loading();
162
- new Request.HTML({
163
- method: 'get',
164
- url: href,
165
- onFailure: function(invalidForm){
166
- ajaxNote.failure();
167
- },
168
- onSuccess: function(a, b, html, js){
169
- platform.innerHTML = html;
170
- if (callback) {
171
- callback.call();
172
- }
173
- setupSortables(platform);
174
- Browser.exec(js);
175
- ajaxNote.success();
176
- windowHight = document.body.clientHeight;
177
- window.fireEvent('platformUpdate', [platform]);
178
- }
179
- }).send();
180
- };
181
-
182
- platforms.addEvents({
183
- 'click:relay(.pagination a, thead a)': function(e){
184
- e.preventDefault();
185
- updatePlatform(this.get('href'), this.getParent('.platform'));
186
- },
187
- 'submit:relay(.search)': function(e){
188
- ajaxNote.loading();
189
- e.preventDefault();
190
- var parent = this.getParent('.platform');
191
- var hidden_search = e.target.getElement('.hidden_search');
192
- if (hidden_search) {
193
- hidden_search.destroy();
194
- }
195
-
196
- new Request.HTML({
197
- method: 'get',
198
- url: this.get('action'),
199
- onFailure: function(invalidForm){
200
- ajaxNote.failure();
201
- },
202
- onSuccess: function(a, b, html){
203
- parent.innerHTML = html;
204
- setupSortables(parent);
205
- ajaxNote.success();
206
- window.fireEvent('platformUpdate', [parent]);
207
- }
208
- }).send({data: this});
209
- },
210
- 'click:relay(.quick_edit)': function(e){
211
- e.preventDefault();
212
- quickEdit.startEdit(this, this.getParent('tr'));
213
- },
214
- 'click:relay(.action a)': function(e){
215
- this.addClass('clicked');
216
- setTimeout(function(){
217
- this.removeClass('clicked');
218
- }.bind(this), 1500);
219
- },
220
- 'click:relay(.delete)': function(e){
221
- e.target.addEvents({
222
- 'ajax:success': function(html){
223
- this.getParent('tr').dispose();
224
- },
225
- 'ajax:failure': function(html){
226
- alert(Locale.get('Messages.warning'));
227
- }
228
- });
229
- }
230
- });
231
-
232
- quickEdit.addEvents({
233
- onFailure: function(invalidForm){
234
- ajaxNote.failure();
235
- },
236
- successAndChange: function(json){
237
- var tr = this.wrapElement;
238
- tr.getElements('td').each(function(td){
239
- var name = td.get('data-column-name');
240
- if ( ! name) { return; }
241
- var a = td.getElement('a.quick_edit');
242
- (a ? a : td).innerHTML = json[name] || '';
243
- });
244
- },
245
- successAndNext: function(json){
246
- var tr = this.wrapElement;
247
- var nextTr = tr.getNext('tr');
248
-
249
- if (nextTr) {
250
- quickEdit.startEdit(nextTr.getElement('a'), nextTr);
251
- }
252
- else {
253
- var platform = tr.getParent('.platform');
254
- var loadMore = platform.getElement('.load_more');
255
- if (loadMore) {
256
- trIndex = tr.getParent('tbody').getElements('tr').indexOf(tr);
257
- updatePlatform(loadMore.get('href'), platform, function(){
258
- platform.getElements('tbody tr').each(function(newTr, index){
259
- if (trIndex === index) {
260
- nextTr = newTr.getNext('tr');
261
- quickEdit.startEdit(nextTr.getElement('a'), nextTr);
262
- }
263
- });
264
- });
265
- }
266
- else {
267
- nextTr = platform.getElements('tbody tr')[0];
268
- quickEdit.startEdit(nextTr.getElement('a'), nextTr);
269
- }
270
- }
271
- }
272
- });
273
- setupSortables(document.body);
274
- }
275
- else if (mainForm) {
276
- setupJsForm(mainForm);
277
-
278
- mainForm.addEvents({
279
- 'click:relay(.quick_edit)': function(e){
280
- e.preventDefault();
281
- quickEdit.startEdit(this);
282
- },
283
- 'click:relay(.delete)': function(e){
284
- e.target.addEvents({
285
- 'ajax:success': function(html){
286
- var relation = e.target.getParent('.relation');
287
- if (relation.getElements('li').length < 2) {
288
- relation.getPrevious('.empty').removeClass('hide');
289
- if (relation.hasClass('has_one') || relation.hasClass('embeds_one')) {
290
- relation.getNext('.add_field').removeClass('hide');
291
- }
292
- }
293
- e.target.getParent('li').dispose();
294
- },
295
- 'ajax:failure': function(html){
296
- alert(Locale.get('Messages.warning'));
297
- }
298
- });
299
- }
300
- });
301
-
302
- quickEdit.addEvents({
303
- onFailure: function(invalidForm){
304
- ajaxNote.failure();
305
- },
306
- successAndAdd: function(json){
307
- var relation = this.wrapElement.getPrevious('.relation');
308
- relation.getPrevious('.empty').addClass('hide');
309
- if (relation.hasClass('has_one') || relation.hasClass('embeds_one')) {
310
- relation.getNext('.add_field').addClass('hide');
311
- }
312
- relation.adopt(
313
- new Element('li').adopt(
314
- new Element('a.quick_edit', {text: json.to_bhf_s || '', href: json.edit_path})
315
- )
316
- );
317
- },
318
- successAndChange: function(json){
319
- this.wrapElement.set('text', json.to_bhf_s || '');
320
- },
321
- successAndNext: function(json){
322
- var a = this.wrapElement;
323
- var li = a.getParent('li');
324
- if ( ! li) {
325
- this.close();
326
- return;
327
- }
328
- var holder = li.getNext('li');
329
-
330
- if ( ! holder) {
331
- holder = li.getParent('ul');
332
- }
333
- quickEdit.startEdit(holder.getElement('a'));
334
- }
335
- });
336
- }
337
-
338
- var fm = $('flash_massages');
339
- if (fm) {
340
- fm.removeClass.delay(10000, fm, 'show');
341
- }
342
-
343
- new BrowserUpdate({vs:{i:8,f:7,o:10.01,s:4,n:9}});
344
- };
345
-
346
-
347
- window.addEvent('domready', bhfInit);
348
-
349
- if (document.addEventListener) {
350
- document.addEventListener('page:fetch', function(){
351
- ajaxNote.loading();
352
- });
353
-
354
- document.addEventListener('page:load', function(){
355
- bhfInit();
356
- rails.applyEvents();
357
- ajaxNote.success();
358
- });
359
- }
360
-
361
- var initHelper = function(callback){
362
- var scopedCallback = function(){
363
- callback(document.body);
364
- };
365
- if (document.addEventListener) {
366
- document.addEventListener('page:load', scopedCallback);
367
- }
368
- window.addEvent('domready', scopedCallback);
369
- window.addEvent('platformUpdate', callback);
370
- window.addEvent('quickEditReady', callback);
371
-
372
- };