six-updater-web 0.22.4 → 0.23.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.
Files changed (26) hide show
  1. data/Rakefile +1 -1
  2. data/lib/six-updater-web/app/controllers/config_controller.rb +11 -2
  3. data/lib/six-updater-web/app/controllers/main_controller.rb +53 -30
  4. data/lib/six-updater-web/app/controllers/queryservers_controller.rb +10 -4
  5. data/lib/six-updater-web/app/helpers/mods_helper.rb +1 -1
  6. data/lib/six-updater-web/app/helpers/queryservers_helper.rb +4 -0
  7. data/lib/six-updater-web/app/models/appsetting.rb +3 -0
  8. data/lib/six-updater-web/app/models/arma2_ca_appsetting.rb +8 -0
  9. data/lib/six-updater-web/app/models/arma2_ca_mod.rb +3 -0
  10. data/lib/six-updater-web/app/models/arma2_mod.rb +1 -1
  11. data/lib/six-updater-web/app/models/arma2_oa_co_appsetting.rb +1 -1
  12. data/lib/six-updater-web/app/models/arma2_st_appsetting.rb +1 -1
  13. data/lib/six-updater-web/app/models/arma2_st_mod.rb +2 -2
  14. data/lib/six-updater-web/app/models/mod.rb +11 -1
  15. data/lib/six-updater-web/app/models/queryserver.rb +11 -0
  16. data/lib/six-updater-web/app/views/config/edit.haml +4 -2
  17. data/lib/six-updater-web/app/views/config/index.haml +2 -1
  18. data/lib/six-updater-web/app/views/config/show.haml +3 -1
  19. data/lib/six-updater-web/app/views/main/_left.haml +7 -6
  20. data/lib/six-updater-web/app/views/main/_pm.haml +7 -0
  21. data/lib/six-updater-web/app/views/main/_right.haml +34 -18
  22. data/lib/six-updater-web/app/views/main/_servercheck.haml +2 -2
  23. data/lib/six-updater-web/app/views/main/index.haml +4 -1
  24. data/lib/six-updater-web/config/six-updater-web.rb +3 -3
  25. data/lib/six-updater-web/vendor/plugins/active_scaffold/lib/extensions/localize.rb +1 -1
  26. metadata +6 -3
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ require 'rake/testtask'
7
7
 
8
8
  spec = Gem::Specification.new do |s|
9
9
  s.name = 'six-updater-web'
10
- s.version = '0.22.4'
10
+ s.version = '0.23.0'
11
11
  s.has_rdoc = false
12
12
  #s.extra_rdoc_files = ['README', 'LICENSE']
13
13
  s.summary = 'Your summary here'
@@ -16,6 +16,10 @@ class ConfigController < ApplicationController
16
16
 
17
17
  @userconfigs = Dir.chdir(path) { Dir["userconfig/**/*"].reject {|e| File.directory?(e) || File.dirname(e)[/_[0-9]*$/]} }
18
18
  @userconfigs += ["ban.txt"]
19
+ if setting.real_params =~ /-cfg=([\w\.]*)/
20
+ logger.info "Server Config: #{$1}"
21
+ @userconfigs += [$1]
22
+ end
19
23
  cfg = params["options"] && params["options"]["userconfig"] ? params["options"]["userconfig"] : @userconfigs[0]
20
24
  case params["commit"]
21
25
  when "Edit"
@@ -23,16 +27,21 @@ class ConfigController < ApplicationController
23
27
  return
24
28
  end
25
29
  @userconfig = File.exists?(File.join(path, cfg)) ? File.open(File.join(path, cfg)) {|a| Iconv.new("utf-8//IGNORE//TRANSLIT", "utf-8").iconv(a.read + ' ')[0..-2].split("\n").map{|e| e.sub("\r", "")}.join("\n") } : ""
30
+ @setting = setting
26
31
  end
27
32
 
28
33
  def edit
29
- path = Appsetting.find(params["setting"]).real_path.gsub("\\", "/")
34
+ setting = Appsetting.find(params["setting"])
35
+ path = setting.real_path.gsub("\\", "/")
30
36
  @userconfig = File.exists?(File.join(path, params["options"]["userconfig"])) ? File.open(File.join(path, params["options"]["userconfig"])) {|a| Iconv.new("utf-8//IGNORE//TRANSLIT", "utf-8").iconv(a.read + ' ')[0..-2].split("\n").map{|e| e.sub("\r", "")}.join("\n") } : ""
