webroar 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. data/CHANGELOG +48 -1
  2. data/README +11 -14
  3. data/Rakefile +1 -1
  4. data/conf/mime_type.yml +172 -166
  5. data/conf/server_internal_config.yml +30 -8
  6. data/doc/user-guide.html +294 -153
  7. data/doc/user-guide.txt +9 -13
  8. data/lib/command_runner.rb +1 -0
  9. data/lib/dependencies.rb +18 -15
  10. data/lib/installer.rb +115 -50
  11. data/src/admin_panel/app/controllers/admin_controller.rb +1 -15
  12. data/src/admin_panel/app/controllers/application_controller.rb +2 -2
  13. data/src/admin_panel/app/controllers/application_specification_controller.rb +2 -1
  14. data/src/admin_panel/app/controllers/headers_controller.rb +73 -0
  15. data/src/admin_panel/app/controllers/mail_specification_controller.rb +10 -0
  16. data/src/admin_panel/app/controllers/server_specification_controller.rb +14 -0
  17. data/src/admin_panel/app/helpers/admin_helper.rb +0 -85
  18. data/src/admin_panel/app/models/app.rb +1 -1
  19. data/src/admin_panel/app/models/application_specification.rb +33 -25
  20. data/src/admin_panel/app/models/headers.rb +116 -0
  21. data/src/admin_panel/app/models/mail_specification.rb +20 -5
  22. data/src/admin_panel/app/models/server_specification.rb +2 -7
  23. data/src/admin_panel/app/views/admin/configuration.html.erb +10 -5
  24. data/src/admin_panel/app/views/exceptions/_exception_list_partial.html.erb +4 -4
  25. data/src/admin_panel/app/views/graph/_graph_page.html.erb +3 -0
  26. data/src/admin_panel/app/views/headers/_add_expires_text_box.html.erb +35 -0
  27. data/src/admin_panel/app/views/headers/_expires_by_type_form.html.erb +65 -0
  28. data/src/admin_panel/app/views/headers/_headers_table.html.erb +113 -0
  29. data/src/admin_panel/app/views/mail_specification/_current_spec.html.erb +168 -0
  30. data/src/admin_panel/app/views/{admin → server_specification}/_add_div.html.erb +1 -1
  31. data/src/admin_panel/config/initializers/application_constants.rb +6 -0
  32. data/src/admin_panel/lib/control.rb +6 -3
  33. data/src/admin_panel/lib/scgi.rb +74 -21
  34. data/src/admin_panel/lib/yaml_writer.rb +51 -17
  35. data/src/admin_panel/public/javascripts/application.js +20 -1
  36. data/src/head/wr_access_log.c +2 -2
  37. data/src/head/wr_application.c +294 -236
  38. data/src/head/wr_application.h +8 -8
  39. data/src/head/wr_configurator.c +451 -517
  40. data/src/head/wr_configurator.h +10 -115
  41. data/src/head/wr_connection.c +26 -25
  42. data/src/head/wr_connection.h +2 -3
  43. data/src/head/wr_controller.c +110 -93
  44. data/src/head/wr_controller.h +6 -6
  45. data/src/head/wr_main.c +31 -24
  46. data/src/head/wr_request.c +70 -93
  47. data/src/head/wr_request.h +0 -4
  48. data/src/head/wr_resolver.c +21 -15
  49. data/src/head/wr_resolver.h +2 -2
  50. data/src/head/wr_server.c +36 -26
  51. data/src/head/wr_server.h +5 -5
  52. data/src/head/wr_worker.c +551 -512
  53. data/src/head/wr_worker.h +33 -20
  54. data/src/helper/wr_config.c +316 -0
  55. data/src/helper/wr_config.h +235 -0
  56. data/src/helper/wr_helper.h +1 -5
  57. data/src/helper/wr_logger.c +4 -4
  58. data/src/helper/wr_scgi.c +3 -4
  59. data/src/helper/wr_scgi.h +2 -0
  60. data/src/helper/wr_string.h +2 -2
  61. data/src/helper/wr_util.c +3 -1
  62. data/src/helper/wr_util.h +0 -0
  63. data/src/helper/wr_yaml_parser.c +30 -0
  64. data/src/helper/wr_yaml_parser.h +1 -0
  65. data/src/ruby_lib/exception_tracker/instrumentation/action_controller.rb +2 -1
  66. data/src/ruby_lib/mailer/smtpmail.rb +7 -4
  67. data/src/ruby_lib/profiler/instrumentation/action_controller.rb +2 -1
  68. data/src/ruby_lib/profiler/instrumentation/active_record.rb +3 -0
  69. data/src/ruby_lib/rack/adapter/rails.rb +14 -7
  70. data/src/ruby_lib/ruby_interface/client.rb +1 -1
  71. data/src/ruby_lib/ruby_interface/version.rb +2 -2
  72. data/src/ruby_lib/webroar_app_loader.rb +4 -2
  73. data/src/worker/wkr_controller.c +200 -140
  74. data/src/worker/wkr_http.c +14 -28
  75. data/src/worker/wkr_http.h +4 -4
  76. data/src/worker/wkr_http_request.c +12 -11
  77. data/src/worker/wkr_http_request.h +7 -8
  78. data/src/worker/wkr_http_response.c +10 -14
  79. data/src/worker/wkr_http_response.h +0 -1
  80. data/src/worker/wkr_main.c +74 -140
  81. data/src/worker/wkr_static.c +295 -108
  82. data/src/worker/wkr_static.h +20 -7
  83. data/src/worker/worker.c +245 -70
  84. data/src/worker/worker.h +46 -34
  85. data/tasks/compile.rake +128 -175
  86. data/tasks/test.rake +345 -469
  87. data/test/spec/webroar_command_spec.rb +23 -0
  88. metadata +173 -43
  89. data/src/admin_panel/vendor/plugins/action_mailer_optional_tls/README +0 -34
  90. data/src/admin_panel/vendor/plugins/action_mailer_optional_tls/Rakefile +0 -13
  91. data/src/admin_panel/vendor/plugins/action_mailer_optional_tls/init.rb +0 -5
  92. data/src/admin_panel/vendor/plugins/action_mailer_optional_tls/lib/action_mailer_tls.rb +0 -16
  93. data/src/admin_panel/vendor/plugins/action_mailer_optional_tls/lib/smtp_tls.rb +0 -123
  94. data/src/admin_panel/vendor/plugins/action_mailer_optional_tls/test/tls_test.rb +0 -42
  95. data/src/head/wr_config.h +0 -165
  96. data/src/ruby_lib/mailer/action_mailer_tls.rb +0 -16
  97. data/src/ruby_lib/mailer/smtp_tls.rb +0 -123
