|
- $(document).on('turbolinks:load', function() {
- var $modal = $('.modal.admin-replace-mirror-modal');
- if ($modal.length > 0) {
- var $form = $modal.find('form.admin-replace-mirror-form');
- var $mirrorIdInput = $modal.find('.modal-body input[name="mirror_id"]');
- var $mirrorSelect = $modal.find('.new-mirror-select');
-
- var setMirror = function(id, name){
- $mirrorIdInput.val(id);
- $form.find('.mirror-id-container').html(id);
- $form.find('.mirror-name-container').html(name);
- }
-
- $form.validate({
- errorElement: 'span',
- errorClass: 'danger text-danger',
- rules: {
- new_mirror_id: {
- required: true
- },
- },
- messages: {
- new_mirror_id: {
- required: '请选择新镜像'
- }
- }
- });
-
- // modal ready fire
- $modal.on('show.bs.modal', function (event) {
- var $link = $(event.relatedTarget);
-
- var mirrorId = $link.data('id');
- var mirrorName = $link.data('name');
-
- setMirror(mirrorId, mirrorName);
- $mirrorSelect.select2('val', ' ');
- });
- $modal.on('hide.bs.modal', function () {
- setMirror('', '');
- $mirrorSelect.select2('val', ' ');
- $('#new_mirror_id-error').remove();
- });
-
- $mirrorSelect.select2({
- theme: 'bootstrap4',
- placeholder: '输入要合并的镜像名',
- minimumInputLength: 1,
- ajax: {
- url: '/admins/mirror_repositories/for_select',
- dataType: 'json',
- data: function(params){
- return { keyword: params.term };
- },
- processResults: function(data){
- return { results: data.mirrors }
- }
- },
- templateResult: function (item) {
- if(!item.id || item.id === '') return item.text;
- return item.name;
- },
- templateSelection: function(item){
- if (item.id) {
- $('#new_mirror_id-error').remove();
- $('#new_mirror_id').val(item.id);
- }
- return item.name || item.text;
- }
- });
-
- $modal.on('click', '.submit-btn', function(){
- $form.find('.error').html('');
-
- if ($form.valid()) {
- var url = $form.data('url');
-
- $.ajax({
- method: 'POST',
- dataType: 'script',
- url: url,
- data: $form.serialize(),
- }).done(function(){
- $modal.modal('hide');
- });
- }
- });
- }
- });
|