compass_ae_sencha 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,102 @@
1
+ ActionView::Base.class_eval do
2
+
3
+ def static_javascript_include_tag(*srcs)
4
+ raw srcs.flatten.map { |src| "<script type=\"text/javascript\" src=\"/javascripts/#{src.include?('.js') ? src : "#{src}.js"}\"></script>" }.join("")
5
+ end
6
+
7
+ def static_stylesheet_link_tag(*srcs)
8
+ raw srcs.flatten.map { |src| "<link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheets/#{src.include?('.css') ? src : "#{src}.css"}\" />" }.join("")
9
+ end
10
+
11
+ def include_extjs(opt={})
12
+ resources = ''
13
+
14
+ if opt[:debug]
15
+ resources << static_javascript_include_tag("extjs/ext-all-debug.js")
16
+ else
17
+ resources << static_javascript_include_tag("extjs/ext-all.js")
18
+ end
19
+
20
+ resources << static_javascript_include_tag("extjs/helpQtip.js")
21
+ resources << static_javascript_include_tag("extjs/ext_ux_tab_close_menu.js")
22
+ resources << static_javascript_include_tag("extjs/Ext.ux.form.MultiSelect.js")
23
+ resources << static_javascript_include_tag("extjs/Ext.ux.CheckColumn.js")
24
+
25
+ if opt[:theme] === false
26
+ #do nothing not theme loaded.
27
+ elsif opt[:theme]
28
+ theme = opt[:theme].split(':')[0]
29
+ sub_theme = opt[:theme].split(':')[1]
30
+ resources << static_stylesheet_link_tag("#{theme}/resources/css/#{sub_theme}.css")
31
+ else
32
+ #this file will effectively be used as the default stylesheet if no theme is selected
33
+ resources << static_stylesheet_link_tag("clifton/resources/css/clifton.css")
34
+ end
35
+
36
+ resources << add_authenticity_token_to_extjs
37
+
38
+ # this requirement is new in ExtJS 4.1
39
+ resources << "<script type=\"text/javascript\">Ext.Loader.setConfig({ enabled: true, disableCaching: false });</script>"
40
+
41
+ raw resources
42
+ end
43
+
44
+ def include_sencha_touch(opt={})
45
+ resources = ''
46
+
47
+ if (opt[:debug])
48
+ resources << static_javascript_include_tag("sencha_touch/sencha-touch-all-debug.js")
49
+ else
50
+ resources << static_javascript_include_tag("sencha_touch/sencha-touch-all.js")
51
+ end
52
+
53
+ if opt[:theme] === false
54
+ #do nothing not theme loaded.
55
+ elsif opt[:theme]
56
+ resources << static_stylesheet_link_tag("sencha_touch/resources/css/#{opt[:theme]}")
57
+ else
58
+ resources << static_stylesheet_link_tag("sencha_touch/resources/css/sencha-touch.css")
59
+ end
60
+
61
+ raw resources
62
+ end
63
+
64
+ def add_authenticity_token_to_extjs
65
+ raw "<script type='text/javascript'>Ext.ns('Compass.ErpApp'); Ext.Ajax.extraParams = { authenticity_token: '#{form_authenticity_token}' }; Compass.ErpApp.AuthentictyToken = '#{form_authenticity_token}';</script>"
66
+ end
67
+
68
+ def create_authenticity_token_sencha_touch_field
69
+ raw "<script type='text/javascript'>Compass.ErpApp.Mobile.AuthentictyTokenField = {xtype:'hiddenfield', name:'authenticity_token', value:'#{form_authenticity_token}'}; </script>"
70
+ end
71
+
72
+ # example usage:
73
+ # <%= dynamic_extjs_grid({
74
+ # :title => 'Accounts',
75
+ # :renderTo => 'grid_target',
76
+ # :setupUrl => build_widget_url(:accounts_grid_setup),
77
+ # :dataUrl => build_widget_url(:accounts_grid_data),
78
+ # :width => 500,
79
+ # :height => 200,
80
+ # :page => true,
81
+ # :pageSize => 5,
82
+ # :displayMsg => 'Displaying {0} - {1} of {2}',
83
+ # :emptyMsg => 'Empty',
84
+ # :storeId => "my_unique_store_id" #this is an optional field
85
+ # }) %>
86
+ def dynamic_extjs_grid(options={})
87
+ options[:title] = '' if options[:title].blank?
88
+ options[:closable] = false if options[:closable].blank?
89
+ options[:collapsible] = false if options[:collapsible].blank?
90
+ options[:height] = 300 if options[:height].blank?
91
+
92
+ raw "<script type='text/javascript'>new OnDemandLoadByAjax().load([
93
+ '/javascripts/erp_app/shared/dynamic_editable_grid.js',
94
+ '/javascripts/erp_app/shared/dynamic_editable_grid_loader_panel.js'],
95
+ function(){
96
+ var task = Ext.create('Ext.util.DelayedTask', function () { Ext.create('Compass.ErpApp.Shared.DynamicEditableGridLoaderPanel', #{options.to_json} );});
97
+ task.delay(200);
98
+ });</script>"
99
+
100
+ end
101
+
102
+ end
@@ -0,0 +1 @@
1
+ require 'compass_ae_sencha/extensions/railties/action_view/base'
@@ -2,7 +2,7 @@ module CompassAeSencha
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
4
  MINOR = 0
5
- TINY = 1
5
+ TINY = 2
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].compact.join('.')
8
8
  end
@@ -1 +1,2 @@
1
+ require "compass_ae_sencha/extensions"
1
2
  require 'compass_ae_sencha/engine'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: compass_ae_sencha
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-14 00:00:00.000000000 Z
12
+ date: 2013-05-29 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: This gem provides the Sencha library for CompassAE.
15
15
  email:
@@ -5994,6 +5994,8 @@ files:
5994
5994
  - public/stylesheets/sencha_touch/resources/themes/vendor/compass-recipes/tests/recipes/ui/webfont-icons/s.scss
5995
5995
  - public/stylesheets/sencha_touch/resources/themes/vendor/compass-recipes/VERSION
5996
5996
  - lib/compass_ae_sencha/engine.rb
5997
+ - lib/compass_ae_sencha/extensions/railties/action_view/base.rb
5998
+ - lib/compass_ae_sencha/extensions.rb
5997
5999
  - lib/compass_ae_sencha/version.rb
5998
6000
  - lib/compass_ae_sencha.rb
5999
6001
  - LICENSE