knitkit 2.1.15 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) hide show
  1. checksums.yaml +7 -0
  2. data/app/controllers/knitkit/base_controller.rb +1 -1
  3. data/app/controllers/knitkit/comments_controller.rb +7 -2
  4. data/app/controllers/knitkit/erp_app/desktop/app_controller.rb +78 -98
  5. data/app/controllers/knitkit/erp_app/desktop/articles_controller.rb +65 -45
  6. data/app/controllers/knitkit/erp_app/desktop/content_controller.rb +22 -12
  7. data/app/controllers/knitkit/erp_app/desktop/file_assets_controller.rb +1 -1
  8. data/app/controllers/knitkit/erp_app/desktop/image_assets_controller.rb +28 -16
  9. data/app/controllers/knitkit/erp_app/desktop/inquiries_controller.rb +15 -49
  10. data/app/controllers/knitkit/erp_app/desktop/online_document_sections_controller.rb +4 -3
  11. data/app/controllers/knitkit/erp_app/desktop/position_controller.rb +69 -11
  12. data/app/controllers/knitkit/erp_app/desktop/theme_controller.rb +63 -60
  13. data/app/controllers/knitkit/erp_app/desktop/website_controller.rb +98 -82
  14. data/app/controllers/knitkit/erp_app/desktop/website_host_controller.rb +77 -0
  15. data/app/controllers/knitkit/erp_app/desktop/website_nav_controller.rb +64 -44
  16. data/app/controllers/knitkit/erp_app/desktop/website_nav_item_controller.rb +147 -0
  17. data/app/controllers/knitkit/erp_app/desktop/website_section_controller.rb +81 -45
  18. data/app/controllers/knitkit/mobile_controller.rb +15 -0
  19. data/app/controllers/knitkit/online_document_sections_controller.rb +2 -1
  20. data/app/controllers/knitkit/unauthorized_controller.rb +0 -1
  21. data/app/controllers/knitkit/website_sections_controller.rb +7 -4
  22. data/app/mailers/website_inquiry_mailer.rb +8 -7
  23. data/app/models/content.rb +11 -2
  24. data/app/models/document.rb +2 -17
  25. data/app/models/published_website.rb +96 -59
  26. data/app/models/theme.rb +100 -14
  27. data/app/models/website.rb +260 -28
  28. data/app/models/website_inquiry.rb +5 -12
  29. data/app/models/website_section.rb +9 -1
  30. data/app/views/knitkit/blogs/_add_comment.html.erb +44 -23
  31. data/app/views/knitkit/blogs/_comment.html.erb +4 -6
  32. data/app/views/knitkit/blogs/index.html.erb +63 -49
  33. data/app/views/knitkit/blogs/show.html.erb +17 -12
  34. data/app/views/knitkit/mobile/index.html.erb +162 -0
  35. data/app/views/knitkit/online_document_sections/index.html.erb +7 -5
  36. data/app/views/knitkit/unauthorized/index.html.erb +8 -4
  37. data/app/views/knitkit/website_sections/index.html.erb +8 -4
  38. data/app/views/layouts/knitkit/base.html.erb +79 -63
  39. data/app/views/layouts/knitkit/online_document_sections.html.erb +74 -52
  40. data/app/views/menus/knitkit/_default_menu.html.erb +4 -4
  41. data/app/views/menus/knitkit/_default_section_menu.html.erb +22 -23
  42. data/app/views/shared/knitkit/_bread_crumb.html.erb +10 -7
  43. data/app/views/shared/knitkit/_footer.html.erb +2 -2
  44. data/app/views/website_inquiry_mailer/inquiry.erb +23 -2
  45. data/app/widgets/contact_us/base.rb +25 -50
  46. data/app/widgets/contact_us/javascript/contact_us.js +7 -7
  47. data/app/widgets/contact_us/views/error.html.erb +6 -8
  48. data/app/widgets/contact_us/views/index.html.erb +28 -1
  49. data/app/widgets/contact_us/views/layouts/base.html.erb +9 -6
  50. data/app/widgets/contact_us/views/success.html.erb +3 -3
  51. data/app/widgets/google_map/views/index.html.erb +36 -36
  52. data/app/widgets/login/base.rb +1 -0
  53. data/app/widgets/login/javascript/login.js +3 -3
  54. data/app/widgets/login/views/index.html.erb +46 -26
  55. data/app/widgets/login/views/layouts/base.html.erb +15 -13
  56. data/app/widgets/login/views/login_header.html.erb +7 -9
  57. data/app/widgets/manage_profile/base.rb +116 -164
  58. data/app/widgets/manage_profile/views/_address.html.erb +184 -0
  59. data/app/widgets/manage_profile/views/_contact_information_form.html.erb +23 -192
  60. data/app/widgets/manage_profile/views/_email_address.html.erb +163 -0
  61. data/app/widgets/manage_profile/views/_password_form.html.erb +23 -20
  62. data/app/widgets/manage_profile/views/_phone_number.html.erb +165 -0
  63. data/app/widgets/manage_profile/views/_user_information_form.html.erb +49 -33
  64. data/app/widgets/manage_profile/views/error.html.erb +6 -0
  65. data/app/widgets/manage_profile/views/index.html.erb +44 -46
  66. data/app/widgets/manage_profile/views/layouts/base.html.erb +3 -1
  67. data/app/widgets/manage_profile/views/success.html.erb +5 -0
  68. data/app/widgets/reset_password/views/index.html.erb +33 -28
  69. data/app/widgets/reset_password/views/layouts/base.html.erb +10 -1
  70. data/app/widgets/search/base.rb +37 -25
  71. data/app/widgets/search/views/_inline_search_form.html.erb +12 -0
  72. data/app/widgets/search/views/_search_form.html.erb +41 -0
  73. data/app/widgets/search/views/index.html.erb +5 -3
  74. data/app/widgets/search/views/layouts/base.html.erb +13 -23
  75. data/app/widgets/search/views/show.html.erb +32 -47
  76. data/app/widgets/signup/base.rb +1 -1
  77. data/app/widgets/signup/javascript/signup.js +7 -9
  78. data/app/widgets/signup/views/_signup_form.html.erb +34 -29
  79. data/app/widgets/signup/views/error.html.erb +11 -11
  80. data/app/widgets/signup/views/index.html.erb +3 -2
  81. data/app/widgets/signup/views/layouts/base.html.erb +8 -5
  82. data/app/widgets/signup/views/success.html.erb +5 -4
  83. data/config/routes.rb +39 -28
  84. data/db/data_migrations/20120809020508_update_website_and_configuration.rb +3 -0
  85. data/db/migrate/20110211002317_setup_knitkit.rb +0 -1
  86. data/db/migrate/20131112013052_add_knitkit_missing_indexes.rb +33 -0
  87. data/db/migrate/20140622212723_update_website_inquiries.rb +22 -0
  88. data/db/migrate/20140911185022_add_publishing_to_website.rb +5 -0
  89. data/db/migrate/20141013073349_add_custom_fields_to_documents.rb +12 -0
  90. data/db/migrate/20141016101936_upgrade_remove_dynamic_attributes.rb +13 -0
  91. data/lib/knitkit.rb +0 -1
  92. data/lib/knitkit/engine.rb +1 -0
  93. data/lib/knitkit/extensions.rb +4 -0
  94. data/lib/knitkit/extensions/active_record/acts_as_commentable.rb +33 -0
  95. data/lib/knitkit/extensions/active_record/acts_as_document.rb +0 -12
  96. data/lib/knitkit/extensions/active_record/acts_as_publishable.rb +7 -10
  97. data/lib/knitkit/extensions/compass_ae/widgets/base.rb +2 -4
  98. data/lib/knitkit/extensions/compass_ae/widgets/widget_proxy_controller.rb +4 -1
  99. data/lib/knitkit/extensions/railties/action_view/helpers/blog_helper.rb +16 -13
  100. data/lib/knitkit/extensions/railties/action_view/helpers/content_helper.rb +10 -8
  101. data/lib/knitkit/extensions/railties/theme_support/asset_tag_helper.rb +123 -108
  102. data/lib/knitkit/extensions/will_paginate/link_renderer.rb +67 -0
  103. data/lib/knitkit/routing_filter/section_router.rb +10 -8
  104. data/lib/knitkit/syntax_validator.rb +2 -2
  105. data/lib/knitkit/version.rb +7 -3
  106. data/public/images/inline_edit/close.png +0 -0
  107. data/public/images/knitkit/close_window.png +0 -0
  108. data/public/images/knitkit/logo.png +0 -0
  109. data/public/images/knitkit/splash/images/add-site.png +0 -0
  110. data/public/images/knitkit/splash/images/adjust-site.png +0 -0
  111. data/public/images/knitkit/splash/images/browse-site.png +0 -0
  112. data/public/images/knitkit/splash/images/find-themes.png +0 -0
  113. data/public/images/knitkit/splash/images/settings.png +0 -0
  114. data/public/images/knitkit/splash/images/tutorials.png +0 -0
  115. data/public/images/knitkit/splash/splash.png +0 -0
  116. data/public/javascripts/erp_app/desktop/applications/knitkit/articles_grid_panel.js +656 -627
  117. data/public/javascripts/erp_app/desktop/applications/knitkit/center_region.js +444 -333
  118. data/public/javascripts/erp_app/desktop/applications/knitkit/{east_region.js → east_region/east_region.js} +33 -33
  119. data/public/javascripts/erp_app/desktop/applications/knitkit/east_region/file_assets_panel.js +332 -0
  120. data/public/javascripts/erp_app/desktop/applications/knitkit/east_region/image_assets_data_view.js +144 -0
  121. data/public/javascripts/erp_app/desktop/applications/knitkit/east_region/image_assets_panel.js +335 -0
  122. data/public/javascripts/erp_app/desktop/applications/knitkit/{widgets_panel.js → east_region/widgets_panel.js} +55 -55
  123. data/public/javascripts/erp_app/desktop/applications/knitkit/inquiries_grid_panel.js +150 -37
  124. data/public/javascripts/erp_app/desktop/applications/knitkit/module.js +228 -96
  125. data/public/javascripts/erp_app/desktop/applications/knitkit/publish_window.js +89 -85
  126. data/public/javascripts/erp_app/desktop/applications/knitkit/published_grid_panel.js +238 -217
  127. data/public/javascripts/erp_app/desktop/applications/knitkit/select_roles_window.js +59 -54
  128. data/public/javascripts/erp_app/desktop/applications/knitkit/splash_screen.js +170 -0
  129. data/public/javascripts/erp_app/desktop/applications/knitkit/top_menu/main_menu.js +1168 -0
  130. data/public/javascripts/erp_app/desktop/applications/knitkit/top_menu/websites_combo.js +71 -0
  131. data/public/javascripts/erp_app/desktop/applications/knitkit/versions_grid_panel.js +301 -306
  132. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/article.js +216 -0
  133. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/document.js +182 -153
  134. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/host.js +48 -65
  135. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/menu.js +93 -94
  136. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/section.js +523 -197
  137. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/website_nav_items.js +20 -34
  138. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/hosts_tree_panel.js +74 -0
  139. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/menu_tree_panel.js +245 -0
  140. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/site_contents_tree_panel.js +360 -0
  141. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/themes_tree_panel.js +348 -0
  142. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/west_region.js +106 -1132
  143. data/public/javascripts/knitkit/bootstrap-datepicker.js +474 -0
  144. data/public/javascripts/knitkit/bootstrap.min.js +7 -0
  145. data/public/javascripts/knitkit/confirm-bootstrap.js +110 -0
  146. data/public/javascripts/knitkit/inline_editing.js +73 -50
  147. data/public/javascripts/knitkit/jquery.maskedinput.min.js +7 -0
  148. data/public/javascripts/knitkit/mobile/app/view/Main.js +108 -0
  149. data/public/javascripts/knitkit/mobile/ux/slidenavigation/View.js +734 -0
  150. data/public/javascripts/knitkit/theme.js +76 -0
  151. data/public/stylesheets/erp_app/desktop/applications/knitkit/knitkit.css +95 -35
  152. data/public/stylesheets/knitkit/bootstrap-responsive.min.css +10 -0
  153. data/public/stylesheets/knitkit/bootstrap.min.css +7 -0
  154. data/public/stylesheets/knitkit/custom.css +122 -0
  155. data/public/stylesheets/knitkit/datepicker.css +182 -0
  156. data/public/stylesheets/knitkit/inline_editing.css +58 -58
  157. data/spec/controllers/knitkit/erp_app/desktop/website_section_controller_spec.rb +1 -1
  158. data/spec/dummy/config/application.rb +1 -1
  159. data/spec/models/article_spec.rb +3 -3
  160. data/spec/models/content_spec.rb +9 -9
  161. data/spec/models/website_spec.rb +1 -1
  162. metadata +100 -114
  163. data/app/helpers/application_helper.rb +0 -134
  164. data/app/views/knitkit/articles/index.html.erb +0 -3
  165. data/app/views/knitkit/articles/show.html.erb +0 -4
  166. data/app/views/menus/knitkit/_default_sub_menu.html.erb +0 -43
  167. data/app/views/menus/knitkit/_default_sub_section_menu.html.erb +0 -47
  168. data/app/widgets/contact_us/views/_contact_form.html.erb +0 -36
  169. data/app/widgets/dynamic_forms/base.rb +0 -139
  170. data/app/widgets/dynamic_forms/javascript/dynamic_forms.js +0 -110
  171. data/app/widgets/dynamic_forms/views/error.html.erb +0 -5
  172. data/app/widgets/dynamic_forms/views/index.html.erb +0 -8
  173. data/app/widgets/dynamic_forms/views/success.html.erb +0 -4
  174. data/app/widgets/dynamic_grid/base.rb +0 -130
  175. data/app/widgets/dynamic_grid/helpers/controller/dynamic_grid_controller_helper.rb +0 -3
  176. data/app/widgets/dynamic_grid/helpers/view/dynamic_grid_view_helper.rb +0 -3
  177. data/app/widgets/dynamic_grid/javascript/dynamic_grid.js +0 -177
  178. data/app/widgets/dynamic_grid/views/index.html.erb +0 -14
  179. data/app/widgets/login/views/reset_password.html.erb +0 -26
  180. data/app/widgets/manage_profile/views/default_type_error.html.erb +0 -5
  181. data/app/widgets/scaffold/base.rb +0 -87
  182. data/app/widgets/scaffold/helpers/controller/scaffold_controller_helper.rb +0 -3
  183. data/app/widgets/scaffold/helpers/view/scaffold_view_helper.rb +0 -3
  184. data/app/widgets/scaffold/javascript/scaffold.js +0 -337
  185. data/app/widgets/scaffold/views/index.html.erb +0 -15
  186. data/app/widgets/search/views/_search.html.erb +0 -39
  187. data/public/images/knitkit/bullet.png +0 -0
  188. data/public/images/knitkit/close.png +0 -0
  189. data/public/images/knitkit/content.png +0 -0
  190. data/public/images/knitkit/footer.png +0 -0
  191. data/public/images/knitkit/graphic.png +0 -0
  192. data/public/images/knitkit/greyFadeDown.png +0 -0
  193. data/public/images/knitkit/link.png +0 -0
  194. data/public/images/knitkit/menu.png +0 -0
  195. data/public/images/knitkit/menu_select.png +0 -0
  196. data/public/images/knitkit/search.png +0 -0
  197. data/public/images/knitkit/tooltip.gif +0 -0
  198. data/public/javascripts/ajax_pagination.js +0 -33
  199. data/public/javascripts/datepicker.js +0 -445
  200. data/public/javascripts/erp_app/desktop/applications/knitkit/file_assets_panel.js +0 -341
  201. data/public/javascripts/erp_app/desktop/applications/knitkit/image_assets_data_view.js +0 -31
  202. data/public/javascripts/erp_app/desktop/applications/knitkit/image_assets_panel.js +0 -263
  203. data/public/javascripts/erp_app/desktop/applications/knitkit/section_articles_grid_panel.js +0 -722
  204. data/public/javascripts/erp_app/desktop/applications/knitkit/themes_tree_panel.js +0 -585
  205. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/website.js +0 -155
  206. data/public/javascripts/knitkit/helpers.js +0 -26
  207. data/public/stylesheets/datepicker.css +0 -121
  208. data/public/stylesheets/extjs/resources/css/knitkit_extjs_4.css +0 -233
  209. data/public/stylesheets/knitkit/style.css +0 -426
