database_helper.rb
3.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
module DatabaseHelper
def self.valid_database? database
return false if SoftwareHelper.all_table_is_empty?(database)
database_description_id_list = DatabaseDescription.select(:id).
collect {|dd| dd.id}
return database_description_id_list.include?(
database[:database_description_id].to_i
)
end
def self.list_database new_databases
return [] if new_databases.nil? or new_databases.length == 0
list_databases = []
new_databases.each do |new_database|
if valid_database? new_database
database = SoftwareDatabase.new
database.database_description_id =
new_database[:database_description_id]
database.version = new_database[:version]
database.operating_system = new_database[:operating_system]
list_databases << database
end
end
list_databases
end
def self.valid_list_database? list_databases
return false if list_databases.nil? or list_databases.length == 0
list_databases.each do |database|
return false unless database.valid?
end
true
end
def self.database_as_tables(list_databases)
extend(
ActionView::Helpers::TagHelper,
ActionView::Helpers::FormTagHelper,
ActionView::Helpers::UrlHelper,
ActionView::Helpers::FormOptionsHelper,
ApplicationHelper
)
return database_html_structure(
{:database_description_id => "", :version => "", :operating_system => ""}
) if list_databases.nil?
lambdas_list = []
list_databases.each do |database|
lambdas_list << database_html_structure(database)
end
lambdas_list
end
def self.database_html_structure(database_data)
database_name = if database_data[:database_description_id].blank?
""
else
DatabaseDescription.find(
database_data[:database_description_id],
:select=>"name"
).name
end
Proc::new do
content_tag(
'table',
content_tag(
'tr',
content_tag('td', label_tag(_("database Name: ")))+
content_tag(
'td',
text_field_tag(
"database_autocomplete",
database_name,
:class=>"database_autocomplete",
:placeholder=>_("Autocomplete field, type something")
) +
content_tag(
'div',
_("Pick an item on the list"),
:class=>"autocomplete_validation_message hide-field"
)
)+
content_tag(
'td',
hidden_field_tag(
"database[][database_description_id]",
database_data[:database_description_id],
:class => "database_description_id",
:data => {:label => database_name}
)
)
)+
content_tag(
'tr',
content_tag('td', label_tag(_("Version")))+
content_tag(
'td',
text_field_tag(
"database[][version]",
database_data[:version],
:maxlength=>"20"
)
)+
content_tag('td')
)+
content_tag(
'tr',
content_tag('td', label_tag(_("Operating System")))+
content_tag(
'td',
text_field_tag(
"database[][operating_system]",
database_data[:operating_system],
:maxlength=>"20"
)
)+
content_tag(
'td',
button_without_text(
:delete,
_('Delete'),
"#" ,
:class=>"delete-dynamic-table"
),
:align => 'right'
)
), :class => 'dynamic-table database-table'
)
end
end
def self.add_dynamic_table
database_as_tables(nil).call
end
end