th_simple_content_management 0.2.1 → 0.2.2

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.
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
+ };