|
- $(document).on('turbolinks:load', function() {
- if ($('body.admins-users-edit-page, body.admins-users-update-page').length > 0) {
- var initDepartmentSelect = true;
-
- // ************** 学校选择 *************
- var matcherFunc = function(params, data){
- if ($.trim(params.term) === '') {
- return data;
- }
- if (typeof data.text === 'undefined') {
- return null;
- }
-
- if (data.name && data.name.indexOf(params.term) > -1) {
- var modifiedData = $.extend({}, data, true);
- return modifiedData;
- }
-
- // Return `null` if the term should not be displayed
- return null;
- }
-
- var defineSchoolSelect = function (schools) {
- $('.school-select').select2({
- theme: 'bootstrap4',
- placeholder: '查询学校/单位',
- minimumInputLength: 1,
- data: schools,
- templateResult: function (item) {
- if(!item.id || item.id === '') return item.text;
- return item.name;
- },
- templateSelection: function(item){
- if (item.id) {
- $('#user_school_id').val(item.id);
- getDepartmentsData(item.id, defineDepartmentSelect2);
- }
- return item.name || item.text;
- },
- matcher: matcherFunc
- });
- };
-
- var defineDepartmentSelect2 = function(departments){
- departments.unshift({ id: '-1', name: '未选择' }); // 可不选
-
- if (!initDepartmentSelect) { $('.department-select').empty(); } // 为了能够回填部门
- initDepartmentSelect = false;
-
- $('.department-select').select2({
- theme: 'bootstrap4',
- placeholder: '查询学院/部门',
- minimumInputLength: 0,
- data: departments,
- templateResult: function (item) {
- if(!item.id || item.id === '') return item.text;
- return item.name;
- },
- templateSelection: function(item){
- if (item.id) {
- $('#user_department_id').val(item.id);
- }
- return item.name || item.text;
- },
- matcher: matcherFunc
- });
- };
-
- var getDepartmentsData = function(school_id, callback){
- $.ajax({
- url: '/api/schools/' + school_id + '/departments/for_option.json',
- dataType: 'json',
- type: 'GET',
- success: function(data) {
- callback(data.departments);
- }
- })
- }
-
- // 初始化学校选择器
- $.ajax({
- url: '/api/schools/for_option.json',
- dataType: 'json',
- type: 'GET',
- success: function(data) {
- defineSchoolSelect(data.schools);
- }
- });
-
- // **************** 地区选择 ****************
- $('.province-city-select').cxSelect({
- url: '/javascripts/educoder/province-data.json',
- selects: ['province-select', 'city-select']
- });
-
- // *********** 职业选择 ************
- var identityData = [
- {
- "v": "teacher",
- "n": "教师",
- "s": [{"n": "教授", "v": "教授"},{"n": "副教授", "v": "副教授"},{"n": "讲师", "v": "讲师"},{"n": "助教", "v": "助教"}]
- },
- {
- "v": "student",
- "n": "学生",
- "s": []
- },
- {
- "v": "professional",
- "n": "专业人士",
- "s": [{"n": "企业管理者", "v": "企业管理者"},{"n": "部门管理者", "v": "部门管理者"},{"n": "高级工程师", "v": "高级工程师"},{"n": "工程师", "v": "工程师"},{"n": "助理工程师", "v": "助理工程师"}]
- }
- ];
- $('.user-identity-select').cxSelect({
- data: identityData,
- jsonValue: 'v',
- selects: ['identity-select', 'technical-title-select']
- });
- $('.identity-select').on('change', function(){
- if($(this).val() === 'student'){
- $('.technical-title-select-wrapper').hide();
- $('.form-group.user_student_id').show();
- } else {
- $('.technical-title-select-wrapper').show();
- $('.form-group.user_student_id').hide();
- }
- })
-
-
- var $form = $('form.edit_user')
- $form.validate({
- errorElement: 'span',
- errorClass: 'danger text-danger',
- rules: {
- "user[password]": {
- required: false,
- minlength: 5
- },
- "user[password_confirmation]": {
- required: false,
- minlength: 5,
- equalTo: "#user_password"
- },
- },
- messages: {
- "user[password_confirmation]": {
- equalTo: "两次密码输入不一致"
- }
- }
- })
-
- $form.submit(function(e){
- if(!$form.valid()){ e.preventDefault(); }
- })
- }
- });
|