it-logica-application-backbone 0.1.12 → 0.1.13
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/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.13
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "it-logica-application-backbone"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.13"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ladas"]
|
@@ -72,7 +72,10 @@ Gem::Specification.new do |s|
|
|
72
72
|
"lib/initializers/initialize.rb",
|
73
73
|
"lib/it-logica-application-backbone.rb",
|
74
74
|
"lib/model_mixins/table_builder_class_methods.rb",
|
75
|
+
"lib/model_mixins/tree_node_class_methods.rb",
|
76
|
+
"lib/model_mixins/tree_node_instance_methods.rb",
|
75
77
|
"lib/view_mixins/breadcrumb.rb",
|
78
|
+
"lib/view_mixins/datafiles_for.rb",
|
76
79
|
"lib/view_mixins/form.rb",
|
77
80
|
"lib/view_mixins/link.rb",
|
78
81
|
"lib/view_mixins/table.rb",
|
@@ -1,9 +1,12 @@
|
|
1
1
|
require 'view_mixins/link'
|
2
2
|
require 'view_mixins/form'
|
3
3
|
require 'view_mixins/breadcrumb'
|
4
|
+
require 'view_mixins/datafiles_for'
|
4
5
|
require 'view_mixins/table'
|
5
6
|
|
6
7
|
require 'model_mixins/table_builder_class_methods'
|
8
|
+
require 'model_mixins/tree_node_class_methods'
|
9
|
+
require 'model_mixins/tree_node_instance_methods'
|
7
10
|
|
8
11
|
require 'controller_mixins/renderer_instance_methods'
|
9
12
|
|
@@ -14,10 +17,13 @@ module Initializers
|
|
14
17
|
ActionView::Base.send :include, ViewMixins::Form
|
15
18
|
ActionView::Base.send :include, ViewMixins::Breadcrumb
|
16
19
|
ActionView::Base.send :include, ViewMixins::Table
|
20
|
+
ActionView::Base.send :include, ViewMixins::DatafilesFor
|
17
21
|
|
18
22
|
ActionController::Base.send :include, ControllerMixins::RendererInstanceMethods
|
19
23
|
|
20
24
|
ActiveRecord::Base.send :extend, ModelMixins::TableBuilderClassMethods
|
25
|
+
ActiveRecord::Base.send :extend, ModelMixins::TreeNodeInstanceMethods
|
26
|
+
ActiveRecord::Base.send :extend, ModelMixins::TreeNodeClassMethods
|
21
27
|
end
|
22
28
|
end
|
23
29
|
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module ModelMixins
|
2
|
+
module TreeNodeClassMethods
|
3
|
+
def child_nodes(id)
|
4
|
+
where(:parent_node_id => id.to_i).order("position ASC")
|
5
|
+
end
|
6
|
+
|
7
|
+
|
8
|
+
def get_children(id)
|
9
|
+
nodes = []
|
10
|
+
self.child_nodes(id).each do |tree_node|
|
11
|
+
tree_node_name = tree_node.name.blank? ? I18.t('name_missing') : tree_node.name
|
12
|
+
tree_node_state = tree_node.has_children? ? "closed" : ""
|
13
|
+
nodes << {:attr => {:id => tree_node.id, :rel => "default", "data-settings" => tree_node.to_json}, :data => tree_node_name, :state => tree_node_state}
|
14
|
+
end
|
15
|
+
nodes
|
16
|
+
end
|
17
|
+
|
18
|
+
def search_node
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_node(params)
|
23
|
+
node = self.create(:parent_node_id => params['id'].to_i, :position => params['position'].to_i, :name => params['title'])
|
24
|
+
|
25
|
+
{:status => "ok", :id => node.id, "data-settings" => node.to_json}
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def remove_node(id)
|
30
|
+
node = self.find(id)
|
31
|
+
node.deleting_root = true
|
32
|
+
node.remove_child_nodes
|
33
|
+
|
34
|
+
{:status => "ok"}
|
35
|
+
end
|
36
|
+
|
37
|
+
def rename_node(params)
|
38
|
+
node = self.find(params['id'].to_i)
|
39
|
+
node.name = params['title']
|
40
|
+
node.save
|
41
|
+
|
42
|
+
{:status => "ok"}
|
43
|
+
end
|
44
|
+
|
45
|
+
def move_node(params)
|
46
|
+
node = self.find(params['id'].to_i)
|
47
|
+
|
48
|
+
# backup for control if something changed
|
49
|
+
node.old_position = node.position
|
50
|
+
node.old_parent_node_id = node.parent_node_id
|
51
|
+
|
52
|
+
if params['ref'].to_i == 0
|
53
|
+
#root
|
54
|
+
node.parent_node_id = 0
|
55
|
+
else
|
56
|
+
new_parent_node = self.find(params['ref'].to_i)
|
57
|
+
node.parent_node = new_parent_node
|
58
|
+
end
|
59
|
+
node.position = params['position'].to_i
|
60
|
+
node.save
|
61
|
+
|
62
|
+
{:status => "ok"}
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
module ModelMixins
|
2
|
+
module TreeNodeInstanceMethods
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
attr_accessible :symlink_controller, :symlink_action, :symlink_id, :symlink_params, :symlink_subdomain, :resource_type, :resource_id, :symlink_remote, :symlink_new_tab
|
7
|
+
attr_accessible :name, :parent_node_id, :position
|
8
|
+
attr_accessor :old_position, :old_parent_node_id, :deleting_root
|
9
|
+
|
10
|
+
belongs_to :resource, :polymorphic => true, :dependent => :destroy
|
11
|
+
|
12
|
+
#belongs_to :parent_node , :class_name => "Intranet::TreeNode"
|
13
|
+
belongs_to :parent_node, :class_name => "TreeNode"
|
14
|
+
|
15
|
+
|
16
|
+
before_create :create_resource
|
17
|
+
|
18
|
+
before_save :set_positions_after_move
|
19
|
+
before_destroy :set_positions_after_destroy
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_resource
|
23
|
+
if self.symlink_controller.blank?
|
24
|
+
node_resource = Intranet::TextPage.create(:name => self.name)
|
25
|
+
self.resource = node_resource
|
26
|
+
self.symlink_controller = "text_pages"
|
27
|
+
self.symlink_id = node_resource.id.to_s
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def set_positions_after_move
|
32
|
+
if !old_position.blank? && !old_parent_node_id.blank?
|
33
|
+
self.class.child_nodes(old_parent_node_id).where("position > ?", old_position).each do |node|
|
34
|
+
node.position -= 1
|
35
|
+
node.save
|
36
|
+
end
|
37
|
+
self.class.child_nodes(parent_node_id).where("position >= ?", position).each do |node|
|
38
|
+
node.position += 1
|
39
|
+
node.save
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def set_positions_after_destroy
|
45
|
+
if !deleting_root.blank? && deleting_root
|
46
|
+
self.class.child_nodes(parent_node_id).where("position > ?", position).each do |node|
|
47
|
+
node.position -= 1
|
48
|
+
node.save
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
def child_nodes
|
55
|
+
self.class.child_nodes(self.id)
|
56
|
+
end
|
57
|
+
|
58
|
+
def has_children?
|
59
|
+
self.class.child_nodes(self.id).count > 0
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
def remove_child_nodes
|
64
|
+
if has_children?
|
65
|
+
child_nodes.each do |child_node|
|
66
|
+
child_node.remove_child_nodes
|
67
|
+
end
|
68
|
+
end
|
69
|
+
remove_one_node
|
70
|
+
end
|
71
|
+
|
72
|
+
def remove_one_node
|
73
|
+
destroy
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
module ViewMixins
|
2
|
+
module DatafilesFor
|
3
|
+
def datafiles_for(object, tiny_mce_selector = ".datafile_tinymce", can_upload = true)
|
4
|
+
render :partial => '/helpers/build_datafiles', :layout => false, :locals => {:object => object, :tiny_mce_selector => tiny_mce_selector, :can_upload => can_upload}
|
5
|
+
end
|
6
|
+
end
|
7
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: it-logica-application-backbone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.13
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-07-03 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: shoulda
|
16
|
-
requirement: &
|
16
|
+
requirement: &81628740 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *81628740
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rdoc
|
27
|
-
requirement: &
|
27
|
+
requirement: &81628500 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '3.12'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *81628500
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &81628210 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.1.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *81628210
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: jeweler
|
49
|
-
requirement: &
|
49
|
+
requirement: &81627680 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.8.4
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *81627680
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: simplecov
|
60
|
-
requirement: &
|
60
|
+
requirement: &81626280 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *81626280
|
69
69
|
description: longer description of your gem
|
70
70
|
email: ladislav.smola@it-logica.cz
|
71
71
|
executables: []
|
@@ -129,7 +129,10 @@ files:
|
|
129
129
|
- lib/initializers/initialize.rb
|
130
130
|
- lib/it-logica-application-backbone.rb
|
131
131
|
- lib/model_mixins/table_builder_class_methods.rb
|
132
|
+
- lib/model_mixins/tree_node_class_methods.rb
|
133
|
+
- lib/model_mixins/tree_node_instance_methods.rb
|
132
134
|
- lib/view_mixins/breadcrumb.rb
|
135
|
+
- lib/view_mixins/datafiles_for.rb
|
133
136
|
- lib/view_mixins/form.rb
|
134
137
|
- lib/view_mixins/link.rb
|
135
138
|
- lib/view_mixins/table.rb
|
@@ -150,7 +153,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
150
153
|
version: '0'
|
151
154
|
segments:
|
152
155
|
- 0
|
153
|
-
hash:
|
156
|
+
hash: 300299217
|
154
157
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
158
|
none: false
|
156
159
|
requirements:
|