@@ -183,89 +183,4 @@ module AdminHelper
183
183
  end
184
184
  return block
185
185
  end
186
-
187
- #To help the configuration page to display the mail configuration.
188
- def mail_config_block()
189
- if File.exist?(MAIL_FILE_PATH) and info = YAML::load_file(MAIL_FILE_PATH)
190
- if info['smtp']
191
- block = "<table width = 95%>
192
- <tr>
193
- <td class = 'table_header_link' width = 50% colspan = 2><b>Mail Settings :- SMTP</b>&nbsp;&nbsp;&nbsp;
194
- <span class = 'help_link'>
195
- #{link_to_function('Help', :onclick => 'addHelp("mail");')}
196
- </span>
197
- <br/> <div id = 'mail' class = 'font_size_12'></div>
198
- </td>
199
- <td class = 'table_header_link' width = 25%>#{link_to_remote 'Sendmail', :update => 'mail_div', :url => {:controller => 'mail_specification', :action => 'sendmail_form'}}</td>
200
- <td class = 'table_header_link' width = 25%>#{link_to_remote 'Edit', :update => 'mail_div', :url => {:controller => 'mail_specification', :action => 'edit_smtp', :smtp => info['smtp']}}</td>
201
- </tr>
202
- <tr>
203
- <td class = 'BG_dark_gray' width = 25%>Server</td>
204
- <td class = 'BG_dark_gray' width = 25%>#{info['smtp']['address']}</td>
205
- <td class = 'BG_dark_gray' width = 25%>Port</td>
206
- <td class = 'BG_dark_gray' width = 25%>#{info['smtp']['port']}</td>
207
- </tr>
208
- <tr>
209
- <td class = 'BG_white'>Domain</td>
210
- <td class = 'BG_white'>#{info['smtp']['domain']}</td>
211
- <td class = 'BG_white'>Authenitcation</td>
212
- <td class = 'BG_white'>#{info['smtp']['authentication']}</td>
213
- </tr>
214
- <tr>
215
- <td class = 'BG_dark_gray'>User Name</td>
216
- <td class = 'BG_dark_gray'>#{info['smtp']['user_name']}</td>
217
- <td class = 'BG_dark_gray'>Password</td>
218
- <td class = 'BG_dark_gray'>**************</td>
219
- </tr>
220
- <tr>
221
- <td class = 'BG_white'>Sender's Email Address</td>
222
- <td class = 'BG_white'>#{info['smtp']['from']}</td>
223
- <td class = 'BG_white'>Recipient Email Addresses</td>
224
- <td class = 'BG_white'>#{info['smtp']['recipients']}</td>
225
- </tr>
226
- <tr>
227
- </tr>
228
- </table><br/><br/>"
229
- elsif info['sendmail']
230
- block = "<table width = 95%>
231
- <tr>
232
- <td class = 'table_header_link' width = 50%><b>Mail Settings :- Sendmail</b>&nbsp;&nbsp;&nbsp;
233
- <span class = 'help_link'>
234
- #{link_to_function('Help', :onclick => 'addHelp("mail");')}
235
- </span>
236
- <br/> <div id = 'mail' class = 'font_size_12'></div>
237
- </td>
238
- <td class = 'table_header_link' width = 25%>#{link_to_remote 'SMTP', :update => 'mail_div', :url => {:controller => 'mail_specification', :action => 'smtp_form'}}</td>
239
- <td class = 'table_header_link' width = 25%>#{link_to_remote 'Edit', :update => 'mail_div', :url => {:controller => 'mail_specification', :action => 'edit_sendmail', :sendmail => info['sendmail']}}</td>
240
- </tr>
241
- <tr>
242
- <td class = 'BG_dark_gray' width = 50%>Location</td>
243
- <td colspan = 2 class = 'BG_dark_gray'width = 50%>#{info['sendmail']['location']}</td>
244
- </tr>
245
- <tr>
246
- <td class = 'BG_white'>Sender's Email Address</td>
247
- <td colspan = 2 class = 'BG_white'>#{info['sendmail']['from']}</td>
248
- </tr>
249
- <tr>
250
- <td class = 'BG_dark_gray'>Recipient Email Addresses</td>
251
- <td colspan = 2 class = 'BG_dark_gray'>#{info['sendmail']['recipients']}</td>
252
- </tr>
253
- </table><br/><br/>"
254
- end
255
- else
256
- block = "<table width = 95%>
257
- <tr>
258
- <td class = 'table_header_link' width = 80%><b>Mail Settings</b>&nbsp;&nbsp;&nbsp;
259
- <span class = 'help_link'>
260
- #{link_to_function('Help', :onclick => 'addHelp("mail");')}
261
- </span>
262
- <br/> <div id = 'mail' class = 'font_size_12'></div>
263
- </td>
264
- <td class = 'table_header_link' width = 10%>#{link_to_remote 'SMTP', :update => 'mail_div', :url => {:controller => 'mail_specification', :action => 'smtp_form'}}</td>
265
- <td class = 'table_header_link' width = 10%>#{link_to_remote 'Sendmail', :update => 'mail_div', :url => {:controller => 'mail_specification', :action => 'sendmail_form'}}</td>
266
- </tr>
267
- </table><br/><br/>"
268
- end
269
- return block
270
- end
271
186
  end
