knitkit 2.1.2 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. data/app/controllers/knitkit/comments_controller.rb +1 -1
  2. data/app/controllers/knitkit/erp_app/desktop/app_controller.rb +5 -0
  3. data/app/controllers/knitkit/erp_app/desktop/articles_controller.rb +0 -4
  4. data/app/controllers/knitkit/erp_app/desktop/content_controller.rb +0 -2
  5. data/app/controllers/knitkit/erp_app/desktop/theme_controller.rb +13 -0
  6. data/app/controllers/knitkit/erp_app/desktop/website_section_controller.rb +37 -29
  7. data/app/controllers/knitkit/online_document_sections_controller.rb +1 -1
  8. data/app/models/website_section.rb +2 -3
  9. data/app/views/knitkit/blogs/_add_comment.html.erb +2 -1
  10. data/app/views/knitkit/online_document_sections/index.html.erb +143 -136
  11. data/app/views/layouts/knitkit/online_document_sections.html.erb +2 -2
  12. data/app/widgets/contact_us/javascript/contact_us.js +3 -1
  13. data/app/widgets/dynamic_forms/javascript/dynamic_forms.js +91 -92
  14. data/app/widgets/dynamic_grid/base.rb +7 -7
  15. data/app/widgets/dynamic_grid/javascript/dynamic_grid.js +111 -112
  16. data/app/widgets/dynamic_grid/views/index.html.erb +1 -1
  17. data/app/widgets/google_map/javascript/google_map.js +132 -119
  18. data/app/widgets/google_map/views/index.html.erb +1 -1
  19. data/app/widgets/login/javascript/login.js +160 -155
  20. data/app/widgets/manage_profile/javascript/manage_profile.js +3 -1
  21. data/app/widgets/reset_password/javascript/reset_password.js +3 -1
  22. data/app/widgets/scaffold/base.rb +8 -4
  23. data/app/widgets/scaffold/javascript/scaffold.js +218 -220
  24. data/app/widgets/scaffold/views/index.html.erb +1 -1
  25. data/app/widgets/search/javascript/search.js +21 -21
  26. data/app/widgets/signup/javascript/signup.js +2 -1
  27. data/config/routes.rb +1 -1
  28. data/lib/knitkit/extensions/railties/action_view/helpers/blog_helper.rb +3 -3
  29. data/lib/knitkit/extensions/railties/action_view/helpers/knitkit_helper.rb +0 -2
  30. data/lib/knitkit/version.rb +1 -1
  31. data/public/javascripts/erp_app/desktop/applications/knitkit/center_region.js +6 -7
  32. data/public/javascripts/erp_app/desktop/applications/knitkit/publish_window.js +3 -3
  33. data/public/javascripts/erp_app/desktop/applications/knitkit/select_roles_window.js +103 -0
  34. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/section.js +4 -4
  35. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/west_region.js +32 -21
  36. metadata +3 -2
@@ -7,7 +7,7 @@ module Knitkit
7
7
 
8
8
  @comment = content.add_comment({:commentor_name => user.party.description, :email => user.email, :comment => comment})
9
9
 
10
- render :text => (@comment.valid? ? '<div class="sexysuccess">Comment pending approval.</span>' : '<div class="sexyerror">Error. Comment cannot be blank.</span>')
10
+ render :text => (@comment.valid? ? '<div class="sexynotice">Comment pending approval.</div>' : '<div class="sexynotice">Error. Comment cannot be blank.</div>')
11
11
  end
12
12
 
13
13
  #no section to set
@@ -4,6 +4,10 @@ module Knitkit
4
4
  class AppController < ::ErpApp::Desktop::BaseController
5
5
  KNIT_KIT_ROOT = Knitkit::Engine.root.to_s
6
6
 
7
+ def available_roles
8
+ render :json => {:success => true, :availableRoles => SecurityRole.all.collect{|role| role.to_hash(:only => [:internal_identifier, :description])}}
9
+ end
10
+
7
11
  def websites
8
12
  websites = Website.order('name ASC').all
9
13
 
@@ -107,6 +111,7 @@ module Knitkit
107
111
  :siteId => website.id,
108
112
  :type => website_section.type,
109
113
  :isSecured => website_section.is_secured?,
114
+ :roles => website_section.roles.collect{|item| item.internal_identifier},
110
115
  :isSection => website_section.is_section?,
111
116
  :isDocument => website_section.is_document_section?,
112
117
  :inMenu => website_section.in_menu,
