th_simple_content_management 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. data/app/assets/images/simple_content_management/resize-handle.png +0 -0
  2. data/app/assets/javascripts/simple_content_management/simple_pages.js +1 -21
  3. data/app/assets/javascripts/simple_content_management/simple_pages/form.js +32 -0
  4. data/app/assets/javascripts/th-page-editor/column.js +136 -0
  5. data/app/assets/javascripts/th-page-editor/index.js +104 -0
  6. data/app/assets/javascripts/th-page-editor/row.js +90 -0
  7. data/app/assets/stylesheets/simple_content_management/simple_pages.css.scss +80 -8
  8. data/app/controllers/redactor_rails/documents_controller.rb +28 -0
  9. data/app/controllers/redactor_rails/pictures_controller.rb +28 -0
  10. data/app/helpers/simple_content_management/simple_pages_helper.rb +4 -0
  11. data/app/models/redactor/asset.rb +5 -0
  12. data/app/models/redactor/document.rb +11 -0
  13. data/app/models/redactor/picture.rb +7 -0
  14. data/app/models/simple_content_management/simple_menu.rb +1 -1
  15. data/app/models/simple_content_management/simple_page.rb +6 -0
  16. data/app/views/simple_content_management/simple_pages/_form.html.erb +48 -3
  17. data/config/routes.rb +4 -0
  18. data/lib/generators/redactor/config_generator.rb +18 -0
  19. data/lib/generators/redactor/install_generator.rb +75 -0
  20. data/lib/generators/redactor/templates/active_record/carrierwave/devise_migration.rb +30 -0
  21. data/lib/generators/redactor/templates/active_record/carrierwave/migration.rb +30 -0
  22. data/lib/generators/redactor/templates/active_record/carrierwave/redactor/asset.rb +5 -0
  23. data/lib/generators/redactor/templates/active_record/carrierwave/redactor/document.rb +11 -0
  24. data/lib/generators/redactor/templates/active_record/carrierwave/redactor/picture.rb +7 -0
  25. data/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_document_uploader.rb +15 -0
  26. data/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_picture_uploader.rb +53 -0
  27. data/lib/generators/redactor/templates/config.js +17 -0
  28. data/lib/generators/redactor/templates/mongoid/carrierwave/redactor/asset.rb +9 -0
  29. data/lib/generators/redactor/templates/mongoid/carrierwave/redactor/document.rb +14 -0
  30. data/lib/generators/redactor/templates/mongoid/carrierwave/redactor/picture.rb +7 -0
  31. data/lib/redactor-rails.rb +41 -0
  32. data/lib/redactor-rails/backend/carrierwave.rb +64 -0
  33. data/lib/redactor-rails/devise.rb +11 -0
  34. data/lib/redactor-rails/engine.rb +14 -0
  35. data/lib/redactor-rails/helper.rb +8 -0
  36. data/lib/redactor-rails/http.rb +89 -0
  37. data/lib/redactor-rails/orm/active_record.rb +27 -0
  38. data/lib/redactor-rails/orm/base.rb +38 -0
  39. data/lib/redactor-rails/orm/mongoid.rb +37 -0
  40. data/lib/redactor-rails/version.rb +3 -0
  41. data/lib/redactor_rails_document_uploader.rb +15 -0
  42. data/lib/redactor_rails_picture_uploader.rb +53 -0
  43. data/lib/simple_content_management.rb +5 -0
  44. data/lib/simple_content_management/content_text.rb +25 -0
  45. data/lib/simple_content_management/version.rb +1 -1
  46. data/vendor/assets/javascripts/redactor-rails/config.js +17 -0
  47. data/vendor/assets/javascripts/redactor-rails/css/docstyle.css +139 -0
  48. data/vendor/assets/javascripts/redactor-rails/css/style.css +26 -0
  49. data/vendor/assets/javascripts/redactor-rails/css/wym.css +151 -0
  50. data/vendor/assets/javascripts/redactor-rails/index.js +2 -0
  51. data/vendor/assets/javascripts/redactor-rails/langs/ar.js +66 -0
  52. data/vendor/assets/javascripts/redactor-rails/langs/ba.js +69 -0
  53. data/vendor/assets/javascripts/redactor-rails/langs/bg.js +67 -0
  54. data/vendor/assets/javascripts/redactor-rails/langs/by.js +65 -0
  55. data/vendor/assets/javascripts/redactor-rails/langs/cs.js +77 -0
  56. data/vendor/assets/javascripts/redactor-rails/langs/da.js +66 -0
  57. data/vendor/assets/javascripts/redactor-rails/langs/de.js +70 -0
  58. data/vendor/assets/javascripts/redactor-rails/langs/en.js +66 -0
  59. data/vendor/assets/javascripts/redactor-rails/langs/eo.js +66 -0
  60. data/vendor/assets/javascripts/redactor-rails/langs/es.js +66 -0
  61. data/vendor/assets/javascripts/redactor-rails/langs/fa.js +66 -0
  62. data/vendor/assets/javascripts/redactor-rails/langs/fi.js +69 -0
  63. data/vendor/assets/javascripts/redactor-rails/langs/fr.js +76 -0
  64. data/vendor/assets/javascripts/redactor-rails/langs/hr.js +69 -0
  65. data/vendor/assets/javascripts/redactor-rails/langs/hu.js +67 -0
  66. data/vendor/assets/javascripts/redactor-rails/langs/id.js +66 -0
  67. data/vendor/assets/javascripts/redactor-rails/langs/it.js +68 -0
  68. data/vendor/assets/javascripts/redactor-rails/langs/ja.js +66 -0
  69. data/vendor/assets/javascripts/redactor-rails/langs/ko.js +66 -0
  70. data/vendor/assets/javascripts/redactor-rails/langs/lv.js +65 -0
  71. data/vendor/assets/javascripts/redactor-rails/langs/nl.js +69 -0
  72. data/vendor/assets/javascripts/redactor-rails/langs/pl.js +66 -0
  73. data/vendor/assets/javascripts/redactor-rails/langs/pt_br.js +72 -0
  74. data/vendor/assets/javascripts/redactor-rails/langs/ro.js +66 -0
  75. data/vendor/assets/javascripts/redactor-rails/langs/ru.js +66 -0
  76. data/vendor/assets/javascripts/redactor-rails/langs/sk.js +66 -0
  77. data/vendor/assets/javascripts/redactor-rails/langs/sq.js +69 -0
  78. data/vendor/assets/javascripts/redactor-rails/langs/sr-cir.js +69 -0
  79. data/vendor/assets/javascripts/redactor-rails/langs/sr-lat.js +69 -0
  80. data/vendor/assets/javascripts/redactor-rails/langs/sv.js +66 -0
  81. data/vendor/assets/javascripts/redactor-rails/langs/tr.js +66 -0
  82. data/vendor/assets/javascripts/redactor-rails/langs/ua.js +67 -0
  83. data/vendor/assets/javascripts/redactor-rails/langs/vi.js +65 -0
  84. data/vendor/assets/javascripts/redactor-rails/langs/zh_cn.js +70 -0
  85. data/vendor/assets/javascripts/redactor-rails/langs/zh_tw.js +66 -0
  86. data/vendor/assets/javascripts/redactor-rails/redactor.js +6074 -0
  87. data/vendor/assets/stylesheets/redactor-rails/css/redactor-iframe.css +201 -0
  88. data/vendor/assets/stylesheets/redactor-rails/css/redactor.css +780 -0
  89. data/vendor/assets/stylesheets/redactor-rails/css/style.css +26 -0
  90. data/vendor/assets/stylesheets/redactor-rails/index.css +1 -0
  91. metadata +151 -70
  92. checksums.yaml +0 -15
