Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/admin/broadcast_messages_controller.rb')
-rw-r--r--app/controllers/admin/broadcast_messages_controller.rb64
1 files changed, 47 insertions, 17 deletions
diff --git a/app/controllers/admin/broadcast_messages_controller.rb b/app/controllers/admin/broadcast_messages_controller.rb
index edd85414696..bdf0c6aedb9 100644
--- a/app/controllers/admin/broadcast_messages_controller.rb
+++ b/app/controllers/admin/broadcast_messages_controller.rb
@@ -3,39 +3,60 @@
class Admin::BroadcastMessagesController < Admin::ApplicationController
include BroadcastMessagesHelper
- before_action :finder, only: [:edit, :update, :destroy]
+ before_action :find_broadcast_message, only: [:edit, :update, :destroy]
+ before_action :find_broadcast_messages, only: [:index, :create]
+ before_action :push_features, only: [:index, :edit]
feature_category :onboarding
urgency :low
- # rubocop: disable CodeReuse/ActiveRecord
def index
- push_frontend_feature_flag(:vue_broadcast_messages, current_user)
- push_frontend_feature_flag(:role_targeted_broadcast_messages, current_user)
-
- @broadcast_messages = BroadcastMessage.order(ends_at: :desc).page(params[:page])
- @broadcast_message = BroadcastMessage.new
+ @broadcast_message = BroadcastMessage.new
end
- # rubocop: enable CodeReuse/ActiveRecord
def edit
end
def create
@broadcast_message = BroadcastMessage.new(broadcast_message_params)
+ success = @broadcast_message.save
- if @broadcast_message.save
- redirect_to admin_broadcast_messages_path, notice: _('Broadcast Message was successfully created.')
- else
- render :index
+ respond_to do |format|
+ format.json do
+ if success
+ render json: @broadcast_message, status: :ok
+ else
+ render json: { errors: @broadcast_message.errors.full_messages }, status: :bad_request
+ end
+ end
+ format.html do
+ if success
+ redirect_to admin_broadcast_messages_path, notice: _('Broadcast Message was successfully created.')
+ else
+ render :index
+ end
+ end
end
end
def update
- if @broadcast_message.update(broadcast_message_params)
- redirect_to admin_broadcast_messages_path, notice: _('Broadcast Message was successfully updated.')
- else
- render :edit
+ success = @broadcast_message.update(broadcast_message_params)
+
+ respond_to do |format|
+ format.json do
+ if success
+ render json: @broadcast_message, status: :ok
+ else
+ render json: { errors: @broadcast_message.errors.full_messages }, status: :bad_request
+ end
+ end
+ format.html do
+ if success
+ redirect_to admin_broadcast_messages_path, notice: _('Broadcast Message was successfully updated.')
+ else
+ render :edit
+ end
+ end
end
end
@@ -55,10 +76,14 @@ class Admin::BroadcastMessagesController < Admin::ApplicationController
protected
- def finder
+ def find_broadcast_message
@broadcast_message = BroadcastMessage.find(params[:id])
end
+ def find_broadcast_messages
+ @broadcast_messages = BroadcastMessage.order(ends_at: :desc).page(params[:page]) # rubocop: disable CodeReuse/ActiveRecord
+ end
+
def broadcast_message_params
params.require(:broadcast_message)
.permit(%i(
@@ -71,4 +96,9 @@ class Admin::BroadcastMessagesController < Admin::ApplicationController
dismissable
), target_access_levels: []).reverse_merge!(target_access_levels: [])
end
+
+ def push_features
+ push_frontend_feature_flag(:vue_broadcast_messages, current_user)
+ push_frontend_feature_flag(:role_targeted_broadcast_messages, current_user)
+ end
end