@@ -5,7 +5,6 @@ module Knitkit
5
5
  @@datetime_format = "%m/%d/%Y %l:%M%P"
6
6
 
7
7
  def new
8
- model = DesktopApplication.find_by_internal_identifier('knitkit')
9
8
  begin
10
9
  current_user.with_capability('create', 'Content') do
11
10
  result = {}
@@ -38,7 +37,6 @@ module Knitkit
38
37
  end
39
38
 
40
39
  def update
41
- model = DesktopApplication.find_by_internal_identifier('knitkit')
42
40
  begin
43
41
  current_user.with_capability('edit', 'Content') do
44
42
  result = {}
@@ -70,7 +68,6 @@ module Knitkit
70
68
  end
71
69
 
72
70
  def delete
73
- model = DesktopApplication.find_by_internal_identifier('knitkit')
74
71
  begin
75
72
  current_user.with_capability('delete', 'Content') do
76
73
  render :json => Article.destroy(params[:id]) ? {:success => true} : {:success => false}
@@ -81,7 +78,6 @@ module Knitkit
81
78
  end
82
79
 
83
80
  def add_existing
84
- model = DesktopApplication.find_by_internal_identifier('knitkit')
85
81
  begin
86
82
  current_user.with_capability('add_existing', 'Content') do
87
83
  website_section = WebsiteSection.find(params[:section_id])
@@ -5,7 +5,6 @@ module Knitkit
5
5
  class ContentController < Knitkit::ErpApp::Desktop::AppController
6
6
  def update
7
7
  result = {:success => true}
8
- model = DesktopApplication.find_by_internal_identifier('knitkit')
9
8
  begin
10
9
  current_user.with_capability('edit_html', 'Content') do
11
10
  id = params[:id]
@@ -33,7 +32,6 @@ module Knitkit
33
32
 
34
33
  def save_excerpt
35
34
  result = {:success => true}
36
- model = DesktopApplication.find_by_internal_identifier('knitkit')
37
35
  begin
38
36
  current_user.with_capability('edit_excerpt', 'Content') do
39
37
  id = params[:id]
@@ -274,6 +274,19 @@ module Knitkit
274
274
  end
275
275
  end
276
276
 
277
+ def get_ckeditor_selectable_themes
278
+ themes = []
279
+ Theme.where('active = ?', 1).all.each do |theme|
280
+ theme_hash = {:name => theme.name, :theme_id => theme.theme_id, :stylesheets => []}
281
+ theme.stylesheets.each do |stylesheet|
282
+ theme_hash[:stylesheets] << {:name => stylesheet.name, :url => stylesheet.data.url}
283
+ end
284
+ themes << theme_hash
285
+ end
286
+
287
+ render :json => {:success => true, :themes => themes}
288
+ end
289
+
277
290
  protected
278
291
 
279
292
  def get_theme(path)
@@ -27,12 +27,12 @@ module Knitkit
27
27
  parent_website_section = WebsiteSection.find(params[:website_section_id])
28
28
  website_section.move_to_child_of(parent_website_section)
29
29
  end
30
-
30
+
31
31
  if params[:type] == "OnlineDocumentSection"
32
32
  documented_content = DocumentedContent.create(:title => website_section.title, :created_by => current_user, :body_html => website_section.title)
33
33
  DocumentedItem.create(:documented_content_id => documented_content.id, :online_document_section_id => website_section.id)
34
34
  end
35
-
35
+
36
36
  website_section.update_path!
37
37
  result = {:success => true, :node => build_section_hash(website_section, website_section.website)}
38
38
  else
@@ -48,7 +48,7 @@ module Knitkit
48
48
 
49
49
  render :json => result
50
50
  end
51
- rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability=>ex
51
+ rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability => ex
52
52
  render :json => {:success => false, :message => ex.message}
53
53
  end
54
54
  end
@@ -58,7 +58,7 @@ module Knitkit
58
58
  current_user.with_capability('delete', 'WebsiteSection') do
59
59
  render :json => WebsiteSection.destroy(params[:id]) ? {:success => true} : {:success => false}
60
60
  end
61
- rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability=>ex
61
+ rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability => ex
62
62
  render :json => {:success => false, :message => ex.message}
63
63
  end
64
64
  end
@@ -70,19 +70,27 @@ module Knitkit
70
70
 
71
71
  def update_security
72
72
  if current_user.has_capability?('secure', 'WebsiteSection') or current_user.has_capability?('unsecure', 'WebsiteSection')
