editorial_logic 1.3.1 → 1.3.2

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.
@@ -1,175 +1,22 @@
1
- (function() {
2
- // Technique from Juriy Zaytsev
3
- // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
4
- function isEventSupported(eventName) {
5
- var el = document.createElement('div');
6
- eventName = 'on' + eventName;
7
- var isSupported = (eventName in el);
8
- if (!isSupported) {
9
- el.setAttribute(eventName, 'return;');
10
- isSupported = typeof el[eventName] == 'function';
11
- }
12
- el = null;
13
- return isSupported;
14
- }
15
-
16
- function isForm(element) {
17
- return Object.isElement(element) && element.nodeName.toUpperCase() == 'FORM'
18
- }
19
-
20
- function isInput(element) {
21
- if (Object.isElement(element)) {
22
- var name = element.nodeName.toUpperCase()
23
- return name == 'INPUT' || name == 'SELECT' || name == 'TEXTAREA'
24
- }
25
- else return false
26
- }
27
-
28
- var submitBubbles = isEventSupported('submit'),
29
- changeBubbles = isEventSupported('change')
30
-
31
- if (!submitBubbles || !changeBubbles) {
32
- // augment the Event.Handler class to observe custom events when needed
33
- Event.Handler.prototype.initialize = Event.Handler.prototype.initialize.wrap(
34
- function(init, element, eventName, selector, callback) {
35
- init(element, eventName, selector, callback)
36
- // is the handler being attached to an element that doesn't support this event?
37
- if ( (!submitBubbles && this.eventName == 'submit' && !isForm(this.element)) ||
38
- (!changeBubbles && this.eventName == 'change' && !isInput(this.element)) ) {
39
- // "submit" => "emulated:submit"
40
- this.eventName = 'emulated:' + this.eventName
41
- }
42
- }
43
- )
44
- }
45
-
46
- if (!submitBubbles) {
47
- // discover forms on the page by observing focus events which always bubble
48
- document.on('focusin', 'form', function(focusEvent, form) {
49
- // special handler for the real "submit" event (one-time operation)
50
- if (!form.retrieve('emulated:submit')) {
51
- form.on('submit', function(submitEvent) {
52
- var emulated = form.fire('emulated:submit', submitEvent, true)
53
- // if custom event received preventDefault, cancel the real one too
54
- if (emulated.returnValue === false) submitEvent.preventDefault()
55
- })
56
- form.store('emulated:submit', true)
57
- }
58
- })
59
- }
60
-
61
- if (!changeBubbles) {
62
- // discover form inputs on the page
63
- document.on('focusin', 'input, select, texarea', function(focusEvent, input) {
64
- // special handler for real "change" events
65
- if (!input.retrieve('emulated:change')) {
66
- input.on('change', function(changeEvent) {
67
- input.fire('emulated:change', changeEvent, true)
68
- })
69
- input.store('emulated:change', true)
70
- }
71
- })
72
- }
73
-
74
- function handleRemote(element) {
75
- var method, url, params;
76
-
77
- var event = element.fire("ajax:before");
78
- if (event.stopped) return false;
79
-
80
- if (element.tagName.toLowerCase() === 'form') {
81
- method = element.readAttribute('method') || 'post';
82
- url = element.readAttribute('action');
83
- params = element.serialize();
84
- } else {
85
- method = element.readAttribute('data-method') || 'get';
86
- url = element.readAttribute('href');
87
- params = {};
88
- }
89
-
90
- new Ajax.Request(url, {
91
- method: method,
92
- parameters: params,
93
- evalScripts: true,
94
-
95
- onComplete: function(request) { element.fire("ajax:complete", request); },
96
- onSuccess: function(request) { element.fire("ajax:success", request); },
97
- onFailure: function(request) { element.fire("ajax:failure", request); }
98
- });
99
-
100
- element.fire("ajax:after");
101
- }
102
-
103
- function handleMethod(element) {
104
- var method = element.readAttribute('data-method'),
105
- url = element.readAttribute('href'),
106
- csrf_param = $$('meta[name=csrf-param]')[0],
107
- csrf_token = $$('meta[name=csrf-token]')[0];
108
-
109
- var form = new Element('form', { method: "POST", action: url, style: "display: none;" });
110
- element.parentNode.insert(form);
111
-
112
- if (method !== 'post') {
113
- var field = new Element('input', { type: 'hidden', name: '_method', value: method });
114
- form.insert(field);
115
- }
116
-
117
- if (csrf_param) {
118
- var param = csrf_param.readAttribute('content'),
119
- token = csrf_token.readAttribute('content'),
120
- field = new Element('input', { type: 'hidden', name: param, value: token });
121
- form.insert(field);
122
- }
123
-
124
- form.submit();
125
- }
126
-
127
-
128
- document.on("click", "*[data-confirm]", function(event, element) {
129
- var message = element.readAttribute('data-confirm');
130
- if (!confirm(message)) event.stop();
131
- });
132
-
133
- document.on("click", "a[data-remote]", function(event, element) {
134
- if (event.stopped) return;
135
- handleRemote(element);
136
- event.stop();
137
- });
138
-
139
- document.on("click", "a[data-method]", function(event, element) {
140
- if (event.stopped) return;
141
- handleMethod(element);
142
- event.stop();
143
- });
144
-
145
- document.on("submit", function(event) {
146
- var element = event.findElement(),
147
- message = element.readAttribute('data-confirm');
148
- if (message && !confirm(message)) {
149
- event.stop();
150
- return false;
151
- }
152
-
153
- var inputs = element.select("input[type=submit][data-disable-with]");
154
- inputs.each(function(input) {
155
- input.disabled = true;
156
- input.writeAttribute('data-original-value', input.value);
157
- input.value = input.readAttribute('data-disable-with');
158
- });
159
-
160
- var element = event.findElement("form[data-remote]");
161
- if (element) {
162
- handleRemote(element);
163
- event.stop();
164
- }
165
- });
166
-
167
- document.on("ajax:after", "form", function(event, element) {
168
- var inputs = element.select("input[type=submit][disabled=true][data-disable-with]");
169
- inputs.each(function(input) {
170
- input.value = input.readAttribute('data-original-value');
171
- input.removeAttribute('data-original-value');
172
- input.disabled = false;
173
- });
174
- });
175
- })();
1
+ (function(){function isEventSupported(eventName){var el=document.createElement('div');eventName='on'+eventName;var isSupported=(eventName in el);if(!isSupported){el.setAttribute(eventName,'return;');isSupported=typeof el[eventName]=='function';}
2
+ el=null;return isSupported;}
3
+ function isForm(element){return Object.isElement(element)&&element.nodeName.toUpperCase()=='FORM'}
4
+ function isInput(element){if(Object.isElement(element)){var name=element.nodeName.toUpperCase()
5
+ return name=='INPUT'||name=='SELECT'||name=='TEXTAREA'}
6
+ else return false}
7
+ var submitBubbles=isEventSupported('submit'),changeBubbles=isEventSupported('change')
8
+ if(!submitBubbles||!changeBubbles){Event.Handler.prototype.initialize=Event.Handler.prototype.initialize.wrap(function(init,element,eventName,selector,callback){init(element,eventName,selector,callback)
9
+ if((!submitBubbles&&this.eventName=='submit'&&!isForm(this.element))||(!changeBubbles&&this.eventName=='change'&&!isInput(this.element))){this.eventName='emulated:'+this.eventName}})}
10
+ if(!submitBubbles){document.on('focusin','form',function(focusEvent,form){if(!form.retrieve('emulated:submit')){form.on('submit',function(submitEvent){var emulated=form.fire('emulated:submit',submitEvent,true)
11
+ if(emulated.returnValue===false)submitEvent.preventDefault()})
12
+ form.store('emulated:submit',true)}})}
13
+ if(!changeBubbles){document.on('focusin','input, select, texarea',function(focusEvent,input){if(!input.retrieve('emulated:change')){input.on('change',function(changeEvent){input.fire('emulated:change',changeEvent,true)})
14
+ input.store('emulated:change',true)}})}
15
+ function handleRemote(element){var method,url,params;var event=element.fire("ajax:before");if(event.stopped)return false;if(element.tagName.toLowerCase()==='form'){method=element.readAttribute('method')||'post';url=element.readAttribute('action');params=element.serialize();}else{method=element.readAttribute('data-method')||'get';url=element.readAttribute('href');params={};}
16
+ new Ajax.Request(url,{method:method,parameters:params,evalScripts:true,onComplete:function(request){element.fire("ajax:complete",request);},onSuccess:function(request){element.fire("ajax:success",request);},onFailure:function(request){element.fire("ajax:failure",request);}});element.fire("ajax:after");}
17
+ function handleMethod(element){var method=element.readAttribute('data-method'),url=element.readAttribute('href'),csrf_param=$$('meta[name=csrf-param]')[0],csrf_token=$$('meta[name=csrf-token]')[0];var form=new Element('form',{method:"POST",action:url,style:"display: none;"});element.parentNode.insert(form);if(method!=='post'){var field=new Element('input',{type:'hidden',name:'_method',value:method});form.insert(field);}
18
+ if(csrf_param){var param=csrf_param.readAttribute('content'),token=csrf_token.readAttribute('content'),field=new Element('input',{type:'hidden',name:param,value:token});form.insert(field);}
19
+ form.submit();}
20
+ document.on("click","*[data-confirm]",function(event,element){var message=element.readAttribute('data-confirm');if(!confirm(message))event.stop();});document.on("click","a[data-remote]",function(event,element){if(event.stopped)return;handleRemote(element);event.stop();});document.on("click","a[data-method]",function(event,element){if(event.stopped)return;handleMethod(element);event.stop();});document.on("submit",function(event){var element=event.findElement(),message=element.readAttribute('data-confirm');if(message&&!confirm(message)){event.stop();return false;}
21
+ var inputs=element.select("input[type=submit][data-disable-with]");inputs.each(function(input){input.disabled=true;input.writeAttribute('data-original-value',input.value);input.value=input.readAttribute('data-disable-with');});var element=event.findElement("form[data-remote]");if(element){handleRemote(element);event.stop();}});document.on("ajax:after","form",function(event,element){var inputs=element.select("input[type=submit][disabled=true][data-disable-with]");inputs.each(function(input){input.value=input.readAttribute('data-original-value');input.removeAttribute('data-original-value');input.disabled=false;});});Ajax.Responders.register({onCreate:function(request){var csrf_meta_tag=$$('meta[name=csrf-token]')[0];if(csrf_meta_tag){var header='X-CSRF-Token',token=csrf_meta_tag.readAttribute('content');if(!request.options.requestHeaders){request.options.requestHeaders={};}
22
+ request.options.requestHeaders[header]=token;}}});})();
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: editorial_logic
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
- - 1
10
- version: 1.3.1
9
+ - 2
10
+ version: 1.3.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bantik
@@ -184,7 +184,6 @@ extra_rdoc_files: []
184
184
  files:
185
185
  - .document
186
186
  - .rspec
187
- - Capfile
188
187
  - Gemfile
189
188
  - Rakefile
190
189
  - VERSION
@@ -243,7 +242,6 @@ files:
243
242
  - config/environments/development.rb
244
243
  - config/environments/production.rb
245
244
  - config/environments/test.rb
246
- - config/initializers/ckeditor.rb
247
245
  - config/initializers/metric_fu.rb
248
246
  - config/initializers/secret_token.rb
249
247
  - config/initializers/session_store.rb
@@ -272,10 +270,6 @@ files:
272
270
  - lib/editorial_logic/railtie.rb
273
271
  - lib/tasks/cucumber.rake
274
272
  - lib/tasks/rcov.rake
275
- - misc/images/src/black_bar.psd
276
- - misc/images/src/branding.psd
277
- - misc/images/src/legend_bg.psd
278
- - misc/images/src/menu_icons.psd
279
273
  - public/404.html
280
274
  - public/422.html
281
275
  - public/500.html
data/Capfile DELETED
@@ -1,4 +0,0 @@
1
- load 'deploy' if respond_to?(:namespace) # cap2 differentiator
2
- Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
3
-
4
- load 'config/deploy' # remove this line to skip loading any of the default tasks
@@ -1,54 +0,0 @@
1
- # Use this hook to configure ckeditor
2
- if Object.const_defined?("Ckeditor")
3
- Ckeditor.setup do |config|
4
- # The file_post_name allows you to set the value name used to post the file.
5
- # This is not related to the file name. The default value is 'data'.
6
- # For maximum compatibility it is recommended that the default value is used.
7
- #config.swf_file_post_name = "data"
8
-
9
- # A text description that is displayed to the user in the File Browser dialog.
10
- #config.swf_file_types_description = "Files"
11
-
12
- # The file_types setting accepts a semi-colon separated list of file extensions
13
- # that are allowed to be selected by the user. Use '*.*' to allow all file types.
14
- #config.swf_file_types = "*.doc;*.wpd;*.pdf;*.swf;*.xls"
15
-
16
- # The file_size_limit setting defines the maximum allowed size of a file to be uploaded.
17
- # This setting accepts a value and unit. Valid units are B, KB, MB and GB.
18
- # If the unit is omitted default is KB. A value of 0 (zero) is interpreted as unlimited.
19
- # Note: This setting only applies to the user's browser. It does not affect any settings or limits on the web server.
20
- #config.swf_file_size_limit = "10 MB"
21
-
22
- # Defines the number of files allowed to be uploaded by SWFUpload.
23
- # This setting also sets the upper bound of the file_queue_limit setting.
24
- # Once the user has uploaded or queued the maximum number of files she will
25
- # no longer be able to queue additional files. The value of 0 (zero) is interpreted as unlimited.
26
- # Only successful uploads (uploads the trigger the uploadSuccess event) are counted toward the upload limit.
27
- # The setStats function can be used to modify the number of successful uploads.
28
- # Note: This value is not tracked across pages and is reset when a page is refreshed.
29
- # File quotas should be managed by the web server.
30
- #config.swf_file_upload_limit = 5
31
-
32
- # The same as for downloads files, only to upload images
33
- #config.swf_image_file_types_description = "Images"
34
- #config.swf_image_file_types = "*.jpg;*.jpeg;*.png;*.gif"
35
- #config.swf_image_file_size_limit = "5 MB"
36
- #config.swf_image_file_upload_limit = 10
37
-
38
- # Path for view all uploaded files
39
- #config.file_manager_uri = "/ckeditor/files"
40
-
41
- # Path for upload files process
42
- #config.file_manager_upload_uri = "/ckeditor/create/file"
43
-
44
- # Path for view all uploaded images
45
- #config.file_manager_image_uri = "/ckeditor/images"
46
-
47
- # Path for upload images process
48
- #config.file_manager_image_upload_uri = "/ckeditor/create/image"
49
-
50
- # Model's names witch processing in ckeditor_controller
51
- #config.file_manager_image_model = "Ckeditor::Picture"
52
- #config.file_manager_file_model = "Ckeditor::AttachmentFile"
53
- end
54
- end
Binary file
Binary file
Binary file
Binary file