37
+ @setting = setting
31
38
  end
32
39
 
33
40
  def show
34
- path = Appsetting.find(params["setting"]).real_path.gsub("\\", "/")
41
+ setting = Appsetting.find(params["setting"])
42
+ path = setting.real_path.gsub("\\", "/")
35
43
  @userconfig = File.exists?(File.join(path, params["options"]["userconfig"])) ? File.open(File.join(path, params["options"]["userconfig"])) {|a| Iconv.new("utf-8//IGNORE//TRANSLIT", "utf-8").iconv(a.read + ' ')[0..-2].split("\n").map{|e| e.sub("\r", "")}.join("\n") } : ""
44
+ @setting = setting
36
45
  end
37
46
 
38
47
  def update
@@ -1,6 +1,7 @@
1
1
  class MainController < ApplicationController
2
2
  def index
3
- @msg = []
3
+ @msg, @error, @status = [], [], []
4
+ @pm = false
4
5
  @skip, @install, @check, @disabled, @special = [], [], [], [], []
5
6
  preset, queryserver, server, action, setting, reset, ok = nil, nil, nil, nil, nil, false, true
6
7
  grab = false
@@ -27,7 +28,7 @@ class MainController < ApplicationController
27
28
  rescue => e
28
29
  logger.debug "ERROR: #{e.class} #{e.message} #{e.backtrace.join("\n")}"
29
30
  "FAILURE: #{$!}"
30
- end + "<br />"
31
+ end
31
32
  end
32
33
 
33
34
  gs_ok, gs_geo = true, true
@@ -59,7 +60,7 @@ class MainController < ApplicationController
59
60
 
60
61
  when "synchronize"
61
62
  if !ok
62
- @msg << @system_setting.sync + "<br />"
63
+ @msg << @system_setting.sync
63
64
  end
64
65
  grab = true
65
66
 
@@ -84,14 +85,15 @@ class MainController < ApplicationController
84
85
  end
85
86
 
86
87
  if gslist_installed
87
- @msg << "Updating Gamespy...This will take a while, please wait until done!<br />"
88
+ @msg << "Updating Gamespy...This will take a while, please wait until done!"
88
89
  if gs_geo
89
90
  @system_setting.update_gamespy #(true)
90
91
  else
91
92
  @system_setting.update_gamespy_nogeo #(true)
92
93
  end
93
94
  else
94
- @msg << "<b>ERROR: gslist tool is missing!</b><br />Please download from <a href=\"http://six.dev-heaven.net/wagn/Six_Updater_Suite+download+gslist\" target=\"_blank\">Six Updater Wagn</a>, and put in #{SixUpdaterWeb::TOOL_PATH}<br />"
95
+ @error << "<b>ERROR: gslist tool is missing!</b>"
96
+ @error << "Please download from <a href=\"http://six.dev-heaven.net/wagn/Six_Updater_Suite+download+gslist\" target=\"_blank\">Six Updater Wagn</a>, and put in #{SixUpdaterWeb::TOOL_PATH}"
95
97
  end
96
98
 
97
99
  when "prune_gamespy"
@@ -107,11 +109,11 @@ class MainController < ApplicationController
107
109
  if params["really"]
108
110
  if params["really"]["sure"] == "1"
109
111
  Queryserver.purge
110
- @msg << "Purged Gamespy...<br />"
112
+ @msg << "Purged Gamespy..."
111
113
  d = true
112
114
  end
113
115
  end
114
- @msg << "<b>ERROR: Please confirm by checking the checkbox</b><br />" if !d
116
+ @error << "<b>ERROR: Please confirm by checking the checkbox</b>" if !d
115
117
  end
116
118
 
117
119
  begin
@@ -208,20 +210,20 @@ class MainController < ApplicationController
208
210
  end
209
211
 
210
212
  if preset
211
- @msg << "Using preset: <a href='/sixconfigs/edit/#{preset.id}' title='#{preset.mods.map{|e| e.name}.join(", ")}'>#{preset.name}</a>"
213
+ @status << "Preset: <a href='/sixconfigs/edit/#{preset.id}' title='#{preset.mods.map{|e| e.name}.join(", ")}'>#{preset.name}</a>"
212
214
  else
