diff --git a/app/assets/javascripts/admin.js b/app/assets/javascripts/admin.js index d738e5caa..9b7a96e57 100644 --- a/app/assets/javascripts/admin.js +++ b/app/assets/javascripts/admin.js @@ -1,136 +1,137 @@ -//= require rails-ujs -//= require activestorage -//= require turbolinks -//= require jquery3 -//= require popper -//= require bootstrap-sprockets -//= require jquery.validate.min -//= require additional-methods.min -//= require bootstrap-notify -//= require jquery.cookie.min -//= require select2 -//= require moment.min -//= require jquery.cxselect -//= require bootstrap-datepicker -//= require bootstrap-datetimepicker -//= require bootstrap.viewer -//= require jquery.mloading -//= require jquery-confirm.min -//= require common - -//= require echarts -//= require codemirror/lib/codemirror -//= require codemirror/mode/shell/shell -//= require editormd/editormd -//= require editormd/languages/zh-tw -//= require dragula/dragula - -//= require_tree ./i18n -//= require_tree ./admins - - -$.ajaxSetup({ - beforeSend: function(xhr) { - xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content')); - } -}); - -// ******** select2 global config ******** -$.fn.select2.defaults.set('theme', 'bootstrap4'); -$.fn.select2.defaults.set('language', 'zh-CN'); - -Turbolinks.setProgressBarDelay(200); - -$.notifyDefaults({ - type: 'success', - z_index: 9999, - delay: 2000 -}); - -function show_success_flash(){ - $.notify({ - message: '操作成功' - },{ - type: 'success' - }); -} - -$(document).on('turbolinks:load', function(){ - $('[data-toggle="tooltip"]').tooltip({ trigger : 'hover' }); - $('[data-toggle="popover"]').popover(); - - // 图片查看大图 - $('img.preview-image').bootstrapViewer(); - - // flash alert提示框自动关闭 - if($('.admin-alert-container .alert').length > 0){ - setTimeout(function(){ - $('.admin-alert-container .alert:not(.alert-danger)').alert('close'); - }, 2000); - setTimeout(function(){ - $('.admin-alert-container .alert.alert-danger').alert('close'); - }, 5000); - } -}); - -$(document).on("turbolinks:before-cache", function () { - $('[data-toggle="tooltip"]').tooltip('hide'); - $('[data-toggle="popover"]').popover('hide'); -}); -// var progressBar = new Turbolinks.ProgressBar(); - -// $(document).on('ajax:send', function(event){ -// console.log('ajax send', event); -// progressBar.setValue(0) -// progressBar.show() -// }); -// -// $(document).on('ajax:complete', function(event){ -// console.log('ajax complete', event); -// progressBar.setValue(1) -// progressBar.hide() // 分页时不触发,奇怪 -// }); -// $(document).on('ajax:success', function(event){ -// console.log('ajax success', event); -// }); -// $(document).on('ajax:error', function(event){ -// console.log('ajax error', event); -// }); - -$(function () { -}); - -$(document).on('turbolinks:load', function() { - - $('.logo-item-left').on("change", 'input[type="file"]', function () { - var $fileInput = $(this); - var file = this.files[0]; - var imageType = /image.*/; - if (file && file.type.match(imageType)) { - var reader = new FileReader(); - reader.onload = function () { - var $box = $fileInput.parent(); - $box.find('img').attr('src', reader.result).css('display', 'block'); - $box.addClass('has-img'); - }; - reader.readAsDataURL(file); - } else { - } - }); - - $('.attachment-item-left').on("change", 'input[type="file"]', function () { - var $fileInput = $(this); - var file = this.files[0]; - var imageType = /image.*/; - if (file && file.type.match(imageType)) { - var reader = new FileReader(); - reader.onload = function () { - var $box = $fileInput.parent(); - $box.find('img').attr('src', reader.result).css('display', 'block'); - $box.addClass('has-img'); - }; - reader.readAsDataURL(file); - } else { - } - }); +//= require rails-ujs +//= require activestorage +//= require turbolinks +//= require jquery3 +//= require popper +//= require bootstrap-sprockets +//= require jquery.validate.min +//= require additional-methods.min +//= require bootstrap-notify +//= require jquery.cookie.min +//= require select2 +//= require moment.min +//= require jquery.cxselect +//= require bootstrap-datepicker +//= require bootstrap-datetimepicker +//= require bootstrap.viewer +//= require bootstrap/bootstrap-toggle +//= require jquery.mloading +//= require jquery-confirm.min +//= require common + +//= require echarts +//= require codemirror/lib/codemirror +//= require codemirror/mode/shell/shell +//= require editormd/editormd +//= require editormd/languages/zh-tw +//= require dragula/dragula + +//= require_tree ./i18n +//= require_tree ./admins + + +$.ajaxSetup({ + beforeSend: function(xhr) { + xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content')); + } +}); + +// ******** select2 global config ******** +$.fn.select2.defaults.set('theme', 'bootstrap4'); +$.fn.select2.defaults.set('language', 'zh-CN'); + +Turbolinks.setProgressBarDelay(200); + +$.notifyDefaults({ + type: 'success', + z_index: 9999, + delay: 2000 +}); + +function show_success_flash(){ + $.notify({ + message: '操作成功' + },{ + type: 'success' + }); +} + +$(document).on('turbolinks:load', function(){ + $('[data-toggle="tooltip"]').tooltip({ trigger : 'hover' }); + $('[data-toggle="popover"]').popover(); + + // 图片查看大图 + $('img.preview-image').bootstrapViewer(); + + // flash alert提示框自动关闭 + if($('.admin-alert-container .alert').length > 0){ + setTimeout(function(){ + $('.admin-alert-container .alert:not(.alert-danger)').alert('close'); + }, 2000); + setTimeout(function(){ + $('.admin-alert-container .alert.alert-danger').alert('close'); + }, 5000); + } +}); + +$(document).on("turbolinks:before-cache", function () { + $('[data-toggle="tooltip"]').tooltip('hide'); + $('[data-toggle="popover"]').popover('hide'); +}); +// var progressBar = new Turbolinks.ProgressBar(); + +// $(document).on('ajax:send', function(event){ +// console.log('ajax send', event); +// progressBar.setValue(0) +// progressBar.show() +// }); +// +// $(document).on('ajax:complete', function(event){ +// console.log('ajax complete', event); +// progressBar.setValue(1) +// progressBar.hide() // 分页时不触发,奇怪 +// }); +// $(document).on('ajax:success', function(event){ +// console.log('ajax success', event); +// }); +// $(document).on('ajax:error', function(event){ +// console.log('ajax error', event); +// }); + +$(function () { +}); + +$(document).on('turbolinks:load', function() { + + $('.logo-item-left').on("change", 'input[type="file"]', function () { + var $fileInput = $(this); + var file = this.files[0]; + var imageType = /image.*/; + if (file && file.type.match(imageType)) { + var reader = new FileReader(); + reader.onload = function () { + var $box = $fileInput.parent(); + $box.find('img').attr('src', reader.result).css('display', 'block'); + $box.addClass('has-img'); + }; + reader.readAsDataURL(file); + } else { + } + }); + + $('.attachment-item-left').on("change", 'input[type="file"]', function () { + var $fileInput = $(this); + var file = this.files[0]; + var imageType = /image.*/; + if (file && file.type.match(imageType)) { + var reader = new FileReader(); + reader.onload = function () { + var $box = $fileInput.parent(); + $box.find('img').attr('src', reader.result).css('display', 'block'); + $box.addClass('has-img'); + }; + reader.readAsDataURL(file); + } else { + } + }); }) \ No newline at end of file diff --git a/app/assets/javascripts/bootstrap/bootstrap-toggle.js b/app/assets/javascripts/bootstrap/bootstrap-toggle.js new file mode 100644 index 000000000..533914edd --- /dev/null +++ b/app/assets/javascripts/bootstrap/bootstrap-toggle.js @@ -0,0 +1,180 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap-toggle.js v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ + + + +function ($) { + 'use strict'; + + // TOGGLE PUBLIC CLASS DEFINITION + // ============================== + + var Toggle = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, this.defaults(), options) + this.render() + } + + Toggle.VERSION = '2.2.0' + + Toggle.DEFAULTS = { + on: 'On', + off: 'Off', + onstyle: 'primary', + offstyle: 'default', + size: 'normal', + style: '', + width: null, + height: null + } + + Toggle.prototype.defaults = function() { + return { + on: this.$element.attr('data-on') || Toggle.DEFAULTS.on, + off: this.$element.attr('data-off') || Toggle.DEFAULTS.off, + onstyle: this.$element.attr('data-onstyle') || Toggle.DEFAULTS.onstyle, + offstyle: this.$element.attr('data-offstyle') || Toggle.DEFAULTS.offstyle, + size: this.$element.attr('data-size') || Toggle.DEFAULTS.size, + style: this.$element.attr('data-style') || Toggle.DEFAULTS.style, + width: this.$element.attr('data-width') || Toggle.DEFAULTS.width, + height: this.$element.attr('data-height') || Toggle.DEFAULTS.height + } + } + + Toggle.prototype.render = function () { + this._onstyle = 'btn-' + this.options.onstyle + this._offstyle = 'btn-' + this.options.offstyle + var size = this.options.size === 'large' ? 'btn-lg' + : this.options.size === 'small' ? 'btn-sm' + : this.options.size === 'mini' ? 'btn-xs' + : '' + var $toggleOn = $('