@@ -76,7 +76,7 @@ class App < ActiveRecord::Base
76
76
  begin
77
77
  reply, err_log = ctl.restart
78
78
  rescue Exception => e
79
- reply = "An error occurred while sending 'stop' request for application '#{app_name}'. Please refer the '/var/log/webroar/#{app_name}.log' file for details."
79
+ reply = "An error occurred while sending 'restart' request for application '#{app_name}'. Please refer the '/var/log/webroar/#{app_name}.log' file for details."
80
80
  end
81
81
  return reply, err_log
82
82
  end
@@ -42,25 +42,19 @@ class ApplicationSpecification < PseudoModel
42
42
  # validates_format_of :baseuri, :with => /^\/[A-Za-z0-9_\-\/]*$/i, :message => "must start with '/' and contains characters A-Z, a-z, 0-9 , _ , - and /."
43
43
 
44
44
  def write
45
- server_specification = ServerSpecification.get_hash
46
- info= YAML::load_file(CONFIG_FILE_PATH) rescue nil
47
- if info
48
- if info['Application Specification']
49
- i = info['Application Specification'].size
50
- info['Application Specification'][i] = obj_to_hash
51
- data = info['Application Specification']
52
- else
53
- data = Array[obj_to_hash]
54
- end
55
- else
56
- data = Array[obj_to_hash]
45
+
46
+ info = YAML::load_file(CONFIG_FILE_PATH) rescue nil
47
+ if not (info and info['Application Specification'])
48
+ info['Application Specification'] = Array.new
57
49
  end
58
- info = Hash['Server Specification' => server_specification, 'Application Specification' => data]
59
- YAMLWriter.write(info, CONFIG_FILE_PATH, "config")
50
+
51
+ info['Application Specification'].push(obj_to_hash)
52
+
53
+ YAMLWriter.write(info, CONFIG_FILE_PATH, YAMLConfig::CONFIG)
54
+
60
55
  end