213
- @msg << "No preset selected!"
215
+ @status << "No preset selected!"
214
216
  act(setting, preset, action, server)
215
217
  return
216
218
  end
217
219
 
218
220
  unless params["all"]
219
221
  if server
220
- @msg << "Override server: <a href='/queryservers/edit/#{queryserver.id}' title='#{queryserver.mods.map{|e| e.name}.join(", ")}'>#{queryserver.to_label}</a>"
222
+ @status << "Override server: <a href='/queryservers/edit/#{queryserver.id}' title='#{queryserver.country}, #{queryserver.ping}ms .Mods: #{queryserver.mods.map{|e| e.name}.join(", ")}'>#{queryserver.to_label}</a>"
221
223
  else
222
224
  if preset.get_server
223
225
  server = preset.get_server
224
- @msg << "Preset server: <a href='/servers/edit/#{server.id}' title='#{server.mods.map{|e| e.name}.join(", ")}'>#{server.to_label}"
226
+ @status << "Preset server: <a href='/servers/edit/#{server.id}' title='#{server.mods.map{|e| e.name}.join(", ")}'>#{server.to_label}"
225
227
  end
226
228
  end
227
229
  end
@@ -229,22 +231,22 @@ class MainController < ApplicationController
229
231
  if setting
230
232
  setting.beta = @beta unless @beta.nil?
231
233
  setting.server = @server_bool unless @server_bool.nil?
232
- @msg << "Override settings profile: <a href='/appsettings/edit/#{setting.id}' title='#{setting.class.short}: #{setting.real_exe} #{setting.real_params} (#{setting.real_path})'>#{setting.label}</a>"
234
+ @status << "Override settings profile: <a href='/appsettings/edit/#{setting.id}' title='#{setting.class.short}: #{setting.real_exe} #{setting.real_params} (#{setting.real_path})'>#{setting.label}</a>"
233
235
  else
234
236
  if preset.appsetting
235
237
  setting = preset.appsetting
236
238
  setting.beta = @beta unless @beta.nil?
237
239
  setting.server = @server_bool unless @server_bool.nil?
238
- @msg << "Preset settings profile: <a href='/appsettings/edit/#{setting.id}' title='#{setting.class.short}: #{setting.real_exe} #{setting.real_params} (#{setting.real_path})'>#{setting.label}</a>"
240
+ @status << "Preset settings profile: <a href='/appsettings/edit/#{setting.id}' title='#{setting.class.short}: #{setting.real_exe} #{setting.real_params} (#{setting.real_path})'>#{setting.label}</a>"
239
241
  end
240
242
  end
241
243
 
242
244
  if action
243
- @msg << "Override action: #{action.name}"
245
+ @status << "Override action: <a href='/actions/edit/#{action.id}' title='#{action.tasks.join(",") if action.tasks.is_a?(Array)}'>#{action.name}</a>"
244
246
  else
245
247
  if preset.action
246
248
  action = preset.action
247
- @msg << "Preset action: #{action.name}"
249
+ @status << "Preset action: #{action.name}"
248
250
  end
249
251
  end
250
252
 
@@ -252,24 +254,24 @@ class MainController < ApplicationController
252
254
  setting = Arma2Appsetting.new(:beta => @beta, :server => @server_bool)
253
255
  end
254
256
 
255
- @msg << "Resetting skip status." if reset
257
+ @msg << "Skip status reset!" if reset
256
258
  if setting.real_path
257
259
  unless File.directory?(setting.real_path)
258
- @msg << "<br /><b>WARNING:</b> ArmA folder not set or non existent: #{setting.real_path}"
260
+ @error << "<b>WARNING:</b> ArmA folder not set or non existent: #{setting.real_path}"
259
261
  end
260
262
  else
261
- @msg << "<br /><b>WARNING:</b> ArmA folder not set or non existent: #{setting.real_path}"
263
+ @error << "<b>WARNING:</b> ArmA folder not set or non existent: #{setting.real_path}"
262
264
  end
263
265
 
264
266
  if setting.modpath
265
267
  unless File.directory?(setting.real_modpath)
266
- @msg << "<br /><b>WARNING:</b> Mod installation folder not set or non existent: #{setting.real_modpath}"
268
+ @error << "<b>WARNING:</b> Mod installation folder not set or non existent: #{setting.real_modpath}"
267
269
  end
268
270
  end
269
271
 
270
272
  procs = setting.processes
