redditor 0.1.10 → 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -2
  3. data/Gemfile +2 -1
  4. data/README.md +17 -3
  5. data/app/assets/images/redditor/big/image.png +0 -0
  6. data/app/assets/images/redditor/big/slider.png +0 -0
  7. data/app/assets/images/redditor/big/text.png +0 -0
  8. data/app/assets/images/redditor/big/video.png +0 -0
  9. data/app/assets/javascripts/redditor/init.coffee +149 -0
  10. data/app/assets/javascripts/{fileapi → redditor}/uploader.coffee +18 -18
  11. data/app/assets/javascripts/redditor.js.coffee +3 -0
  12. data/app/assets/stylesheets/{redditor/redditor.css.scss → redditor.scss} +70 -24
  13. data/app/controllers/redditor/admin/image_blocks_controller.rb +4 -4
  14. data/app/controllers/redditor/admin/images_controller.rb +1 -1
  15. data/app/controllers/redditor/admin/slider_blocks_controller.rb +3 -3
  16. data/app/controllers/redditor/admin/text_blocks_controller.rb +3 -3
  17. data/app/controllers/redditor/admin/video_blocks_controller.rb +3 -3
  18. data/app/helpers/redditor/application_helper.rb +7 -0
  19. data/app/views/redditor/admin/_content_block.haml +35 -0
  20. data/app/views/redditor/admin/{pages/_image.haml → _image.haml} +5 -5
  21. data/app/views/redditor/admin/{pages/_page.haml → _page.haml} +2 -3
  22. data/app/views/redditor/admin/_slider_block.haml +16 -0
  23. data/app/views/redditor/admin/{pages/_slider_block_image.haml → _slider_block_image.haml} +0 -0
  24. data/app/views/redditor/admin/_text_block.haml +5 -0
  25. data/app/views/redditor/admin/{pages/_validate.haml → _validate.haml} +1 -1
  26. data/app/views/redditor/admin/{pages/_video_block.haml → _video_block.haml} +2 -2
  27. data/app/views/redditor/admin/_wrapper.haml +3 -0
  28. data/app/views/redditor/admin/new.js.erb +5 -0
  29. data/app/views/redditor/admin/slider_block_image.js.coffee +2 -0
  30. data/app/views/redditor/admin/wrapper.js.coffee +5 -0
  31. data/app/views/redditor/images/_image.html.haml +1 -1
  32. data/app/views/redditor/slider_blocks/_slider_block_image.html.haml +1 -1
  33. data/config/locales/redditor.ru.yml +1 -1
  34. data/lib/redditor/engine.rb +1 -2
  35. data/lib/redditor/version.rb +1 -1
  36. data/redditor.gemspec +2 -9
  37. data/spec/dummy/app/assets/images/redactor/icons.png +0 -0
  38. data/spec/dummy/app/assets/images/redactor/plugins/file.html +3 -0
  39. data/spec/dummy/app/assets/images/redactor/plugins/image.html +39 -0
  40. data/spec/dummy/app/assets/images/redactor/plugins/image_edit.html +35 -0
  41. data/spec/dummy/app/assets/images/redactor/plugins/link.html +74 -0
  42. data/spec/dummy/app/assets/images/redactor/plugins/table.html +25 -0
  43. data/spec/dummy/app/assets/images/redactor/plugins/video.html +15 -0
  44. data/spec/dummy/app/assets/javascripts/application.js +10 -2
  45. data/spec/dummy/app/assets/javascripts/jquery-migrate-1.2.1.js +521 -0
  46. data/spec/dummy/app/assets/javascripts/redactor/langs/en.js +76 -0
  47. data/spec/dummy/app/assets/javascripts/redactor/langs/ru.js +75 -0
  48. data/spec/dummy/app/assets/javascripts/redactor/redactor.js.erb +2248 -0
  49. data/spec/dummy/app/assets/javascripts/redactor/toolbars/default.js +219 -0
  50. data/{app/assets/stylesheets/redditor → spec/dummy/app/assets/stylesheets}/application.css.scss +3 -8
  51. data/spec/dummy/app/assets/stylesheets/redactor/redactor.css.scss +369 -0
  52. data/spec/dummy/app/assets/stylesheets/redactor/wym.css +136 -0
  53. data/spec/dummy/app/controllers/articles_controller.rb +9 -0
  54. data/spec/dummy/app/views/admin/articles/edit.html.haml +1 -1
  55. data/spec/dummy/app/views/articles/show.html.haml +1 -1
  56. data/spec/dummy/app/views/layouts/application.html.erb +1 -1
  57. data/spec/features/text_spec.rb +3 -3
  58. data/spec/generators/views_generator_spec.rb +1 -1
  59. metadata +57 -114
  60. data/app/assets/javascripts/jquery-ui.min.js +0 -12
  61. data/app/assets/javascripts/redditor/application.js +0 -14
  62. data/app/assets/javascripts/redditor/redditor.coffee +0 -151
  63. data/app/helpers/redditor/fileapi_helper.rb +0 -17
  64. data/app/helpers/redditor/pages_helper.rb +0 -24
  65. data/app/models/redditor/content_block.rb +0 -24
  66. data/app/views/redditor/admin/pages/_content_block.haml +0 -37
  67. data/app/views/redditor/admin/pages/_slider_block.haml +0 -16
  68. data/app/views/redditor/admin/pages/_text_block.haml +0 -5
  69. data/app/views/redditor/admin/pages/_wrap_dd.haml +0 -1
  70. data/app/views/redditor/admin/pages/_wrapper.haml +0 -3
  71. data/app/views/redditor/admin/pages/new.js.coffee +0 -7
  72. data/app/views/redditor/admin/pages/new.js.erb +0 -7
  73. data/app/views/redditor/admin/pages/slider_block_image.js.coffee +0 -2
  74. data/app/views/redditor/admin/pages/wrapper.js.coffee +0 -6
  75. data/spec/dummy/app/assets/stylesheets/application.css +0 -13