61
56
 
62
57
  def self.remove(app_name)
63
- server_specification = ServerSpecification.get_hash
64
58
  info = YAML::load_file(CONFIG_FILE_PATH) rescue nil
65
59
 
66
60
  if info and info['Application Specification']
@@ -69,12 +63,10 @@ class ApplicationSpecification < PseudoModel
69
63
  info['Application Specification'].delete(x)
70
64
  end
71
65
  end
72
-
73
- info = Hash['Server Specification' => server_specification] if info['Application Specification'].length == 0
74
-
66
+ info.delete('Application Specification') if info['Application Specification'].length == 0
75
67
  end
76
68
 
77
- YAMLWriter.write(info, CONFIG_FILE_PATH, "config")
69
+ YAMLWriter.write(info, CONFIG_FILE_PATH, YAMLConfig::CONFIG)
78
70
  end
79
71
 
80
72
  def remove
@@ -92,7 +84,7 @@ class ApplicationSpecification < PseudoModel
92
84
  def update(app_id)
93
85
  info = YAML::load_file(CONFIG_FILE_PATH) rescue nil
94
86
  info['Application Specification'][app_id] = obj_to_hash
95
- YAMLWriter.write(info, CONFIG_FILE_PATH, "config")
87
+ YAMLWriter.write(info, CONFIG_FILE_PATH, YAMLConfig::CONFIG)
96
88
  end
97
89
 
98
90
  #this method is used to validate the various fields of the apps model.
@@ -304,10 +296,9 @@ class ApplicationSpecification < PseudoModel
304
296
  info = YAML::load_file(CONFIG_FILE_PATH) rescue nil
305
297
  app_name = info['Application Specification'][app_id]["name"]
306
298
  info['Application Specification'].delete_at(app_id)
307
- if(info['Application Specification'].length == 0)
308
- info.delete('Application Specification')
309
- end
310
- YAMLWriter.write(info,CONFIG_FILE_PATH,"config")
299
+ info.delete('Application Specification') if info['Application Specification'].length == 0
300
+
301
+ YAMLWriter.write(info,CONFIG_FILE_PATH, YAMLConfig::CONFIG)
311
302
  return app_name
312
303
  end
313
304
 
@@ -360,6 +351,23 @@ class ApplicationSpecification < PseudoModel
360
351
  i +=1
361
352
  end
362
353
  return i
363
- end
354
+ end
355
+
356
+ def analytics_enabled?(application_name)
357
+ info = YAML::load_file(CONFIG_FILE_PATH) rescue nil
358
+ i = 0
359
+ while info['Application Specification']
360
+ if info['Application Specification'][i]['name'] == application_name
361
+ if info['Application Specification'][i]['analytics'].downcase == "enabled".downcase
362
+ return true
363
+ else
364
+ return false
365
+ end
366
+ end
367
+ i +=1
368
+ end
369
+ false
370
+ end
371
+
364
372
  end
365
373
  end