271
273
  unless procs.empty?
272
- @msg << "<br /><b>WARNING:</b> There seem to be open arma processes: #{setting.real_exe}<br />Pids: #{procs}"
274
+ @error << "<b>WARNING:</b> There seem to be open arma processes: #{setting.real_exe} - Pids: #{procs}"
273
275
  end
274
276
 
275
277
  preset.all_mods(server, setting).each do |mod|
@@ -280,8 +282,10 @@ class MainController < ApplicationController
280
282
  mod.update_skip if @autoskip
281
283
  end
282
284
  mod.save unless mod.new_record?
283
- mod.disabled = true if !mod.version_match?(setting)
284
- if mod.special
285
+
286
+ mod.disabled = true if (!mod.exists?(setting) || mod.installed? || mod.class.appset::SPECIFIC) && !mod.version_match?(setting)
287
+ #mod.skip = true if (mod.exists?(setting) && !mod.has_rsync?(setting))
288
+ if mod.special
285
289
  @special << mod
286
290
  next
287
291
  end
@@ -322,13 +326,17 @@ class MainController < ApplicationController
322
326
  return
323
327
 
324
328
  when "server mod check"
325
- @server_check = true
326
- @signatures = queryserver.signatures
327
- @allowed, @disallowed, @garbage = *setting.allowance(@signatures)
329
+ if queryserver
330
+ @server_check = true
331
+ @signatures = queryserver.signatures
332
+ @allowed, @disallowed, @garbage = *setting.allowance(@signatures)
333
+ else
334
+ @error << "No server selected!"
335
+ end
328
336
 
329
337
  when "save"
330
338
  preset.output_yml(setting, server)
331
- @msg << "<br />Saved six-updater.yml!"
339
+ @msg << "Saved six-updater.yml!"
332
340
 
333
341
  when "execute"
334
342
  preset.execute(action, setting, server, @autoskip, @inweb)
@@ -339,11 +347,13 @@ class MainController < ApplicationController
339
347
  return
340
348
  end
341
349
 
342
- @msg << "<br />Saved six-updater.yml!<br /><b>A window should open displaying the update process progress</b>"
350
+ @msg << "Saved six-updater.yml!"
351
+ @msg << "<b>A window should open displaying the update process progress</b>"
343
352
 
344
- when "stop game"
345
- setting.processes.each { |entry| @msg << "Process to be killed: #{entry}" }
346
- setting.kill!
353
+ when "app manager"
354
+ #setting.processes.each { |entry| @msg << "Process to be killed: #{entry}" }
355
+ #setting.kill!
356
+ @pm = true
347
357
 
348
358
  when "read mods"
349
359
  Mod.read_modfolders(setting)
@@ -356,6 +366,19 @@ class MainController < ApplicationController
356
366
  act(setting, preset, action, server)
357
367
  end
358
368
 
369
+ def pm
370
+ @setting = Appsetting.find(params[:setting])
371
+ @msg = []
372
+ if params[:kill_all]
373
+ @setting.processes.each { |entry| @msg << "Process to be killed: #{entry}" }
374
+ @setting.kill!
375
+ end
376
+ if params[:kill]
377
+ procs = params[:kill].split(",")
378
+ procs.each { |entry| @msg << "Process to be killed: #{entry}"; Six::Appmanager.kill(entry) }
379
+ end
380
+ end
381
+
359
382
  def fetch
360
383
  @system_setting = SystemSetting.singleton
361
384
  setting = nil
@@ -7,12 +7,12 @@ class QueryserversController < ApplicationController
7
7
 
8
8
  config.columns = [:name, :ip, :port, :numplayers, :ping, :country, :gametype, :mission, :mapname, :mods, :saved_password, :updated_at,
9
9
  :password, :sv_battleye, :verifysignatures, :dedicated, :favorite, :difficulty, :gamestate, :gamemode,
10
- :language, :gamever, :platform, :exec2, :mod, :signatures, :players]
10
+ :language, :gamever, :platform, :exec2, :mod, :signatures, :players, :export_to_preset]
11
11
  config.list.columns.exclude :saved_password, :ip, :port, :gamestate, :language, :difficulty, :gamemode, :mapname, :platform,
12
- :sv_battleye, :players, :signatures, :mod
12
+ :sv_battleye, :players, :signatures, :mod, :export_to_preset
13
13
  config.show.columns.exclude :mission # :players # Encoding problem when both are displayed, with russian text?
