Admin interface #6
|
@ -0,0 +1,32 @@
|
||||||
|
.record-table {
|
||||||
|
@extend .table;
|
||||||
|
|
||||||
|
td {
|
||||||
|
vertical-align: middle !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actions {
|
||||||
|
@extend .pull-right;
|
||||||
|
@extend .btn-group;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
a {
|
||||||
|
@extend .btn;
|
||||||
|
@extend .btn-default;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle {
|
||||||
|
a {
|
||||||
|
@extend .btn;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.checked {
|
||||||
|
@extend .btn-success;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.unchecked {
|
||||||
|
@extend .btn-primary;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
//= require_directory .
|
|
||||||
|
|
||||||
@import "bootstrap-sprockets";
|
@import "bootstrap-sprockets";
|
||||||
@import "bootswatch/simplex/variables";
|
@import "bootswatch/simplex/variables";
|
||||||
@import "bootstrap";
|
@import "bootstrap";
|
||||||
@import "bootswatch/simplex/bootswatch";
|
@import "bootswatch/simplex/bootswatch";
|
||||||
|
@import "navbar";
|
||||||
|
@import "record_table";
|
|
@ -0,0 +1,20 @@
|
||||||
|
module Management
|
||||||
|
class UsersController < ManagementController
|
||||||
|
before_action :assign_user, only: [:toggle_admin]
|
||||||
|
|
||||||
|
def index
|
||||||
|
@users = User.all
|
||||||
|
end
|
||||||
|
|
||||||
|
def toggle_admin
|
||||||
|
@user.admin = !@user.admin
|
||||||
|
@user.save
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def assign_user
|
||||||
|
@user = User.find params[:id]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -21,7 +21,7 @@ html
|
||||||
.navbar-collapse.collapse
|
.navbar-collapse.collapse
|
||||||
ul.nav.navbar-nav
|
ul.nav.navbar-nav
|
||||||
li.active = link_to 'Home', root_path
|
li.active = link_to 'Home', root_path
|
||||||
li = link_to 'Users', root_path
|
li = link_to 'Users', management_users_path
|
||||||
div.container
|
div.container
|
||||||
== yield
|
== yield
|
||||||
= javascript_include_tag "management/application"
|
= javascript_include_tag "management/application"
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
tr id="user-#{user.id}"
|
||||||
|
td = user.email
|
||||||
|
td = user.speaker_profile.try(:first_name) or '-'
|
||||||
|
td = user.speaker_profile.try(:last_name) or '-'
|
||||||
|
td
|
||||||
|
- if user.admin?
|
||||||
|
span.toggle
|
||||||
|
= link_to glyph(:check), toggle_admin_management_user_path(user), remote: true, method: :post, data: {confirm: t(:are_you_sure)}, class: 'checked'
|
||||||
|
- else
|
||||||
|
span.toggle
|
||||||
|
= link_to glyph(:unchecked), toggle_admin_management_user_path(user), remote: true, method: :post, data: {confirm: t(:are_you_sure)}, class: 'unchecked'
|
||||||
|
td
|
||||||
|
.actions
|
||||||
|
= link_to management_user_path(user), title: t(:edit)
|
||||||
|
= glyph(:share)
|
||||||
|
= link_to edit_management_user_path(user), title: t(:edit)
|
||||||
|
= glyph(:edit)
|
|
@ -0,0 +1,14 @@
|
||||||
|
.row
|
||||||
|
.panel.panel-primary
|
||||||
|
.panel-heading
|
||||||
|
h3.panel-title = User.model_name.human(count: 2)
|
||||||
|
table.record-table
|
||||||
|
thead
|
||||||
|
tr
|
||||||
|
th = User.human_attribute_name(:email)
|
||||||
|
th = SpeakerProfile.human_attribute_name(:first_name)
|
||||||
|
th = SpeakerProfile.human_attribute_name(:last_name)
|
||||||
|
th = SpeakerProfile.human_attribute_name(:admin)
|
||||||
|
th
|
||||||
|
tbody
|
||||||
|
= render @users
|
|
@ -0,0 +1 @@
|
||||||
|
$('#user-<%= @user.id %>').replaceWith('<%= j render @user %>');
|
|
@ -0,0 +1,2 @@
|
||||||
|
bg:
|
||||||
|
are_you_sure: Сигурен ли си?
|
|
@ -0,0 +1,2 @@
|
||||||
|
en:
|
||||||
|
are_you_sure: Are you sure?
|
|
@ -4,8 +4,13 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
devise_for :users, controllers: {registrations: 'registrations', sessions: 'sessions'}
|
devise_for :users, controllers: {registrations: 'registrations', sessions: 'sessions'}
|
||||||
|
|
||||||
scope :management, module: :management do
|
namespace :management do
|
||||||
get '/', to: 'home#index'
|
get '/', to: 'home#index'
|
||||||
|
resources :users do
|
||||||
|
member do
|
||||||
|
post 'toggle_admin'
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
root 'home#index'
|
root 'home#index'
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe Management::UsersController, :type => :controller do
|
||||||
|
|
||||||
|
describe "GET index" do
|
||||||
|
it "returns http success" do
|
||||||
|
get :index
|
||||||
|
expect(response).to be_success
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
Loading…
Reference in New Issue