optimacms 0.1.15 → 0.1.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/optimacms/admin/pages_controller.rb +93 -81
- data/app/controllers/optimacms/admin/templates_controller.rb +22 -4
- data/app/controllers/optimacms/application_controller.rb +2 -1
- data/app/helpers/optimacms/application_helper.rb +3 -2
- data/app/helpers/optimacms/forms_helper.rb +52 -6
- data/app/models/optimacms/page.rb +16 -9
- data/app/models/optimacms/template.rb +11 -31
- data/app/views/optimacms/admin/pages/index.html.haml +15 -3
- data/app/views/optimacms/admin/templates/index.html.haml +6 -2
- data/config/initializers/simple_form_simple_search_boostrap.rb +6 -0
- data/lib/optimacms/engine.rb +2 -0
- data/lib/optimacms/filters/form_filter.rb +5 -2
- data/lib/optimacms/mycontroller.rb +29 -29
- data/lib/optimacms/version.rb +1 -1
- data/test/dummy/app/controllers/application_controller.rb +13 -0
- data/test/dummy/app/views/pages/about.html.erb +6 -1
- data/test/dummy/config/routes.rb +3 -2
- data/test/dummy/log/development.log +877 -189112
- data/test/dummy/tmp/cache/assets/development/sass/7f871ea7e3a8127767d5a5868622ef2909611f26/noskin.css.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/admin.css.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/admin_tpl.css.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/bootstrap_and_overrides.css.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/bootstrap_custom.css.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/bootstrap_variables.css.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/colors.css.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/tinymce.css.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/tpl.css.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/053f826d1ea01a2fac355de0755e5c40 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/0a470277dd21c166b9dfb68b03d34d5c +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3240ef40c1dc9d13156bbd790ec2651a +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/529a74a4530de52f6c3ebbf107ffe9f2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/56c7eb172a7423728c45d0a751d198e3 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6cdbd6f171a27a578bcb07dd5bfa83a2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6f943f22c610e6417422e4a13e0bcc0d +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8956737a82f17db48d50e13f133aeefc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8b5a7992567ebbeb9a882d074778f8c8 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/97c1e12a09973e0fb97f23a1dc496443 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/99e8d6370ba85ec4a61d953f5ed261af +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a64dbcf0e4afe0985b1abd3e209d17cd +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a6d357fbe03dae6f590180f6c5e0e148 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/aa58fb159780a7200a1bc4c6844cc5c4 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ba9859d0d2b7d4d7d5b03ff3a71ed478 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e3dd086dd858b5bff9cfd60a031c2091 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ec33505f0e2ed4dd12951ecceffa3695 +0 -0
- data/test/dummy/tmp/pids/server.pid +1 -1
- metadata +69 -7
- data/app/views/tableview/_buttons_apply_clear.html.haml +0 -2
- data/app/views/tableview/_filter.html.haml +0 -0
- data/app/views/tableview/_filter_field.html.haml +0 -15
- data/app/views/tableview/_filter_fields.html.haml +0 -3
- data/lib/simple_filter/filter.rb +0 -223
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d690098f1fbebd10c9858d507d9b809782a507ba
|
4
|
+
data.tar.gz: 435eab4ff73c4337b0ccce2ee1e81604223fbad4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06fb6ac517f14343ade996d544ea762ca4bf475cbe3b76227d0c8252f3de4741f2fc62cff16259e3f0105059b3ad32ce31cf653556ea5425f67e6af3be1602ae
|
7
|
+
data.tar.gz: 2b32a323474d1aa598a1d3e12da925149ed09fb9c00247cb602fa9c0750df53d477fc1e47c8b5954a0d58ddd7a1d7162eb6f7aa205e5af05c946edb8bdfce688
|
@@ -6,24 +6,100 @@ module Optimacms
|
|
6
6
|
before_action :set_item, only: [:show, :edit, :update, :destroy, :editfolder, :updatefolder]
|
7
7
|
before_action :init_data_form, only: [:edit, :new]
|
8
8
|
|
9
|
-
before_action :init_tabledata, :only => [:index, :search]
|
10
|
-
|
11
9
|
|
12
10
|
def index
|
13
|
-
@items = model.
|
11
|
+
@items = model.by_filter(@filter)
|
12
|
+
#@items = model.where(@filter.where).order(@filter.order_string).page(@filter.page)
|
14
13
|
|
15
14
|
#
|
16
15
|
@parent_id = @filter.v('parent_id')
|
16
|
+
#@parent_id = (@parent_id || 0).to_i
|
17
17
|
@parent = Page.find(@parent_id) rescue nil
|
18
18
|
|
19
19
|
end
|
20
20
|
|
21
|
-
def
|
21
|
+
def search_old
|
22
22
|
redirect_to pages_path
|
23
23
|
end
|
24
24
|
|
25
25
|
|
26
26
|
|
27
|
+
def url_list
|
28
|
+
pages_url
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
#include SimpleFilter::Controller
|
33
|
+
#search_filter :index, {save_session: true, search_method: :post_and_redirect, index_url: :pages_url, search_url: :search_pages_url, search_action: :search} do
|
34
|
+
search_filter :index, {save_session: true, search_method: :post_and_redirect, search_url: :search_pages_url, search_action: :search} do
|
35
|
+
# define filter
|
36
|
+
default_order "created_at", 'desc'
|
37
|
+
|
38
|
+
# fields
|
39
|
+
field :title, :string, :text, {label: '', default_value: '', condition: :like_full}
|
40
|
+
field :parent_id, :int, :hidden, {label: '', default_value: 0, ignore_value: 0}
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
def init_filter_old
|
45
|
+
|
46
|
+
# input
|
47
|
+
@pg = params[:pg].to_i || 1
|
48
|
+
|
49
|
+
#
|
50
|
+
@filter = Filters::FormFilter.new(session, 'admin_pages')
|
51
|
+
|
52
|
+
# set filter fields
|
53
|
+
@filter.add_fields_from_array(
|
54
|
+
[
|
55
|
+
#{name: 'uid', type: 'text', dbtype: FormFilter::DBTYPE_STRING, title: 'UID', def:'', opt: {width: 80}},
|
56
|
+
#{name: 'status', type: 'text', dbtype: FormFilter::DBTYPE_STRING, title: 'Status', def: '', opt: {width: 120}},
|
57
|
+
{name: 'title', type: 'text', dbtype: Filters::FormFilter::DBTYPE_STRING, title: 'Title', def: '', opt: {width: 120}},
|
58
|
+
{name: 'parent_id', type: 'int', dbtype: Filters::FormFilter::FIELD_TYPE_HIDDEN, title: '', def: 0},
|
59
|
+
#{name: 'client_id', type: FormFilter::FIELD_TYPE_HIDDEN, dbtype: FormFilter::DBTYPE_INT, title: 'Client', def: 0, opt: {width: 120}},
|
60
|
+
#{name: 'client', type: FormFilter::FIELD_TYPE_SELECT_AUTO, dbtype: FormFilter::DBTYPE_STRING, title: 'Client', def: '', opt: {width: 120, field_id:'client_id', url_query: clients_url(:action=>'list')}},
|
61
|
+
|
62
|
+
#{name: 'status_id', type: FormFilter::FIELD_TYPE_HIDDEN, dbtype: FormFilter::DBTYPE_INT, title: 'Status', def: 0, opt: {width: 120}},
|
63
|
+
#{name: 'status', type: FormFilter::FIELD_TYPE_SELECT_AUTO, dbtype: FormFilter::DBTYPE_STRING, title: 'Status', def: '', opt: {width: 120, field_id:'status_id', url_query: statuses_url(:action=>'list')}},
|
64
|
+
|
65
|
+
]
|
66
|
+
)
|
67
|
+
|
68
|
+
#
|
69
|
+
if params.has_key? :parent_id
|
70
|
+
@filter.set 'parent_id', params[:parent_id]
|
71
|
+
end
|
72
|
+
#@filter.set 'owner_id', current_user.owner_id
|
73
|
+
|
74
|
+
#
|
75
|
+
@cmd = params[:cmd] || ''
|
76
|
+
|
77
|
+
|
78
|
+
# post
|
79
|
+
if request.post? && params[:filter]
|
80
|
+
if params[:cmd]=='clear'
|
81
|
+
@filter.clear_data
|
82
|
+
|
83
|
+
redirect_to url_list and return
|
84
|
+
else
|
85
|
+
@filter.set_data_from_form(params[:filter] || [])
|
86
|
+
redirect_to url_list and return
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
|
91
|
+
# order
|
92
|
+
@filter.set_order_default('created_at' ,'desc')
|
93
|
+
#@filter.set_order('created_at' ,'desc')
|
94
|
+
|
95
|
+
if @cmd=='order'
|
96
|
+
@filter.set_order params[:orderby], params[:orderdir]
|
97
|
+
redirect_to url_list and return
|
98
|
+
end
|
99
|
+
|
100
|
+
|
101
|
+
end
|
102
|
+
|
27
103
|
def show
|
28
104
|
end
|
29
105
|
|
@@ -111,6 +187,19 @@ module Optimacms
|
|
111
187
|
end
|
112
188
|
|
113
189
|
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
def table_columns
|
195
|
+
|
196
|
+
@table_columns = [
|
197
|
+
{name: "id", title: "##"},
|
198
|
+
{name: "title", title: "title"},
|
199
|
+
]
|
200
|
+
end
|
201
|
+
|
202
|
+
|
114
203
|
private
|
115
204
|
def model
|
116
205
|
Page
|
@@ -137,83 +226,6 @@ module Optimacms
|
|
137
226
|
end
|
138
227
|
|
139
228
|
|
140
|
-
# filter
|
141
|
-
#include SimpleFilters::Controller
|
142
|
-
|
143
|
-
|
144
|
-
def init_tabledata
|
145
|
-
init_filter
|
146
|
-
end
|
147
|
-
|
148
|
-
def init_filter
|
149
|
-
# input
|
150
|
-
@pg = params[:pg].to_i || 1
|
151
|
-
|
152
|
-
#
|
153
|
-
@filter = Filters::FormFilter.new(session, 'admin_pages')
|
154
|
-
|
155
|
-
# set filter fields
|
156
|
-
@filter.add_fields_from_array(
|
157
|
-
[
|
158
|
-
#{name: 'uid', type: 'text', dbtype: FormFilter::DBTYPE_STRING, title: 'UID', def:'', opt: {width: 80}},
|
159
|
-
#{name: 'status', type: 'text', dbtype: FormFilter::DBTYPE_STRING, title: 'Status', def: '', opt: {width: 120}},
|
160
|
-
{name: 'title', type: 'text', dbtype: Filters::FormFilter::DBTYPE_STRING, title: 'Title', def: '', opt: {width: 120}},
|
161
|
-
{name: 'parent_id', type: 'int', dbtype: Filters::FormFilter::FIELD_TYPE_HIDDEN, title: '', def: 0},
|
162
|
-
#{name: 'client_id', type: FormFilter::FIELD_TYPE_HIDDEN, dbtype: FormFilter::DBTYPE_INT, title: 'Client', def: 0, opt: {width: 120}},
|
163
|
-
#{name: 'client', type: FormFilter::FIELD_TYPE_SELECT_AUTO, dbtype: FormFilter::DBTYPE_STRING, title: 'Client', def: '', opt: {width: 120, field_id:'client_id', url_query: clients_url(:action=>'list')}},
|
164
|
-
|
165
|
-
#{name: 'status_id', type: FormFilter::FIELD_TYPE_HIDDEN, dbtype: FormFilter::DBTYPE_INT, title: 'Status', def: 0, opt: {width: 120}},
|
166
|
-
#{name: 'status', type: FormFilter::FIELD_TYPE_SELECT_AUTO, dbtype: FormFilter::DBTYPE_STRING, title: 'Status', def: '', opt: {width: 120, field_id:'status_id', url_query: statuses_url(:action=>'list')}},
|
167
|
-
|
168
|
-
]
|
169
|
-
)
|
170
|
-
|
171
|
-
#
|
172
|
-
if params.has_key? :parent_id
|
173
|
-
@filter.set 'parent_id', params[:parent_id]
|
174
|
-
end
|
175
|
-
#@filter.set 'owner_id', current_user.owner_id
|
176
|
-
|
177
|
-
#
|
178
|
-
@cmd = params[:cmd] || ''
|
179
|
-
|
180
|
-
|
181
|
-
# post
|
182
|
-
if request.post? && params[:filter]
|
183
|
-
if params[:cmd]=='clear'
|
184
|
-
@filter.clear_data
|
185
|
-
|
186
|
-
redirect_to url_list and return
|
187
|
-
else
|
188
|
-
@filter.set_data_from_form(params[:filter] || [])
|
189
|
-
redirect_to url_list and return
|
190
|
-
end
|
191
|
-
|
192
|
-
end
|
193
|
-
|
194
|
-
# order
|
195
|
-
@filter.set_order_default('created_at' ,'desc')
|
196
|
-
#@filter.set_order('created_at' ,'desc')
|
197
|
-
|
198
|
-
if @cmd=='order'
|
199
|
-
@filter.set_order params[:orderby], params[:orderdir]
|
200
|
-
redirect_to url_list and return
|
201
|
-
end
|
202
|
-
|
203
|
-
|
204
|
-
end
|
205
|
-
|
206
|
-
|
207
|
-
def table_columns
|
208
|
-
|
209
|
-
@table_columns = [
|
210
|
-
{name: "id", title: "##"},
|
211
|
-
{name: "title", title: "title"},
|
212
|
-
]
|
213
|
-
end
|
214
|
-
|
215
|
-
|
216
|
-
|
217
229
|
end
|
218
230
|
|
219
231
|
|
@@ -6,7 +6,7 @@ module Optimacms
|
|
6
6
|
before_action :set_item, only: [:show, :edit, :update, :destroy]
|
7
7
|
before_action :init_common
|
8
8
|
before_action :init_data_form, only: [:new, :edit, :newfolder, :editfolder, :newattach]
|
9
|
-
before_action :init_tabledata, :only => [:index, :search]
|
9
|
+
#before_action :init_tabledata, :only => [:index, :search]
|
10
10
|
|
11
11
|
before_action :set_layout_modal
|
12
12
|
|
@@ -17,6 +17,8 @@ module Optimacms
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def index
|
20
|
+
#@filter.clear_data
|
21
|
+
|
20
22
|
#
|
21
23
|
@parent_id = @filter.v('parent_id').to_i
|
22
24
|
@parent = Template.find(@parent_id) rescue nil
|
@@ -26,14 +28,30 @@ module Optimacms
|
|
26
28
|
end
|
27
29
|
|
28
30
|
#
|
29
|
-
@items = model.
|
31
|
+
@items = model.by_filter(@filter)
|
32
|
+
#@items = model.where(@filter.where).order(@filter.order_string).page(@filter.page)
|
33
|
+
|
30
34
|
|
31
35
|
end
|
32
36
|
|
33
|
-
|
34
|
-
|
37
|
+
#include SimpleFilter::Controller
|
38
|
+
search_filter :index, {save_session: true, search_method: :post_and_redirect, search_url: :search_templates_url, search_action: :search} do
|
39
|
+
# define filter
|
40
|
+
default_order "title", 'asc'
|
41
|
+
|
42
|
+
# fields
|
43
|
+
field :title, :string, :text, {label: '', default_value: '', condition: :like_full}
|
44
|
+
#field :parent_id, :int, :hidden, {label: '', default_value: 0, ignore_value: 0, condition: :empty}
|
45
|
+
field :parent_id, :int, :hidden, {label: '', default_value: 0, ignore_value: 0, condition: :custom, condition_scope: :of_parent}
|
46
|
+
|
47
|
+
#field :category_id, :int, :select, {collection: [['UGX- Uganda Shillings',1],['USD- US Dollars',2]], label_method: :first, value_method: :last}
|
48
|
+
#field :type_id, :int, :select, {label: 'Type', default_value: 0, collection: TemplateType.all, label_method: :title, value_method: :id}
|
49
|
+
#field :type, :string, :autocomplete, {label: 'Type', default_value: '', :source_query => :autocomplete_templates_url}
|
50
|
+
|
35
51
|
end
|
36
52
|
|
53
|
+
|
54
|
+
|
37
55
|
def autocomplete
|
38
56
|
q = params[:q]
|
39
57
|
type_id = (params[:t] || TemplateType::TYPE_PAGE).to_i
|
@@ -1,5 +1,6 @@
|
|
1
1
|
module Optimacms
|
2
|
-
class ApplicationController < ActionController::Base
|
2
|
+
#class ApplicationController < ActionController::Base
|
3
|
+
class ApplicationController < ::ApplicationController
|
3
4
|
protect_from_forgery with: :exception
|
4
5
|
|
5
6
|
# include FontAwesome::Rails::IconHelper
|
@@ -1,8 +1,9 @@
|
|
1
1
|
module Optimacms
|
2
2
|
module ApplicationHelper
|
3
3
|
|
4
|
-
include ActionView::Helpers::ApplicationHelper
|
5
|
-
|
4
|
+
#include ActionView::Helpers::ApplicationHelper
|
5
|
+
#include SimpleFilter::FormsHelper
|
6
|
+
|
6
7
|
|
7
8
|
def method_missing(method, *args, &block)
|
8
9
|
main_app.send(method, *args, &block)
|
@@ -14,15 +14,61 @@ module Optimacms
|
|
14
14
|
|
15
15
|
|
16
16
|
options[:wrapper] = :horizontal_form
|
17
|
-
options[:wrapper_mappings] = {
|
18
|
-
check_boxes: :horizontal_radio_and_checkboxes,
|
19
|
-
radio_buttons: :horizontal_radio_and_checkboxes,
|
20
|
-
file: :horizontal_file_input,
|
21
|
-
boolean: :horizontal_boolean
|
22
|
-
}
|
17
|
+
options[:wrapper_mappings] = {check_boxes: :horizontal_radio_and_checkboxes, radio_buttons: :horizontal_radio_and_checkboxes, file: :horizontal_file_input,boolean: :horizontal_boolean }
|
23
18
|
simple_form_for(resource, options, &block)
|
24
19
|
end
|
25
20
|
|
26
21
|
|
22
|
+
|
23
|
+
def inline_simple_search_form_for(filter_object, options = {}, &block)
|
24
|
+
return render 'tableview/filter.html.haml', style: :inline, filter_object: filter_object
|
25
|
+
return
|
26
|
+
|
27
|
+
options[:html] ||= {}
|
28
|
+
|
29
|
+
options[:url] = send(filter_object.url)
|
30
|
+
|
31
|
+
options[:html][:role] = 'form'
|
32
|
+
|
33
|
+
# class
|
34
|
+
options[:html][:class] ||= []
|
35
|
+
if options[:html][:class].is_a? String
|
36
|
+
options[:html][:class] = [options[:html][:class]]
|
37
|
+
end
|
38
|
+
options[:html][:class] << 'form-inline'
|
39
|
+
options[:html][:id] = 'formFilter'
|
40
|
+
|
41
|
+
options[:wrapper] = :inline_search_form
|
42
|
+
options[:wrapper_mappings] = { }
|
43
|
+
|
44
|
+
|
45
|
+
capture do
|
46
|
+
simple_form_for(:filter, options) do |f|
|
47
|
+
concat(hidden_field_tag 'cmd', 'apply')
|
48
|
+
concat(render 'tableview/filter_fields', filter: filter_object, f: f)
|
49
|
+
concat(render 'tableview/buttons_apply_clear_inline', filter: filter_object, f: f)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
def horizontal_simple_search_form_for(filter_object, options = {}, &block)
|
57
|
+
return render 'tableview/filter.html.haml', style: :horizontal, filter_object: filter_object
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
def link_to_sortable_column(field_name, title = nil, html_options = nil, &block)
|
62
|
+
html_options ||= {}
|
63
|
+
|
64
|
+
if @filter.search_method_post_and_redirect?
|
65
|
+
html_options[:method] = :post
|
66
|
+
end
|
67
|
+
|
68
|
+
url = send(@filter.url, @filter.url_params_for_sortable_column(field_name))
|
69
|
+
|
70
|
+
link_to(title, url, html_options)
|
71
|
+
end
|
72
|
+
|
27
73
|
end
|
28
74
|
end
|
@@ -22,7 +22,13 @@ module Optimacms
|
|
22
22
|
#
|
23
23
|
paginates_per 10
|
24
24
|
|
25
|
+
# search
|
26
|
+
searchable_by_simple_filter
|
27
|
+
|
28
|
+
|
29
|
+
|
25
30
|
#### save
|
31
|
+
|
26
32
|
def save
|
27
33
|
begin
|
28
34
|
super
|
@@ -77,10 +83,10 @@ module Optimacms
|
|
77
83
|
|
78
84
|
|
79
85
|
#### search
|
80
|
-
|
81
|
-
def self.
|
82
|
-
|
83
|
-
pg =1 if pg.nil? || pg<=0
|
86
|
+
=begin
|
87
|
+
def self.search_by_filter(filter)
|
88
|
+
pg = filter.page
|
89
|
+
#pg =1 if pg.nil? || pg<=0
|
84
90
|
|
85
91
|
order = filter.order
|
86
92
|
|
@@ -92,9 +98,6 @@ module Optimacms
|
|
92
98
|
orderdir = order[0][1]
|
93
99
|
end
|
94
100
|
|
95
|
-
#@items = Task.includes(:status, :client, :contacts).for_user(current_user.id).all
|
96
|
-
#includes(:status, :client, :contacts).for_user(filter['user_id'])
|
97
|
-
#includes(:status, :client, :contacts, :received_user)
|
98
101
|
self.where(get_where(filter.data))
|
99
102
|
.order(" #{orderby} #{orderdir}")
|
100
103
|
.page(pg)
|
@@ -104,11 +107,15 @@ module Optimacms
|
|
104
107
|
def self.get_where(values)
|
105
108
|
w = '1=1 '
|
106
109
|
#w << " AND uid like '#{values['uid']}%' " if values['uid'] && !values['uid'].blank?
|
107
|
-
|
108
|
-
w << " AND
|
110
|
+
v = values[:title]
|
111
|
+
w << " AND title like '%#{v}%' " if v && !v.blank?
|
112
|
+
|
113
|
+
v = values[:parent_id]
|
114
|
+
w << " AND parent_id = '#{v}' " if !v!=-1
|
109
115
|
|
110
116
|
w
|
111
117
|
end
|
118
|
+
=end
|
112
119
|
|
113
120
|
def _before_save
|
114
121
|
|
@@ -32,6 +32,13 @@ module Optimacms
|
|
32
32
|
scope :layouts, -> { where(is_folder: false, type_id: TemplateType::TYPE_LAYOUT) }
|
33
33
|
|
34
34
|
|
35
|
+
# search
|
36
|
+
searchable_by_simple_filter
|
37
|
+
scope :of_parent, lambda { |parent_id| where_parent(parent_id) }
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
|
35
42
|
###
|
36
43
|
def to_s
|
37
44
|
"#{title} (#{basepath})"
|
@@ -56,44 +63,17 @@ module Optimacms
|
|
56
63
|
|
57
64
|
##### search
|
58
65
|
|
59
|
-
def self.
|
60
|
-
|
61
|
-
pg =1 if pg.nil? || pg<=0
|
62
|
-
|
63
|
-
order = filter.order
|
64
|
-
|
65
|
-
if order.empty?
|
66
|
-
orderby = 'id'
|
67
|
-
orderdir = 'asc'
|
68
|
-
else
|
69
|
-
orderby = order[0][0]
|
70
|
-
orderdir = order[0][1]
|
71
|
-
end
|
72
|
-
|
73
|
-
#@items = Task.includes(:status, :client, :contacts).for_user(current_user.id).all
|
74
|
-
#includes(:status, :client, :contacts).for_user(filter['user_id'])
|
75
|
-
#includes(:status, :client, :contacts, :received_user)
|
76
|
-
q = self.where(get_where(filter.data))
|
77
|
-
|
78
|
-
parent_id = filter.data['parent_id'].to_i
|
66
|
+
def self.where_parent(parent_id)
|
79
67
|
if parent_id==0
|
80
|
-
|
68
|
+
roots
|
81
69
|
elsif parent_id>0
|
82
|
-
|
70
|
+
children_of(parent_id.to_s)
|
83
71
|
end
|
84
|
-
|
85
|
-
q.order(" #{orderby} #{orderdir}").page(pg)
|
86
72
|
end
|
87
73
|
|
88
|
-
def self.get_where(values)
|
89
|
-
w = '1=1 '
|
90
|
-
#w << " AND uid like '#{values['uid']}%' " if values['uid'] && !values['uid'].blank?
|
91
|
-
w << " AND title like '%#{values['title']}%' " if values['title'] && !values['title'].blank?
|
92
|
-
#w << " AND parent_id = '#{values['parent_id']}' " if !values['parent_id']!=-1
|
93
74
|
|
94
|
-
w
|
95
|
-
end
|
96
75
|
|
76
|
+
#### operations
|
97
77
|
|
98
78
|
def attach
|
99
79
|
# check if file exists
|
@@ -5,14 +5,25 @@
|
|
5
5
|
Pages
|
6
6
|
%small
|
7
7
|
<i class="ace-icon fa fa-angle-double-right"></i>
|
8
|
-
|
8
|
+
manage pages
|
9
9
|
.col-md-5
|
10
10
|
=link_to 'New page', new_page_path(:parent_id=>@parent_id), :class=>'btn btn-sm btn-primary'
|
11
11
|
=link_to 'New folder', newfolder_pages_path(:parent_id=>@parent_id, :is_folder=>1), :class=>'btn btn-sm btn-default'
|
12
12
|
|
13
13
|
|
14
14
|
.filter
|
15
|
-
=
|
15
|
+
= inline_filter_form_for(@filter)
|
16
|
+
|
17
|
+
-#= simple_form_for(:filter, url: '/', wrapper: :horizontal_search_form, wrapper_mappings: { check_boxes: :search_horizontal_radio_and_checkboxes, radio_buttons: :search_horizontal_radio_and_checkboxes, boolean: :search_horizontal_boolean },
|
18
|
+
-#= simple_form_for(:filter, url: pages_url, wrapper: :inline_search_form, wrapper_mappings: { },
|
19
|
+
html: {:id=>'formFilter'}) do |f|
|
20
|
+
= hidden_field_tag 'cmd', 'apply'
|
21
|
+
= render 'tableview/filter_fields', filter: @filter, f: f
|
22
|
+
= render 'tableview/buttons_apply_clear_simple_form_inline', filter: @filter, f: f
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
-#= form_tag(search_pages_url(:action=>'index'), method: "post", :class=>'form-inline', :name=>'formFilter', :id=>'formFilter') do
|
16
27
|
= hidden_field_tag 'cmd', 'apply'
|
17
28
|
|
18
29
|
= render :partial=>'tableview/filter_fields', :locals => {:filter=>@filter}
|
@@ -29,7 +40,8 @@
|
|
29
40
|
%table.table.table-striped.table-bordered
|
30
41
|
%tr
|
31
42
|
%th
|
32
|
-
|
43
|
+
-#= link_to 'Title', pages_path(:cmd=>'order', :orderby=>'title', :orderdir=>@filter.get_opposite_order_dir_for_column('title'))
|
44
|
+
= link_to 'Title', '#'
|
33
45
|
%th Name
|
34
46
|
%th URL
|
35
47
|
%th Commands
|
@@ -13,7 +13,10 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
.filter
|
16
|
-
=
|
16
|
+
= inline_filter_form_for(@filter)
|
17
|
+
-#= horizontal_filter_form_for(@filter)
|
18
|
+
|
19
|
+
-#= form_tag(search_templates_url(:action=>'index'), method: "post", :class=>'form-inline', :name=>'formFilter', :id=>'formFilter') do
|
17
20
|
= hidden_field_tag 'cmd', 'apply'
|
18
21
|
|
19
22
|
= render :partial=>'tableview/filter_fields', :locals => {:filter=>@filter}
|
@@ -34,7 +37,8 @@
|
|
34
37
|
%table.table.table-striped.table-bordered
|
35
38
|
%tr
|
36
39
|
%th
|
37
|
-
=
|
40
|
+
= link_to_sortable_column :title, 'Title'
|
41
|
+
-#= link_to 'Title', pages_path(:cmd=>'order', :orderby=>'title', :orderdir=>@filter.get_opposite_order_dir_for_column('title'))
|
38
42
|
%th Path
|
39
43
|
%th Commands
|
40
44
|
|
data/lib/optimacms/engine.rb
CHANGED
@@ -5,12 +5,14 @@ module Optimacms
|
|
5
5
|
|
6
6
|
|
7
7
|
config.watchable_dirs['lib'] = [:rb] if Rails.env.development?
|
8
|
+
config.watchable_dirs['app/helpers'] = [:rb] if Rails.env.development?
|
8
9
|
|
9
10
|
#config.autoload_paths << File.expand_path("../lib/some/path", __FILE__)
|
10
11
|
#config.autoload_paths << File.expand_path("../lib/optimacms/path", __FILE__)
|
11
12
|
|
12
13
|
config.autoload_paths += Dir["#{Optimacms::Engine.root}/app/helpers/"]
|
13
14
|
config.autoload_paths += Dir["#{Optimacms::Engine.root}/app/helpers/optimacms/"]
|
15
|
+
config.autoload_paths += Dir["#{Optimacms::Engine.root}/app/helpers/simple_filter/"]
|
14
16
|
config.autoload_paths += Dir["#{Optimacms::Engine.root}/app/helpers/**/"]
|
15
17
|
|
16
18
|
config.autoload_paths += Dir["#{Optimacms::Engine.root}/lib/"]
|
@@ -1,3 +1,4 @@
|
|
1
|
+
=begin
|
1
2
|
module Optimacms
|
2
3
|
module Filters
|
3
4
|
class FormFilter
|
@@ -92,7 +93,7 @@ module Optimacms
|
|
92
93
|
end
|
93
94
|
|
94
95
|
def v(name, v_def=nil)
|
95
|
-
if (data.has_key? name) && (!data[name].nil?)
|
96
|
+
if (data.has_key? name) && (!data[name].nil?) && (!data[name].nil?)
|
96
97
|
return data[name]
|
97
98
|
end
|
98
99
|
|
@@ -221,4 +222,6 @@ module Optimacms
|
|
221
222
|
end
|
222
223
|
end
|
223
224
|
end
|
224
|
-
end
|
225
|
+
end
|
226
|
+
|
227
|
+
=end
|
@@ -1,42 +1,42 @@
|
|
1
1
|
module Optimacms
|
2
|
-
|
3
|
-
|
2
|
+
module Mycontroller
|
3
|
+
#extend ActiveSupport::Concern
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
#included do
|
6
|
+
# before_filter :my_set_render
|
7
|
+
#end
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
def my_set_render
|
10
|
+
@is_optimacms = true
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
def default_render(*args)
|
15
|
-
if self.controller_name!='pages' && !@optimacms_tpl.nil? && @is_optimacms
|
16
|
-
render @optimacms_tpl, :layout=>@optimacms_layout and return
|
17
|
-
#(render :text => "hello", :layout => @optimacms_layout) and return
|
12
|
+
end
|
18
13
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
# render text: "some text". :plain does not work.
|
24
|
-
end
|
14
|
+
def default_render(*args)
|
15
|
+
if self.controller_name!='pages' && !@optimacms_tpl.nil? && @is_optimacms
|
16
|
+
render @optimacms_tpl, :layout=>@optimacms_layout and return
|
17
|
+
#(render :text => "hello", :layout => @optimacms_layout) and return
|
25
18
|
|
26
|
-
|
19
|
+
# http://stackoverflow.com/questions/21129587/ruby-on-rails-how-to-render-file-as-plain-text-without-any-html
|
20
|
+
#render :plain will set the content type to text/plain
|
21
|
+
#render :html will set the content type to text/html
|
22
|
+
#render :body will not set the content type header.
|
23
|
+
# render text: "some text". :plain does not work.
|
27
24
|
end
|
28
25
|
|
29
|
-
|
30
|
-
|
31
|
-
@optimacms_layout = tpl_layout
|
32
|
-
end
|
26
|
+
super
|
27
|
+
end
|
33
28
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
end
|
29
|
+
def my_set_render_template(tpl_view, tpl_layout)
|
30
|
+
@optimacms_tpl = tpl_view
|
31
|
+
@optimacms_layout = tpl_layout
|
32
|
+
end
|
39
33
|
|
34
|
+
def my_set_meta(meta)
|
35
|
+
@optimacms_meta_title = meta[:title]
|
36
|
+
@optimacms_meta_keywords = meta[:keywords]
|
37
|
+
@optimacms_meta_description = meta[:description]
|
40
38
|
end
|
39
|
+
|
40
|
+
end
|
41
41
|
end
|
42
42
|
|
data/lib/optimacms/version.rb
CHANGED