14
- config.update.columns.exclude :exec2
15
- config.create.columns.exclude :exec2
14
+ config.update.columns.exclude :exec2, :export_to_preset
15
+ config.create.columns.exclude :exec2, :export_to_preset
16
16
  config.list.sorting = {:numplayers => :desc} #{ :name => :asc }
17
17
 
18
18
  config.columns[:dedicated].label = "Ded"
@@ -34,6 +34,12 @@ class QueryserversController < ApplicationController
34
34
  end
35
35
  end
36
36
 
37
+ def export
38
+ record = Queryserver.find(params[:id])
39
+ cfg = record.export_to_preset
40
+ redirect_to "/sixconfigs/edit/#{cfg.id}"
41
+ end
42
+
37
43
  def latest
38
44
  @record = Queryserver.find(params[:id])
39
45
  @record.latest
@@ -15,6 +15,6 @@ module ModsHelper
15
15
  end
16
16
 
17
17
  def type_form_column(record, t, options)
18
- collection_select(:record, :type, ["Arma2Mod", "Arma2StMod", "Arma2OaMod", "Arma2OaStMod", "Arma2OaCoMod"], :to_s, :to_s, {:name => options[:name]})
18
+ collection_select(:record, :type, ["Arma2Mod", "Arma2CaMod", "Arma2StMod", "Arma2OaMod", "Arma2OaStMod", "Arma2OaCoMod"], :to_s, :to_s, {:name => options[:name]})
19
19
  end
20
20
  end
@@ -5,4 +5,8 @@ module QueryserversHelper
5
5
  def name_column(record, b = nil)
6
6
  auto_link record.name if record.name
7
7
  end
8
+
9
+ def export_to_preset_column(record, b = nil)
10
+ link_to "Export to new Preset", "/queryservers/export/#{record.id}"
11
+ end
8
12
  end
@@ -19,6 +19,7 @@ class Appsetting < ActiveRecord::Base
19
19
  DEFAULT_PARAMS = "-showScriptErrors -noSplash -noFilePatching"
20
20
  DEFAULT_MODS_PARAM = "-mod=" # TODO
21
21
  DEFAULT_BETA_MODS = ["beta"]
22
+ STATIC_TYPES = []
22
23
 
23
24
  # TODO: Auto enumurate from model properties?
24
25
  # folders: expansion, common, addons
@@ -70,6 +71,8 @@ class Appsetting < ActiveRecord::Base
70
71
  t << e
71
72
  e = e.superclass
72
73
  end
74
+ t += self::STATIC_TYPES
75
+ t.uniq!
73
76
  t
74
77
  end
75
78
 
@@ -0,0 +1,8 @@
1
+ class Arma2CaAppsetting < Arma2Appsetting
2
+ FRIENDLY_NAME = "ArmA 2 (CA)"
3
+ #SPECIFIC = true
4
+ #REGKEYS = {"Arma2" => ['SOFTWARE\\Bohemia Interactive Studio\\ArmA 2', 'MAIN']}
5
+
6
+ #FAMILY = Hash.new
7
+ #FAMILY["Arma2"] = [["arma2.exe", "arma2server.exe"], {"Arma2St" => []}]
8
+ end
@@ -0,0 +1,3 @@
1
+ class Arma2CaMod < Arma2Mod
2
+ #Code here
3
+ end
@@ -1,3 +1,3 @@
1
1
  class Arma2Mod < Mod
2
2
  #Code here
3
- end
3
+ end
@@ -5,5 +5,5 @@ class Arma2OaCoAppsetting < Arma2OaAppsetting
5
5
  # TODO: Evaluate
6
6
  # Perhaps look at adding a boolean: specific, so when it is enabled, non of the inherited editions can be used?
7
7
  # Since Arma2 standalone addons should work on OaCo, yet you would loose the specific 'arma2standalone only' option
8
-
8
+ STATIC_TYPES = [Arma2CaAppsetting]
9
9
  end
@@ -1,4 +1,4 @@
1
- class Arma2StAppsetting < Arma2Appsetting
1
+ class Arma2StAppsetting < Arma2CaAppsetting
2
2
  FRIENDLY_NAME = "ArmA 2 (Standalone)"
3
3
  SPECIFIC = true