@@ -1,9 +1,8 @@
1
1
  = f.fields_for :page, f.object.page do |p|
2
2
 
3
3
  - unless f.object.new_record?
4
- %dl.redditor{data: {"sort-url" => url_for(redditor.sort_admin_page_path(p.object))}}
5
- - p.object.content_blocks.each do |content_block|
6
- = render partial: "redditor/admin/pages/content_block", locals: {p: p, page: p.object, content_block: content_block}, :layout => "redditor/admin/pages/wrap_dd"
4
+ %dl#redditor.redditor{data: {"sort-url" => url_for(redditor.sort_admin_page_path(p.object))}}
5
+ = render partial: "redditor/admin/content_block", collection: p.object.content_blocks, locals: {p: p, page: p.object}
7
6
 
8
7
  %div.redditor__add-blocks
9
8
  %p
@@ -0,0 +1,16 @@
1
+ .redditor__title.redditor__title_slider
2
+ = t 'redditor.title.slider'
3
+ = redditor_validate f
4
+
5
+ .redditor__sep
6
+
7
+ - unless f.object.new_record?
8
+ %ul.slider-block-images{data: {"sortable-url" => redditor.sort_admin_page_slider_block_images_path(f.object.page_id, f.object.id)}}
9
+ = render partial: "redditor/admin/slider_block_image", collection: f.object.images, :as => :i
10
+
11
+ .redditor__sep
12
+
13
+ - unless f.object.new_record?
14
+ .b-button.js-fileapi-wrapper
15
+ .b-button__text= t("redditor.add.upload_images")
16
+ = file_field_tag :src, :class => "b-button__input redditor__js-fileapi", name: nil, :multiple => true, data: {"upload-url" => redditor.admin_page_slider_block_images_path(f.object.page_id, f.object.id)}
@@ -0,0 +1,5 @@
1
+ .redditor__title.redditor__title_text
2
+ = t 'redditor.title.text'
3
+ = redditor_validate f
4
+
5
+ = f.text_area :body, size: "25x15", class: "redditor__textarea"
@@ -1,4 +1,4 @@
1
1
  - if f.object.errors.any?
2
- %ol.validate
2
+ %ol.redditor__validate
3
3
  - f.object.errors.full_messages.each do |msg|
4
4
  %li= msg
@@ -1,7 +1,7 @@
1
- .tit-form
1
+ .redditor__title.redditor__title_video
2
2
  = t 'redditor.title.video'
3
- = image_tag 'redditor/add_video_big.png'
4
3
  = redditor_validate f
4
+
5
5
  - if f.object.youtube.present?
6
6
  %iframe(width="#{f.object.width || "100%"}" height="#{f.object.height || 315}" src="http://www.youtube.com/embed/#{f.object.youtube}" frameborder="0" allowfullscreen)
7
7
  %br
