active_scaffold_config_list_vho 3.0.0

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.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 vhochstein
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README ADDED
@@ -0,0 +1,17 @@
1
+ This works with Rails 3 and rails 3 fork of ActiveScaffold:
2
+ http://github.com/vhochstein/active_scaffold
3
+
4
+ Usage:
5
+ active_scaffold :model do |conf|
6
+ conf.actions.add :config_list
7
+ end
8
+
9
+
10
+ Overview
11
+
12
+ A plugin for Active Scaffold that provides the ability to choose the column to show in the scaffold list at run-time
13
+
14
+ The configuration data will be saved on the session.
15
+
16
+
17
+
data/Rakefile ADDED
@@ -0,0 +1,55 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'jeweler'
13
+ require './lib/active_scaffold_config_list/version.rb'
14
+
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "active_scaffold_config_list_vho"
18
+ gem.version = ActiveScaffoldConfigList::Version::STRING
19
+ gem.homepage = "http://github.com/vhochstein/active_scaffold_config_list"
20
+ gem.license = "MIT"
21
+ gem.summary = %Q{User specific column configuration for ActiveScaffold}
22
+ gem.description = %Q{User may reorder and hide/show list columns}
23
+ gem.email = "activescaffold@googlegroups.com"
24
+ gem.authors = ["Volker Hochstein"]
25
+ gem.add_runtime_dependency 'active_scaffold_vho', '~> 3.0'
26
+ # Include your dependencies below. Runtime dependencies are required when using your gem,
27
+ # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
28
+ # gem.add_runtime_dependency 'jabber4r', '> 0.1'
29
+ # gem.add_development_dependency 'rspec', '> 1.2.3'
30
+ end
31
+ Jeweler::RubygemsDotOrgTasks.new
32
+
33
+ require 'rake/testtask'
34
+ Rake::TestTask.new(:test) do |test|
35
+ test.libs << 'lib' << 'test'
36
+ test.pattern = 'test/**/test_*.rb'
37
+ test.verbose = true
38
+ end
39
+
40
+ require 'rcov/rcovtask'
41
+ Rcov::RcovTask.new do |test|
42
+ test.libs << 'test'
43
+ test.pattern = 'test/**/test_*.rb'
44
+ test.verbose = true
45
+ end
46
+
47
+ task :default => :test
48
+
49
+ require 'rake/rdoctask'
50
+ Rake::RDocTask.new do |rdoc|
51
+ rdoc.rdoc_dir = 'rdoc'
52
+ rdoc.title = "active_scaffold_config_list #{ActiveScaffoldConfigList::Version::STRING}"
53
+ rdoc.rdoc_files.include('README*')
54
+ rdoc.rdoc_files.include('lib/**/*.rb')
55
+ end
@@ -0,0 +1,2 @@
1
+ /* IE hacks
2
+ ==================================== */
@@ -0,0 +1,17 @@
1
+ <% url_options = params_for(:action => :index, :escape => false, :config_list => nil) -%>
2
+ <%=
3
+ options = {:id => element_form_id(:action => :config_list),
4
+ :class => "as_form config_list",
5
+ :remote => true,
6
+ :method => :get,
7
+ 'data-loading' => true}
8
+ form_tag url_options, options %>
9
+ <h4><%= active_scaffold_config.config_list.label -%></h4>
10
+ <%= render :partial => 'show_config_list_form_body', :locals => { :columns => active_scaffold_config.config_list } %>
11
+ <p class="form-footer">
12
+ <%= submit_tag as_(:config_list), :class => "submit" %>
13
+ <%= link_to as_(:reset), url_for(url_options.merge(:config_list => '')), :class => 'as_cancel', :remote => true %>
14
+ <%= loading_indicator_tag(:action => :config_list) %>
15
+ </p>
16
+ </form>
17
+ <%= javascript_tag("ActiveScaffold.focus_first_element_of_form('#{element_form_id(:action => :config_list)}');") %>
@@ -0,0 +1,21 @@
1
+ <ol id="<%= config_list_ol_id %>" class="form">
2
+ <% hidden_columns = if !config_list_params.nil? && config_list_params.is_a?(Array)
3
+ config_list = config_list_params
4
+ active_scaffold_config.list.columns.collect_visible.select{|column| config_list.exclude? column.name}
5
+ else
6
+ []
7
+ end %>
8
+ <% list_columns.concat(hidden_columns).each do |c| %>
9
+ <li class="form-element sortable">
10
+ <%= check_box_tag 'config_list[]', c.name.to_s, (config_list_params.nil? ? true : config_list_params.include?(c.name)), {:id => nil}%>
11
+ <label for="update_table_from"><%= c.label%></label>
12
+ </li>
13
+ <% end %>
14
+ </ol>
15
+ <% if ActiveScaffold.js_framework == :prototype %>
16
+ <%= sortable_element config_list_ol_id, {:tag => 'li', :url => nil} %>
17
+ <% elsif ActiveScaffold.js_framework == :jquery %>
18
+ <% reorder_params = {}
19
+ options = {:update => false} %>
20
+ <%= javascript_tag "ActiveScaffold.sortable('#{config_list_ol_id}', #{controller_name.to_json}, #{options.to_json}, #{reorder_params.to_json});" %>
21
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <div class="active-scaffold">
2
+ <div class="config_list-view view">
3
+ <%= render :partial => 'show_config_list_form' -%>
4
+ </div>
5
+ </div>
data/init.rb ADDED
@@ -0,0 +1,9 @@
1
+ ACTIVE_SCAFFOLD_CONFIG_LIST_INSTALLED = :plugin
2
+
3
+ require 'active_scaffold_config_list'
4
+
5
+ begin
6
+ ActiveScaffoldAssets.copy_to_public(ActiveScaffoldConfigList.root)
7
+ rescue
8
+ raise $! unless Rails.env == 'production'
9
+ end
@@ -0,0 +1,59 @@
1
+ module ActiveScaffold::Actions
2
+ module ConfigList
3
+
4
+ def self.included(base)
5
+ base.before_filter :store_config_list_params_into_session, :only => [:index]
6
+ base.helper_method :config_list_params
7
+
8
+ as_config_list_plugin_path = File.join(ActiveScaffold::Config::ConfigList.plugin_directory, 'frontends', 'default' , 'views')
9
+
10
+ base.add_active_scaffold_path as_config_list_plugin_path
11
+ end
12
+
13
+ def show_config_list
14
+ respond_to do |type|
15
+ type.html do
16
+ render(:action => 'show_config_list_form', :layout => true)
17
+ end
18
+ type.js do
19
+ render(:partial => 'show_config_list_form', :layout => false)
20
+ end
21
+ end
22
+ end
23
+
24
+ protected
25
+
26
+ def store_config_list_params_into_session
27
+ if params[:config_list]
28
+ active_scaffold_session_storage[:config_list] = params.delete :config_list
29
+ case active_scaffold_session_storage[:config_list]
30
+ when String
31
+ active_scaffold_session_storage[:config_list] = nil
32
+ when Array
33
+ active_scaffold_session_storage[:config_list].collect!{|col_name| col_name.to_sym}
34
+ end
35
+ end
36
+ end
37
+
38
+ def config_list_params
39
+ active_scaffold_session_storage[:config_list] || active_scaffold_config.config_list.default_columns
40
+ end
41
+
42
+ def do_config_list
43
+ active_scaffold_config.list.columns.column_order.clear
44
+ if !config_list_params.nil? && config_list_params.is_a?(Array)
45
+ active_scaffold_config.list.columns.column_order.concat(config_list_params)
46
+ end
47
+ end
48
+
49
+ def list_columns
50
+ columns = super
51
+ if !config_list_params.nil? && config_list_params.is_a?(Array)
52
+ config_list = config_list_params
53
+ columns.select{|column| config_list.include? column.name}.sort{|x,y| config_list.index(x.name) <=> config_list.index(y.name)}
54
+ else
55
+ columns
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,34 @@
1
+ module ActiveScaffold::Config
2
+ class ConfigList < Form
3
+ self.crud_type = :create
4
+ def initialize(*args)
5
+ super
6
+ end
7
+
8
+ # global level configuration
9
+ # --------------------------
10
+ # the ActionLink for this action
11
+ def self.link
12
+ @@link
13
+ end
14
+ def self.link=(val)
15
+ @@link = val
16
+ end
17
+ @@link = ActiveScaffold::DataStructures::ActionLink.new('show_config_list', :label => :config_list, :type => :collection, :security_method => :create_authorized?)
18
+
19
+ # configures where the plugin itself is located. there is no instance version of this.
20
+ cattr_accessor :plugin_directory
21
+ @@plugin_directory = File.expand_path(__FILE__).match(%{(^.*)/lib/active_scaffold/config/config_list.rb})[1]
22
+
23
+ # instance-level configuration
24
+ # ----------------------------
25
+ # the label= method already exists in the Form base class
26
+ def label
27
+ @label ? as_(@label) : as_(:config_list_model, :model => @core.label.singularize)
28
+ end
29
+
30
+ # if you do not want to show all columns as a default you may define same
31
+ # e.g. conf.config_list.default_columns = [:name, founded_on]
32
+ attr_accessor :default_columns
33
+ end
34
+ end
@@ -0,0 +1,21 @@
1
+ module ActiveScaffold
2
+ module Helpers
3
+ # Helpers that assist with the rendering of a Form Column
4
+ module ConfigListHelpers
5
+
6
+ def self.included(base)
7
+ base.alias_method_chain :active_scaffold_includes, :cf_as
8
+ end
9
+ # Add the cf_as plugin includes
10
+ def active_scaffold_includes_with_cf_as(frontend = :default)
11
+ css = stylesheet_link_tag(ActiveScaffold::Config::Core.asset_path('cf_as-stylesheet.css', frontend))
12
+ ie_css = stylesheet_link_tag(ActiveScaffold::Config::Core.asset_path("cf_as-stylesheet-ie.css", frontend))
13
+ active_scaffold_includes_without_cf_as + "\n" + css + "\n<!--[if IE]>".html_safe + ie_css + "<![endif]-->\n".html_safe
14
+ end
15
+
16
+ def config_list_ol_id
17
+ "ol_#{element_form_id(:action => :config_list)}"
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,40 @@
1
+ # Make sure that ActiveScaffold has already been included
2
+ ActiveScaffold rescue throw "should have included ActiveScaffold plug in first. Please make sure that this overwrite plugging comes alphabetically after the ActiveScaffold plug in"
3
+
4
+ # Load our overrides
5
+ require "#{File.dirname(__FILE__)}/active_scaffold_config_list/config/core.rb"
6
+
7
+ module ActiveScaffoldConfigList
8
+ def self.root
9
+ File.dirname(__FILE__) + "/.."
10
+ end
11
+ end
12
+
13
+ module ActiveScaffold
14
+ module Actions
15
+ ActiveScaffold.autoload_subdir('actions', self, File.dirname(__FILE__))
16
+ end
17
+
18
+ module Config
19
+ ActiveScaffold.autoload_subdir('config', self, File.dirname(__FILE__))
20
+ end
21
+
22
+ module Helpers
23
+ ActiveScaffold.autoload_subdir('helpers', self, File.dirname(__FILE__))
24
+ end
25
+ end
26
+
27
+ ActionView::Base.send(:include, ActiveScaffold::Helpers::ConfigListHelpers)
28
+
29
+
30
+ ##
31
+ ## Run the install assets script, too, just to make sure
32
+ ## But at least rescue the action in production
33
+ ##
34
+ Rails::Application.initializer("active_scaffold_config_list.install_assets", :after => "active_scaffold.install_assets") do
35
+ begin
36
+ ActiveScaffoldAssets.copy_to_public(ActiveScaffoldConfigList.root)
37
+ rescue
38
+ raise $! unless Rails.env == 'production'
39
+ end
40
+ end unless defined?(ACTIVE_SCAFFOLD_CONFIG_LIST_INSTALLED) && ACTIVE_SCAFFOLD_CONFIG_LIST_INSTALLED == :plugin
@@ -0,0 +1,4 @@
1
+ # Need to open the AS module carefully due to Rails 2.3 lazy loading
2
+ ActiveScaffold::Config::Core.class_eval do
3
+ ActionDispatch::Routing::ACTIVE_SCAFFOLD_CORE_ROUTING[:collection][:show_config_list] = :get
4
+ end
@@ -0,0 +1,9 @@
1
+ module ActiveScaffoldConfigList
2
+ module Version
3
+ MAJOR = 3
4
+ MINOR = 0
5
+ PATCH = 0
6
+
7
+ STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
+ end
9
+ end
@@ -0,0 +1,2 @@
1
+ ACTIVE_SCAFFOLD_CONFIG_LIST_INSTALLED = :gem
2
+ require 'active_scaffold_config_list'
data/uninstall.rb ADDED
@@ -0,0 +1 @@
1
+ # see active_scaffold/uninstall.rb
metadata ADDED
@@ -0,0 +1,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: active_scaffold_config_list_vho
3
+ version: !ruby/object:Gem::Version
4
+ hash: 7
5
+ prerelease: false
6
+ segments:
7
+ - 3
8
+ - 0
9
+ - 0
10
+ version: 3.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Volker Hochstein
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-01-26 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ prerelease: false
23
+ name: shoulda
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ requirement: *id001
34
+ type: :development
35
+ - !ruby/object:Gem::Dependency
36
+ prerelease: false
37
+ name: bundler
38
+ version_requirements: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ hash: 23
44
+ segments:
45
+ - 1
46
+ - 0
47
+ - 0
48
+ version: 1.0.0
49
+ requirement: *id002
50
+ type: :development
51
+ - !ruby/object:Gem::Dependency
52
+ prerelease: false
53
+ name: jeweler
54
+ version_requirements: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ hash: 7
60
+ segments:
61
+ - 1
62
+ - 5
63
+ - 2
64
+ version: 1.5.2
65
+ requirement: *id003
66
+ type: :development
67
+ - !ruby/object:Gem::Dependency
68
+ prerelease: false
69
+ name: rcov
70
+ version_requirements: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 3
76
+ segments:
77
+ - 0
78
+ version: "0"
79
+ requirement: *id004
80
+ type: :development
81
+ - !ruby/object:Gem::Dependency
82
+ prerelease: false
83
+ name: active_scaffold_vho
84
+ version_requirements: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ hash: 7
90
+ segments:
91
+ - 3
92
+ - 0
93
+ version: "3.0"
94
+ requirement: *id005
95
+ type: :runtime
96
+ description: User may reorder and hide/show list columns
97
+ email: activescaffold@googlegroups.com
98
+ executables: []
99
+
100
+ extensions: []
101
+
102
+ extra_rdoc_files:
103
+ - LICENSE.txt
104
+ - README
105
+ files:
106
+ - .document
107
+ - LICENSE.txt
108
+ - README
109
+ - Rakefile
110
+ - frontends/default/stylesheets/cf_as-stylesheet-ie.css
111
+ - frontends/default/stylesheets/cf_as-stylesheet.css
112
+ - frontends/default/views/_show_config_list_form.html.erb
113
+ - frontends/default/views/_show_config_list_form_body.html.erb
114
+ - frontends/default/views/show_config_list_form.html.erb
115
+ - init.rb
116
+ - lib/active_scaffold/actions/config_list.rb
117
+ - lib/active_scaffold/config/config_list.rb
118
+ - lib/active_scaffold/helpers/config_list_helpers.rb
119
+ - lib/active_scaffold_config_list.rb
120
+ - lib/active_scaffold_config_list/config/core.rb
121
+ - lib/active_scaffold_config_list/version.rb
122
+ - lib/active_scaffold_config_list_vho.rb
123
+ - uninstall.rb
124
+ has_rdoc: true
125
+ homepage: http://github.com/vhochstein/active_scaffold_config_list
126
+ licenses:
127
+ - MIT
128
+ post_install_message:
129
+ rdoc_options: []
130
+
131
+ require_paths:
132
+ - lib
133
+ required_ruby_version: !ruby/object:Gem::Requirement
134
+ none: false
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ hash: 3
139
+ segments:
140
+ - 0
141
+ version: "0"
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
+ none: false
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ hash: 3
148
+ segments:
149
+ - 0
150
+ version: "0"
151
+ requirements: []
152
+
153
+ rubyforge_project:
154
+ rubygems_version: 1.3.7
155
+ signing_key:
156
+ specification_version: 3
157
+ summary: User specific column configuration for ActiveScaffold
158
+ test_files: []
159
+