4
4
  REGKEYS = {"Arma2" => ['SOFTWARE\\Bohemia Interactive Studio\\ArmA 2', 'MAIN']}
@@ -1,3 +1,3 @@
1
- class Arma2StMod < Arma2Mod
1
+ class Arma2StMod < Arma2CaMod
2
2
  #Code here
3
- end
3
+ end
@@ -23,11 +23,15 @@ class Mod < ActiveRecord::Base
23
23
  mods.uniq
24
24
  end
25
25
 
26
+ def self.appset
27
+ Kernel.const_get(self.short+"Appsetting")
28
+ end
29
+
26
30
 
27
31
  # arma2 mod: works for all subclasses
28
32
  # armaoa mod; works for arma2-oa-st, arma2-oa-
29
33
  def self.label
30
- Kernel.const_get(self.short+"Appsetting").label
34
+ self.appset.label
31
35
  end
32
36
 
33
37
  def self.short
@@ -37,6 +41,7 @@ class Mod < ActiveRecord::Base
37
41
  def self.types
38
42
  return [Arma2Mod] if self.class == Appsetting
39
43
  e = self
44
+ types = []
40
45
  unless e.nil? || [Mod, ActiveRecord::Base].include?(e)
41
46
  types << e
42
47
  e = e.class
@@ -73,6 +78,11 @@ class Mod < ActiveRecord::Base
73
78
  File.exists?(File.join(setting.real_modpath, self.real_name))
74
79
  end
75
80
 
81
+ def has_rsync?(setting)
82
+ return false unless setting.real_modpath && self.real_name
83
+ File.exists?(File.join(setting.real_modpath, self.real_name, ".rsync"))
84
+ end
85
+
76
86
  def remote
77
87
 
78
88
  end
@@ -12,6 +12,17 @@ class Queryserver < ActiveRecord::Base
12
12
  has_and_belongs_to_many :mods
13
13
  has_many :sixconfigs
14
14
 
15
+
16
+ def export
17
+
18
+ end
19
+
20
+ def export_to_preset
21
+ cfg = Sixconfig.new(:name => "CUST - #{self.name} clone", :mods => self.mods)
22
+ cfg.save
23
+ cfg
24
+ end
25
+
15
26
  def address
16
27
  [self.ip, self.port].join(":")
17
28
  end
@@ -1,6 +1,8 @@
1
- = link_to "Back to index", "/config"
1
+ = link_to @setting.name, "/appsettings/edit/#{@setting.id}", {:title => "#{@setting.real_exe} (#{@setting.real_path})"}
2
2
  %br
3
- - form_tag("/config/update", {:method => :get}) do
3
+ = link_to "Back to index", "/config/?setting=#{params["setting"]}"
4
+ %br
5
+ - form_tag("/config/update") do
4
6
  %input{:type => "hidden", :name => "options[userconfig]", :value => params["options"]["userconfig"]}
5
7
  %input{:type => "hidden", :name => "setting", :value => params["setting"]}
6
8
  = submit_tag "Reload"
@@ -1,4 +1,5 @@
1
- - form_tag({}, {:method => :get}) do
1
+ = link_to @setting.name, "/appsettings/edit/#{@setting.id}", {:title => "#{@setting.real_exe} (#{@setting.real_path})"}
2
+ - form_tag do
2
3
  %input{:type => "hidden", :name => "setting", :value => params["setting"]}
3
4
  = select( "options", "userconfig", @userconfigs, {:selected => "#{params["options"]["userconfig"] if params["options"]}"})
4
5
  = submit_tag "Change"
@@ -1,4 +1,6 @@
1
- = link_to "Back to index", "/config"
1
+ = link_to @setting.name, "/appsettings/edit/#{@setting.id}", {:title => "#{@setting.real_exe} (#{@setting.real_path})"}
2
+ %br
3
+ = link_to "Back to index", "/config/?setting=#{params["setting"]}"
2
4
  %br
3
5
  = link_to "Edit", "/config/edit/?setting=#{params["setting"]}&options[userconfig]=#{params["options"]["userconfig"]}"
4
6
  %br
@@ -1,7 +1,6 @@
1
1
  %table{ :border => 1, :width => "100%"}
2
2
  %tr
3
3
  %td
4
- = link_to "Follow with Google Wave", "/main/wave"
5
4
  - form_tag :action => :index do
6
5
  %p