@@ -0,0 +1,3 @@
1
+ = fields_for @page.pageable.class.name.downcase.to_sym, @page.pageable do |a|
2
+ = a.fields_for :page, :include_id => false do |p|
3
+ = render "redditor/admin/content_block", {p: p, content_block: content_block}
@@ -0,0 +1,5 @@
1
+ $.redditor.$el
2
+ .append('<%= j(render(partial: "redditor/admin/wrapper", locals: {content_block: @content_block})) %>')
3
+ .find("ul.slider-block-images").sortable($.redditor.sliderBlockImagesSortableParams)
4
+ $.redditor.sortList()
5
+ $.redditor.afterFunc()
@@ -0,0 +1,2 @@
1
+ $("#slider_block_<%= @slider_block.id %>").find("ul.slider-block-images")
2
+ .append '<%= j(render "redditor/admin/slider_block_image", {i: @image}) %>'
@@ -0,0 +1,5 @@
1
+ $("#<%= real_name(@content_block) %>_<%= @content_block.temp_id %>, #<%= real_name(@content_block) %>_<%= @content_block.id %>").closest("dd")
2
+ .replaceWith('<%= j(render(partial: "redditor/admin/wrapper", locals: {content_block: @content_block, page: @page})) %>')
3
+ .end()
4
+ .find("ul.slider-block-images").sortable $.redditor.sliderBlockImagesSortableParams
5
+ $.redditor.afterFunc()
@@ -1 +1 @@
1
- %li{id: "image_<%= image.id %>"}= image_tag image.src.url, alt: image.description, title: image.description
1
+ %li{id: "image_#{image.id}"}= image_tag image.src.url, alt: image.description, title: image.description
@@ -1 +1 @@
1
- %li{id: "slider_block_image_<%= image.id %>"}= image_tag image.src.url, alt: image.description, title: image.description
1
+ %li{id: "slider_block_image_#{image.id}"}= image_tag image.src.url, alt: image.description, title: image.description
@@ -4,7 +4,7 @@ ru:
4
4
  text_block: Добавить текст
5
5
  video_block: Добавить видео
6
6
  image_block: Добавить фото
7
- slider_block: Добавить логотипы
7
+ slider_block: Добавить слайдер
8
8
  upload_image: Загрузить изображение
9
9
  upload_images: Загрузить изображения
10
10
  change_image: "Заменить изображение"
@@ -4,8 +4,7 @@ module Redditor
4
4
 
5
5
  initializer 'redditor.action_controller' do |app|
6
6
  ActiveSupport.on_load :action_controller do
7
- helper Redditor::FileapiHelper
8
- helper Redditor::PagesHelper
7
+ helper Redditor::ApplicationHelper
9
8
  end
10
9
  end
11
10
  end
@@ -1,3 +1,3 @@
1
1
  module Redditor
2
- VERSION = "0.1.10"
2
+ VERSION = "0.1.11"
3
3
  end
data/redditor.gemspec CHANGED
@@ -19,15 +19,8 @@ Gem::Specification.new do |s|
19
19
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
20
20
  s.require_paths = ["lib"]
21
21
 
22
- s.add_dependency "rails", "~> 4.0.0"
23
- s.add_dependency 'haml'
24
- s.add_dependency "carrierwave"
25
- s.add_dependency "rmagick"
26
- s.add_dependency "coffee-rails"
27
- s.add_dependency "jquery-rails"
28
- # s.add_dependency 'fileapi', git: 'git@github.com:redde/fileapi.git'
29
-
30
- s.add_development_dependency 'jquery-rails'
22
+ s.add_dependency "rails", ">= 4.0.0"
23
+
31
24
  s.add_development_dependency 'capybara'
32
25
  s.add_development_dependency 'poltergeist'
33
26
  s.add_development_dependency "haml-rails"
