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 11 @users = User.all
12 12 @hidden_columns = ['hashed_password', 'salt', 'created_at', 'updated_at']
13 13 @contests = Contest.enabled
14 + @user = User.new
14 15 end
15 16
16 17 def active
@@ -209,14 +209,4
209 209 BOOTSTRAP_FLASH_MSG.fetch(flash_type.to_sym, flash_type.to_s)
210 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 212 end
@@ -49,5 +49,8
49 49 import 'custom'
50 50
51 51
52 + //trigger import map ready
52 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 31 /= content_tag(:p,flash[:notice],class: 'alert alert-success') if flash[:notice]!=nil
32 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 37 = yield
@@ -1,12 +1,20
1 1 = simple_form_for(@user) do |f|
2 2 = f.error_notification
3 - = f.input :login, label: 'Login'
4 - = f.input :full_name, label: 'Full name'
5 - = f.input :password
6 - = f.input :password_confirmation
7 - = f.input :email
8 - = f.input :alias
9 - = f.input :remark
10 - = f.button :submit, class: 'btn btn-primary'
11 - = link_to 'Cancel', :back, class: 'btn btn-default'
3 + .mb-2
4 + = f.input :login, label: 'Login'
5 + .mb-2
6 + = f.input :full_name, label: 'Full name'
7 + .mb-2
8 + = f.input :password
9 + .mb-2
10 + = f.input :password_confirmation
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 1 %h1 Users
2 2
3 - .card.border-primary
4 - .card-header.text-bg-primary.border-primary
3 + .card.border-success.mb-3
4 + .card-header.text-bg-success.border-success
5 5 Quick Add
6 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 8 .col-12
9 - = f.label 'user_login', 'Login'
10 - = f.text_field 'login', :size => 10,class: 'form-control'
9 + = f.text_field 'login', :size => 10,class: 'form-control', placeholder: 'login'
11 10 .form-group
12 - = f.label 'user_full_name', 'Full Name'
13 - = f.text_field 'full_name', :size => 10,class: 'form-control'
11 + = f.text_field 'full_name', :size => 10,class: 'form-control', placeholder: 'full name'
14 12 .form-group
15 - = f.label 'user_password', 'Password'
16 - = f.text_field 'password', :size => 10,class: 'form-control'
13 + = f.password_field 'password', :size => 10,class: 'form-control', placeholder: 'password'
17 14 .form-group
18 - = f.label 'user_password_confirmation', 'Confirm'
19 - = f.text_field 'password_confirmation', :size => 10,class: 'form-control'
15 + = f.password_field 'password_confirmation', :size => 10,class: 'form-control', placeholder: 'password confirmation'
20 16 .form-group
21 - = f.label 'user_email', 'email'
22 - = f.text_field 'email', :size => 10,class: 'form-control'
23 - =submit_tag "Create", class: 'btn btn-primary align-items-bottom'
17 + = f.text_field 'email', :size => 10,class: 'form-control', placeholder: 'email'
18 + =submit_tag "Create", class: 'btn btn-success align-items-bottom'
24 19
25 - .panel.panel-primary
26 - .panel-title.panel-heading
20 + .card.border-success.mb-3
21 + .card-header.text-bg-success.border-success
27 22 Import from site management
28 - .panel-body
29 - = form_tag({:action => 'import'}, :multipart => true,class: 'form form-inline') do
30 - .form-group
31 - = label_tag :file, 'File:'
32 - .input-group
33 - %span.input-group-btn
34 - %span.btn.btn-default.btn-file
35 - Browse
36 - = file_field_tag 'file'
37 - = text_field_tag '' , nil, {readonly: true, class: 'form-control'}
38 - = submit_tag 'Submit', class: 'btn btn-default'
23 + .card-body
24 + = form_with url: import_user_admin_index_path, :multipart => true do |f|
25 + .row
26 + .col-auto
27 + = f.label :file, 'File:', class: 'col-form-label'
28 + .col-auto
29 + = f.file_field :file, class: 'form-control'
30 + .col-auto
31 + = f.submit 'Submit', class: 'btn btn-secondary'
39 32
40 33
41 34 %p
42 35 = link_to '+ New user', { :action => 'new' }, { class: 'btn btn-success '}
43 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'}
45 - = link_to 'View administrators',{ :action => 'admin'}, { class: 'btn btn-default '}
46 - = link_to 'Random passwords',{ :action => 'random_all_passwords'}, { class: 'btn btn-default '}
47 - = link_to 'View active users',{ :action => 'active'}, { class: 'btn btn-default '}
48 - = link_to 'Mass mailing',{ :action => 'mass_mailing'}, { class: 'btn btn-default '}
37 + = link_to 'Bulk Manage', { action: :bulk_manage} , { class: 'btn btn-secondary btn-info'}
38 + = link_to 'View administrators',{ :action => 'admin'}, { class: 'btn btn-secondary '}
39 + = link_to 'Random passwords',{ :action => 'random_all_passwords'}, { class: 'btn btn-secondary '}
40 + = link_to 'View active users',{ :action => 'active'}, { class: 'btn btn-secondary '}
41 + = link_to 'Mass mailing',{ :action => 'mass_mailing'}, { class: 'btn btn-secondary '}
49 42
50 43 - if GraderConfiguration.multicontests?
51 44 %br/
@@ -101,6 +94,8
101 94 = link_to '+ New list of users', { :action => 'new_list' }, { class: 'btn btn-success '}
102 95
103 96 :javascript
104 - $('.datatable').DataTable({
105 - 'pageLength': 50
106 - });
97 + $(document).on('import-map-loaded',(e) => {
98 + $('.datatable').DataTable({
99 + 'pageLength': 50
100 + });
101 + })
@@ -2,12 +2,26
2 2 .row
3 3 .col-md-6
4 4 %h1 Adding list of users
5 - .row
5 + .row.my-3
6 6 .col-md-6
7 - .panel.panel-default
8 - .panel-heading
9 - .panel-title Info
10 - .panel-body
7 + = form_with url: create_from_list_user_admin_index_path do |f|
8 + .row.align-items-center.mb-3
9 + .col-auto
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 25 %ul
12 26 %li
13 27 List of user information in this format:
@@ -35,20 +49,8
35 49 %pre user1,Somchai Jaidee,
36 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 35 # Rails.application.config.active_support.use_sha1_digests = true
36 36
37 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