7
6
  %label{ :for => "sixconfigs" }
@@ -46,20 +45,21 @@
46
45
  %a{:title => "Display updater output into ajax-refreshed web-page (Handy for remote-management)" }
47
46
  Remote
48
47
  = check_box :system, :inweb, {:checked => @inweb}
48
+ %strong Actions
49
49
  %p
50
50
  = submit_tag "Execute"
51
51
  &nbsp;
52
52
  = submit_tag "Save"
53
53
  &nbsp;
54
- = submit_tag "Stop Game"
54
+ = submit_tag "App Manager"
55
55
  &nbsp;
56
- = submit_tag "Reset Skip Status"
56
+ = submit_tag "Edit Userconfig"
57
57
  %p
58
+ = submit_tag "Reset Skip Status"
59
+ &nbsp;
58
60
  = submit_tag "Show status"
59
61
  &nbsp;
60
62
  = submit_tag "Server Mod check"
61
- &nbsp;
62
- = submit_tag "Edit Userconfig"
63
63
  %strong Logs
64
64
  - form_tag :action => :fetch do
65
65
  %p
@@ -67,4 +67,5 @@
67
67
  &nbsp;
68
68
  = submit_tag "Updater"
69
69
  &nbsp;
70
- = submit_tag "Updater-Web"
70
+ = submit_tag "Updater-Web"
71
+ = link_to "Follow with Google Wave", "/main/wave"
@@ -0,0 +1,7 @@
1
+ Process Manager
2
+ %br
3
+ = link_to "Kill all", "/main/pm/?setting=#{@setting.id}&kill_all=true"
4
+ - @setting.processes.each do |p|
5
+ = p
6
+ = link_to "Kill", "/main/pm/?setting=#{@setting.id}&kill=#{p}"
7
+ %br
@@ -2,38 +2,54 @@
2
2
  %tr
3
3
  %td
4
4
  Edition: #{link_to @current_setting.nice_edition, nil, :title => "Supports mods for: #{@current_setting.found_types.map{|e| e.label}.join(", ")}" }
5
+ - if @status.size > 0
6
+ %br
7
+ = @status.join("<br />")
8
+ %br
9
+ Last sync #{@system_setting.synchronized_at ? time_ago_in_words(@system_setting.synchronized_at) + " ago" : "never"}.
10
+ Gamespy #{@system_setting.gamespied_at ? time_ago_in_words(@system_setting.gamespied_at) + " ago" : "never"}.
5
11
  %br
6
- Last sync #{@system_setting.synchronized_at ? time_ago_in_words(@system_setting.synchronized_at) + " ago" : "never"}
7
- Gamespy #{@system_setting.gamespied_at ? time_ago_in_words(@system_setting.gamespied_at) + " ago" : "never"}
8
- %br
9
- %br
10
- = @msg.join("<br />")
11
- %br
12
- Autoskip: #{@autoskip ? "Enabled" : "Disaabled"}.
13
- %br
12
+ - unless params[:commit] == "none"
13
+ %br
14
+ #{params[:commit]}
15
+ - if @msg.size > 0
16
+ %br
17
+ %div{:class => "green"}
18
+ %ul
19
+ - @msg.each do |m|
20
+ %li= m
21
+ - if @error.size > 0
22
+ %br
23
+ %div{:class => "red"}
24
+ %ul
25
+ - @error.each do |e|
26
+ %li= e
27
+ %table{ :border => 1, :cellpadding => "5", :width => "100%"}
28
+ %tr
29
+ %td
14
30
  - if (@check.size + @skip.size + @install.size + @disabled.size + @special.size) > 0
15
31
  - if @check.size > 0
16
- %br
17
- To be checked:
32
+ %b To be checked
18
33
  %br
19
34
  = render :partial => "check", :locals => {:mods => @check}
20
- - if @skip.size > 0
21
35
  %br
22
- To be skipped:
36
+ - if @skip.size > 0
37
+ %b To be skipped
23
38
  %br
24
39
  = render :partial => "check", :locals => {:mods => @skip}
25
- - if @install.size > 0
26
40
  %br
27
- Not installed:
41
+ - if @install.size > 0
42
+ %b Not installed
28
43
  %br
29
44
  = render :partial => "check", :locals => {:mods => @install}
30
- - if @special.size > 0
31
45
  %br
