admin laboratory: shixun and subject select

issues25489
p31729568 5 years ago
parent 39ac4ceb4a
commit ec4fe6874e

@ -63,16 +63,23 @@ $(document).on('turbolinks:load', function() {
theme: 'bootstrap4',
placeholder: '请输入实训名称/创建者检索',
multiple: true,
minimumInputLength: 1,
closeOnSelect: false,
ajax: {
delay: 500,
url: '/admins/laboratories/' + laboratoryId + '/shixuns_for_select',
dataType: 'json',
data: function(params){
return { keyword: params.term };
return { keyword: params.term, page: params.page || 1, per_page: 20 };
},
processResults: function(data){
return { results: data.shixuns }
processResults: function(data, params){
params.page = params.page || 1;
return {
results: data.shixuns,
pagination: {
more: (params.page * 20) < data.count
}
};
}
},
templateResult: function (item) {

@ -85,16 +85,23 @@ $(document).on('turbolinks:load', function() {
theme: 'bootstrap4',
placeholder: '请输入课程名称/创建者检索',
multiple: true,
minimumInputLength: 1,
closeOnSelect: false,
ajax: {
delay: 500,
url: '/admins/laboratories/' + laboratoryId + '/subjects_for_select',
dataType: 'json',
data: function(params){
return { keyword: params.term };
return { keyword: params.term, page: params.page || 1, per_page: 20 }
},
processResults: function(data){
return { results: data.subjects }
processResults: function(data, params){
params.page = params.page || 1;
return {
results: data.subjects,
pagination: {
more: (params.page * 20) < data.count
}
};
}
},
templateResult: function (item) {

@ -26,10 +26,12 @@ class Admins::LaboratoriesController < Admins::BaseController
keyword = params[:keyword].to_s.strip
if keyword.present?
like_sql = 'shixuns.name LIKE :keyword OR CONCAT(users.lastname, users.firstname) LIKE :keyword'
shixuns = shixuns.joins(:user).where(like_sql, keyword: "%#{keyword}%")
like_sql = 'shixuns.name LIKE :keyword OR CONCAT(users.lastname, users.firstname) LIKE :keyword '\
'OR mirror_repositories.name LIKE :keyword'
shixuns = shixuns.joins(:user, :mirror_repositories).where(like_sql, keyword: "%#{keyword}%")
end
@count = shixuns.count
@shixuns = paginate(shixuns.includes(:user))
end
@ -44,6 +46,7 @@ class Admins::LaboratoriesController < Admins::BaseController
subjects = subjects.joins(:user).where(like_sql, keyword: "%#{keyword}%")
end
@count = subjects.count
@subjects = paginate(subjects.includes(:user))
end

@ -1,3 +1,4 @@
json.count @count
json.shixuns do
json.array! @shixuns do |shixun|
json.extract! shixun, :id, :name, :status

@ -1,3 +1,4 @@
json.count @count
json.subjects do
json.array! @subjects do |subject|
json.extract! subject, :id, :name, :status

@ -2,6 +2,7 @@ admins-mirror_scripts: 'admins-mirror_repositories'
admins-laboratory_settings: 'admins-laboratories'
admins-carousels: 'admins-laboratories'
admins-laboratory_shixuns: 'admins-laboratories'
admins-laboratory_subjects: 'admins-laboratories'
admins-competition_settings: 'admins-competitions'
admins-enroll_lists: 'admins-competitions'
admins-competition_prize_users: 'admins-competitions'

File diff suppressed because one or more lines are too long

@ -137758,16 +137758,23 @@ $(document).on('turbolinks:load', function() {
theme: 'bootstrap4',
placeholder: '请输入实训名称/创建者检索',
multiple: true,
minimumInputLength: 1,
closeOnSelect: false,
ajax: {
delay: 500,
url: '/admins/laboratories/' + laboratoryId + '/shixuns_for_select',
dataType: 'json',
data: function(params){
return { keyword: params.term };
return { keyword: params.term, page: params.page || 1, per_page: 20 };
},
processResults: function(data){
return { results: data.shixuns }
processResults: function(data, params){
params.page = params.page || 1;
return {
results: data.shixuns,
pagination: {
more: (params.page * 20) < data.count
}
};
}
},
templateResult: function (item) {
@ -137900,16 +137907,23 @@ $(document).on('turbolinks:load', function() {
theme: 'bootstrap4',
placeholder: '请输入课程名称/创建者检索',
multiple: true,
minimumInputLength: 1,
closeOnSelect: false,
ajax: {
delay: 500,
url: '/admins/laboratories/' + laboratoryId + '/subjects_for_select',
dataType: 'json',
data: function(params){
return { keyword: params.term };
return { keyword: params.term, page: params.page || 1, per_page: 20 }
},
processResults: function(data){
return { results: data.subjects }
processResults: function(data, params){
params.page = params.page || 1;
return {
results: data.subjects,
pagination: {
more: (params.page * 20) < data.count
}
};
}
},
templateResult: function (item) {
Loading…
Cancel
Save