adminpanel 2.1.7 → 2.2.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +11 -3
- data/Gemfile +3 -27
- data/adminpanel.gemspec +24 -23
- data/app/assets/images/adminpanel/loguito.png +0 -0
- data/app/assets/javascripts/adminpanel/bootstrap-wysihtml5-4pre.js +120 -120
- data/app/assets/javascripts/adminpanel/spinner.js.coffee +6 -6
- data/app/assets/stylesheets/adminpanel/bootstrap-wysihtml5.css +21 -75
- data/app/controllers/adminpanel/analytics_controller.rb +34 -2
- data/app/controllers/adminpanel/application_controller.rb +7 -6
- data/app/controllers/adminpanel/categories_controller.rb +0 -1
- data/app/controllers/adminpanel/galleries_controller.rb +0 -1
- data/app/controllers/adminpanel/permissions_controller.rb +14 -0
- data/app/controllers/adminpanel/rols_controller.rb +10 -0
- data/app/controllers/adminpanel/sections_controller.rb +11 -14
- data/app/controllers/adminpanel/sessions_controller.rb +45 -11
- data/app/controllers/adminpanel/users_controller.rb +2 -4
- data/app/controllers/concerns/adminpanel/analytics/instagram_analytics.rb +31 -0
- data/app/controllers/concerns/adminpanel/analytics/twitter_analytics.rb +25 -0
- data/app/controllers/concerns/adminpanel/facebook_actions.rb +7 -5
- data/app/controllers/concerns/adminpanel/rest_actions.rb +12 -0
- data/app/controllers/concerns/adminpanel/twitter_actions.rb +40 -0
- data/app/helpers/adminpanel/adminpanel_form_builder.rb +21 -14
- data/app/helpers/adminpanel/analytics_helper.rb +22 -2
- data/app/helpers/adminpanel/application_helper.rb +2 -2
- data/app/helpers/adminpanel/breadcrumbs_helper.rb +8 -6
- data/app/helpers/adminpanel/router_helper.rb +4 -0
- data/app/helpers/adminpanel/sessions_helper.rb +2 -2
- data/app/helpers/adminpanel/shared_pages_helper.rb +3 -3
- data/{lib/generators/adminpanel/initialize/templates → app/models}/ability.rb +18 -6
- data/app/models/adminpanel/analytic.rb +1 -0
- data/app/models/adminpanel/auth.rb +4 -1
- data/app/models/adminpanel/permission.rb +52 -0
- data/app/models/adminpanel/rol.rb +35 -0
- data/app/models/adminpanel/user.rb +8 -8
- data/app/models/concerns/adminpanel/base.rb +4 -0
- data/app/models/concerns/adminpanel/facebook.rb +1 -1
- data/app/models/concerns/adminpanel/twitter.rb +27 -0
- data/app/views/adminpanel/analytics/{_widget_task_statistics.html.erb → _fb_statistic_widget.html.erb} +0 -0
- data/app/views/adminpanel/analytics/_header.html.erb +8 -2
- data/app/views/adminpanel/analytics/_instagram_details_modal.html.erb +55 -0
- data/app/views/adminpanel/analytics/_instagram_media.html.erb +25 -0
- data/app/views/adminpanel/analytics/_tweet.html.erb +32 -0
- data/app/views/adminpanel/analytics/_twitter_reply_modal.html.erb +41 -0
- data/app/views/adminpanel/analytics/fb.html.erb +6 -6
- data/app/views/adminpanel/analytics/instagram.html.erb +65 -0
- data/app/views/adminpanel/analytics/twitter.html.erb +89 -0
- data/app/views/adminpanel/sections/edit.html.erb +2 -5
- data/app/views/layouts/_side_menu.html.erb +3 -3
- data/app/views/layouts/admin.html.erb +2 -2
- data/app/views/shared/_delete_icon_button.html.erb +1 -1
- data/app/views/shared/_edit_icon_button.html.erb +1 -1
- data/app/views/shared/_fb_icon_button.html.erb +1 -1
- data/app/views/shared/_form_fields.html.erb +1 -1
- data/app/views/shared/_new_resource_button.html.erb +1 -2
- data/app/views/shared/_twitter_icon_button.html.erb +26 -0
- data/app/views/shared/_twitter_publish_modal.html.erb +40 -0
- data/app/views/shared/index.html.erb +5 -3
- data/app/views/shared/show.html.erb +7 -3
- data/config/initializers/twitter-oauth.rb +15 -0
- data/config/locales/en.yml +1 -1
- data/config/locales/es.yml +20 -1
- data/config/routes.rb +25 -5
- data/lib/adminpanel.rb +3 -0
- data/lib/adminpanel/engine.rb +19 -5
- data/lib/adminpanel/version.rb +1 -1
- data/lib/generators/adminpanel/initialize/initialize_generator.rb +0 -11
- data/lib/generators/adminpanel/initialize/templates/adminpanel_setup.rb +12 -0
- data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +74 -46
- data/lib/generators/adminpanel/resource/resource_generator_helper.rb +1 -1
- data/lib/generators/adminpanel/resource/templates/adminpanel_resource_template.rb +1 -1
- data/lib/tasks/adminpanel/adminpanel.rake +5 -5
- data/test/dummy/app/models/adminpanel/item.rb +1 -1
- data/test/dummy/app/models/adminpanel/mug.rb +1 -0
- data/test/dummy/app/models/adminpanel/photo.rb +4 -0
- data/test/dummy/app/models/adminpanel/product.rb +7 -1
- data/test/dummy/app/models/adminpanel/salesman.rb +1 -0
- data/test/dummy/app/views/layouts/application.html.erb +0 -1
- data/test/dummy/db/schema.rb +9 -2
- data/test/dummy/test/fixtures/adminpanel/permissions.yml +42 -0
- data/test/dummy/test/fixtures/adminpanel/rols.yml +28 -0
- data/test/dummy/test/fixtures/adminpanel/salesmen.yml +1 -0
- data/test/dummy/test/fixtures/adminpanel/users.yml +49 -1
- data/test/features/shared/resource/index_test.rb +1 -0
- data/test/features/shared/ui/action_exclution_test.rb +1 -0
- data/test/helpers/breadcrumbs_helper_test.rb +34 -0
- data/test/helpers/router_helper_test.rb +21 -0
- data/test/helpers/shared_pages_helper_test.rb +35 -0
- data/test/models/ability_test.rb +52 -0
- data/test/models/adminpanel/gallery_test.rb +0 -2
- data/test/models/adminpanel/user_test.rb +1 -1
- data/test/support/shared_database.rb +11 -0
- data/test/support/view_case.rb +34 -0
- data/test/tasks/adminpanel_rake_test.rb +5 -2
- data/test/test_helper.rb +1 -41
- metadata +191 -200
- data/app/assets/javascripts/adminpanel/jquery.facybox.js +0 -395
- data/app/assets/stylesheets/adminpanel/facybox.css +0 -146
- data/app/models/adminpanel/group.rb +0 -6
- data/test/dummy/Rakefile +0 -7
- data/test/dummy/app/models/ability.rb +0 -31
- data/test/dummy/test/fixtures/adminpanel/groups.yml +0 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f84a209292db49342941725abd3f75e4f12c3058
|
|
4
|
+
data.tar.gz: 41a69bde0bfab0a8b24bee98a6ca75564966a51e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 20fdceadae757d3108d236257263300231dda0f5ef36814e03bbadea1d39ad571fb986858080efacfbe9d3fd4e89be064b3aff62430eb9d8c3219d940a9da6d9
|
|
7
|
+
data.tar.gz: 2214f3c49105376a9397952a80384ed292a116064fd1dce0248d4796c4ae5d0874c19e414feb5f0b318bc02a2aa44c3c489a5ca73063b7a70ce984447f239e24
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -1,32 +1,8 @@
|
|
|
1
1
|
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
# gemspec
|
|
5
|
-
|
|
6
|
-
gem 'rails', '>= 4.0.0', '<= 4.1.1'
|
|
7
|
-
gem 'carrierwave', '~> 0.10.0'
|
|
8
|
-
gem 'rmagick', '2.13.2', require: false
|
|
9
|
-
gem 'jquery-rails', '~> 3.1.0'
|
|
10
|
-
gem 'bcrypt', '~> 3.1.7'
|
|
11
|
-
gem 'rails-i18n', '~> 4.0.2'
|
|
12
|
-
gem 'inherited_resources', '~> 1.4.1'
|
|
13
|
-
gem 'google-api-client', '~> 0.7.1'
|
|
14
|
-
gem 'cancancan', '>= 1.7.1', '<= 1.8'
|
|
15
|
-
gem 'faker', '>= 1.3.0'
|
|
16
|
-
gem 'turbolinks', '>= 2.2.2'
|
|
17
|
-
gem 'font-awesome-rails', '>= 4.0.3.1'
|
|
18
|
-
gem 'koala', '>= 1.9.0', '<= 2.0.0'
|
|
3
|
+
gemspec :development_group => :test
|
|
19
4
|
|
|
20
5
|
group :assets do
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
group :development, :test do
|
|
26
|
-
gem 'minitest', '>= 5.3.4', '<= 6.0.0'
|
|
27
|
-
gem 'sqlite3', '>= 1.3.9', '<= 2.0.0', :platform => [:ruby, :mswin, :mingw]
|
|
28
|
-
gem 'minitest-emoji', '2.0.0'
|
|
29
|
-
gem 'minitest-capybara', '>= 0.6.1', '<= 1.0.0'
|
|
30
|
-
# gem 'mocha'
|
|
31
|
-
gem 'poltergeist', '>= 1.5.1', '<= 2.0.0'
|
|
6
|
+
gem 'sass-rails', '~> 4.0'
|
|
7
|
+
gem 'coffee-rails', '~> 4.0.1'
|
|
32
8
|
end
|
data/adminpanel.gemspec
CHANGED
|
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
|
8
8
|
spec.version = Adminpanel::VERSION
|
|
9
9
|
spec.authors = ['Jose Ramon Camacho', 'Victor Camacho']
|
|
10
10
|
spec.email = ['info@codn.mx']
|
|
11
|
-
spec.description = %q{Gem that makes the CMS for a site a breeze!, supports facebook sharing and analytics integration}
|
|
11
|
+
spec.description = %q{Gem that makes the CMS for a site a breeze!, supports facebook sharing, twitter, instagram and analytics integration}
|
|
12
12
|
spec.summary = %q{Made with <3 by CoDN}
|
|
13
13
|
spec.homepage = 'https://github.com/joseramonc/adminpanel'
|
|
14
14
|
spec.license = 'MIT'
|
|
@@ -20,29 +20,30 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
|
|
21
21
|
spec.required_ruby_version = '>= 2.0.0'
|
|
22
22
|
|
|
23
|
-
spec.requirements << 'rmagick, v 2.13.2'
|
|
23
|
+
spec.requirements << 'rmagick, -v 2.13.2'
|
|
24
24
|
|
|
25
|
-
spec.add_runtime_dependency 'rails',
|
|
26
|
-
spec.add_runtime_dependency '
|
|
27
|
-
spec.add_runtime_dependency '
|
|
28
|
-
spec.add_runtime_dependency '
|
|
29
|
-
spec.add_runtime_dependency '
|
|
30
|
-
spec.add_runtime_dependency '
|
|
31
|
-
spec.add_runtime_dependency '
|
|
32
|
-
spec.add_runtime_dependency '
|
|
33
|
-
spec.add_runtime_dependency '
|
|
34
|
-
spec.add_runtime_dependency '
|
|
35
|
-
spec.add_runtime_dependency '
|
|
36
|
-
spec.add_runtime_dependency '
|
|
37
|
-
spec.add_runtime_dependency '
|
|
38
|
-
spec.add_runtime_dependency '
|
|
39
|
-
spec.add_runtime_dependency 'coffee-script', '>= 2.2.0', '<= 3.0.0'
|
|
25
|
+
spec.add_runtime_dependency 'rails', '>= 4.0.0','<= 4.1.4'
|
|
26
|
+
spec.add_runtime_dependency 'rmagick', '2.13.2'
|
|
27
|
+
spec.add_runtime_dependency 'bcrypt', '~> 3.1', '>= 3.1.7'
|
|
28
|
+
spec.add_runtime_dependency 'carrierwave', '~> 0.10', '>= 0.10.0'
|
|
29
|
+
spec.add_runtime_dependency 'rails-i18n', '~> 4.0'
|
|
30
|
+
spec.add_runtime_dependency 'inherited_resources', '~> 1.5'
|
|
31
|
+
spec.add_runtime_dependency 'cancancan', '~> 1.8'
|
|
32
|
+
spec.add_runtime_dependency 'google-api-client', '0.7.1'
|
|
33
|
+
spec.add_runtime_dependency 'faker', '~> 1.3', '>= 1.3.0'
|
|
34
|
+
spec.add_runtime_dependency 'font-awesome-rails', '~> 4.1', '>= 4.1.0'
|
|
35
|
+
spec.add_runtime_dependency 'koala', '1.9.0'
|
|
36
|
+
spec.add_runtime_dependency 'twitter', '5.11.0'
|
|
37
|
+
spec.add_runtime_dependency 'omniauth-twitter', '1.0.1'
|
|
38
|
+
spec.add_runtime_dependency 'instagram', '1.1.1'
|
|
40
39
|
|
|
41
|
-
spec.add_development_dependency '
|
|
42
|
-
spec.add_development_dependency '
|
|
43
|
-
|
|
44
|
-
spec.add_development_dependency '
|
|
40
|
+
spec.add_development_dependency 'jquery-rails', '~> 3.0.0', '>= 3.0.0'
|
|
41
|
+
spec.add_development_dependency 'turbolinks', '~> 2.2.2', '>= 2.2.2'
|
|
42
|
+
|
|
43
|
+
spec.add_development_dependency 'sqlite3', '~> 1.3', '1.3.9'
|
|
44
|
+
spec.add_development_dependency 'minitest', '5.3.5'
|
|
45
|
+
spec.add_development_dependency 'minitest-emoji', '2.0.0'
|
|
46
|
+
spec.add_development_dependency 'minitest-capybara','~> 0.7', '>= 0.7.1'
|
|
45
47
|
# spec.add_development_dependency 'mocha'
|
|
46
|
-
spec.add_development_dependency 'poltergeist',
|
|
47
|
-
# spec.add_development_dependency 'minitest-debugger'
|
|
48
|
+
spec.add_development_dependency 'poltergeist', '~> 1.5', '>= 1.5.1'
|
|
48
49
|
end
|
|
Binary file
|
|
@@ -3244,143 +3244,143 @@ rangy.createModule("DomUtil", function(api, module) {
|
|
|
3244
3244
|
});
|
|
3245
3245
|
});
|
|
3246
3246
|
/*
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3247
|
+
Base.js, version 1.1a
|
|
3248
|
+
Copyright 2006-2010, Dean Edwards
|
|
3249
|
+
License: http://www.opensource.org/licenses/mit-license.php
|
|
3250
3250
|
*/
|
|
3251
3251
|
|
|
3252
3252
|
var Base = function() {
|
|
3253
|
-
|
|
3253
|
+
// dummy
|
|
3254
3254
|
};
|
|
3255
3255
|
|
|
3256
3256
|
Base.extend = function(_instance, _static) { // subclass
|
|
3257
|
-
|
|
3257
|
+
var extend = Base.prototype.extend;
|
|
3258
3258
|
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
|
|
3262
|
-
|
|
3259
|
+
// build the prototype
|
|
3260
|
+
Base._prototyping = true;
|
|
3261
|
+
var proto = new this;
|
|
3262
|
+
extend.call(proto, _instance);
|
|
3263
3263
|
proto.base = function() {
|
|
3264
3264
|
// call this method from any other method to invoke that method's ancestor
|
|
3265
3265
|
};
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3297
|
-
|
|
3266
|
+
delete Base._prototyping;
|
|
3267
|
+
|
|
3268
|
+
// create the wrapper for the constructor function
|
|
3269
|
+
//var constructor = proto.constructor.valueOf(); //-dean
|
|
3270
|
+
var constructor = proto.constructor;
|
|
3271
|
+
var klass = proto.constructor = function() {
|
|
3272
|
+
if (!Base._prototyping) {
|
|
3273
|
+
if (this._constructing || this.constructor == klass) { // instantiation
|
|
3274
|
+
this._constructing = true;
|
|
3275
|
+
constructor.apply(this, arguments);
|
|
3276
|
+
delete this._constructing;
|
|
3277
|
+
} else if (arguments[0] != null) { // casting
|
|
3278
|
+
return (arguments[0].extend || extend).call(arguments[0], proto);
|
|
3279
|
+
}
|
|
3280
|
+
}
|
|
3281
|
+
};
|
|
3282
|
+
|
|
3283
|
+
// build the class interface
|
|
3284
|
+
klass.ancestor = this;
|
|
3285
|
+
klass.extend = this.extend;
|
|
3286
|
+
klass.forEach = this.forEach;
|
|
3287
|
+
klass.implement = this.implement;
|
|
3288
|
+
klass.prototype = proto;
|
|
3289
|
+
klass.toString = this.toString;
|
|
3290
|
+
klass.valueOf = function(type) {
|
|
3291
|
+
//return (type == "object") ? klass : constructor; //-dean
|
|
3292
|
+
return (type == "object") ? klass : constructor.valueOf();
|
|
3293
|
+
};
|
|
3294
|
+
extend.call(klass, _static);
|
|
3295
|
+
// class initialisation
|
|
3296
|
+
if (typeof klass.init == "function") klass.init();
|
|
3297
|
+
return klass;
|
|
3298
3298
|
};
|
|
3299
3299
|
|
|
3300
3300
|
Base.prototype = {
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
-
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3328
|
-
|
|
3329
|
-
|
|
3330
|
-
|
|
3331
|
-
|
|
3332
|
-
|
|
3333
|
-
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
|
|
3346
|
-
|
|
3347
|
-
|
|
3348
|
-
|
|
3301
|
+
extend: function(source, value) {
|
|
3302
|
+
if (arguments.length > 1) { // extending with a name/value pair
|
|
3303
|
+
var ancestor = this[source];
|
|
3304
|
+
if (ancestor && (typeof value == "function") && // overriding a method?
|
|
3305
|
+
// the valueOf() comparison is to avoid circular references
|
|
3306
|
+
(!ancestor.valueOf || ancestor.valueOf() != value.valueOf()) &&
|
|
3307
|
+
/\bbase\b/.test(value)) {
|
|
3308
|
+
// get the underlying method
|
|
3309
|
+
var method = value.valueOf();
|
|
3310
|
+
// override
|
|
3311
|
+
value = function() {
|
|
3312
|
+
var previous = this.base || Base.prototype.base;
|
|
3313
|
+
this.base = ancestor;
|
|
3314
|
+
var returnValue = method.apply(this, arguments);
|
|
3315
|
+
this.base = previous;
|
|
3316
|
+
return returnValue;
|
|
3317
|
+
};
|
|
3318
|
+
// point to the underlying method
|
|
3319
|
+
value.valueOf = function(type) {
|
|
3320
|
+
return (type == "object") ? value : method;
|
|
3321
|
+
};
|
|
3322
|
+
value.toString = Base.toString;
|
|
3323
|
+
}
|
|
3324
|
+
this[source] = value;
|
|
3325
|
+
} else if (source) { // extending with an object literal
|
|
3326
|
+
var extend = Base.prototype.extend;
|
|
3327
|
+
// if this object has a customised extend method then use it
|
|
3328
|
+
if (!Base._prototyping && typeof this != "function") {
|
|
3329
|
+
extend = this.extend || extend;
|
|
3330
|
+
}
|
|
3331
|
+
var proto = {toSource: null};
|
|
3332
|
+
// do the "toString" and other methods manually
|
|
3333
|
+
var hidden = ["constructor", "toString", "valueOf"];
|
|
3334
|
+
// if we are prototyping then include the constructor
|
|
3335
|
+
var i = Base._prototyping ? 0 : 1;
|
|
3336
|
+
while (key = hidden[i++]) {
|
|
3337
|
+
if (source[key] != proto[key]) {
|
|
3338
|
+
extend.call(this, key, source[key]);
|
|
3339
|
+
|
|
3340
|
+
}
|
|
3341
|
+
}
|
|
3342
|
+
// copy each of the source object's properties to this object
|
|
3343
|
+
for (var key in source) {
|
|
3344
|
+
if (!proto[key]) extend.call(this, key, source[key]);
|
|
3345
|
+
}
|
|
3346
|
+
}
|
|
3347
|
+
return this;
|
|
3348
|
+
}
|
|
3349
3349
|
};
|
|
3350
3350
|
|
|
3351
3351
|
// initialise
|
|
3352
3352
|
Base = Base.extend({
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3353
|
+
constructor: function() {
|
|
3354
|
+
this.extend(arguments[0]);
|
|
3355
|
+
}
|
|
3356
3356
|
}, {
|
|
3357
|
-
|
|
3358
|
-
|
|
3359
|
-
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
|
|
3364
|
-
|
|
3365
|
-
|
|
3366
|
-
|
|
3367
|
-
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3357
|
+
ancestor: Object,
|
|
3358
|
+
version: "1.1",
|
|
3359
|
+
|
|
3360
|
+
forEach: function(object, block, context) {
|
|
3361
|
+
for (var key in object) {
|
|
3362
|
+
if (this.prototype[key] === undefined) {
|
|
3363
|
+
block.call(context, object[key], key, object);
|
|
3364
|
+
}
|
|
3365
|
+
}
|
|
3366
|
+
},
|
|
3367
|
+
|
|
3368
|
+
implement: function() {
|
|
3369
|
+
for (var i = 0; i < arguments.length; i++) {
|
|
3370
|
+
if (typeof arguments[i] == "function") {
|
|
3371
|
+
// if it's a function, call it
|
|
3372
|
+
arguments[i](this.prototype);
|
|
3373
|
+
} else {
|
|
3374
|
+
// add the interface using the extend method
|
|
3375
|
+
this.prototype.extend(arguments[i]);
|
|
3376
|
+
}
|
|
3377
|
+
}
|
|
3378
|
+
return this;
|
|
3379
|
+
},
|
|
3380
|
+
|
|
3381
|
+
toString: function() {
|
|
3382
|
+
return String(this.valueOf());
|
|
3383
|
+
}
|
|
3384
3384
|
});/**
|
|
3385
3385
|
* Detect browser support for specific features
|
|
3386
3386
|
*/
|
|
@@ -9457,7 +9457,7 @@ wysihtml5.views.Textarea = wysihtml5.views.View.extend(
|
|
|
9457
9457
|
// Array (or single string) of stylesheet urls to be loaded in the editor's iframe
|
|
9458
9458
|
stylesheets: [],
|
|
9459
9459
|
// Placeholder text to use, defaults to the placeholder attribute on the textarea element
|
|
9460
|
-
placeholderText:
|
|
9460
|
+
placeholderText: 'Lorem ipsum dolor sit amec',
|
|
9461
9461
|
// Whether the rich text editor should be rendered on touch devices (wysihtml5 >= 0.3.0 comes with basic support for iOS 5)
|
|
9462
9462
|
supportTouchDevices: true
|
|
9463
9463
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
$(document).on 'click', 'a.
|
|
1
|
+
$(document).on 'click', 'a.spinner-link', ->
|
|
2
2
|
$( this ).attr 'data-clicked', true
|
|
3
3
|
|
|
4
4
|
$(document).on 'page:fetch', ->
|
|
5
|
-
$('a.
|
|
6
|
-
$('a.
|
|
5
|
+
$('a.spinner-link[data-clicked="true"]').children('i:first').toggleClass('hidden')
|
|
6
|
+
$('a.spinner-link[data-clicked="true"]').prepend '<i class="fa fa-spinner fa-spin"></i>'
|
|
7
7
|
|
|
8
8
|
$(document).on 'page:restore', ->
|
|
9
|
-
$('a.
|
|
10
|
-
$('a.
|
|
11
|
-
$('a.
|
|
9
|
+
$('a.spinner-link[data-clicked="true"]').children('i:first').remove()
|
|
10
|
+
$('a.spinner-link[data-clicked="true"]').children('i:first').toggleClass 'hidden'
|
|
11
|
+
$('a.spinner-link[data-clicked="true"]').data 'clicked', false
|
|
@@ -1,102 +1,48 @@
|
|
|
1
1
|
ul.wysihtml5-toolbar {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
margin: 0;
|
|
3
|
+
padding: 0;
|
|
4
|
+
display: block;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
ul.wysihtml5-toolbar::after {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
clear: both;
|
|
9
|
+
display: table;
|
|
10
|
+
content: "";
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
ul.wysihtml5-toolbar > li {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
float: left;
|
|
15
|
+
display: list-item;
|
|
16
|
+
list-style: none;
|
|
17
|
+
margin: 0 5px 10px 0;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
ul.wysihtml5-toolbar a[data-wysihtml5-command=bold] {
|
|
21
|
-
|
|
21
|
+
font-weight: bold;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
ul.wysihtml5-toolbar a[data-wysihtml5-command=italic] {
|
|
25
|
-
|
|
25
|
+
font-style: italic;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
ul.wysihtml5-toolbar a[data-wysihtml5-command=underline] {
|
|
29
|
-
|
|
29
|
+
text-decoration: underline;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
ul.wysihtml5-toolbar a.btn.wysihtml5-command-active {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
background-image: none;
|
|
34
|
+
-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);
|
|
35
|
+
-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);
|
|
36
|
+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);
|
|
37
|
+
background-color: #E6E6E6;
|
|
38
|
+
background-color: #D9D9D9;
|
|
39
|
+
outline: 0;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
ul.wysihtml5-commands-disabled .dropdown-menu {
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
ul.wysihtml5-toolbar div.wysihtml5-colors {
|
|
47
|
-
display:block;
|
|
48
|
-
width: 50px;
|
|
49
|
-
height: 20px;
|
|
50
|
-
margin-top: 2px;
|
|
51
|
-
margin-left: 5px;
|
|
52
|
-
position: absolute;
|
|
53
|
-
pointer-events: none;
|
|
43
|
+
display: none !important;
|
|
54
44
|
}
|
|
55
45
|
|
|
56
46
|
ul.wysihtml5-toolbar a.wysihtml5-colors-title {
|
|
57
47
|
padding-left: 70px;
|
|
58
48
|
}
|
|
59
|
-
|
|
60
|
-
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="black"] {
|
|
61
|
-
background: black !important;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="silver"] {
|
|
65
|
-
background: silver !important;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="gray"] {
|
|
69
|
-
background: gray !important;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="maroon"] {
|
|
73
|
-
background: maroon !important;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="red"] {
|
|
77
|
-
background: red !important;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="purple"] {
|
|
81
|
-
background: purple !important;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="green"] {
|
|
85
|
-
background: green !important;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="olive"] {
|
|
89
|
-
background: olive !important;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="navy"] {
|
|
93
|
-
background: navy !important;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="blue"] {
|
|
97
|
-
background: blue !important;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="orange"] {
|
|
101
|
-
background: orange !important;
|
|
102
|
-
}
|