32
- Special (Hover over modname to see why):
46
+ - if @special.size > 0
47
+ %b Special (Hover over modname to see why)
33
48
  %br
34
49
  = render :partial => "check", :locals => {:mods => @special}
35
- - if @disabled.size > 0
36
50
  %br
37
- Disabled:
51
+ - if @disabled.size > 0
52
+ %b Disabled
38
53
  %br
39
54
  = render :partial => "check", :locals => {:mods => @disabled}
55
+ %br
@@ -8,12 +8,12 @@ Mods: #{@queryserver.mod}
8
8
  %br
9
9
  Allowed:
10
10
  %br
11
- = @allowed
11
+ %div{:class => "green"}= @allowed
12
12
  %br
13
13
  %br
14
14
  Disallowed:
15
15
  %br
16
- = @disallowed
16
+ %div{:class => "red"}= @disallowed
17
17
  %br
18
18
  %br
19
19
  Garbage:
@@ -3,4 +3,7 @@
3
3
  %td{:valign => "top", :width => "40%"}
4
4
  = render :partial => "main/left"
5
5
  %td{:valign => "top", :width => "60%"}
6
- = render :partial => @server_check ? "main/servercheck" : "main/right"
6
+ - if @pm
7
+ = render :partial => "main/pm"
8
+ - else
9
+ = render :partial => @server_check ? "main/servercheck" : "main/right"
@@ -22,7 +22,7 @@ case RUBY_VERSION
22
22
  end
23
23
 
24
24
  module SixUpdaterWeb
25
- VERSION = "0.22.4"
25
+ VERSION = "0.23.0"
26
26
  COMPONENT = "six-updater-web"
27
27
 
28
28
  DEFAULT_IP = "127.0.0.1" unless defined?(DEFAULT_IP)
@@ -134,9 +134,9 @@ module SixUpdaterWeb
134
134
 
135
135
  module_function
136
136
 
137
- def update_gamespy
137
+ def update_gamespy(nogeo = nil)
138
138
  puts "Fetching server info..."
139
- geo = ENV['NOGEO'] ? "" : nil
139
+ geo = ENV['NOGEO'] || nogeo ? "" : nil
140
140
  #geo = ""
141
141
  puts "Pings and Countries: #{geo.nil?}"
142
142
  puts ""
@@ -4,7 +4,7 @@ class Object
4
4
  # options[:default] ||= key.to_s.titleize unless ActiveScaffold::Config::Core.show_missing_translations
5
5
  # options[:default] = nil if ActiveScaffold::Config::Core.show_missing_translations
6
6
  # text = I18n.translate "#{key}", {:scope => [:active_scaffold]}.merge(options)
7
- text = I18n.translate "#{key}", {:scope => [:active_scaffold], :default => key.is_a?(String) ? key : key.to_s.titleize}.merge(options)
7
+ text = I18n.translate "%{key}", {:scope => [:active_scaffold], :default => key.is_a?(String) ? key : key.to_s.titleize}.merge(options)
8
8
  end
9
9
  text
10
10
  end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 22
8
- - 4
9
- version: 0.22.4
7
+ - 23
8
+ - 0
9
+ version: 0.23.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Sickboy
@@ -158,6 +158,8 @@ files:
158
158
  - lib/six-updater-web/app/models/action.rb
159
159
  - lib/six-updater-web/app/models/appsetting.rb
160
160
  - lib/six-updater-web/app/models/arma2_appsetting.rb
161
+ - lib/six-updater-web/app/models/arma2_ca_appsetting.rb
162
+ - lib/six-updater-web/app/models/arma2_ca_mod.rb
161
163
  - lib/six-updater-web/app/models/arma2_mod.rb
162
164
  - lib/six-updater-web/app/models/arma2_oa_appsetting.rb
163
165
  - lib/six-updater-web/app/models/arma2_oa_co_appsetting.rb
@@ -198,6 +200,7 @@ files:
198
200
  - lib/six-updater-web/app/views/main/wave.haml
199
201
  - lib/six-updater-web/app/views/main/_check.haml
200
202
  - lib/six-updater-web/app/views/main/_left.haml
203
+ - lib/six-updater-web/app/views/main/_pm.haml
201
204
  - lib/six-updater-web/app/views/main/_right.haml
202
205
  - lib/six-updater-web/app/views/main/_servercheck.haml
203
206
  - lib/six-updater-web/app/views/main/_test.haml