@@ -0,0 +1,216 @@
1
+ Compass.ErpApp.Desktop.Applications.Knitkit.addArticleOptions = function (self, items, record) {
2
+ items.push({
3
+ text: 'Edit Article Attributes',
4
+ iconCls: 'icon-edit',
5
+ listeners: {
6
+ 'click': function () {
7
+ var itemId = 'editArticle-' + record.get('id'),
8
+ editArticleWindow = Ext.ComponentQuery.query('#' + itemId).first();
9
+
10
+ if (Compass.ErpApp.Utility.isBlank(editArticleWindow)) {
11
+ editArticleWindow = Ext.widget("window", {
12
+ modal: true,
13
+ title: 'Edit Article',
14
+ itemId: itemId,
15
+ buttonAlign: 'center',
16
+ items: {
17
+ xtype: 'form',
18
+ labelWidth: 110,
19
+ frame: false,
20
+ bodyStyle: 'padding:5px 5px 0',
21
+ url: '/knitkit/erp_app/desktop/articles/update/',
22
+ defaults: {width: 225},
23
+ items: [
24
+ {
25
+ xtype: 'textfield',
26
+ fieldLabel: 'Title',
27
+ allowBlank: false,
28
+ name: 'title',
29
+ value: record.data.text
30
+ },
31
+ {
32
+ xtype: 'radiogroup',
33
+ fieldLabel: 'Display title?',
34
+ name: 'display_title',
35
+ columns: 2,
36
+ items: [
37
+ {
38
+ boxLabel: 'Yes',
39
+ name: 'display_title',
40
+ inputValue: 'yes',
41
+ checked: record.data.display_title
42
+ },
43
+
44
+ {
45
+ boxLabel: 'No',
46
+ name: 'display_title',
47
+ inputValue: 'no',
48
+ checked: !record.data.display_title
49
+ }
50
+ ]
51
+ },
52
+ {
53
+ xtype: 'textfield',
54
+ fieldLabel: 'Internal ID',
55
+ allowBlank: true,
56
+ name: 'internal_identifier',
57
+ value: record.data.internal_identifier
58
+ },
59
+ {
60
+ xtype: 'textfield',
61
+ fieldLabel: 'Tags',
62
+ allowBlank: true,
63
+ name: 'tags',
64
+ itemId: 'tag_list',
65
+ value: record.data.tag_list
66
+ },
67
+ {
68
+ xtype: 'textfield',
69
+ fieldLabel: 'Content Area',
70
+ allowBlank: true,
71
+ name: 'content_area',
72
+ value: record.data.content_area
73
+ },
74
+ {
75
+ xtype: 'displayfield',
76
+ fieldLabel: 'Created At',
77
+ name: 'created_at',
78
+ value: Ext.Date.format(record.data.createdAt, 'm-d-Y g:i A')
79
+ },
80
+ {
81
+ xtype: 'displayfield',
82
+ fieldLabel: 'Updated At',
83
+ name: 'updated_at',
84
+ value: Ext.Date.format(record.data.updatedAt, 'm-d-Y g:i A')
85
+ },
86
+ {
87
+ xtype: 'hidden',
88
+ allowBlank: false,
89
+ name: 'id',
90
+ itemId: 'record_id',
91
+ value: record.data.id
92
+ },
93
+ {
94
+ xtype: 'hidden',
95
+ allowBlank: false,
96
+ name: 'section_id',
97
+ value: record.data.parentItemId
98
+ }
99
+ ]
100
+ },
101
+ buttons: [
102
+ {
103
+ text: 'Submit',
104
+ listeners: {
105
+ 'click': function (button) {
106
+ var window = button.findParentByType('window');
107
+ var formPanel = window.query('form')[0];
108
+ var values = formPanel.getValues();
109
+ formPanel.getForm().submit({
110
+ reset: false,
111
+ success: function (form, action) {
112
+ var obj = Ext.decode(action.response.responseText);
113
+ if (obj.success) {
114
+ record.set('text', values.title);
115
+ record.set('display_title', !Ext.isEmpty(values.display_title));
116
+ record.set('content_area', values.content_area);
117
+ if (formPanel.getForm().findField('tag_list')) {
118
+ var tag_list = formPanel.getForm().findField('tag_list').getValue();
119
+ record.set('tag_list', tag_list);
120
+ }
121
+ window.close();
122
+ }
123
+ else {
124
+ Ext.Msg.alert("Error", obj.msg);
125
+ }
126
+ },
127
+ failure: function (form, action) {
128
+ Ext.Msg.alert("Error", "Error updating article");
129
+ }
130
+ });
131
+ }
132
+ }
133
+ },
134
+ {
135
+ text: 'Close',
136
+ handler: function (btn) {
137
+ btn.up('window').close();
138
+ }
139
+ }
140
+ ]
141
+ });
142
+ }
143
+ editArticleWindow.show();
144
+ }
145
+ }
146
+ });
147
+
148
+ if (record.get('canEditExcerpt')) {
149
+ items.push({
150
+ text: 'Edit Excerpt',
151
+ iconCls: 'icon-edit',
152
+ listeners: {
153
+ 'click': function () {
154
+ var centerRegion = Ext.getCmp('knitkitCenterRegion'),
155
+ websiteId = compassDesktop.getModule('knitkit-win').currentWebsite.id;
156
+
157
+ var url = '/knitkit/erp_app/desktop/articles/show/' + record.data.id
158
+
159
+ Ext.Ajax.request({
160
+ url: url,
161
+ method: 'GET',
162
+ extraParams: {
163
+ id: record.data.id
164
+ },
165
+ timeout: 90000,
166
+ success: function (response) {
167
+ var article = Ext.decode(response.responseText);
168
+ centerRegion.editExcerpt(article.title + ' - Excerpt', record.data.id, article.excerpt_html, websiteId);
169
+ }
170
+ });
171
+ }
172
+ }
173
+ });
174
+ }
175
+
176
+ items.push({
177
+ text: 'Detach Article',
178
+ iconCls: 'icon-delete',
179
+ listeners: {
180
+ 'click': function () {
181
+
182
+ Ext.MessageBox.confirm('Confirm', 'Are you sure you want to remove this article from the page?', function (btn) {
183
+ if (btn == 'no') {
184
+ return false;
185
+ }
186
+ else if (btn == 'yes') {
187
+
188
+ Ext.Ajax.request({
189
+ url: '/knitkit/erp_app/desktop/section/detach_article',
190
+ method: 'POST',
191
+ params: {
192
+ id: record.data.parentItemId,
193
+ article_id: record.data.id
194
+ },
195
+ success: function (response) {
196
+ var obj = Ext.decode(response.responseText);
197
+ if (obj.success) {
198
+ record.remove(true);
199
+
200
+ }
201
+ else {
202
+ Ext.Msg.alert('Error', 'Error detaching Article');
203
+ }
204
+ },
205
+ failure: function (response) {
206
+ Ext.Msg.alert('Error', 'Error detaching Article');
207
+ }
208
+ });
209
+ }
210
+ });
211
+ }
212
+ }
213
+ });
214
+
215
+ return items;
216
+ };
@@ -1,129 +1,132 @@
1
1
  Compass.ErpApp.Desktop.Applications.Knitkit.addDocumentOptions = function (self, items, record) {
2
- if (currentUser.hasCapability('unsecure','WebsiteSection') || currentUser.hasCapability('secure','WebsiteSection')) {
2
+ var sectionId = record.data.id.split('_')[1];
3
+
4
+ if (currentUser.hasCapability('unsecure', 'WebsiteSection') || currentUser.hasCapability('secure', 'WebsiteSection')) {
3
5
  items.push({
4
- text:'Security',
5
- iconCls:'icon-document_lock',
6
- listeners:{
7
- 'click':function () {
8
- self.changeSecurity(record, '/knitkit/erp_app/desktop/section/update_security', record.data.id.split('_')[1]);
6
+ text: 'Security',
7
+ iconCls: 'icon-document_lock',
8
+ listeners: {
9
+ 'click': function () {
10
+ var westRegion = Ext.getCmp('knitkitWestRegion');
11
+ westRegion.changeSecurity(record, '/knitkit/erp_app/desktop/section/update_security', record.data.id.split('_')[1]);
9
12
  }
10
13
  }
11
14
  });
12
15
  }
13
16
 
14
- if (currentUser.hasCapability('create','WebsiteSection')) {
17
+ if (currentUser.hasCapability('create', 'WebsiteSection')) {
15
18
  items.push({
16
- text:'Add Document',
17
- iconCls:'icon-add',
18
- listeners:{
19
- 'click':function () {
19
+ text: 'Add Document',
20
+ iconCls: 'icon-add',
21
+ listeners: {
22
+ 'click': function () {
20
23
  var addSectionWindow = Ext.create("Ext.window.Window", {
21
- layout:'fit',
22
- width:375,
23
- title:'New Document Section',
24
- plain:true,
25
- buttonAlign:'center',
26
- items:new Ext.FormPanel({
27
- labelWidth:110,
28
- frame:false,
29
- bodyStyle:'padding:5px 5px 0',
30
- url:'/knitkit/erp_app/desktop/online_document_sections/new',
31
- defaults:{
32
- width:225
24
+ layout: 'fit',
25
+ width: 375,
26
+ title: 'New Document Section',
27
+ plain: true,
28
+ buttonAlign: 'center',
29
+ items: new Ext.FormPanel({
30
+ labelWidth: 110,
31
+ frame: false,
32
+ bodyStyle: 'padding:5px 5px 0',
33
+ url: '/knitkit/erp_app/desktop/online_document_sections/new',
34
+ defaults: {
35
+ width: 225
33
36
  },
34
- items:[
37
+ items: [
35
38
  {
36
- xtype:'textfield',
37
- fieldLabel:'Title',
38
- allowBlank:false,
39
- name:'title'
39
+ xtype: 'textfield',
40
+ fieldLabel: 'Title',
41
+ allowBlank: false,
42
+ name: 'title'
40
43
  },
41
44
  {
42
- xtype:'textfield',
43
- fieldLabel:'Internal ID',
44
- allowBlank:true,
45
- name:'internal_identifier'
45
+ xtype: 'textfield',
46
+ fieldLabel: 'Internal ID',
47
+ allowBlank: true,
48
+ name: 'internal_identifier'
46
49
  },
47
50
  {
48
- xtype:'combo',
49
- forceSelection:true,
50
- store:[
51
+ xtype: 'combo',
52
+ forceSelection: true,
53
+ store: [
51
54
  ['OnlineDocumentSection', 'Online Document Section']
52
55
  ],
53
- value:'OnlineDocumentSection',
54
- fieldLabel:'Type',
55
- name:'type',
56
- allowBlank:false,
57
- triggerAction:'all'
56
+ value: 'OnlineDocumentSection',
57
+ fieldLabel: 'Type',
58
+ name: 'type',
59
+ allowBlank: false,
60
+ triggerAction: 'all'
58
61
  },
59
62
  {
60
- xtype:'combo',
61
- forceSelection:true,
62
- store:[
63
+ xtype: 'combo',
64
+ forceSelection: true,
65
+ store: [
63
66
  ['Content', 'Content']
64
67
  ],
65
- value:'Content',
66
- fieldLabel:'Document Type',
67
- name:'documenttype',
68
- allowBlank:false,
69
- triggerAction:'all'
68
+ value: 'Content',
69
+ fieldLabel: 'Document Type',
70
+ name: 'documenttype',
71
+ allowBlank: false,
72
+ triggerAction: 'all'
70
73
  },
71
74
  {
72
- xtype:'radiogroup',
73
- fieldLabel:'Display in menu?',
74
- name:'in_menu',
75
- columns:2,
76
- items:[
75
+ xtype: 'radiogroup',
76
+ fieldLabel: 'Display in menu?',
77
+ name: 'in_menu',
78
+ columns: 2,
79
+ items: [
77
80
  {
78
- boxLabel:'Yes',
79
- name:'in_menu',
80
- inputValue:'yes',
81
- checked:true
81
+ boxLabel: 'Yes',
82
+ name: 'in_menu',
83
+ inputValue: 'yes',
84
+ checked: true
82
85
  },
83
86
 
84
87
  {
85
- boxLabel:'No',
86
- name:'in_menu',
87
- inputValue:'no'
88
+ boxLabel: 'No',
89
+ name: 'in_menu',
90
+ inputValue: 'no'
88
91
  }
89
92
  ]
90
93
  },
91
94
  {
92
- xtype:'hidden',
93
- name:'website_section_id',
94
- value:record.data.id.split('_')[1]
95
+ xtype: 'hidden',
96
+ name: 'website_section_id',
97
+ value: record.data.id.split('_')[1]
95
98
  },
96
99
  {
97
- xtype:'hidden',
98
- name:'website_id',
99
- value:record.data.siteId
100
+ xtype: 'hidden',
101
+ name: 'website_id',
102
+ value: record.data.siteId
100
103
  }
101
104
  ]
102
105
  }),
103
- buttons:[
106
+ buttons: [
104
107
  {
105
- text:'Submit',
106
- listeners:{
107
- 'click':function (button) {
108
+ text: 'Submit',
109
+ listeners: {
110
+ 'click': function (button) {
108
111
  var window = button.findParentByType('window');
109
112
  var formPanel = window.query('.form')[0];
110
- self.setWindowStatus('Creating document section...');
111
113
  formPanel.getForm().submit({
112
- reset:true,
113
- success:function (form, action) {
114
- self.clearWindowStatus();
114
+ reset: true,
115
+ waitMsg: 'Creating document section...',
116
+ success: function (form, action) {
115
117
  var obj = Ext.decode(action.response.responseText);
116
118
  if (obj.success) {
117
119
  record.appendChild(obj.node);
118
- self.initialConfig['centerRegion'].editContent(obj.documented_content.title, obj.documented_content.id, obj.documented_content.body_html, record.data.siteId, 'article');
120
+
121
+ var centerRegion = Ext.getComp('knitkitCenterRegion');
122
+ centerRegion.editContent(obj.documented_content.title, obj.documented_content.id, obj.documented_content.body_html, record.data.siteId, 'article');
119
123
  window.close();
120
124
  }
121
125
  else {
122
126
  Ext.Msg.alert("Error", obj.message);
123
127
  }
124
128
  },
125
- failure:function (form, action) {
126
- self.clearWindowStatus();
129
+ failure: function (form, action) {
127
130
  var obj = Ext.decode(action.response.responseText);
128
131
  if (obj.message) {
129
132
  Ext.Msg.alert("Error", obj.message);
@@ -137,8 +140,8 @@ Compass.ErpApp.Desktop.Applications.Knitkit.addDocumentOptions = function (self,
137
140
  }
138
141
  },
139
142
  {
140
- text:'Close',
141
- handler:function () {
143
+ text: 'Close',
144
+ handler: function () {
142
145
  addSectionWindow.close();
143
146
  }
144
147
  }
@@ -150,113 +153,111 @@ Compass.ErpApp.Desktop.Applications.Knitkit.addDocumentOptions = function (self,
150
153
  });
151
154
  }
152
155
 
153
- if (currentUser.hasCapability('edit','WebsiteSection')) {
156
+ if (currentUser.hasCapability('edit', 'WebsiteSection')) {
154
157
  var contentInfo = record.data['contentInfo'];
155
158
 
156
159
  items.push({
157
- text:'Update Document',
158
- iconCls:'icon-edit',
159
- listeners:{
160
- 'click':function () {
160
+ text: 'Update Document',
161
+ iconCls: 'icon-edit',
162
+ listeners: {
163
+ 'click': function () {
161
164
  var updateSectionWindow = Ext.create("Ext.window.Window", {
162
- layout:'fit',
163
- width:375,
164
- title:'Update Document Section',
165
- plain:true,
166
- buttonAlign:'center',
167
- items:new Ext.FormPanel({
168
- labelWidth:110,
169
- frame:false,
170
- bodyStyle:'padding:5px 5px 0',
171
- url:'/knitkit/erp_app/desktop/section/update',
172
- defaults:{
173
- width:225
165
+ layout: 'fit',
166
+ width: 375,
167
+ title: 'Update Document Section',
168
+ plain: true,
169
+ buttonAlign: 'center',
170
+ items: new Ext.FormPanel({
171
+ labelWidth: 110,
172
+ frame: false,
173
+ bodyStyle: 'padding:5px 5px 0',
174
+ url: '/knitkit/erp_app/desktop/section/update',
175
+ defaults: {
176
+ width: 225
174
177
  },
175
- items:[
178
+ items: [
176
179
  {
177
- xtype:'textfield',
178
- fieldLabel:'Title',
179
- value:record.data.text,
180
- name:'title'
180
+ xtype: 'textfield',
181
+ fieldLabel: 'Title',
182
+ value: record.data.text,
183
+ name: 'title'
181
184
  },
182
185
  {
183
- xtype:'textfield',
184
- fieldLabel:'Internal ID',
185
- allowBlank:true,
186
- name:'internal_identifier',
187
- value:record.data.internal_identifier
186
+ xtype: 'textfield',
187
+ fieldLabel: 'Internal ID',
188
+ allowBlank: true,
189
+ name: 'internal_identifier',
190
+ value: record.data.internal_identifier
188
191
  },
189
192
  {
190
- xtype:'radiogroup',
191
- fieldLabel:'Display in menu?',
192
- name:'in_menu',
193
- columns:2,
194
- items:[
193
+ xtype: 'radiogroup',
194
+ fieldLabel: 'Display in menu?',
195
+ name: 'in_menu',
196
+ columns: 2,
197
+ items: [
195
198
  {
196
- boxLabel:'Yes',
197
- name:'in_menu',
198
- inputValue:'yes',
199
- checked:record.data.inMenu
199
+ boxLabel: 'Yes',
200
+ name: 'in_menu',
201
+ inputValue: 'yes',
202
+ checked: record.data.inMenu
200
203
  },
201
204
 
202
205
  {
203
- boxLabel:'No',
204
- name:'in_menu',
205
- inputValue:'no',
206
- checked:!record.data.inMenu
206
+ boxLabel: 'No',
207
+ name: 'in_menu',
208
+ inputValue: 'no',
209
+ checked: !record.data.inMenu
207
210
  }
208
211
  ]
209
212
  },
210
213
  {
211
- xtype:'radiogroup',
212
- fieldLabel:'Use markdown?',
213
- name:'use_markdown',
214
- columns:2,
215
- items:[
214
+ xtype: 'radiogroup',
215
+ fieldLabel: 'Use markdown?',
216
+ name: 'use_markdown',
217
+ columns: 2,
218
+ items: [
216
219
  {
217
- boxLabel:'Yes',
218
- name:'use_markdown',
219
- inputValue:'yes',
220
- checked:record.data.useMarkdown
220
+ boxLabel: 'Yes',
221
+ name: 'use_markdown',
222
+ inputValue: 'yes',
223
+ checked: record.data.useMarkdown
221
224
  },
222
225
 
223
226
  {
224
- boxLabel:'No',
225
- name:'use_markdown',
226
- inputValue:'no',
227
- checked:!record.data.useMarkdown
227
+ boxLabel: 'No',
228
+ name: 'use_markdown',
229
+ inputValue: 'no',
230
+ checked: !record.data.useMarkdown
228
231
  }
229
232
  ]
230
233
  },
231
234
  {
232
- xtype:'hidden',
233
- name:'id',
234
- value:record.data.id.split('_')[1]
235
+ xtype: 'hidden',
236
+ name: 'id',
237
+ value: record.data.id.split('_')[1]
235
238
  }
236
239
  ]
237
240
  }),
238
- buttons:[
241
+ buttons: [
239
242
  {
240
- text:'Submit',
241
- listeners:{
242
- 'click':function (button) {
243
+ text: 'Submit',
244
+ listeners: {
245
+ 'click': function (button) {
243
246
  var window = button.findParentByType('window');
244
247
  var formPanel = window.query('.form')[0];
245
- self.setWindowStatus('Updating document section...');
246
248
  formPanel.getForm().submit({
247
- success:function (form, action) {
248
- self.clearWindowStatus();
249
+ waitMsg: 'Updating document section...',
250
+ success: function (form, action) {
249
251
  var values = formPanel.getValues();
250
252
 
251
- record.set('title', values.title);
253
+ record.set('text', values.title);
252
254
  record.set('internal_identifier', values.internal_identifier);
253
255
  record.set("inMenu", (values.in_menu == 'yes'));
254
256
  record.set("useMarkdown", (values.use_markdown == 'yes'));
255
257
  record.commit();
256
258
  updateSectionWindow.close();
257
259
  },
258
- failure:function (form, action) {
259
- self.clearWindowStatus();
260
+ failure: function (form, action) {
260
261
  var obj = Ext.decode(action.response.responseText);
261
262
  Ext.Msg.alert("Error", obj.msg);
262
263
  }
@@ -265,8 +266,8 @@ Compass.ErpApp.Desktop.Applications.Knitkit.addDocumentOptions = function (self,
265
266
  }
266
267
  },
267
268
  {
268
- text:'Close',
269
- handler:function () {
269
+ text: 'Close',
270
+ handler: function () {
270
271
  updateSectionWindow.close();
271
272
  }
272
273
  }
@@ -278,13 +279,41 @@ Compass.ErpApp.Desktop.Applications.Knitkit.addDocumentOptions = function (self,
278
279
  });
279
280
  }
280
281
 
281
- if (currentUser.hasCapability('delete','WebsiteSection')) {
282
+ if (currentUser.hasCapability('delete', 'WebsiteSection')) {
282
283
  items.push({
283
- text:'Delete Document Section',
284
- iconCls:'icon-delete',
285
- listeners:{
286
- 'click':function () {
287
- self.deleteSection(record);
284
+ text: 'Delete Document Section',
285
+ iconCls: 'icon-delete',
286
+ listeners: {
287
+ 'click': function () {
288
+ Ext.MessageBox.confirm('Confirm', 'Are you sure you want to delete this document section?', function (btn) {
289
+ if (btn == 'no') {
290
+ return false;
291
+ }
292
+ else if (btn == 'yes') {
293
+ Ext.Ajax.request({
294
+ url: '/knitkit/erp_app/desktop/section/delete',
295
+ method: 'POST',
296
+ params: {
297
+ id: sectionId
298
+ },
299
+ success: function (response) {
300
+
301
+ var obj = Ext.decode(response.responseText);
302
+ if (obj.success) {
303
+ record.remove();
304
+ }
305
+ else {
306
+ Ext.Msg.alert('Error', 'Error deleting section');
307
+ }
308
+ },
309
+ failure: function (response) {
310
+ Ext.Msg.alert('Error', 'Error deleting section');
311
+ }
312
+ });
313
+ }
314
+ });
315
+
316
+ record.remove();
288
317
  }
289
318
  }
290
319
  });