@@ -0,0 +1,116 @@
1
+ #--
2
+ # WebROaR - Ruby Application Server - http://webroar.in/
3
+ # Copyright (C) 2009 Goonj LLC
4
+ #
5
+ # This file is part of WebROaR.
6
+ #
7
+ # WebROaR is free software: you can redistribute it and/or modify
8
+ # it under the terms of the GNU General Public License as published by
9
+ # the Free Software Foundation, either version 3 of the License, or
10
+ # (at your option) any later version.
11
+ #
12
+ # WebROaR is distributed in the hope that it will be useful,
13
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ # GNU General Public License for more details.
16
+ #
17
+ # You should have received a copy of the GNU General Public License
18
+ # along with WebROaR. If not, see <http://www.gnu.org/licenses/>.
19
+ #++
20
+
21
+ class Headers < PseudoModel
22
+ class << self
23
+
24
+ def get_expires_value
25
+ @conf = YAML::load_file(CONFIG_FILE_PATH)
26
+ if @conf['Headers'] and @conf['Headers']['expires']
27
+ @conf['Headers']['expires']
28
+ else
29
+ "Off"
30
+ end
31
+ end
32
+
33
+ def get_expires_by_type_array
34
+ @conf = YAML::load_file(CONFIG_FILE_PATH)
35
+ return @conf['Headers']['expires_by_type'] if @conf['Headers'] and @conf['Headers']['expires_by_type'] and @conf['Headers']['expires_by_type'].length > 0
36
+ []
37
+ end
38
+
39
+ def delete_expires_by_type(index)
40
+ @conf = YAML::load_file(CONFIG_FILE_PATH)
41
+ if @conf['Headers'] and @conf['Headers']['expires_by_type']
42
+ @conf['Headers']['expires_by_type'].delete_at(index)
43
+ end
44
+ @conf['Headers'].delete('expires_by_type') if @conf['Headers']['expires_by_type'].empty?
45
+ @conf.delete('Headers') if @conf['Headers'].empty?
46
+ YAMLWriter.write(@conf, CONFIG_FILE_PATH, YAMLConfig::CONFIG)
47
+ end
48
+
49
+ def validate_and_write_expires_value(old_value, data)
50
+ expires = old_value
51
+ error_message = ""
52
+ data = data.strip
53
+ if data.empty?
54
+ error_message = EMPTY_STRING
55
+ return expires, error_message
56
+ end
57
+
58
+ if data.to_s.downcase == 'off'
59
+ expires = 'Off'
60
+ write_expires_value("Off")
61
+ elsif data =~ /^\d+$/ and data.to_i > 0
62
+ expires = data.to_i
63
+ write_expires_value(expires)
64
+ else
65
+ error_message = EXPIRES_VALIDATION
66
+ end
67
+ return expires, error_message
68
+ end
69
+
70
+ def validate_and_write_expires_by_type(ext, expires)
71
+ ext = ext.strip
72
+ expires = expires.strip
73
+ err_msg = nil
74
+ if ext.empty?
75
+ err_msg = "<ul>"
76
+ err_msg += "<li>File extensions can not be empty.</li>"
77
+ end
78
+ if expires.empty?
79
+ err_msg += "<li>Expires value can not be empty</li>"
80
+ end
81
+ unless expires =~ /^\d+$/ and expires.to_i > 0
82
+ err_msg += "<li>Possible value for expires is no. of seconds</li>"
83
+ end
84
+ if err_msg
85
+ err_msg += "</ul>"
86
+ return err_msg
87
+ end
88
+ write_expires_by_type_value(ext, expires.to_i)
89
+ return ''
90
+ end
91
+
92
+ def write_expires_by_type_value(ext, expires)
93
+ @conf = YAML::load_file(CONFIG_FILE_PATH)
94
+ @conf['Headers'] = Hash.new unless @conf['Headers']
95
+ @conf['Headers']['expires_by_type'] = Array.new unless @conf['Headers']['expires_by_type']
96
+ @conf['Headers']['expires_by_type'].push(Hash['ext' => ext, 'expires' => expires])
97
+ YAMLWriter.write(@conf, CONFIG_FILE_PATH, YAMLConfig::CONFIG)
98
+ end
99
+
100
+ def write_expires_value(expires)
101
+ @conf = YAML::load_file(CONFIG_FILE_PATH)
102
+ if expires.to_s.downcase == 'off'
103
+ if @conf['Headers'] and @conf['Headers']['expires']
104
+ @conf['Headers'].delete('expires')
105
+ @conf.delete('Headers') if @conf['Headers'].empty?
106
+ end
107
+ else
108
+ @conf['Headers'] = Hash.new unless @conf['Headers']
109
+ @conf['Headers']['expires'] = expires
110
+ end
111
+
112
+ YAMLWriter.write(@conf, CONFIG_FILE_PATH, YAMLConfig::CONFIG)
113
+ end
114
+
115
+ end
116
+ end
@@ -50,8 +50,8 @@ class MailSpecification
50
50
 
51
51
  def save_sendmail_specification(sendmail)
52
52
  data = sendmail_specification_hash(sendmail)
53
- data = {'sendmail' => data}
54
- YAMLWriter.write(data, MAIL_FILE_PATH, "sendmail")
53
+ data = {'sendmail' => data, 'email_notification' => 'enabled'}
54
+ YAMLWriter.write(data, MAIL_FILE_PATH, YAMLConfig::SENDMAIL)
55
55
  end
56
56
 
57
57
  def sendmail_specification_hash(sendmail=nil)
@@ -106,8 +106,8 @@ class MailSpecification
106
106
 
107
107
  def save_smtp_specification(smtp)
108
108
  data = smtp_specification_hash(smtp)
109
- data = {'smtp' => data}
110
- YAMLWriter.write(data, MAIL_FILE_PATH, "smtp")
109
+ data = {'smtp' => data, 'email_notification' => 'enabled'}
110
+ YAMLWriter.write(data, MAIL_FILE_PATH, YAMLConfig::SMTP)
111
111
  end
112
112
 
113
113
  def smtp_specification_hash(smtp=nil)
@@ -134,6 +134,21 @@ class MailSpecification
134
134
  'recipients' => ""