73
+ roles = []
74
+
75
+ #get roles
76
+ params.each do |k, v|
77
+ if v == 'on'
78
+ roles.push(k)
79
+ end
80
+ end
73
81
 
74
- if params[:secure] == 'true'
75
- c = @website_section.add_capability(:view)
76
- roles = ['admin', 'website_author', @website_section.website.website_role_iid]
82
+ if roles.empty?
83
+ @website_section.remove_capability(:view)
84
+ else
85
+ capability = @website_section.add_capability(:view)
86
+ capability.remove_all_roles
77
87
  roles.each do |r|
78
88
  role = SecurityRole.find_by_internal_identifier(r)
79
- role.add_capability(c)
89
+ role.add_capability(capability)
80
90
  end
81
- else
82
- @website_section.remove_capability(:view)
83
91
  end
84
92
 
85
- render :json => {:success => true}
93
+ render :json => {:success => true, :secured => @website_section.is_secured?, :roles => @website_section.roles.collect{|item| item.internal_identifier}}
86
94
  else
87
95
  render :json => {:success => false, :message => "User does not have capability."}
88
96
  end
@@ -105,7 +113,7 @@ module Knitkit
105
113
  render :json => {:success => false}
106
114
  end
107
115
  end
108
- rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability=>ex
116
+ rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability => ex
109
117
  render :json => {:success => false, :message => ex.message}
110
118
  end
111
119
  end
@@ -116,7 +124,7 @@ module Knitkit
116
124
  @website_section.create_layout
117
125
  render :json => {:success => true}
118
126
  end
119
- rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability=>ex
127
+ rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability => ex
120
128
  render :json => {:success => false, :message => ex.message}
121
129
  end
122
130
  end
@@ -126,15 +134,15 @@ module Knitkit
126
134
  current_user.with_capability('edit', 'WebsiteSectionLayout') do
127
135
  render :text => @website_section.layout
128
136
  end
129
- rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability=>ex
137
+ rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability => ex
130
138
  render :json => {:success => false, :message => ex.message}
131
139
  end
132
140
  end
133
-
141
+
134
142
  def save_layout
135
143
  begin
136
144
  current_user.with_capability('edit', 'WebsiteSectionLayout') do
137
- result = Knitkit::SyntaxValidator.validate_content(:erb, params[:content])
145
+ result = Knitkit::SyntaxValidator.validate_content(:erb, params[:content])
138
146
  unless result
139
147
  website = @website_section.website
140
148
  @website_section.layout = params[:content]
@@ -145,7 +153,7 @@ module Knitkit
145
153
  render :json => {:success => false, :message => result}
146
154
  end
147
155
  end
148
- rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability=>ex
156
+ rescue ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::UserDoesNotHaveCapability => ex
149
157
  render :json => {:success => false, :message => ex.message}
150
158
  end
151
159
  end
@@ -155,10 +163,10 @@ module Knitkit
155
163
  websites = Website.all
156
164
  all_articles = [{:name => 'All Articles', :id => 0}]
157
165
  orphaned_articles = [{:name => 'Orphaned Articles Only', :id => -1}]
158
-
166
+
159
167
  websites_array = []
160
- websites.each do |w|
161
- websites_array << { :name => "Website: #{w.name}", :id => w.id }
168
+ websites.each do |w|
169
+ websites_array << {:name => "Website: #{w.name}", :id => w.id}
162
170
  end
163
171
 
164
172
  menu = all_articles + orphaned_articles + websites_array
@@ -175,7 +183,7 @@ module Knitkit
175
183
 
176
184
  # Orphaned Articles
177
185
  if !website_id.blank? and website_id.to_i == -1
178
- available_articles = available_articles.includes(:website_section_contents).where( :website_section_contents => { :content_id => nil } )
186
+ available_articles = available_articles.includes(:website_section_contents).where(:website_section_contents => {:content_id => nil})
179
187
  end
180
188
 
181
189
  # Website Articles
@@ -187,7 +195,7 @@ module Knitkit
187
195
 
188
196
  render :inline => "{\"articles\":#{available_articles.to_json(:only => [:title, :internal_identifier, :id], :methods => [:combobox_display_value])}}"
189
197
  end
190
-
198
+
191
199
  def existing_sections
192
200
  website = Website.find(params[:website_id])
193
201
  WebsiteSection.class_eval do
@@ -197,14 +205,14 @@ module Knitkit
197
205
  end
198
206
  render :inline => website.sections.to_json(:only => [:id], :methods => [:title_permalink])
199
207
  end