@@ -1,5 +1,10 @@
1
1
  require "simple_content_management/engine"
2
2
 
3
+ require "redactor-rails"
4
+ require "redactor_rails_document_uploader"
5
+ require "redactor_rails_picture_uploader"
6
+
3
7
  module SimpleContentManagement
8
+ require "simple_content_management/content_text"
4
9
  require "simple_content_management/simple_pages_constraint"
5
10
  end
@@ -0,0 +1,25 @@
1
+ module SimpleContentManagement::ContentText
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ before_save :update_content_text, if: :content_html_changed?
6
+ end
7
+
8
+ def update_content_text!
9
+ update_content_text
10
+ save
11
+ end
12
+
13
+ def update_content_text
14
+ tmpfile = Tempfile.new "content-text"
15
+ begin
16
+ tmpfile.write self.content_html
17
+ tmpfile.flush
18
+ self.content_text = `lynx -dump -force_html "#{tmpfile.path}"`
19
+ ensure
20
+ tmpfile.close true # `true` also deletes (unlinks) the file
21
+ end
22
+ end
23
+ end
24
+
25
+ Rails.logger.warn("lynx not present. lynx is required for html-to-text conversion used by the search engine.") unless `lynx -version` =~ /^lynx version [\d+\.a-z]+ \(\d+ [a-z]+ \d+\)/i
@@ -1,3 +1,3 @@
1
1
  module SimpleContentManagement
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -0,0 +1,17 @@
1
+ $(function(){
2
+ $('.redactor').redactor(getRedactorOptions());
3
+ });
4
+
5
+ function getRedactorOptions() {
6
+ var csrf_token = $('meta[name=csrf-token]').attr('content');
7
+ var csrf_param = $('meta[name=csrf-param]').attr('content');
8
+ var params;
9
+ if (csrf_param !== undefined && csrf_token !== undefined) {
10
+ params = csrf_param + "=" + encodeURIComponent(csrf_token);
11
+ };
12
+ return {
13
+ imageUpload:"/redactor_rails/pictures?" + params,
14
+ imageGetJson: "/redactor_rails/pictures",
15
+ path:"/assets/redactor-rails"
16
+ };
17
+ }
@@ -0,0 +1,139 @@
1
+ html {
2
+ padding: 0;
3
+ margin: 0;
4
+ }
5
+ body {
6
+ font-family: Helvetica, Arial, Verdana, Tahoma, sans-serif;
7
+ font-size: 15px;
8
+ margin: 0;
9
+ padding: 0;
10
+ overflow-x: hidden;
11
+ background: #f4f4f4;
12
+ }
13
+ #page {
14
+ max-width: 900px;
15
+ width: 74%;
16
+ margin: 20px auto;
17
+ padding: 15px 50px;
18
+ background: #fff;
19
+ border: 1px solid #ddd;
20
+ }
21
+ #page:focus {
22
+ outline: none;
23
+ }
24
+
25
+ a {
26
+ color: #15c;
27
+ }
28
+
29
+ object,
30
+ embed,
31
+ video,
32
+ iframe {
33
+ width: auto;
34
+ max-width: 100%;
35
+ }
36
+ video,
37
+ iframe {
38
+ height: auto;
39
+ }
40
+
41
+ ::selection {
42
+ background-color: #333;
43
+ color: #fff;
44
+ text-shadow: none;
45
+ }
46
+
47
+ div,
48
+ p,
49
+ ul,
50
+ ol,
51
+ table,
52
+ dl,
53
+ blockquote,
54
+ pre,
55
+ iframe,
56
+ object,
57
+ hr {
58
+ margin-bottom: 15px;
59
+ line-height: 1.5em;
60
+ }
61
+ blockquote {
62
+ margin-left: 3em;
63
+ font-style: italic;
64
+ color: #777;
65
+ }
66
+ ul, ol {
67
+ padding-left: 2em;
68
+ }
69
+ ul ul,
70
+ ol ol,
71
+ ul ol,
72
+ ol ul {
73
+ border: none;
74
+ margin: 2px !important;
75
+ padding: 0;
76
+ padding-left: 2em;
77
+ }
78
+ dl dt { font-weight: bold; }
79
+ dd { margin-left: 1em;}
80
+
81
+ table {
82
+ border-collapse: collapse;
83
+ font-size: 1em;
84
+ }
85
+ table td {
86
+ border: 1px solid #ddd;
87
+ padding: 5px;
88
+ }
89
+ table thead td {
90
+ border-bottom: 2px solid #000 !important;
91
+ font-weight: bold;
92
+ }
93
+ code, pre {
94
+ font-family: monospace sans-serif;
95
+ }
96
+ code {
97
+ background-color: #d8d7d7;
98
+ }
99
+ pre {
100
+ padding: 1em;
101
+ border: 1px dashed #ccc;
102
+ background: #f5f5f5;
103
+ overflow: auto;
104
+ }
105
+ hr {
106
+ display: block;
107
+ height: 1px;
108
+ border: 0;
109
+ border-top: 1px solid #ccc;
110
+ }
111
+
112
+ h1, h2, h3, h4,h5 {
113
+ font-weight: bold;
114
+ }
115
+
116
+ h1 {
117
+ font-size: 36px;
118
+ line-height: 40px;
119
+ margin-bottom: 10px;
120
+ }
121
+ h2 {
122
+ font-size: 30px;
123
+ line-height: 36px;
124
+ margin-bottom: 15px;
125
+ }
126
+ h3 {
127
+ font-size: 24px;
128
+ line-height: 30px;
129
+ margin-bottom: 10px;
130
+ }
131
+ h4 {
132
+ font-size: 18px;
133
+ line-height: 24px;
134
+ margin-bottom: 10px;
135
+ }
136
+ h4 {
137
+ font-size: 1em;
138
+ margin-bottom: 10px;
139
+ }
@@ -0,0 +1,26 @@
1
+ html, body {
2
+ margin: 0;
3
+ padding: 0;
4
+ }
5
+
6
+
7
+ /* =Typography
8
+ -----------------------------------------------------------------------------*/
9
+ body {
10
+ font-family: Helvetica, Arial, sans-serif;
11
+ font-size: 14px;
12
+ }
13
+
14
+
15
+ /* =Layout
16
+ -----------------------------------------------------------------------------*/
17
+ #page {
18
+ width: 940px;
19
+ margin: 50px auto;
20
+ }
21
+
22
+ /* =Misc
23
+ -----------------------------------------------------------------------------*/
24
+ .list li {
25
+ margin: 10px 0;
26
+ }
@@ -0,0 +1,151 @@
1
+
2
+ body {
3
+ font-family: Helvetica, Arial, Verdana, Tahoma, sans-serif;
4
+ font-size: 15px;
5
+ margin: 0;
6
+ padding: 0;
7
+ overflow-x: hidden;
8
+ background-color: #f8f8f8;
9
+ }
10
+
11
+ #page {
12
+ margin: 20px;
13
+ background: #f8f8f8;
14
+ border: none;
15
+ padding: 0;
16
+ }
17
+ #page:focus {
18
+ outline: none;
19
+ }
20
+
21
+ a {
22
+ color: #15c;
23
+ }
24
+
25
+ object,
26
+ embed,
27
+ video,
28
+ iframe {
29
+ width: auto;
30
+ max-width: 100%;
31
+ }
32
+ video,
33
+ iframe {
34
+ height: auto;
35
+ }
36
+
37
+ div,
38
+ p,
39
+ ul,
40
+ ol,
41
+ table,
42
+ dl,
43
+ pre,
44
+ h1,
45
+ h2,
46
+ h3,
47
+ h4,
48
+ h5,
49
+ blockquote {
50
+ background-color: #fff;
51
+ border: 1px solid #ebebeb;
52
+ padding: 10px;
53
+ margin: 10px 0;
54
+ }
55
+
56
+ p ul,
57
+ p ol {
58
+ margin: 0;
59
+ padding: 0;
60
+ border: none;
61
+ }
62
+
63
+ div,
64
+ p,
65
+ ul,
66
+ ol,
67
+ table,
68
+ dl,
69
+ blockquote,
70
+ pre,
71
+ iframe,
72
+ object,
73
+ hr {
74
+ margin-bottom: 15px;
75
+ line-height: 1.5em;
76
+ }
77
+ blockquote {
78
+ margin-left: 3em;
79
+ font-style: italic;
80
+ color: #777;
81
+ }
82
+ div {
83
+ background-color: #fff;
84
+ border: 1px dashed #ebebeb;
85
+ }
86
+ ul, ol {
87
+ padding-left: 2em !important;
88
+ }
89
+ ul ul,
90
+ ol ol,
91
+ ul ol,
92
+ ol ul {
93
+ border: none;
94
+ margin: 2px !important;
95
+ padding: 0;
96
+ padding-left: 2em;
97
+ }
98
+ dl dt { font-weight: bold; }
99
+ dd { margin-left: 1em;}
100
+
101
+ table {
102
+ border-collapse: collapse;
103
+ font-size: 1em;
104
+ }
105
+ table td {
106
+ border: 1px solid #ddd;
107
+ padding: 5px;
108
+ }
109
+ table thead td {
110
+ border-bottom: 2px solid #000 !important;
111
+ font-weight: bold;
112
+ }
113
+ code, pre {
114
+ font-family: monospace sans-serif;
115
+ }
116
+ code {
117
+ background-color: #d8d7d7;
118
+ }
119
+ pre {
120
+ padding: 1em;
121
+ border: 1px dashed #ccc;
122
+ background: #f5f5f5;
123
+ overflow: auto;
124
+ }
125
+ hr {
126
+ display: block;
127
+ height: 1px;
128
+ border: 0;
129
+ border-top: 1px solid #ccc;
130
+ }
131
+
132
+ h1, h2, h3, h4,h5 {
133
+ font-weight: bold;
134
+ margin-bottom: 10px;
135
+ }
136
+
137
+ h1 {
138
+ font-size: 36px;
139
+ }
140
+ h2 {
141
+ font-size: 30px;
142
+ }
143
+ h3 {
144
+ font-size: 24px;
145
+ }
146
+ h4 {
147
+ font-size: 18px;
148
+ }
149
+ h5 {
150
+ font-size: 1em;
151
+ }
@@ -0,0 +1,2 @@
1
+ //= require ./redactor
2
+ //= require ./config
@@ -0,0 +1,66 @@
1
+ var RELANG = {};
2
+ RELANG['ar'] = {
3
+ html: 'كود HTML',
4
+ video: 'فيديو',
5
+ image: 'صورة',
6
+ table: 'جدول',
7
+ link: 'رابط',
8
+ link_insert: 'أضف / حرر رابط',
9
+ unlink: 'إزالة الرابط',
10
+ formatting: 'التنسيق',
11
+ paragraph: 'فقرة',
12
+ quote: 'اقتباس',
13
+ code: 'كود',
14
+ header1: 'ترويسة 1',
15
+ header2: 'ترويسة 2',
16
+ header3: 'ترويسة 3',
17
+ header4: 'ترويسة 4',
18
+ bold: 'غليظ',
19
+ italic: 'مائل',
20
+ fontcolor: 'لون الخط',
21
+ backcolor: 'لون الخلفية',
22
+ unorderedlist: 'قائمة منقطة',
23
+ orderedlist: 'قائمة رقمية',
24
+ outdent: 'أزل المسافة البادئة',
25
+ indent: 'أضف المسافة البادئة',
26
+ cancel: 'تراجع',
27
+ insert: 'أدخل',
28
+ save: 'احفظ',
29
+ _delete: 'أحذف',
30
+ insert_table: 'أدخل جدول',
31
+ insert_row_above: 'أضف صف فوق',
32
+ insert_row_below: 'أضف صف تحت',
33
+ insert_column_left: 'أضف عمود يسارا',
34
+ insert_column_right: 'أضف عمود يمينا',
35
+ delete_column: 'احذف العمود',
36
+ delete_row: 'احذف الصف',
37
+ delete_table: 'احذف الجدول',
38
+ rows: 'الصفوف',
39
+ columns: 'الأعمدة',
40
+ add_head: 'أضف ترويسة',
41
+ delete_head: 'حذف ترويسة',
42
+ title: 'ترويسة',
43
+ image_position: 'الوضعية',
44
+ none: 'بدون',
45
+ left: 'يسار',
46
+ right: 'يمين',
47
+ image_web_link: 'رابط الصورة',
48
+ text: 'نص',
49
+ mailto: 'بريد الكتروني',
50
+ web: 'رابط',
51
+ video_html_code: 'كود الفيديو',
52
+ file: 'أضف ملف جديد',
53
+ upload: 'رفع',
54
+ download: 'تحميل',
55
+ choose: 'اختار',
56
+ or_choose: 'أو اختار',
57
+ drop_file_here: 'اسحب الملف هنا',
58
+ align_left: 'محاذاة الى اليسار',
59
+ align_center: 'محاذاة الى الوسط',
60
+ align_right: 'محاذاة الى اليمين',
61
+ align_justify: 'محاذاة كاملة',
62
+ horizontalrule: 'أضف خط عمودي',
63
+ fullscreen: 'الشاشة الكاملة',
64
+ deleted: 'خط في الوسط',
65
+ anchor: 'مرساة'
66
+ };