135
135
  ]
136
136
  end
137
- end
137
+ end
138
+
139
+ def update_notification_status(status)
140
+ @notification_conf = YAML::load_file(MAIL_FILE_PATH)
141
+ case status
142
+ when :enable
143
+ @notification_conf['email_notification'] = 'enabled'
144
+ when :disable
145
+ @notification_conf['email_notification'] = 'disabled'
146
+ end
147
+ yaml_obj = YAML::dump(@notification_conf)
148
+ File.open(MAIL_FILE_PATH, 'w') do |f|
149
+ f.puts yaml_obj
150
+ end
151
+ end
152
+
138
153
  end
139
154
  end
@@ -91,13 +91,8 @@ class ServerSpecification
91
91
 
92
92
  #Method is use to write server specification into the config file
93
93
  def write(info, server_specification)
94
- if info and info['Application Specification']
95
- application_specification = info['Application Specification']
96
- data = Hash['Server Specification' => server_specification, 'Application Specification' => application_specification]
97
- else
98
- data = Hash['Server Specification' => server_specification]
99
- end
100
- YAMLWriter.write(data,CONFIG_FILE_PATH, "config")
94
+ info['Server Specification'] = server_specification
95
+ YAMLWriter.write(info, CONFIG_FILE_PATH, YAMLConfig::CONFIG)
101
96
  end
102
97
 
103
98
  def get_fields
@@ -30,7 +30,7 @@ along with WebROaR. If not, see <http://www.gnu.org/licenses/>.
30
30
  <tr>
31
31
  <td width = 40% class = 'BG_dark_gray'> Port&nbsp;&nbsp;&nbsp;</td>
32
32
  <td width = 40% class = 'BG_dark_gray'><div id = 'port_div'><%=h(port)%></div></td>
33
- <td width = 20% class = 'BG_dark_gray'><%=link_to_remote 'Edit', :update => 'port_div', :url => {:action => 'add_text_box', :div_id => 'port_div'}%></td>
33
+ <td width = 20% class = 'BG_dark_gray'><%=link_to_remote 'Edit', :update => 'port_div', :url => {:controller => 'server_specification', :action => 'add_text_box', :div_id => 'port_div'}%></td>
34
34
  </tr>
35
35
  <tr>
36
36
  <td class = 'BG_white'>Minimum number of workers&nbsp;&nbsp;&nbsp;
@@ -40,7 +40,7 @@ along with WebROaR. If not, see <http://www.gnu.org/licenses/>.
40
40
  <br/> <div id = 'minworker' class = 'font_size_12'></div>
41
41
  </td>
42
42
  <td class = 'BG_white'><div id = 'min_pro_div'><%=h(min_worker)%></div></td>
43
- <td class = 'BG_white'><%=link_to_remote 'Edit', :update => 'min_pro_div', :url => {:action => 'add_text_box', :div_id => 'min_pro_div'}%></td>
43
+ <td class = 'BG_white'><%=link_to_remote 'Edit', :update => 'min_pro_div', :url => {:controller => 'server_specification', :action => 'add_text_box', :div_id => 'min_pro_div'}%></td>
44
44
  </tr>
45
45
  <tr>
46
46
  <td class = 'BG_dark_gray'>Maximum number of workers&nbsp;&nbsp;&nbsp;
@@ -50,7 +50,7 @@ along with WebROaR. If not, see <http://www.gnu.org/licenses/>.
50
50
  <br/> <div id = 'maxworker' class = 'font_size_12'></div>
51
51
  </td>
52
52
  <td class = 'BG_dark_gray'><div id = 'max_pro_div'><%=h(max_worker)%></td>
53
- <td class = 'BG_dark_gray'><%=link_to_remote 'Edit', :update => 'max_pro_div', :url => {:action => 'add_text_box', :div_id => 'max_pro_div'}%></td>
53
+ <td class = 'BG_dark_gray'><%=link_to_remote 'Edit', :update => 'max_pro_div', :url => {:controller => 'server_specification', :action => 'add_text_box', :div_id => 'max_pro_div'}%></td>
54
54
  </tr>
55
55
  <tr>
56
56
  <td class = 'BG_white'>Log Level&nbsp;&nbsp;&nbsp;
@@ -60,7 +60,7 @@ along with WebROaR. If not, see <http://www.gnu.org/licenses/>.
60
60
  <br/> <div id = 'log_level' class = 'font_size_12'></div>
61
61
  </td>
62
62
  <td class = 'BG_white'><div id = 'log_div'><%=h(log_level)%></div></td>