200
-
208
+
201
209
  protected
202
-
210
+
203
211
  def set_website_section
204
212
  @website_section = WebsiteSection.find(params[:id])
205
213
  end
206
-
207
- end#WebsiteSectionController
208
- end#Desktop
209
- end#ErpApp
210
- end#Knitkit
214
+
215
+ end #WebsiteSectionController
216
+ end #Desktop
217
+ end #ErpApp
218
+ end #Knitkit
@@ -22,7 +22,7 @@ module Knitkit
22
22
  def find_root
23
23
  @root = OnlineDocumentSection.find(params[:section_id])
24
24
  if @root.documented_item_published_content(@active_publication)
25
- @root_content = @root.documented_item_published_content(@active_publication).body_html
25
+ @root_content = @root.documented_item_published_content(@active_publication).body_html.gsub(/\n/, '<br/>')
26
26
  else
27
27
  @root_content = ""
28
28
  end
@@ -2,7 +2,7 @@ class WebsiteSection < ActiveRecord::Base
2
2
  attr_protected :created_at, :updated_at
3
3
 
4
4
  after_create :update_paths # must happen after has_roles so that after_create :save_secured_model fires first
5
- before_save :update_path, :check_internal_indentifier
5
+ before_save :update_path, :check_internal_identifier
6
6
 
7
7
  extend FriendlyId
8
8
  friendly_id :title, :use => [:slugged, :scoped], :slug_column => :permalink, :scope => [:website_id, :parent_id]
@@ -98,7 +98,6 @@ class WebsiteSection < ActiveRecord::Base
98
98
  end
99
99
 
100
100
  def get_published_layout(active_publication)
101
- layout_content = nil
102
101
  published_website_id = active_publication.id
103
102
  published_element = PublishedElement.includes([:published_website]).where('published_websites.id = ? and published_element_record_id = ? and published_element_record_type = ?', published_website_id, self.id, 'WebsiteSection').first
104
103
  unless published_element.nil?
@@ -188,7 +187,7 @@ class WebsiteSection < ActiveRecord::Base
188
187
  end
189
188
  end
190
189
 
191
- def check_internal_indentifier
190
+ def check_internal_identifier
192
191
  self.internal_identifier = self.permalink if self.internal_identifier.blank?
193
192
  end
194
193
 
@@ -4,7 +4,7 @@
4
4
  <div id="notice"></div>
5
5
  <br/>
6
6
 
7
- <%= form_tag "/comments/add/#{@website_section.id}/#{@published_content.content.id}", :remote => true, :id => 'add_comment_form' do %>
7
+ <%= form_tag "/comments/add/", :remote => true, :id => 'add_comment_form' do %>
8
8
  <div class="form_settings">
9
9
  <div>
10
10
  <p>
@@ -15,6 +15,7 @@
15
15
  <span>&nbsp;</span>
16
16
  <%= submit_tag "Add Comment", :disable_with => "Please wait...", :class => "submit" %>
17
17
  </p>
18
+ <input type="hidden" name="content_id" value="<%=@published_content.content.id%>" />
18
19
  </div>
19
20
  </div>
20
21
  <% end %>
@@ -3,147 +3,154 @@
3
3
 
4
4
  <script type="text/javascript" charset="utf-8">
5
5
 
