blog_logic 0.7.6 → 0.7.7
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.
- data/Gemfile +1 -1
- data/VERSION +1 -1
- data/app/models/ckeditor/asset.rb +0 -2
- data/app/views/layouts/application.html.erb +0 -6
- data/blog_logic.gemspec +5 -7
- data/config/environments/development.rb +0 -1
- data/config/initializers/formats.rb +1 -1
- data/config/initializers/metric_fu.rb +1 -1
- data/config/initializers/secret_token.rb +1 -7
- data/config/initializers/session_store.rb +1 -8
- data/public/javascripts/controls.js +62 -965
- data/public/javascripts/dragdrop.js +65 -973
- data/public/javascripts/effects.js +38 -1123
- data/public/javascripts/prototype.js +541 -6001
- data/public/javascripts/rails.js +22 -191
- metadata +8 -12
- data/config/initializers/ckeditor.rb +0 -54
- data/public/javascripts/application.js +0 -2
data/public/javascripts/rails.js
CHANGED
@@ -1,191 +1,22 @@
|
|
1
|
-
(function() {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
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
|
-
|
176
|
-
Ajax.Responders.register({
|
177
|
-
onCreate: function(request) {
|
178
|
-
var csrf_meta_tag = $$('meta[name=csrf-token]')[0];
|
179
|
-
|
180
|
-
if (csrf_meta_tag) {
|
181
|
-
var header = 'X-CSRF-Token',
|
182
|
-
token = csrf_meta_tag.readAttribute('content');
|
183
|
-
|
184
|
-
if (!request.options.requestHeaders) {
|
185
|
-
request.options.requestHeaders = {};
|
186
|
-
}
|
187
|
-
request.options.requestHeaders[header] = token;
|
188
|
-
}
|
189
|
-
}
|
190
|
-
});
|
191
|
-
})();
|
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: blog_logic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 7
|
9
|
-
-
|
10
|
-
version: 0.7.
|
9
|
+
- 7
|
10
|
+
version: 0.7.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Bantik
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-08-
|
18
|
+
date: 2011-08-31 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -33,19 +33,17 @@ dependencies:
|
|
33
33
|
type: :runtime
|
34
34
|
version_requirements: *id001
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
name: carrierwave
|
36
|
+
name: carrierwave-mongoid
|
37
37
|
prerelease: false
|
38
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
|
-
- -
|
41
|
+
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
hash:
|
43
|
+
hash: 3
|
44
44
|
segments:
|
45
45
|
- 0
|
46
|
-
|
47
|
-
- 7
|
48
|
-
version: 0.5.7
|
46
|
+
version: "0"
|
49
47
|
type: :runtime
|
50
48
|
version_requirements: *id002
|
51
49
|
- !ruby/object:Gem::Dependency
|
@@ -242,7 +240,6 @@ files:
|
|
242
240
|
- config/environments/development.rb
|
243
241
|
- config/environments/production.rb
|
244
242
|
- config/environments/test.rb
|
245
|
-
- config/initializers/ckeditor.rb
|
246
243
|
- config/initializers/formats.rb
|
247
244
|
- config/initializers/metric_fu.rb
|
248
245
|
- config/initializers/secret_token.rb
|
@@ -322,7 +319,6 @@ files:
|
|
322
319
|
- public/images/menu_icons/blog_on.png
|
323
320
|
- public/images/menu_icons/blog_posts.png
|
324
321
|
- public/images/menu_icons/blog_posts_on.png
|
325
|
-
- public/javascripts/application.js
|
326
322
|
- public/javascripts/ckeditor/.htaccess
|
327
323
|
- public/javascripts/ckeditor/CHANGES.html
|
328
324
|
- public/javascripts/ckeditor/INSTALL.html
|
@@ -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
|