63
- <td class = 'BG_white'><%=link_to_remote 'Edit', :update => 'log_div', :url => {:action => 'add_text_box', :div_id => 'log_div'}%></td>
63
+ <td class = 'BG_white'><%=link_to_remote 'Edit', :update => 'log_div', :url => {:controller => 'server_specification', :action => 'add_text_box', :div_id => 'log_div'}%></td>
64
64
  </tr>
65
65
  </table>
66
66
  <br/><br/>
@@ -71,9 +71,14 @@ along with WebROaR. If not, see <http://www.gnu.org/licenses/>.
71
71
  <%elsif flash[:smtp_errors]%>
72
72
  <%=render :partial => 'mail_specification/smtp_form'%>
73
73
  <%else%>
74
- <%=mail_config_block()%>
74
+ <%=render :partial => 'mail_specification/current_spec' %>
75
75
  <%end%>
76
76
  </div>
77
+ <div id = 'headers_div'>
78
+ <%= render :partial => 'headers/headers_table' %>
79
+ </div>
80
+ <br/>
81
+ <br/>
77
82
  <div id = 'application_list_table'>
78
83
  <%=render :partial => 'application_table', :locals => {:start => 0}%>
79
84
  </div>
@@ -49,15 +49,15 @@ along with WebROaR. If not, see <http://www.gnu.org/licenses/>.
49
49
  <% end -%>
50
50
  <tr>
51
51
  <td colspan = 6>
52
- Take Action:
52
+ <b>Take Action:</b>
53
53
  <% unless current_status == OPEN_EXCEPTION %>
54
- <%=link_to_remote 'Reopen', :condition => "checkMarked()", :url => {:controller => 'exceptions', :action => 'change_status', :status_name => "open", :current_status => status_name, :app_name => @application_name, :page => @exceptions.current_page }, :submit => 'form_exception_list', :method => :put %>
54
+ <b><%=link_to_remote 'Reopen', :condition => "checkMarked()", :url => {:controller => 'exceptions', :action => 'change_status', :status_name => "open", :current_status => status_name, :app_name => @application_name, :page => @exceptions.current_page }, :submit => 'form_exception_list', :method => :put %></b>
55
55
  <% end %>
56
56
  <% unless current_status == CLOSED_EXCEPTION %>
57
- <%=link_to_remote 'Close', :condition => "checkMarked()", :url => {:controller => 'exceptions', :action => 'change_status', :status_name => "close", :current_status => status_name, :app_name => @application_name, :page => @exceptions.current_page }, :submit => 'form_exception_list', :method => :put %>
57
+ <b><%=link_to_remote 'Close', :condition => "checkMarked()", :url => {:controller => 'exceptions', :action => 'change_status', :status_name => "close", :current_status => status_name, :app_name => @application_name, :page => @exceptions.current_page }, :submit => 'form_exception_list', :method => :put %></b>
58
58
  <% end %>
59
59
  <% unless current_status == IGNORED_EXCEPTION %>
60
- <%=link_to_remote 'Ignore', :condition => "checkMarked()", :url => {:controller => 'exceptions', :action => 'change_status', :status_name => "ignore", :current_status => status_name, :app_name => @application_name, :page => @exceptions.current_page }, :submit => 'form_exception_list', :method => :put %>
60
+ <b><%=link_to_remote 'Ignore', :condition => "checkMarked()", :url => {:controller => 'exceptions', :action => 'change_status', :status_name => "ignore", :current_status => status_name, :app_name => @application_name, :page => @exceptions.current_page }, :submit => 'form_exception_list', :method => :put %></b>
61
61
  <% end %>
62
62
  <%#=link_to_remote 'Delete', :condition => "checkMarked('delete')", :url => {:controller => 'exceptions', :action => 'change_status', :status_name => "delete", :current_status => status_name, :app_name => @application_name, :page => @exceptions.current_page }, :submit => 'form_exception_list', :method => :put %>
63
63
  </td>
@@ -29,6 +29,9 @@ along with WebROaR. If not, see <http://www.gnu.org/licenses/>.
29
29
  <div id = 'reload'>Select Graph:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<%=select :graph,:name,%w{URL-Breakup URL-Calls Database-Usage Throughput Resource-Usage},:selected=>session[:graph_type]%></div>
30
30
  <hr/>
31
31
  <div style = "font-weight:bold;font-size:14;">Application Name : <%=@application_name%>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
32
+ <% unless ApplicationSpecification.analytics_enabled?(@application_name) %>
33
+ <span style = "color:red">Analytics for this application is currently disabled. You can still view the reports on captured data.</span>
34
+ <% end %>
32
35
  <hr/>
33
36
  <div id = 'graphs'>