6
- Ext.onReady(function() {
7
- var index = 0;
8
- var currentItem;
9
-
10
- var tree = Ext.create('Ext.tree.Panel', {
11
- region: 'west',
12
- cls: 'tree_styles',
13
- store: new Ext.data.TreeStore({
14
- proxy:{
15
- type: 'ajax',
16
- url: 'online_document_sections/build_tree',
17
- extraParams:{ section_id: <%= params[:section_id] %> },
18
- format: 'json'
19
- },
20
- root: {
21
- text: '<%= @root.title %>',
22
- id: '0',
23
- expanded: true
24
- },
25
- fields:[ { name:'id' }, { name:'title' }, { name:'documented_item_published_content_html' }, { name:'leaf' }]
26
- }),
27
- collapsible: true,
28
- tbar: {
29
- items: [
30
- new Ext.form.TextField({
31
- id:"search",
32
- disabled: true,
33
- cls: 'document_search',
34
- emptyText: 'Search',
35
- allowBlank:true,
36
- })
37
- ]
38
- },
39
- header: false,
40
- autoScroll: true,
41
- bodyBorder: false,
42
- rootVisible: false,
43
- width: 170,
44
- displayField: 'title',
45
- valueField: 'id',
46
- title: '<%= @root.title %>',
47
- listeners:{
48
- 'itemclick':function(view, record, htmlItem, index, e){
49
- var tab_panel = Ext.getCmp('tabs_root')
50
- var tab = Ext.getCmp("tab_" + record.data['id'])
51
- if (tab){
52
- tab_panel.setActiveTab(tab.id);
53
- }
54
- else{
55
- addTab(record);
56
- }
57
- }
58
- }
59
- });
60
-
61
- var tabs = Ext.createWidget('tabpanel', {
62
- id: 'tabs_root',
63
- region: 'center',
64
- plain: true,
65
- bodyBorder: true,
66
- resizeTabs: true,
67
- enableTabScroll: true,
68
- width: 640,
69
- collapsible: false,
70
- defaults: {
6
+ Ext.onReady(function () {
7
+ var index = 0;
8
+ var currentItem;
9
+
10
+ var tree = Ext.create('Ext.tree.Panel', {
11
+ region: 'west',
12
+ cls: 'tree_styles',
13
+ store: Ext.create('Ext.data.TreeStore',{
14
+ proxy: {
15
+ type: 'ajax',
16
+ url: 'online_document_sections/build_tree',
17
+ extraParams: { section_id: <%= params[:section_id] %> },
18
+ format: 'json'
19
+ },
20
+ root: {
21
+ text: '<%= @root.title %>',
22
+ id: '0',
23
+ expanded: true
24
+ },
25
+ fields: [
26
+ { name: 'id' },
27
+ { name: 'title' },
28
+ { name: 'documented_item_published_content_html' },
29
+ { name: 'leaf' }
30
+ ]
31
+ }),
32
+ collapsible: true,
33
+ tbar: {
34
+ items: [
35
+ new Ext.form.TextField({
36
+ id: "search",
37
+ disabled: true,
38
+ cls: 'document_search',
39
+ emptyText: 'Search',
40
+ allowBlank: true,
41
+ })
42
+ ]
43
+ },
44
+ header: false,
71
45
  autoScroll: true,
72
- bodyPadding: 10,
73
- },
74
- items: [{
75
- id: "tab_" + <%= @root.id.to_s %>,
46
+ bodyBorder: false,
47
+ rootVisible: false,
48
+ width: 170,
49
+ displayField: 'title',
50
+ valueField: 'id',
76
51
  title: '<%= @root.title %>',
77
- html: "<%= raw @root_content.gsub(/\n/, '<br/>') %>",
78
- closable: false,
79
- autoScroll: true
80
- }],
81
- plugins: Ext.create('Ext.ux.TabCloseMenu', {
82
- extraItemsTail: [
83
- '-',
84
- {
85
- text: 'Closable',
86
- checked: true,
87
- hideOnClick: true,
88
- handler: function (item) {
89
- currentItem.tab.setClosable(item.checked);
52
+ listeners: {
53
+ 'itemclick': function (view, record, htmlItem, index, e) {
54
+ var tab_panel = Ext.getCmp('tabs_root')
55
+ var tab = Ext.getCmp("tab_" + record.data['id'])
56
+ if (tab) {
57
+ tab_panel.setActiveTab(tab.id);
90
58
  }
59
+ else {
60
+ addTab(record);
61
+ }
62
+ }
63
+ }
64
+ });
65
+
66
+ var tabs = Ext.createWidget('tabpanel', {
67
+ id: 'tabs_root',
68
+ region: 'center',
69
+ plain: true,
70
+ bodyBorder: true,
71
+ resizeTabs: true,
72
+ enableTabScroll: true,
73
+ width: 640,
74
+ collapsible: false,
75
+ defaults: {
76
+ autoScroll: true,
77
+ bodyPadding: 10,
78
+ },
79
+ items: [
80
+ {
81
+ id: "tab_" + <%= @root.id.to_s %>,
82
+ title: '<%= @root.title %>',
83
+ html: "<%= raw @root_content.gsub(/\n/, '<br/>') %>",
84
+ closable: false,
85
+ autoScroll: true
91
86
  }
92
87
  ],
93
- listeners: {
94
- aftermenu: function () {
95
- currentItem = null;
96
- },
97
- beforemenu: function (menu, item) {
98
- var menuitem = menu.child('*[text="Closable"]');
99
- currentItem = item;
100
- menuitem.setChecked(item.closable);
88
+ plugins: Ext.create('Ext.ux.TabCloseMenu', {
89
+ extraItemsTail: [
90
+ '-',
91
+ {
92
+ text: 'Closable',
93
+ checked: true,
94
+ hideOnClick: true,
95
+ handler: function (item) {
96
+ currentItem.tab.setClosable(item.checked);
97
+ }
98
+ }
99
+ ],
100
+ listeners: {
101
+ aftermenu: function () {
102
+ currentItem = null;
103
+ },
104
+ beforemenu: function (menu, item) {
105
+ var menuitem = menu.child('*[text="Closable"]');
106
+ currentItem = item;
107
+ menuitem.setChecked(item.closable);
108
+ }
101
109
  }
102
- }
103
- })
110
+ })
111
+ });
112
+
113
+ function addTab(record) {
114
+ ++index;
115
+ tabs.add({
116
+ id: "tab_" + record.data['id'],
117
+ title: record.data['title'],
118
+ html: record.data['documented_item_published_content_html'],
119
+ closable: true
120
+ }).show();
121
+ }
122
+
123
+ var fitted_panel = Ext.createWidget('panel', {
124
+ id: 'fitted_panel',
125
+ layout: 'border',
126
+ header: false,
127
+ defaults: {
128
+ collapsible: true,
129
+ split: true,
130
+ },
131
+ renderTo: 'document_content',
132
+ autoScroll: true,
133
+ items: [
134
+ tree,
135
+ tabs
136
+ ]
137
+ });
138
+
139
+ resize_windows();
140
+
104
141
  });
105
-
106
- function addTab(record){
107
- ++index;
108
- tabs.add({
109
- id: "tab_" + record.data['id'],
110
- title: record.data['title'],
111
- html: record.data['documented_item_published_content_html'],
112
- closable: true
113
- }).show();
114
- }
115
-
116
- var fitted_panel = Ext.createWidget('panel', {
117
- id: 'fitted_panel',
118
- layout: 'border',
119
- header: false,
120
- defaults: {
121
- collapsible: true,
122
- split: true,
123
- },
124
- renderTo: 'document_content',
125
- autoScroll: true,
126
- items: [
127
- tree,
128
- tabs
129
- ]
130
- });
131
-
132
- resize_windows();
133
-
134
- });
135
-
136
- function resize_windows(){
137
- window_height = Ext.getBody().getViewSize().height;
138
- header_height = Ext.get("header").getHeight();
139
- footer_height = Ext.get("footer").getHeight();
140
- document_content_height = window_height - header_height - footer_height;
141
- Ext.get("document_content").setHeight(document_content_height);
142
- Ext.getCmp("fitted_panel").setHeight(document_content_height - 20);
143
- }
144
-
145
- window.onresize = function(){
146
- resize_windows();
147
- }
148
-
142
+
143
+ function resize_windows() {
144
+ window_height = Ext.getBody().getViewSize().height;
145
+ header_height = Ext.get("header").getHeight();
146
+ footer_height = Ext.get("footer").getHeight();
147
+ document_content_height = window_height - header_height - footer_height;
148
+ Ext.get("document_content").setHeight(document_content_height);
149
+ Ext.getCmp("fitted_panel").setHeight(document_content_height - 20);
150
+ }
151
+
152
+ window.onresize = function () {
153
+ resize_windows();
154
+ }
155
+
149
156
  </script>
@@ -12,8 +12,8 @@
12
12
 
13
13
  <title><%= @website.title %></title>
14
14
  <%= javascript_include_tag :application %>
15
- <%= include_extjs %>
16
- <%= add_authenticity_token_to_extjs %>
15
+ <%= include_extjs :theme => 'extjs:ext-all-gray' %>
16
+ <%= add_authenticity_token_to_extjs %>
17
17
  <%= static_javascript_include_tag('erp_app/jquery_support.js') %>
18
18
  <%= static_javascript_include_tag('datepicker.js') %>
19
19
  <%= static_stylesheet_link_tag('datepicker.css') %>
@@ -1,6 +1,8 @@
1
1
  Compass.ErpApp.Widgets.ContactUs = {
2
+ template: new Ext.Template('<%= render_widget :contact_us, :params => {:use_dynamic_form => false} %>'),
3
+
2
4
  addContactUs:function(){
3
- Ext.getCmp('knitkitCenterRegion').addContentToActiveCodeMirror('<%= render_widget :contact_us, :params => {:use_dynamic_form => false} %>');
5
+ Ext.getCmp('knitkitCenterRegion').addContentToActiveCodeMirror(Compass.ErpApp.Widgets.ContactUs.template.apply());
4
6
  }
5
7
  }
6
8