Add extra nav for settings & clean header buttons
This commit is contained in:
@@ -3,7 +3,7 @@ class ContestsController < ApplicationController
|
||||
include ContestantsConcern
|
||||
|
||||
before_action :set_contest, only: %i[ destroy show ]
|
||||
before_action :set_settings_contest, only: %i[ settings_general_edit settings_general_update settings_offline_edit settings_offline_update settings_categories_edit ]
|
||||
before_action :set_settings_contest, only: %i[ settings_general_edit settings_general_update settings_public_edit settings_public_update settings_onsite_edit settings_onsite_update settings_online_edit settings_online_update settings_categories_edit ]
|
||||
before_action :offline_setup, only: %i[ offline_new offline_create offline_edit offline_update offline_completed ]
|
||||
skip_before_action :require_authentication, only: %i[ scoreboard offline_new offline_create offline_edit offline_update offline_completed ]
|
||||
|
||||
@@ -24,7 +24,15 @@ class ContestsController < ApplicationController
|
||||
authorize @contest
|
||||
end
|
||||
|
||||
def settings_offline_edit
|
||||
def settings_public_edit
|
||||
authorize @contest
|
||||
end
|
||||
|
||||
def settings_onsite_edit
|
||||
authorize @contest
|
||||
end
|
||||
|
||||
def settings_online_edit
|
||||
authorize @contest
|
||||
end
|
||||
|
||||
@@ -42,13 +50,33 @@ class ContestsController < ApplicationController
|
||||
end
|
||||
end
|
||||
|
||||
def settings_offline_update
|
||||
def settings_public_update
|
||||
authorize @contest
|
||||
|
||||
if @contest.update(settings_offline_params)
|
||||
redirect_to "/contests/#{@contest.id}/settings/offline", notice: t("contests.edit.notice")
|
||||
if @contest.update(settings_public_params)
|
||||
redirect_to "/contests/#{@contest.id}/settings/public", notice: t("contests.edit.notice")
|
||||
else
|
||||
render :settings_offline_edit, status: :unprocessable_entity
|
||||
render :settings_public_edit, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def settings_onsite_update
|
||||
authorize @contest
|
||||
|
||||
if @contest.update(settings_onsite_params)
|
||||
redirect_to "/contests/#{@contest.id}/settings/onsite", notice: t("contests.edit.notice")
|
||||
else
|
||||
render :settings_onsite_edit, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def settings_online_update
|
||||
authorize @contest
|
||||
|
||||
if @contest.update(settings_online_params)
|
||||
redirect_to "/contests/#{@contest.id}/settings/online", notice: t("contests.edit.notice")
|
||||
else
|
||||
render :settings_online_edit, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
@@ -210,10 +238,18 @@ class ContestsController < ApplicationController
|
||||
end
|
||||
|
||||
def settings_general_params
|
||||
params.expect(contest: [ :lang, :name, :duration, :public, :ranking_mode, :team, :allow_registration, :code ])
|
||||
params.expect(contest: [ :lang, :name, :duration, :team, :allow_registration ])
|
||||
end
|
||||
|
||||
def settings_offline_params
|
||||
def settings_public_params
|
||||
params.expect(contest: [ :public, :ranking_mode ])
|
||||
end
|
||||
|
||||
def settings_onsite_params
|
||||
params.expect(contest: [ :code ])
|
||||
end
|
||||
|
||||
def settings_online_params
|
||||
params.expect(contest: [ :offline_form ])
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user