34
37
  <%=render :partial => get_partial(session[:graph_type])%>
@@ -0,0 +1,35 @@
1
+ <!--
2
+ WebROaR - Ruby Application Server - http://webroar.in/
3
+ Copyright (C) 2009 Goonj LLC
4
+
5
+ This file is part of WebROaR.
6
+
7
+ WebROaR is free software: you can redistribute it and/or modify
8
+ it under the terms of the GNU General Public License as published by
9
+ the Free Software Foundation, either version 3 of the License, or
10
+ (at your option) any later version.
11
+
12
+ WebROaR is distributed in the hope that it will be useful,
13
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ GNU General Public License for more details.
16
+
17
+ You should have received a copy of the GNU General Public License
18
+ along with WebROaR. If not, see <http://www.gnu.org/licenses/>.
19
+ -->
20
+
21
+ <%old_value = Headers.get_expires_value()%>
22
+
23
+ <div id = 'div_add_expires_text_box'>
24
+ <span style = "height:20px;float:left">
25
+ <%remote_form_for :data, :update => params[:div_id], :url => {:controller => 'headers', :action => 'save_expires_value', :div_id => params[:div_id], :old_value => old_value}do%>
26
+ <%=text_field :data, :value, :size => '10', :value => h(old_value)%>
27
+ <%=submit_tag 'Save'%>
28
+ <%end%>
29
+ </span>
30
+ <span style = "height:20px;float:left;">
31
+ <%remote_form_for :cancel, :update => params[:div_id], :url => {:controller => 'headers', :action => 'cancel_expires_value_edit', :div_id => params[:div_id], :old_value => old_value} do%>
32
+ <%=submit_tag 'Cancel'%>
33
+ <%end%>
34
+ </span>
35
+ </div>
@@ -0,0 +1,65 @@
1
+ <!--
2
+ WebROaR - Ruby Application Server - http://webroar.in/
3
+ Copyright (C) 2009 Goonj LLC
4
+
5
+ This file is part of WebROaR.
6
+
7
+ WebROaR is free software: you can redistribute it and/or modify
8
+ it under the terms of the GNU General Public License as published by
9
+ the Free Software Foundation, either version 3 of the License, or
10
+ (at your option) any later version.
11
+
12
+ WebROaR is distributed in the hope that it will be useful,
13
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ GNU General Public License for more details.
16
+
17
+ You should have received a copy of the GNU General Public License
18
+ along with WebROaR. If not, see <http://www.gnu.org/licenses/>.
19
+ -->
20
+
21
+
22
+ <%remote_form_for :data, :url => {:controller => 'headers', :action => 'save_expires_by_type_value' } do %>
23
+
24
+ <table width = 95% cellpadding = "4">
25
+ <% if @error_message %>
26
+ <tr>
27
+ <td colspan = 3 class = 'BG_white'><span id='error_div'><%= @error_message %></td> </span>
28
+ </tr>
29
+ <% end%>
30
+ <tr>
31
+ <td width = 40% class = 'BG_white'>
32
+ <span style = "height:20px;float:left">
33
+ Extension&nbsp;&nbsp;&nbsp;<span class = 'help_link'><%=link_to_function "Help", :onclick => "addHelp('expires_by_type_ext')" %></span>
34
+ &nbsp;&nbsp;&nbsp;
35
+ <%=text_field :data, :ext, :size => '20' %>
36
+ </span>
37
+ <br/>
38
+ <div id = 'expires_by_type_ext' class = 'font_size_12'>
39
+ </div>
40
+
41
+ </td>
42
+ <td width = 40% class = 'BG_white'>
43
+ <span style = "height:20px;float:left">
44
+ Expires&nbsp;&nbsp;&nbsp;<span class = 'help_link'><%=link_to_function "Help", :onclick => "addHelp('expires_by_type_expires_value')" %></span>
45
+ &nbsp;&nbsp;&nbsp;
46
+ <%=text_field :data, :expires, :size => '10' %>
47
+ </span>
48
+ <br/>
49
+ <div id = 'expires_by_type_expires_value' class = 'font_size_12'>
50
+ </div>
51
+ </td>
52
+ <td width = 20% class = 'BG_white'>
53
+ <span style = "height:20px;float:left">
54
+ <%=submit_tag 'Save' %>
55
+ <%=button_to_remote 'Cancel', :update => 'expires_by_type_form', :url => {:controller => 'headers', :action => 'cancel_expires_by_type_value'} %>
56
+ <%end %>
57
+ </span>
58
+ </td>
59
+ </tr>
60
+ </table>
61
+
62
+
63
+
64
+
65
+