proclaim 0.5.6 → 0.6.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 +5 -5
- data/Rakefile +5 -38
- data/app/assets/config/proclaim_manifest.js +2 -0
- data/app/assets/images/{ajax_loader.gif → proclaim/ajax_loader.gif} +0 -0
- data/app/assets/javascripts/proclaim.js +7 -7
- data/app/assets/javascripts/proclaim/{comments_handler.js.coffee → comments_handler.coffee} +16 -10
- data/app/assets/javascripts/proclaim/editor.coffee +55 -0
- data/app/assets/stylesheets/{proclaim.css.scss → proclaim.scss} +7 -8
- data/app/assets/stylesheets/proclaim/{comments.css.scss → comments.scss} +0 -0
- data/app/assets/stylesheets/proclaim/{posts.css.scss → posts.scss} +60 -25
- data/app/assets/stylesheets/proclaim/{subscriptions.css.scss → subscriptions.scss} +0 -0
- data/app/controllers/proclaim/application_controller.rb +60 -56
- data/app/controllers/proclaim/comments_controller.rb +13 -42
- data/app/controllers/proclaim/posts_controller.rb +25 -57
- data/app/controllers/proclaim/subscriptions_controller.rb +3 -3
- data/app/jobs/proclaim/application_job.rb +4 -0
- data/app/mailers/proclaim/application_mailer.rb +5 -0
- data/app/mailers/proclaim/subscription_mailer.rb +19 -17
- data/app/models/proclaim/application_record.rb +5 -0
- data/app/models/proclaim/comment.rb +6 -1
- data/app/models/proclaim/post.rb +20 -28
- data/app/models/proclaim/subscription.rb +33 -11
- data/app/views/layouts/proclaim/subscription_mailer.html.erb +15 -36
- data/app/views/proclaim/comments/_comment.html.erb +7 -7
- data/app/views/proclaim/comments/_form.html.erb +7 -5
- data/app/views/proclaim/posts/_form.html.erb +34 -21
- data/app/views/proclaim/posts/show.html.erb +16 -3
- data/app/views/proclaim/subscription_mailer/welcome_email.html.erb +2 -6
- data/config/initializers/friendly_id.rb +20 -1
- data/config/routes.rb +1 -5
- data/db/migrate/20141108222616_create_proclaim_posts.rb +8 -1
- data/db/migrate/20141114235359_create_proclaim_comments.rb +1 -1
- data/db/migrate/20141115022230_create_proclaim_comment_hierarchies.rb +1 -1
- data/db/migrate/20141210234057_create_proclaim_subscriptions.rb +5 -4
- data/db/migrate/20150213015321_create_friendly_id_slugs.rb +1 -1
- data/lib/generators/proclaim/install_generator.rb +1 -1
- data/lib/generators/proclaim/templates/initialize_proclaim.rb +31 -29
- data/lib/generators/proclaim/views_generator.rb +1 -1
- data/lib/proclaim.rb +15 -15
- data/lib/proclaim/engine.rb +21 -19
- data/lib/proclaim/version.rb +1 -1
- data/vendor/assets/fonts/KaTeX_AMS-Regular.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_AMS-Regular.woff +0 -0
- data/vendor/assets/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Main-Bold.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Main-Bold.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Main-Bold.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Main-Italic.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Main-Italic.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Main-Italic.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Main-Regular.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Main-Regular.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Main-Regular.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Math-Italic.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Math-Italic.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Math-Italic.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- data/vendor/assets/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- data/vendor/assets/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- data/vendor/assets/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Script-Regular.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Script-Regular.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Script-Regular.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Size1-Regular.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Size1-Regular.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Size2-Regular.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Size2-Regular.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Size3-Regular.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Size3-Regular.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Size4-Regular.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Size4-Regular.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- data/vendor/assets/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- data/vendor/assets/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- data/vendor/assets/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- data/vendor/assets/javascripts/contrib/auto-render.js +339 -0
- data/vendor/assets/javascripts/contrib/auto-render.min.js +1 -0
- data/vendor/assets/javascripts/contrib/auto-render.mjs +215 -0
- data/vendor/assets/javascripts/contrib/copy-tex.css +14 -0
- data/vendor/assets/javascripts/contrib/copy-tex.js +213 -0
- data/vendor/assets/javascripts/contrib/copy-tex.min.css +1 -0
- data/vendor/assets/javascripts/contrib/copy-tex.min.js +1 -0
- data/vendor/assets/javascripts/contrib/copy-tex.mjs +85 -0
- data/vendor/assets/javascripts/contrib/mathtex-script-type.js +137 -0
- data/vendor/assets/javascripts/contrib/mathtex-script-type.min.js +1 -0
- data/vendor/assets/javascripts/contrib/mathtex-script-type.mjs +24 -0
- data/vendor/assets/javascripts/contrib/mhchem.js +3241 -0
- data/vendor/assets/javascripts/contrib/mhchem.min.js +1 -0
- data/vendor/assets/javascripts/contrib/mhchem.mjs +3109 -0
- data/vendor/assets/javascripts/katex.js +16517 -0
- data/vendor/assets/javascripts/katex.min.js +1 -0
- data/vendor/assets/javascripts/katex.mjs +16122 -0
- data/vendor/assets/javascripts/quill.core.js +8522 -0
- data/vendor/assets/javascripts/quill.js +11489 -0
- data/vendor/assets/javascripts/quill.min.js +8 -0
- data/vendor/assets/javascripts/quill.min.js.map +1 -0
- data/vendor/assets/stylesheets/katex.css +1011 -0
- data/vendor/assets/stylesheets/katex.min.css +1 -0
- data/vendor/assets/stylesheets/quill.bubble.css +952 -0
- data/vendor/assets/stylesheets/quill.core.css +397 -0
- data/vendor/assets/stylesheets/quill.snow.css +945 -0
- metadata +169 -278
- data/CHANGELOG +0 -77
- data/Gemfile +0 -14
- data/VERSION +0 -1
- data/app/assets/javascripts/proclaim/editor.js.coffee +0 -52
- data/app/assets/javascripts/proclaim/images.js.coffee +0 -3
- data/app/assets/javascripts/proclaim/subscriptions.js.coffee +0 -3
- data/app/assets/stylesheets/proclaim/images.scss +0 -3
- data/app/controllers/proclaim/images_controller.rb +0 -67
- data/app/helpers/proclaim/comments_helper.rb +0 -4
- data/app/helpers/proclaim/images_helper.rb +0 -4
- data/app/helpers/proclaim/subscriptions_helper.rb +0 -4
- data/app/models/proclaim/image.rb +0 -19
- data/app/policies/proclaim/image_policy.rb +0 -29
- data/app/uploaders/proclaim/image_uploader.rb +0 -82
- data/db/migrate/20141222224905_create_proclaim_images.rb +0 -12
- data/db/migrate/20150123115226_add_name_to_subscriptions.rb +0 -7
- data/db/migrate/20150213015850_add_slug_to_posts.rb +0 -20
- data/proclaim.gemspec +0 -51
- data/test/controllers/proclaim/comments_controller_test.rb +0 -228
- data/test/controllers/proclaim/images_controller_test.rb +0 -166
- data/test/controllers/proclaim/posts_controller_test.rb +0 -465
- data/test/controllers/proclaim/subscriptions_controller_test.rb +0 -154
- data/test/dummy/README.rdoc +0 -28
- data/test/dummy/Rakefile +0 -6
- data/test/dummy/app/assets/javascripts/application.js +0 -14
- data/test/dummy/app/assets/stylesheets/application.css +0 -16
- data/test/dummy/app/controllers/application_controller.rb +0 -15
- data/test/dummy/app/helpers/application_helper.rb +0 -28
- data/test/dummy/app/models/user.rb +0 -7
- data/test/dummy/app/views/layouts/application.html.erb +0 -16
- data/test/dummy/bin/bundle +0 -3
- data/test/dummy/bin/rails +0 -4
- data/test/dummy/bin/rake +0 -4
- data/test/dummy/config.ru +0 -4
- data/test/dummy/config/application.rb +0 -24
- data/test/dummy/config/boot.rb +0 -5
- data/test/dummy/config/database.yml +0 -25
- data/test/dummy/config/environment.rb +0 -5
- data/test/dummy/config/environments/development.rb +0 -45
- data/test/dummy/config/environments/production.rb +0 -80
- data/test/dummy/config/environments/test.rb +0 -49
- data/test/dummy/config/initializers/assets.rb +0 -8
- data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/test/dummy/config/initializers/cookies_serializer.rb +0 -3
- data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/dummy/config/initializers/inflections.rb +0 -16
- data/test/dummy/config/initializers/mime_types.rb +0 -4
- data/test/dummy/config/initializers/session_store.rb +0 -3
- data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/test/dummy/config/locales/en.yml +0 -23
- data/test/dummy/config/routes.rb +0 -5
- data/test/dummy/config/secrets.yml +0 -22
- data/test/dummy/db/migrate/20141117214323_create_users.rb +0 -10
- data/test/dummy/db/schema.rb +0 -91
- data/test/dummy/public/404.html +0 -67
- data/test/dummy/public/422.html +0 -67
- data/test/dummy/public/500.html +0 -66
- data/test/dummy/public/favicon.ico +0 -0
- data/test/factories/proclaim/comment.rb +0 -11
- data/test/factories/proclaim/image.rb +0 -6
- data/test/factories/proclaim/post.rb +0 -14
- data/test/factories/proclaim/subscription.rb +0 -14
- data/test/factories/user.rb +0 -6
- data/test/helpers/proclaim/comments_helper_test.rb +0 -6
- data/test/helpers/proclaim/posts_helper_test.rb +0 -6
- data/test/helpers/proclaim/subscriptions_helper_test.rb +0 -6
- data/test/integration/with_javascript/comment_test.rb +0 -391
- data/test/integration/with_javascript/post_form_test.rb +0 -225
- data/test/integration/with_javascript/post_show_test.rb +0 -47
- data/test/integration/with_javascript/post_subscription_test.rb +0 -302
- data/test/integration/without_javascript/blog_subscription_test.rb +0 -114
- data/test/integration/without_javascript/manage_subscriptions_test.rb +0 -37
- data/test/integration/without_javascript/post_test.rb +0 -234
- data/test/integration/without_javascript/subscription_email_test.rb +0 -95
- data/test/integration/without_javascript/unsubscribe_test.rb +0 -32
- data/test/mailers/previews/proclaim/subscription_mailer_preview.rb +0 -22
- data/test/mailers/proclaim/subscription_mailer_test.rb +0 -91
- data/test/models/proclaim/comment_test.rb +0 -41
- data/test/models/proclaim/image_test.rb +0 -70
- data/test/models/proclaim/post_test.rb +0 -193
- data/test/models/proclaim/subscription_test.rb +0 -77
- data/test/policies/application_policy_test.rb +0 -87
- data/test/policies/proclaim/comment_policy_test.rb +0 -71
- data/test/policies/proclaim/image_policy_test.rb +0 -83
- data/test/policies/proclaim/post_policy_test.rb +0 -98
- data/test/policies/proclaim/subscription_policy_test.rb +0 -103
- data/test/proclaim_test.rb +0 -7
- data/test/support/images/test.jpg +0 -0
- data/test/support/pages/posts/edit_page.rb +0 -5
- data/test/support/pages/posts/show_page.rb +0 -47
- data/test/support/wait_for_ajax.rb +0 -11
- data/test/test_helper.rb +0 -71
- data/test/unit/proclaim/new_comment_callback_test.rb +0 -62
- data/test/unit/proclaim/new_subscription_callback_test.rb +0 -62
- data/test/unit/proclaim/post_published_callback_test.rb +0 -74
- data/vendor/assets/images/link.png +0 -0
- data/vendor/assets/images/remove.png +0 -0
- data/vendor/assets/images/resize-bigger.png +0 -0
- data/vendor/assets/images/resize-smaller.png +0 -0
- data/vendor/assets/images/unlink.png +0 -0
- data/vendor/assets/javascripts/addons/medium-editor-insert-embeds.js +0 -197
- data/vendor/assets/javascripts/addons/medium-editor-insert-images.js +0 -572
- data/vendor/assets/javascripts/addons/medium-editor-insert-maps.js +0 -50
- data/vendor/assets/javascripts/addons/medium-editor-insert-plugin.js +0 -496
- data/vendor/assets/javascripts/addons/medium-editor-insert-tables.js +0 -132
- data/vendor/assets/javascripts/medium-editor-insert-plugin.all.js +0 -1415
- data/vendor/assets/stylesheets/medium-editor-insert-plugin-frontend.css.scss +0 -55
- data/vendor/assets/stylesheets/medium-editor-insert-plugin.css.scss +0 -277
data/CHANGELOG
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
v 0.5.6
|
|
2
|
-
- Refactor json responses in controllers
|
|
3
|
-
- Add a few more corner-case tests
|
|
4
|
-
|
|
5
|
-
v 0.5.5
|
|
6
|
-
- Add comment count to Post index
|
|
7
|
-
|
|
8
|
-
v 0.5.4
|
|
9
|
-
- Integrate with Travis CI, Sauce Labs, and Code Climate
|
|
10
|
-
|
|
11
|
-
v 0.5.3
|
|
12
|
-
- Fixed bug causing initial slugs to not be generated
|
|
13
|
-
|
|
14
|
-
v 0.5.2
|
|
15
|
-
- Fixed broken migration adding slugs to posts
|
|
16
|
-
|
|
17
|
-
v 0.5.1
|
|
18
|
-
- Fixed bad post body placeholder
|
|
19
|
-
|
|
20
|
-
v 0.5.0
|
|
21
|
-
- Fixed bug causing possible blank excerpt
|
|
22
|
-
- Make post URLs more friendly (backward-compatible)
|
|
23
|
-
|
|
24
|
-
v 0.4.0
|
|
25
|
-
- Added media query to emails for better display on mobile devices
|
|
26
|
-
- Added callbacks as a way for main app to be notified of new posts,
|
|
27
|
-
comments, or subscriptions. Configured in initializer
|
|
28
|
-
- Fixed bug where email field didn't hide after successful comment
|
|
29
|
-
- Added ability to administer subscriptions
|
|
30
|
-
- Added page titles for each Proclaim page
|
|
31
|
-
- Removed the use of calc from mailer layout
|
|
32
|
-
|
|
33
|
-
v 0.3.1
|
|
34
|
-
- Fixed bug causing floated images to display improperly in emails
|
|
35
|
-
- Added link to emails to view post online
|
|
36
|
-
|
|
37
|
-
v 0.3.0
|
|
38
|
-
- Implemented sanitization for post body, using lists of allowed HTML tags and
|
|
39
|
-
attributes that can be customized via initializer
|
|
40
|
-
|
|
41
|
-
v 0.2.4
|
|
42
|
-
- Added simple format to comments, to preserve line breaks
|
|
43
|
-
|
|
44
|
-
v 0.2.3
|
|
45
|
-
- Fixed inability to set "from" field in emails sent from Proclaim
|
|
46
|
-
|
|
47
|
-
v 0.2.2
|
|
48
|
-
- Fixed post titles showing HTML entities
|
|
49
|
-
- Fixed posts index to show published time instead of updated time
|
|
50
|
-
|
|
51
|
-
v 0.2.1
|
|
52
|
-
- Fixed out-of-date initializer template
|
|
53
|
-
|
|
54
|
-
v 0.2.0
|
|
55
|
-
- Added ability to alter the buttons shown on editor toolbar
|
|
56
|
-
- Upgraded to Medium Editor 2.0.0
|
|
57
|
-
- Fix image toolbar's missing icons in production
|
|
58
|
-
- Edit/Delete buttons on post show page
|
|
59
|
-
- Posts ordered by publication date
|
|
60
|
-
|
|
61
|
-
v 0.1.3
|
|
62
|
-
- Fixed incorrect foreign keys
|
|
63
|
-
|
|
64
|
-
v 0.1.2
|
|
65
|
-
- Fixed spacing around image on post show
|
|
66
|
-
- Added Ruby version requirement to gemspec
|
|
67
|
-
|
|
68
|
-
v 0.1.1
|
|
69
|
-
- Fixed post form that was too wide to upload images
|
|
70
|
-
- Fixed views generator missing email layout
|
|
71
|
-
|
|
72
|
-
v 0.1.0
|
|
73
|
-
- Added medium editor to post form, using Carrierwave for image uploads
|
|
74
|
-
- Added subscriptions to both the blog and posts (i.e. subscribe to be
|
|
75
|
-
notified of new posts or new comments on a given post)
|
|
76
|
-
- Added comments to posts
|
|
77
|
-
- Added posts
|
data/Gemfile
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
source "https://rubygems.org"
|
|
2
|
-
|
|
3
|
-
# Declare your gem's dependencies in proclaim.gemspec.
|
|
4
|
-
# Bundler will treat runtime dependencies like base dependencies, and
|
|
5
|
-
# development dependencies will be added by default to the :development group.
|
|
6
|
-
gemspec
|
|
7
|
-
|
|
8
|
-
# Declare any dependencies that are still in development here instead of in
|
|
9
|
-
# your gemspec. These might include edge Rails or gems from your path or
|
|
10
|
-
# Git. Remember to move these dependencies to your gemspec before releasing
|
|
11
|
-
# your gem to rubygems.org.
|
|
12
|
-
|
|
13
|
-
# To use debugger
|
|
14
|
-
# gem 'debugger'
|
data/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.5.6
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
class Editor
|
|
2
|
-
constructor: (@form, @titleFormField, @titleEditableItem,
|
|
3
|
-
@bodyFormField, @bodyEditableItem, @toolbarButtons) ->
|
|
4
|
-
if (@form.length == 1) and (@titleFormField.length == 1) and
|
|
5
|
-
(@titleEditableItem.length == 1) and (@bodyFormField.length == 1) and
|
|
6
|
-
(@bodyEditableItem.length == 1)
|
|
7
|
-
imageUploadPath = @bodyEditableItem.data("image-upload-path")
|
|
8
|
-
imageDeletePath = @bodyEditableItem.data("image-delete-path")
|
|
9
|
-
|
|
10
|
-
if (imageUploadPath.length > 0) and (imageDeletePath.length > 0)
|
|
11
|
-
@bodyEditor = new MediumEditor(@bodyEditableItem, {
|
|
12
|
-
buttonLabels: 'fontawesome',
|
|
13
|
-
buttons: @toolbarButtons
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
@titleEditor = new MediumEditor(@titleEditableItem)
|
|
17
|
-
|
|
18
|
-
@bodyEditableItem.mediumInsert({
|
|
19
|
-
editor: @bodyEditor,
|
|
20
|
-
addons: {
|
|
21
|
-
images: {
|
|
22
|
-
imagesUploadScript: imageUploadPath,
|
|
23
|
-
imagesDeleteScript: imageDeletePath,
|
|
24
|
-
deleteFile: (file, that) =>
|
|
25
|
-
$.post that.options.imagesDeleteScript, {file: file}, (data, status, jqxhr) =>
|
|
26
|
-
if data.id
|
|
27
|
-
@form.append('<input type="hidden" name="post[images_attributes][' + data.id + '][id]" value="' + data.id + '" />')
|
|
28
|
-
@form.append('<input type="hidden" name="post[images_attributes][' + data.id + '][_destroy]" value="true" />')
|
|
29
|
-
, "json"
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
})
|
|
33
|
-
|
|
34
|
-
@cleanBindings()
|
|
35
|
-
@addBindings()
|
|
36
|
-
else
|
|
37
|
-
console.error("Missing image upload and/or image delete paths for body editor!")
|
|
38
|
-
else
|
|
39
|
-
console.error("Invalid length for editable items or form fields!")
|
|
40
|
-
|
|
41
|
-
addBindings: ->
|
|
42
|
-
@form.on "submit", @updateFormFields
|
|
43
|
-
|
|
44
|
-
cleanBindings: ->
|
|
45
|
-
@form.off "submit"
|
|
46
|
-
|
|
47
|
-
updateFormFields: (event) =>
|
|
48
|
-
@titleFormField.val(@titleEditor.serialize()["element-0"].value)
|
|
49
|
-
@bodyFormField.val(@bodyEditor.serialize()["element-0"].value)
|
|
50
|
-
|
|
51
|
-
# Make available to other scripts
|
|
52
|
-
@Editor = Editor
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
require_dependency "proclaim/application_controller"
|
|
2
|
-
|
|
3
|
-
module Proclaim
|
|
4
|
-
class ImagesController < ApplicationController
|
|
5
|
-
after_action :verify_authorized
|
|
6
|
-
|
|
7
|
-
def create
|
|
8
|
-
@image = Image.new(post_id: image_params[:post_id])
|
|
9
|
-
|
|
10
|
-
handleJsonRequest(@image,
|
|
11
|
-
operation: lambda {@image.save},
|
|
12
|
-
success_json: lambda {@image.image.url}) do
|
|
13
|
-
@image.image = image_params[:image]
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def cache
|
|
18
|
-
@image = Image.new
|
|
19
|
-
|
|
20
|
-
handleJsonRequest(@image, success_json: lambda {@image.image.url}) do
|
|
21
|
-
@image.image = file_params[:file]
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def discard
|
|
26
|
-
url = file_params[:file]
|
|
27
|
-
image_id = nil
|
|
28
|
-
|
|
29
|
-
# Is this a cached image?
|
|
30
|
-
if (url.include? Proclaim::ImageUploader.cache_dir)
|
|
31
|
-
# If so, retrieve it from the cache
|
|
32
|
-
@image = Image.new
|
|
33
|
-
@image.image.retrieve_from_cache!(cache_name_from_url(url))
|
|
34
|
-
else
|
|
35
|
-
# If not, retrieve it from the database
|
|
36
|
-
image_id, image_name = image_id_and_name_from_url(url)
|
|
37
|
-
@image = Image.find(image_id)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
handleJsonRequest(@image, success_json: {id: image_id}) do
|
|
41
|
-
if @image.new_record?
|
|
42
|
-
@image.image.remove!
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def destroy
|
|
48
|
-
@image = Image.find(params[:id])
|
|
49
|
-
|
|
50
|
-
handleJsonRequest(@image) do
|
|
51
|
-
@image.destroy
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
private
|
|
56
|
-
|
|
57
|
-
# Only allow a trusted parameter "white list" through.
|
|
58
|
-
def image_params
|
|
59
|
-
params.require(:image).permit(:post_id,
|
|
60
|
-
:image)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def file_params
|
|
64
|
-
params.permit(:file)
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# == Schema Information
|
|
2
|
-
#
|
|
3
|
-
# Table name: proclaim_images
|
|
4
|
-
#
|
|
5
|
-
# id :integer not null, primary key
|
|
6
|
-
# post_id :integer
|
|
7
|
-
# image :string
|
|
8
|
-
# created_at :datetime not null
|
|
9
|
-
# updated_at :datetime not null
|
|
10
|
-
#
|
|
11
|
-
|
|
12
|
-
module Proclaim
|
|
13
|
-
class Image < ActiveRecord::Base
|
|
14
|
-
belongs_to :post, inverse_of: :images
|
|
15
|
-
mount_uploader :image, ImageUploader
|
|
16
|
-
|
|
17
|
-
validates_presence_of :post, :image
|
|
18
|
-
end
|
|
19
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module Proclaim
|
|
2
|
-
class ImagePolicy < ApplicationPolicy
|
|
3
|
-
def cache?
|
|
4
|
-
create?
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
def create?
|
|
8
|
-
not @user.nil? # As long as there's a user, it can create images
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def discard?
|
|
12
|
-
destroy?
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def destroy?
|
|
16
|
-
not @user.nil? # As long as there's a user, it can destroy images
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
class Scope < Scope
|
|
20
|
-
def resolve
|
|
21
|
-
if @user
|
|
22
|
-
scope.all # Users can access all images
|
|
23
|
-
else
|
|
24
|
-
scope.none
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
module Proclaim
|
|
3
|
-
class ImageUploader < CarrierWave::Uploader::Base
|
|
4
|
-
before :remove, :backup_cache_id
|
|
5
|
-
after :remove, :delete_cache_directory
|
|
6
|
-
after :remove, :delete_store_directory
|
|
7
|
-
|
|
8
|
-
# Include RMagick or MiniMagick support:
|
|
9
|
-
# include CarrierWave::RMagick
|
|
10
|
-
# include CarrierWave::MiniMagick
|
|
11
|
-
|
|
12
|
-
# Choose what kind of storage to use for this uploader:
|
|
13
|
-
storage :file
|
|
14
|
-
# storage :fog
|
|
15
|
-
|
|
16
|
-
# Override the directory where uploaded files will be stored.
|
|
17
|
-
# This is a sensible default for uploaders that are meant to be mounted:
|
|
18
|
-
def store_dir
|
|
19
|
-
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# Provide a default URL as a default if there hasn't been a file uploaded:
|
|
23
|
-
# def default_url
|
|
24
|
-
# # For Rails 3.1+ asset pipeline compatibility:
|
|
25
|
-
# # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
|
|
26
|
-
#
|
|
27
|
-
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
|
28
|
-
# end
|
|
29
|
-
|
|
30
|
-
# Process files as they are uploaded:
|
|
31
|
-
# process :scale => [200, 300]
|
|
32
|
-
#
|
|
33
|
-
# def scale(width, height)
|
|
34
|
-
# # do something
|
|
35
|
-
# end
|
|
36
|
-
|
|
37
|
-
# Create different versions of your uploaded files:
|
|
38
|
-
# version :thumb do
|
|
39
|
-
# process :resize_to_fit => [50, 50]
|
|
40
|
-
# end
|
|
41
|
-
|
|
42
|
-
# Add a white list of extensions which are allowed to be uploaded.
|
|
43
|
-
# For images you might use something like this:
|
|
44
|
-
# def extension_white_list
|
|
45
|
-
# %w(jpg jpeg gif png)
|
|
46
|
-
# end
|
|
47
|
-
|
|
48
|
-
# Override the filename of the uploaded files:
|
|
49
|
-
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
|
50
|
-
# def filename
|
|
51
|
-
# "something.jpg" if original_filename
|
|
52
|
-
# end
|
|
53
|
-
|
|
54
|
-
private
|
|
55
|
-
|
|
56
|
-
def backup_cache_id
|
|
57
|
-
@cache_id_was = cache_id
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def delete_cache_directory
|
|
61
|
-
@cache_id = @cache_id_was
|
|
62
|
-
delete_cache_id
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def delete_store_directory
|
|
66
|
-
store_path = store_dir
|
|
67
|
-
if Pathname.new(store_dir).relative?
|
|
68
|
-
store_path = File.expand_path(store_dir, CarrierWave.root)
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
begin
|
|
72
|
-
Dir.rmdir(store_path)
|
|
73
|
-
rescue Errno::ENOENT
|
|
74
|
-
# Ignore: path does not exist
|
|
75
|
-
rescue Errno::ENOTDIR
|
|
76
|
-
# Ignore: path is not a dir
|
|
77
|
-
rescue Errno::ENOTEMPTY, Errno::EEXIST
|
|
78
|
-
# Ignore: dir is not empty
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
class CreateProclaimImages < ActiveRecord::Migration
|
|
2
|
-
def change
|
|
3
|
-
create_table :proclaim_images do |t|
|
|
4
|
-
t.belongs_to :post, index: true
|
|
5
|
-
t.string :image
|
|
6
|
-
|
|
7
|
-
t.timestamps null: false
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
add_foreign_key :proclaim_images, :proclaim_posts, column: :post_id
|
|
11
|
-
end
|
|
12
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
class AddSlugToPosts < ActiveRecord::Migration
|
|
2
|
-
def change
|
|
3
|
-
change_table :proclaim_posts do |t|
|
|
4
|
-
t.string :slug
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
# This ensures that even if two clients try to create the same
|
|
8
|
-
# post slug at exactly the same time, the database won't accept
|
|
9
|
-
# one of them (Rails would have)
|
|
10
|
-
add_index :proclaim_posts, :slug, unique: true
|
|
11
|
-
|
|
12
|
-
reversible do |direction|
|
|
13
|
-
direction.up do
|
|
14
|
-
print "Generating slugs for existing posts... "
|
|
15
|
-
Proclaim::Post.find_each(&:save)
|
|
16
|
-
puts "done."
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
data/proclaim.gemspec
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
$:.push File.expand_path("../lib", __FILE__)
|
|
2
|
-
|
|
3
|
-
require "proclaim/version"
|
|
4
|
-
|
|
5
|
-
Gem::Specification.new do |s|
|
|
6
|
-
s.name = "proclaim"
|
|
7
|
-
s.version = Proclaim::VERSION
|
|
8
|
-
s.authors = ["Kyle Fazzari"]
|
|
9
|
-
s.email = ["proclaim@status.e4ward.com"]
|
|
10
|
-
s.homepage = "https://github.com/kyle-f/proclaim"
|
|
11
|
-
s.summary = "A Rails blogging engine that simplifies your life."
|
|
12
|
-
s.description = <<-EOF
|
|
13
|
-
Most Rails blogging tools include everything you could ever want,
|
|
14
|
-
including things you don't. Proclaim tries to provide the simplest (yet
|
|
15
|
-
beautiful) implementation of a blog via a mountable engine; if more
|
|
16
|
-
functionality is desired, it can easily be combined with other engines.
|
|
17
|
-
EOF
|
|
18
|
-
s.license = "GPLv3"
|
|
19
|
-
|
|
20
|
-
s.files = Dir["{app,config,db,lib,vendor,test}/**/*", "LICENSE", "Rakefile", "README.md", "Gemfile", "proclaim.gemspec", "CHANGELOG", "VERSION"]
|
|
21
|
-
s.test_files = Dir["test/**/*"]
|
|
22
|
-
|
|
23
|
-
s.required_ruby_version = '>= 1.9.3'
|
|
24
|
-
|
|
25
|
-
s.add_dependency "rails", "~> 4.2"
|
|
26
|
-
s.add_dependency "coffee-rails", "~> 4.1"
|
|
27
|
-
s.add_dependency "sass-rails", "~> 5.0"
|
|
28
|
-
s.add_dependency "jquery-rails", "~> 4.0"
|
|
29
|
-
s.add_dependency "htmlentities", "~> 4.3"
|
|
30
|
-
s.add_dependency "friendly_id", "~> 5.1"
|
|
31
|
-
s.add_dependency "nokogiri", "~> 1.6"
|
|
32
|
-
s.add_dependency "premailer", "~> 1.8"
|
|
33
|
-
s.add_dependency "closure_tree", "~> 5.2"
|
|
34
|
-
s.add_dependency "font-awesome-rails", "~> 4.3"
|
|
35
|
-
s.add_dependency "medium-editor-rails", "~> 2.0"
|
|
36
|
-
s.add_dependency "carrierwave", "~> 0.10"
|
|
37
|
-
s.add_dependency "aasm", "~> 4.2"
|
|
38
|
-
s.add_dependency "rails-timeago", "~> 2.12"
|
|
39
|
-
s.add_dependency "pundit", "~> 1.0"
|
|
40
|
-
|
|
41
|
-
s.add_development_dependency "sqlite3", "~> 1.3"
|
|
42
|
-
s.add_development_dependency "factory_girl_rails", "~> 4.5"
|
|
43
|
-
s.add_development_dependency "mocha", "~> 1.1"
|
|
44
|
-
s.add_development_dependency "annotate", "~> 2.6"
|
|
45
|
-
s.add_development_dependency "capybara", "~> 2.4"
|
|
46
|
-
s.add_development_dependency "selenium-webdriver", "~> 2.46"
|
|
47
|
-
s.add_development_dependency "database_cleaner", "~> 1.4"
|
|
48
|
-
s.add_development_dependency "faker", "~> 1.4"
|
|
49
|
-
s.add_development_dependency "test_after_commit", "~> 0.4"
|
|
50
|
-
s.add_development_dependency "codeclimate-test-reporter", "~> 0.4"
|
|
51
|
-
end
|