Description:
user admin
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r875:567f1ebe063b - - 8 files changed: 80 inserted, 78 deleted

@@ -11,6 +11,7
11 @users = User.all
11 @users = User.all
12 @hidden_columns = ['hashed_password', 'salt', 'created_at', 'updated_at']
12 @hidden_columns = ['hashed_password', 'salt', 'created_at', 'updated_at']
13 @contests = Contest.enabled
13 @contests = Contest.enabled
14 + @user = User.new
14 end
15 end
15
16
16 def active
17 def active
@@ -209,14 +209,4
209 BOOTSTRAP_FLASH_MSG.fetch(flash_type.to_sym, flash_type.to_s)
209 BOOTSTRAP_FLASH_MSG.fetch(flash_type.to_sym, flash_type.to_s)
210 end
210 end
211
211
212 - def flash_messages
213 - flash.each do |msg_type, message|
214 - concat(content_tag(:div, message, class: "alert #{bootstrap_class_for(msg_type)} fade in") do
215 - concat content_tag(:button, 'x', class: "close", data: { dismiss: 'alert' })
216 - concat message
217 - end)
218 - end
219 - nil
220 - end
221 -
222 end
212 end
@@ -49,5 +49,8
49 import 'custom'
49 import 'custom'
50
50
51
51
52 + //trigger import map ready
52 console.log('application.js ready')
53 console.log('application.js ready')
53 -
54 + window.importmapScriptsLoaded = true
55 + const import_map_loaded = new CustomEvent('import-map-loaded', { });
56 + document.dispatchEvent(import_map_loaded);
@@ -30,5 +30,8
30
30
31 /= content_tag(:p,flash[:notice],class: 'alert alert-success') if flash[:notice]!=nil
31 /= content_tag(:p,flash[:notice],class: 'alert alert-success') if flash[:notice]!=nil
32 .container-fluid
32 .container-fluid
33 - = flash_messages
33 + - flash.each do |msg_type, message|
34 + .alert.alert-dismissible.fade.show{class: bootstrap_class_for(msg_type)}
35 + = message
36 + %button.btn-close{type: 'button', 'data-bs-dismiss': :alert}
34 = yield
37 = yield
@@ -1,12 +1,20
1 = simple_form_for(@user) do |f|
1 = simple_form_for(@user) do |f|
2 = f.error_notification
2 = f.error_notification
3 - = f.input :login, label: 'Login'
3 + .mb-2
4 - = f.input :full_name, label: 'Full name'
4 + = f.input :login, label: 'Login'
5 - = f.input :password
5 + .mb-2
6 - = f.input :password_confirmation
6 + = f.input :full_name, label: 'Full name'
7 - = f.input :email
7 + .mb-2
8 - = f.input :alias
8 + = f.input :password
9 - = f.input :remark
9 + .mb-2
10 - = f.button :submit, class: 'btn btn-primary'
10 + = f.input :password_confirmation
11 - = link_to 'Cancel', :back, class: 'btn btn-default'
11 + .mb-2
12 + = f.input :email
13 + .mb-2
14 + = f.input :alias
15 + .mb-2
16 + = f.input :remark
17 + .mb-2
18 + = f.button :submit, class: 'btn btn-primary'
19 + = link_to 'Cancel', :back, class: 'btn btn-secondary'
12
20
@@ -1,51 +1,44
1 %h1 Users
1 %h1 Users
2
2
3 - .card.border-primary
3 + .card.border-success.mb-3
4 - .card-header.text-bg-primary.border-primary
4 + .card-header.text-bg-success.border-success
5 Quick Add
5 Quick Add
6 .card-body
6 .card-body
7 - = form_with url: 'asd', class: 'row row-cols-lg-auto g-3 align-items-center' do |f|
7 + = form_with url: user_admin_index_path, scope: :user, class: 'row row-cols-lg-auto g-3 align-items-center' do |f|
8 .col-12
8 .col-12
9 - = f.label 'user_login', 'Login'
9 + = f.text_field 'login', :size => 10,class: 'form-control', placeholder: 'login'
10 - = f.text_field 'login', :size => 10,class: 'form-control'
11 .form-group
10 .form-group
12 - = f.label 'user_full_name', 'Full Name'
11 + = f.text_field 'full_name', :size => 10,class: 'form-control', placeholder: 'full name'
13 - = f.text_field 'full_name', :size => 10,class: 'form-control'
14 .form-group
12 .form-group
15 - = f.label 'user_password', 'Password'
13 + = f.password_field 'password', :size => 10,class: 'form-control', placeholder: 'password'
16 - = f.text_field 'password', :size => 10,class: 'form-control'
17 .form-group
14 .form-group
18 - = f.label 'user_password_confirmation', 'Confirm'
15 + = f.password_field 'password_confirmation', :size => 10,class: 'form-control', placeholder: 'password confirmation'
19 - = f.text_field 'password_confirmation', :size => 10,class: 'form-control'
20 .form-group
16 .form-group
21 - = f.label 'user_email', 'email'
17 + = f.text_field 'email', :size => 10,class: 'form-control', placeholder: 'email'
22 - = f.text_field 'email', :size => 10,class: 'form-control'
18 + =submit_tag "Create", class: 'btn btn-success align-items-bottom'
23 - =submit_tag "Create", class: 'btn btn-primary align-items-bottom'
24
19
25 - .panel.panel-primary
20 + .card.border-success.mb-3
26 - .panel-title.panel-heading
21 + .card-header.text-bg-success.border-success
27 Import from site management
22 Import from site management
28 - .panel-body
23 + .card-body
29 - = form_tag({:action => 'import'}, :multipart => true,class: 'form form-inline') do
24 + = form_with url: import_user_admin_index_path, :multipart => true do |f|
30 - .form-group
25 + .row
31 - = label_tag :file, 'File:'
26 + .col-auto
32 - .input-group
27 + = f.label :file, 'File:', class: 'col-form-label'
33 - %span.input-group-btn
28 + .col-auto
34 - %span.btn.btn-default.btn-file
29 + = f.file_field :file, class: 'form-control'
35 - Browse
30 + .col-auto
36 - = file_field_tag 'file'
31 + = f.submit 'Submit', class: 'btn btn-secondary'
37 - = text_field_tag '' , nil, {readonly: true, class: 'form-control'}
38 - = submit_tag 'Submit', class: 'btn btn-default'
39
32
40
33
41 %p
34 %p
42 = link_to '+ New user', { :action => 'new' }, { class: 'btn btn-success '}
35 = link_to '+ New user', { :action => 'new' }, { class: 'btn btn-success '}
43 = link_to '+ New list of users', { :action => 'new_list' }, { class: 'btn btn-success '}
36 = link_to '+ New list of users', { :action => 'new_list' }, { class: 'btn btn-success '}
44 - = link_to 'Bulk Manage', { action: :bulk_manage} , { class: 'btn btn-default btn-info'}
37 + = link_to 'Bulk Manage', { action: :bulk_manage} , { class: 'btn btn-secondary btn-info'}
45 - = link_to 'View administrators',{ :action => 'admin'}, { class: 'btn btn-default '}
38 + = link_to 'View administrators',{ :action => 'admin'}, { class: 'btn btn-secondary '}
46 - = link_to 'Random passwords',{ :action => 'random_all_passwords'}, { class: 'btn btn-default '}
39 + = link_to 'Random passwords',{ :action => 'random_all_passwords'}, { class: 'btn btn-secondary '}
47 - = link_to 'View active users',{ :action => 'active'}, { class: 'btn btn-default '}
40 + = link_to 'View active users',{ :action => 'active'}, { class: 'btn btn-secondary '}
48 - = link_to 'Mass mailing',{ :action => 'mass_mailing'}, { class: 'btn btn-default '}
41 + = link_to 'Mass mailing',{ :action => 'mass_mailing'}, { class: 'btn btn-secondary '}
49
42
50 - if GraderConfiguration.multicontests?
43 - if GraderConfiguration.multicontests?
51 %br/
44 %br/
@@ -101,6 +94,8
101 = link_to '+ New list of users', { :action => 'new_list' }, { class: 'btn btn-success '}
94 = link_to '+ New list of users', { :action => 'new_list' }, { class: 'btn btn-success '}
102
95
103 :javascript
96 :javascript
104 - $('.datatable').DataTable({
97 + $(document).on('import-map-loaded',(e) => {
105 - 'pageLength': 50
98 + $('.datatable').DataTable({
106 - });
99 + 'pageLength': 50
100 + });
101 + })
@@ -2,12 +2,26
2 .row
2 .row
3 .col-md-6
3 .col-md-6
4 %h1 Adding list of users
4 %h1 Adding list of users
5 - .row
5 + .row.my-3
6 .col-md-6
6 .col-md-6
7 - .panel.panel-default
7 + = form_with url: create_from_list_user_admin_index_path do |f|
8 - .panel-heading
8 + .row.align-items-center.mb-3
9 - .panel-title Info
9 + .col-auto
10 - .panel-body
10 + = f.submit 'Create following users',class: 'btn btn-success'
11 + .col-auto
12 + .form-check
13 + = f.check_box :add_to_group, class: 'form-check-input'
14 + = f.label :add_to_group, 'Also add these users to the following group', class: 'form-check-label'
15 + .col-4
16 + = f.select "group_id", options_from_collection_for_select( Group.all, 'id','name',params[:group_name]), {}, class: 'select2 form-control'
17 + .row.mb-3
18 + .col-12
19 + = f.text_area :user_list, value: nil, class: 'form-control', style: 'height: 30rem'
20 + .col-md-6
21 + .card.card-default
22 + .card-header
23 + .card-title Info
24 + .card-body
11 %ul
25 %ul
12 %li
26 %li
13 List of user information in this format:
27 List of user information in this format:
@@ -35,20 +49,8
35 %pre user1,Somchai Jaidee,
49 %pre user1,Somchai Jaidee,
36 will create (or update) a user with login "user1" and and setting the fullname "Somchai Jaidee". No change is made to the password unless this is a new user. If this is a new user, a random password will be generated.
50 will create (or update) a user with login "user1" and and setting the fullname "Somchai Jaidee". No change is made to the password unless this is a new user. If this is a new user, a random password will be generated.
37
51
52 + :javascript
53 + $(document).on('import-map-loaded',(e) => {
54 + $('.select2').select2()
55 + });
38
56
39 - .row
40 - .col-md-6
41 - = form_tag :action => 'create_from_list' do
42 - .form-group
43 - = submit_tag 'Create following users',class: 'btn btn-success'
44 - .form-group
45 - .div.checkbox
46 - %label
47 - = check_box_tag :add_to_group
48 - Also add these users to the following group
49 - = select_tag "group_id", options_from_collection_for_select( Group.all, 'id','name',params[:group_name]), id: 'group_name',class: 'select2'
50 - .form-group
51 - = text_area_tag 'user_list', nil, :rows => 50, :cols => 80
52 - .col-md-6
53 -
54 -
@@ -35,4 +35,4
35 # Rails.application.config.active_support.use_sha1_digests = true
35 # Rails.application.config.active_support.use_sha1_digests = true
36
36
37 # Make `form_with` generate id attributes for any generated HTML tags.
37 # Make `form_with` generate id attributes for any generated HTML tags.
38 - # Rails.application.config.action_view.form_with_generates_ids = true
38 + Rails.application.config.action_view.form_with_generates_ids = true
You need to be logged in to leave comments. Login now