@@ -0,0 +1,3 @@
1
+ <form id="redactorUploadFileForm" method="post" action="" enctype="multipart/form-data">
2
+ <input type="file" id="redactor_file" name="file" />
3
+ </form>
@@ -0,0 +1,39 @@
1
+ <div id="redactor_tabs">
2
+ <a href="javascript:void(null);" class="redactor_tabs_act">%RLANG.upload%</a>
3
+ <a href="javascript:void(null);">%RLANG.choose%</a>
4
+ <a href="javascript:void(null);">%RLANG.link%</a>
5
+ </div>
6
+
7
+
8
+ <form id="redactorInsertImageForm" method="post" action="" enctype="multipart/form-data">
9
+ <div id="redactor_tab1" class="redactor_tab">
10
+ <input type="file" id="redactor_file" name="file" />
11
+ </div>
12
+ <div id="redactor_tab2" class="redactor_tab" style="display: none;">
13
+ <div id="redactor_image_box"></div>
14
+ </div>
15
+ </form>
16
+
17
+
18
+ <div id="redactor_tab3" class="redactor_tab" style="display: none;">
19
+ <table class="redactor_ruler" width="100%">
20
+ <tr>
21
+ <td nowrap>%RLANG.image_web_link%</td>
22
+ <td width="100%"><input name="redactor_file_link" id="redactor_file_link" style="width: 99%" /></td>
23
+ </tr>
24
+ <tr>
25
+ <td></td>
26
+ <td>
27
+
28
+ <span class="redactor_btns_box">
29
+ <input type="button" name="upload" id="redactor_upload_btn" value="%RLANG.insert%" />&nbsp;&nbsp;
30
+ <a href="javascript:void(null);" style="color: #777; font-size: 12px;" id="redactor_btn_modal_close">%RLANG.cancel%</a>
31
+ </span>
32
+ <div style="clear: both;"></div>
33
+
34
+ </td>
35
+ </tr>
36
+
37
+ </table>
38
+ </div>
39
+
@@ -0,0 +1,35 @@
1
+
2
+ <table class="redactor_ruler">
3
+ <tr>
4
+ <td nowrap>%RLANG.title%</td>
5
+ <td><input id="redactor_file_alt" style="width: 99%;" /></td>
6
+ </tr>
7
+ <tr>
8
+ <td nowrap>%RLANG.link%</td>
9
+ <td><input id="redactor_file_link" style="width: 99%;" /></td>
10
+ </tr>
11
+ <tr>
12
+ <td nowrap class="small">%RLANG.image_position%</td>
13
+ <td width="100%">
14
+ <select id="redactor_form_image_align">
15
+ <option value="none">%RLANG.none%</option>
16
+ <option value="left">%RLANG.left%</option>
17
+ <option value="right">%RLANG.right%</option>
18
+ </select>
19
+ </td>
20
+ </tr>
21
+ <tr>
22
+ <td><a href="javascript:void(null);" id="redactor_image_delete_btn" style="color: #000;">%RLANG._delete%</a></td>
23
+ <td>
24
+
25
+ <span class="redactor_btns_box">
26
+ <input type="button" name="save" id="redactorSaveBtn" value="%RLANG.save%" />&nbsp;&nbsp;
27
+ <a href="javascript:void(null);" style="color: #777; font-size: 12px;" id="redactor_btn_modal_close">%RLANG.cancel%</a>
28
+ </span>
29
+ <div style="clear: both;"></div>
30
+
31
+ </td>
32
+ </tr>
33
+ </table>
34
+
35
+
@@ -0,0 +1,74 @@
1
+ <form id="redactorInsertLinkForm" method="post" action="" enctype="multipart/form-data">
2
+
3
+
4
+ <div id="redactor_tabs">
5
+ <a href="javascript:void(null);" class="redactor_tabs_act">URL</a>
6
+ <a href="javascript:void(null);">Email</a>
7
+ <a href="javascript:void(null);">%RLANG.anchor%</a>
8
+ <a href="javascript:void(null);">%RLANG.file%</a>
9
+ </div>
10
+
11
+ <input type="hidden" id="redactor_tab_selected" value="1" />
12
+
13
+ <div class="redactor_tab" id="redactor_tab1">
14
+ <table class="redactor_ruler">
15
+ <tr>
16
+ <td nowrap>URL</td>
17
+ <td width="100%"><input id="redactor_link_url" style="width: 99%; font-size: 16px;" /></td>
18
+ </tr>
19
+ <tr>
20
+ <td>%RLANG.text%</td>
21
+ <td><input class="redactor_link_text" id="redactor_link_url_text" style="width: 99%; font-size: 16px;" /></td>
22
+ </tr>
23
+ </table>
24
+ </div>
25
+ <div class="redactor_tab" id="redactor_tab2" style="display: none;">
26
+ <table class="redactor_ruler">
27
+ <tr>
28
+ <td nowrap>Email</td>
29
+ <td width="100%"><input id="redactor_link_mailto" style="width: 99%; font-size: 16px;" /></td>
30
+ </tr>
31
+ <tr>
32
+ <td>%RLANG.text%</td>
33
+ <td><input class="redactor_link_text" id="redactor_link_mailto_text" style="width: 99%; font-size: 16px;" /></td>
34
+ </tr>
35
+ </table>
36
+ </div>
37
+ <div class="redactor_tab" id="redactor_tab3" style="display: none;">
38
+ <table class="redactor_ruler">
39
+ <tr>
40
+ <td nowrap>%RLANG.anchor%</td>
41
+ <td width="100%"><input id="redactor_link_anchor" style="width: 99%; font-size: 16px;" /></td>
42
+ </tr>
43
+ <tr>
44
+ <td>%RLANG.text%</td>
45
+ <td><input class="redactor_link_text" id="redactor_link_anchor_text" style="width: 99%; font-size: 16px;" /></td>
46
+ </tr>
47
+ </table>
48
+ </div>
49
+ <div class="redactor_tab" id="redactor_tab4" style="display: none;">
50
+ <table class="redactor_ruler">
51
+ <tr>
52
+ <td>%RLANG.text%</td>
53
+ <td><input class="redactor_link_text" id="redactor_link_file_text" style="width: 99%; font-size: 16px;" /></td>
54
+ </tr>
55
+ <tr>
56
+ <td></td>
57
+ <td>
58
+
59
+ <input type="file" id="redactor_file" name="file" />
60
+
61
+ </td>
62
+ </tr>
63
+ </table>
64
+
65
+ </div>
66
+
67
+
68
+ </form>
69
+
70
+ <span class="redactor_btns_box">
71
+ <input type="button" id="redactor_insert_link_btn" value="%RLANG.insert%" />&nbsp;&nbsp;
72
+ <a href="javascript:void(null);" style="color: #777; font-size: 12px;" id="redactor_btn_modal_close">%RLANG.cancel%</a>
73
+ </span>
74
+ <div style="clear: both;"></div>
@@ -0,0 +1,25 @@
1
+
2
+ <table class="redactor_ruler" width="99%">
3
+ <tr>
4
+ <td>%RLANG.Rows%:</td>
5
+ <td width="100%"><input size="5" value="2" id="redactor_table_rows" /></td>
6
+ </tr>
7
+ <tr>
8
+ <td>%RLANG.Columns%:</td>
9
+ <td><input size="5" value="3" id="redactor_table_columns" /></td>
10
+ </tr>
11
+
12
+ <tr>
13
+ <td></td>
14
+ <td>
15
+ <br />
16
+ <span class="redactor_btns_box">
17
+ <input type="button" name="upload" id="redactor_insert_table_btn" value="%RLANG.insert%" />&nbsp;&nbsp;
18
+ <a href="javascript:void(null);" style="color: #777; font-size: 12px;" id="redactor_btn_modal_close">%RLANG.cancel%</a>
19
+ </span>
20
+ <div style="clear: both;"></div>
21
+
22
+ </td>
23
+ </tr>
24
+ </table>
25
+
@@ -0,0 +1,15 @@
1
+ <form id="redactorInsertVideoForm">
2
+ <div style="font-size: 11px; margin-bottom: 3px;">%RLANG.video_html_code%</div>
3
+ <table class="redactor_ruler" style="width: 99%;">
4
+ <tr>
5
+ <textarea id="redactor_insert_video_area" style="width: 99%; height: 160px;"></textarea>
6
+ </tr>
7
+ </table>
8
+ </form>
9
+
10
+
11
+ <span class="redactor_btns_box">
12
+ <input type="button" id="redactor_insert_video_btn" value="%RLANG.insert%" />&nbsp;&nbsp;
13
+ <a href="javascript:void(null);" style="color: #777; font-size: 12px;" id="redactor_btn_modal_close">%RLANG.cancel%</a>
14
+ </span>
15
+ <div style="clear: both;"></div>
@@ -11,6 +11,14 @@
11
11
  // about supported directives.
12
12
  //
13
13
  //= require jquery
14
+ //= require jquery.ui.all
14
15
  //= require jquery_ujs
15
- //= require redditor/application
16
- //= require_tree .
16
+ //= require redditor
17
+ //= require jquery-migrate-1.2.1
18
+ //= require redactor/redactor
19
+ //= require redactor/langs/ru
20
+ //= require redactor/toolbars/default
21
+
22
+ $.redditor.afterFunc = function(){
23
+ $.redditor.$el.find('textarea').redactor();
24
+ };