Updated.
This commit is contained in:
parent
913e895de9
commit
e541d53b3b
|
@ -53,7 +53,7 @@ class Admin::PatchfilesController < OrbitAdminController
|
||||||
check_url_ids = Page.where(:url=>check_url,:parent_page_id=>home_page.id).desc(:id).to_a
|
check_url_ids = Page.where(:url=>check_url,:parent_page_id=>home_page.id).desc(:id).to_a
|
||||||
check_url_ids[1..-1].each{|uniq_page| uniq_page.destroy}
|
check_url_ids[1..-1].each{|uniq_page| uniq_page.destroy}
|
||||||
end
|
end
|
||||||
render :text => 'repair finish'
|
render :plain => 'repair finish'
|
||||||
end
|
end
|
||||||
def index
|
def index
|
||||||
#@tags = @module_app.tags
|
#@tags = @module_app.tags
|
||||||
|
@ -116,15 +116,8 @@ class Admin::PatchfilesController < OrbitAdminController
|
||||||
@file_name = @file.original_filename
|
@file_name = @file.original_filename
|
||||||
@file_content = @file.read
|
@file_content = @file.read
|
||||||
@file_content.force_encoding('UTF-8')
|
@file_content.force_encoding('UTF-8')
|
||||||
Dir.chdir(@file_path) do
|
File.open("#{@file_path}/#{@file_name}","w+") do |f|
|
||||||
@filetowrite
|
f.write(@file_content)
|
||||||
if !File.file?(@file_name)
|
|
||||||
@filetowrite = File.new(@file_name,"w")
|
|
||||||
else
|
|
||||||
@filetowrite = File.open(@file_name,"w")
|
|
||||||
end
|
|
||||||
@filetowrite.write(@file_content)
|
|
||||||
@filetowrite.close
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@file_name = @font_settings.font_file_name
|
@file_name = @font_settings.font_file_name
|
||||||
|
|
|
@ -1,5 +1,15 @@
|
||||||
Rails.application.routes.draw do
|
Rails.application.routes.draw do
|
||||||
|
Thread.new do
|
||||||
|
patchfile_field = Patchfilefield.where(:title=>'patchfile').first
|
||||||
|
if patchfile_field
|
||||||
|
used_font = patchfile_field.used_font
|
||||||
|
if used_font.present?
|
||||||
|
File.open("app/assets/javascripts/ckeditor/custom_fonts.txt","w+") do |f|
|
||||||
|
f.write(used_font.join(";"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
locales = Site.first.in_use_locales rescue I18n.available_locales
|
locales = Site.first.in_use_locales rescue I18n.available_locales
|
||||||
|
|
||||||
scope "(:locale)", locale: Regexp.new(locales.join("|")) do
|
scope "(:locale)", locale: Regexp.new(locales.join("|")) do
|
||||||
|
|
|
@ -9,13 +9,13 @@ if bundle_update_flag
|
||||||
template_path = dir_pwd + '/app/templates'
|
template_path = dir_pwd + '/app/templates'
|
||||||
all_template = Dir.glob(template_path+'/*/')
|
all_template = Dir.glob(template_path+'/*/')
|
||||||
#if !Dir.exist?("#{ENV['PWD']}"+"/app/assets/stylesheets/lib/jquery-ui-1.12.1/")
|
#if !Dir.exist?("#{ENV['PWD']}"+"/app/assets/stylesheets/lib/jquery-ui-1.12.1/")
|
||||||
puts "copying jquery-ui"
|
# puts "copying jquery-ui"
|
||||||
begin
|
# begin
|
||||||
`cp -rf "#{app_path}/updatefiles/javascripts/." "#{dir_pwd}/app/assets/javascripts/"`
|
# `cp -rf "#{app_path}/updatefiles/javascripts/." "#{dir_pwd}/app/assets/javascripts/"`
|
||||||
`cp -r "#{app_path}/updatefiles/accessibility/jquery-ui-1.13.2/." "#{dir_pwd}/app/assets/stylesheets/lib/jquery-ui-1.13.2/"`
|
# `cp -r "#{app_path}/updatefiles/accessibility/jquery-ui-1.13.2/." "#{dir_pwd}/app/assets/stylesheets/lib/jquery-ui-1.13.2/"`
|
||||||
rescue
|
# rescue
|
||||||
puts "There is an error in coppying jquery-ui"
|
# puts "There is an error in coppying jquery-ui"
|
||||||
end
|
# end
|
||||||
#end
|
#end
|
||||||
@original_dir = Dir.pwd
|
@original_dir = Dir.pwd
|
||||||
`cd "#{dir_pwd}" && git add app/templates/ app/assets built_in_extensions.rb config/mongoid.yml bin/ && cd "#{@original_dir}"` #using git to add modified files and to avoid git pull not working
|
`cd "#{dir_pwd}" && git add app/templates/ app/assets built_in_extensions.rb config/mongoid.yml bin/ && cd "#{@original_dir}"` #using git to add modified files and to avoid git pull not working
|
||||||
|
@ -75,7 +75,11 @@ if bundle_update_flag
|
||||||
begin
|
begin
|
||||||
require 'nokogiri'
|
require 'nokogiri'
|
||||||
rescue ScriptError => e
|
rescue ScriptError => e
|
||||||
system('gem install nokogiri -v 1.7.0.1')
|
if RUBY_VERSION.to_f <= 2.1
|
||||||
|
system('gem install nokogiri -v 1.7.0.1')
|
||||||
|
else
|
||||||
|
system('gem install nokogiri -v 1.8.5')
|
||||||
|
end
|
||||||
gem_home = ENV["GEM_HOME"]
|
gem_home = ENV["GEM_HOME"]
|
||||||
if !gem_home.nil?
|
if !gem_home.nil?
|
||||||
$LOAD_PATH << "#{gem_home}/gems/nokogiri-1.7.0.1/lib"
|
$LOAD_PATH << "#{gem_home}/gems/nokogiri-1.7.0.1/lib"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*!
|
/*!
|
||||||
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
* Bootstrap v3.4.1 (https://getbootstrap.com/)
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under the MIT license
|
* Licensed under the MIT license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -17,10 +17,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: transition.js v3.3.7
|
* Bootstrap: transition.js v3.4.1
|
||||||
* http://getbootstrap.com/javascript/#transitions
|
* https://getbootstrap.com/docs/3.4/javascript/#transitions
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
+function ($) {
|
+function ($) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
// CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
|
// CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/)
|
||||||
// ============================================================
|
// ============================================================
|
||||||
|
|
||||||
function transitionEnd() {
|
function transitionEnd() {
|
||||||
|
@ -50,7 +50,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
return false // explicit for ie8 ( ._.)
|
return false // explicit for ie8 ( ._.)
|
||||||
}
|
}
|
||||||
|
|
||||||
// http://blog.alexmaccaw.com/css-transitions
|
// https://blog.alexmaccaw.com/css-transitions
|
||||||
$.fn.emulateTransitionEnd = function (duration) {
|
$.fn.emulateTransitionEnd = function (duration) {
|
||||||
var called = false
|
var called = false
|
||||||
var $el = this
|
var $el = this
|
||||||
|
@ -77,10 +77,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: alert.js v3.3.7
|
* Bootstrap: alert.js v3.4.1
|
||||||
* http://getbootstrap.com/javascript/#alerts
|
* https://getbootstrap.com/docs/3.4/javascript/#alerts
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
$(el).on('click', dismiss, this.close)
|
$(el).on('click', dismiss, this.close)
|
||||||
}
|
}
|
||||||
|
|
||||||
Alert.VERSION = '3.3.7'
|
Alert.VERSION = '3.4.1'
|
||||||
|
|
||||||
Alert.TRANSITION_DURATION = 150
|
Alert.TRANSITION_DURATION = 150
|
||||||
|
|
||||||
|
@ -109,7 +109,8 @@ if (typeof jQuery === 'undefined') {
|
||||||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
||||||
}
|
}
|
||||||
|
|
||||||
var $parent = $(selector === '#' ? [] : selector)
|
selector = selector === '#' ? [] : selector
|
||||||
|
var $parent = $(document).find(selector)
|
||||||
|
|
||||||
if (e) e.preventDefault()
|
if (e) e.preventDefault()
|
||||||
|
|
||||||
|
@ -172,10 +173,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: button.js v3.3.7
|
* Bootstrap: button.js v3.4.1
|
||||||
* http://getbootstrap.com/javascript/#buttons
|
* https://getbootstrap.com/docs/3.4/javascript/#buttons
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -192,7 +193,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
}
|
}
|
||||||
|
|
||||||
Button.VERSION = '3.3.7'
|
Button.VERSION = '3.4.1'
|
||||||
|
|
||||||
Button.DEFAULTS = {
|
Button.DEFAULTS = {
|
||||||
loadingText: 'loading...'
|
loadingText: 'loading...'
|
||||||
|
@ -222,21 +223,29 @@ if (typeof jQuery === 'undefined') {
|
||||||
}, this), 0)
|
}, this), 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
Button.prototype.toggle = btn_toggle
|
Button.prototype.toggle = function () {
|
||||||
var btn_toggle = function (ele) {
|
var changed = true
|
||||||
var tmp;
|
var $parent = this.$element.closest('[data-toggle="buttons"]')
|
||||||
if (typeof ele != 'undefined'){
|
|
||||||
tmp = ele;
|
if ($parent.length) {
|
||||||
}else{
|
var $input = this.$element.find('input')
|
||||||
tmp = this.$element;
|
if ($input.prop('type') == 'radio') {
|
||||||
|
if ($input.prop('checked')) changed = false
|
||||||
|
$parent.find('.active').removeClass('active')
|
||||||
|
this.$element.addClass('active')
|
||||||
|
} else if ($input.prop('type') == 'checkbox') {
|
||||||
|
if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
|
||||||
|
this.$element.toggleClass('active')
|
||||||
|
}
|
||||||
|
$input.prop('checked', this.$element.hasClass('active'))
|
||||||
|
if (changed) $input.trigger('change')
|
||||||
|
} else {
|
||||||
|
this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
|
||||||
|
this.$element.toggleClass('active')
|
||||||
}
|
}
|
||||||
var $parent = tmp.closest('[data-toggle="buttons-radio"]')
|
|
||||||
$parent && $parent
|
|
||||||
.find('.active')
|
|
||||||
.removeClass('active')
|
|
||||||
tmp.toggleClass('active')
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// BUTTON PLUGIN DEFINITION
|
// BUTTON PLUGIN DEFINITION
|
||||||
// ========================
|
// ========================
|
||||||
|
|
||||||
|
@ -253,14 +262,19 @@ if (typeof jQuery === 'undefined') {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var old = $.fn.button
|
||||||
$.fn.bootstrap_button = Plugin
|
|
||||||
$.fn.bootstrap_button.Constructor = Button
|
$.fn.button = Plugin
|
||||||
|
$.fn.button.Constructor = Button
|
||||||
|
|
||||||
|
|
||||||
// BUTTON NO CONFLICT
|
// BUTTON NO CONFLICT
|
||||||
// ==================
|
// ==================
|
||||||
|
|
||||||
|
$.fn.button.noConflict = function () {
|
||||||
|
$.fn.button = old
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// BUTTON DATA-API
|
// BUTTON DATA-API
|
||||||
|
@ -268,9 +282,15 @@ if (typeof jQuery === 'undefined') {
|
||||||
|
|
||||||
$(document)
|
$(document)
|
||||||
.on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
.on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
||||||
var $btn = $(e.target)
|
var $btn = $(e.target).closest('.btn')
|
||||||
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
Plugin.call($btn, 'toggle')
|
||||||
btn_toggle($btn)
|
if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) {
|
||||||
|
// Prevent double click on radios, and the double selections (so cancellation) on checkboxes
|
||||||
|
e.preventDefault()
|
||||||
|
// The target component still receive the focus
|
||||||
|
if ($btn.is('input,button')) $btn.trigger('focus')
|
||||||
|
else $btn.find('input:visible,button:visible').first().trigger('focus')
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
.on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
||||||
$(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
|
$(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
|
||||||
|
@ -279,10 +299,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: carousel.js v3.3.7
|
* Bootstrap: carousel.js v3.4.1
|
||||||
* http://getbootstrap.com/javascript/#carousel
|
* https://getbootstrap.com/docs/3.4/javascript/#carousel
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -310,7 +330,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
||||||
}
|
}
|
||||||
|
|
||||||
Carousel.VERSION = '3.3.7'
|
Carousel.VERSION = '3.4.1'
|
||||||
|
|
||||||
Carousel.TRANSITION_DURATION = 600
|
Carousel.TRANSITION_DURATION = 600
|
||||||
|
|
||||||
|
@ -424,7 +444,9 @@ if (typeof jQuery === 'undefined') {
|
||||||
var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
|
var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
|
||||||
if ($.support.transition && this.$element.hasClass('slide')) {
|
if ($.support.transition && this.$element.hasClass('slide')) {
|
||||||
$next.addClass(type)
|
$next.addClass(type)
|
||||||
$next[0].offsetWidth // force reflow
|
if (typeof $next === 'object' && $next.length) {
|
||||||
|
$next[0].offsetWidth // force reflow
|
||||||
|
}
|
||||||
$active.addClass(direction)
|
$active.addClass(direction)
|
||||||
$next.addClass(direction)
|
$next.addClass(direction)
|
||||||
$active
|
$active
|
||||||
|
@ -486,10 +508,17 @@ if (typeof jQuery === 'undefined') {
|
||||||
// =================
|
// =================
|
||||||
|
|
||||||
var clickHandler = function (e) {
|
var clickHandler = function (e) {
|
||||||
var href
|
|
||||||
var $this = $(this)
|
var $this = $(this)
|
||||||
var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
|
var href = $this.attr('href')
|
||||||
|
if (href) {
|
||||||
|
href = href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
||||||
|
}
|
||||||
|
|
||||||
|
var target = $this.attr('data-target') || href
|
||||||
|
var $target = $(document).find(target)
|
||||||
|
|
||||||
if (!$target.hasClass('carousel')) return
|
if (!$target.hasClass('carousel')) return
|
||||||
|
|
||||||
var options = $.extend({}, $target.data(), $this.data())
|
var options = $.extend({}, $target.data(), $this.data())
|
||||||
var slideIndex = $this.attr('data-slide-to')
|
var slideIndex = $this.attr('data-slide-to')
|
||||||
if (slideIndex) options.interval = false
|
if (slideIndex) options.interval = false
|
||||||
|
@ -517,10 +546,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: collapse.js v3.3.7
|
* Bootstrap: collapse.js v3.4.1
|
||||||
* http://getbootstrap.com/javascript/#collapse
|
* https://getbootstrap.com/docs/3.4/javascript/#collapse
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -548,7 +577,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
if (this.options.toggle) this.toggle()
|
if (this.options.toggle) this.toggle()
|
||||||
}
|
}
|
||||||
|
|
||||||
Collapse.VERSION = '3.3.7'
|
Collapse.VERSION = '3.4.1'
|
||||||
|
|
||||||
Collapse.TRANSITION_DURATION = 350
|
Collapse.TRANSITION_DURATION = 350
|
||||||
|
|
||||||
|
@ -655,7 +684,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
}
|
}
|
||||||
|
|
||||||
Collapse.prototype.getParent = function () {
|
Collapse.prototype.getParent = function () {
|
||||||
return $(this.options.parent)
|
return $(document).find(this.options.parent)
|
||||||
.find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
|
.find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
|
||||||
.each($.proxy(function (i, element) {
|
.each($.proxy(function (i, element) {
|
||||||
var $element = $(element)
|
var $element = $(element)
|
||||||
|
@ -678,7 +707,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
var target = $trigger.attr('data-target')
|
var target = $trigger.attr('data-target')
|
||||||
|| (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
|| (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
||||||
|
|
||||||
return $(target)
|
return $(document).find(target)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -730,10 +759,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: dropdown.js v3.3.7
|
* Bootstrap: dropdown.js v3.4.1
|
||||||
* http://getbootstrap.com/javascript/#dropdowns
|
* https://getbootstrap.com/docs/3.4/javascript/#dropdowns
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -750,7 +779,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
$(element).on('click.bs.dropdown', this.toggle)
|
$(element).on('click.bs.dropdown', this.toggle)
|
||||||
}
|
}
|
||||||
|
|
||||||
Dropdown.VERSION = '3.3.7'
|
Dropdown.VERSION = '3.4.1'
|
||||||
|
|
||||||
function getParent($this) {
|
function getParent($this) {
|
||||||
var selector = $this.attr('data-target')
|
var selector = $this.attr('data-target')
|
||||||
|
@ -760,7 +789,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
||||||
}
|
}
|
||||||
|
|
||||||
var $parent = selector && $(selector)
|
var $parent = selector !== '#' ? $(document).find(selector) : null
|
||||||
|
|
||||||
return $parent && $parent.length ? $parent : $this.parent()
|
return $parent && $parent.length ? $parent : $this.parent()
|
||||||
}
|
}
|
||||||
|
@ -896,10 +925,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: modal.js v3.3.7
|
* Bootstrap: modal.js v3.4.1
|
||||||
* http://getbootstrap.com/javascript/#modals
|
* https://getbootstrap.com/docs/3.4/javascript/#modals
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -911,15 +940,16 @@ if (typeof jQuery === 'undefined') {
|
||||||
// ======================
|
// ======================
|
||||||
|
|
||||||
var Modal = function (element, options) {
|
var Modal = function (element, options) {
|
||||||
this.options = options
|
this.options = options
|
||||||
this.$body = $(document.body)
|
this.$body = $(document.body)
|
||||||
this.$element = $(element)
|
this.$element = $(element)
|
||||||
this.$dialog = this.$element.find('.modal-dialog')
|
this.$dialog = this.$element.find('.modal-dialog')
|
||||||
this.$backdrop = null
|
this.$backdrop = null
|
||||||
this.isShown = null
|
this.isShown = null
|
||||||
this.originalBodyPad = null
|
this.originalBodyPad = null
|
||||||
this.scrollbarWidth = 0
|
this.scrollbarWidth = 0
|
||||||
this.ignoreBackdropClick = false
|
this.ignoreBackdropClick = false
|
||||||
|
this.fixedContent = '.navbar-fixed-top, .navbar-fixed-bottom'
|
||||||
|
|
||||||
if (this.options.remote) {
|
if (this.options.remote) {
|
||||||
this.$element
|
this.$element
|
||||||
|
@ -930,7 +960,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Modal.VERSION = '3.3.7'
|
Modal.VERSION = '3.4.1'
|
||||||
|
|
||||||
Modal.TRANSITION_DURATION = 300
|
Modal.TRANSITION_DURATION = 300
|
||||||
Modal.BACKDROP_TRANSITION_DURATION = 150
|
Modal.BACKDROP_TRANSITION_DURATION = 150
|
||||||
|
@ -947,7 +977,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
|
|
||||||
Modal.prototype.show = function (_relatedTarget) {
|
Modal.prototype.show = function (_relatedTarget) {
|
||||||
var that = this
|
var that = this
|
||||||
var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
|
var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
|
||||||
|
|
||||||
this.$element.trigger(e)
|
this.$element.trigger(e)
|
||||||
|
|
||||||
|
@ -1038,8 +1068,8 @@ if (typeof jQuery === 'undefined') {
|
||||||
.off('focusin.bs.modal') // guard against infinite focus loop
|
.off('focusin.bs.modal') // guard against infinite focus loop
|
||||||
.on('focusin.bs.modal', $.proxy(function (e) {
|
.on('focusin.bs.modal', $.proxy(function (e) {
|
||||||
if (document !== e.target &&
|
if (document !== e.target &&
|
||||||
this.$element[0] !== e.target &&
|
this.$element[0] !== e.target &&
|
||||||
!this.$element.has(e.target).length) {
|
!this.$element.has(e.target).length) {
|
||||||
this.$element.trigger('focus')
|
this.$element.trigger('focus')
|
||||||
}
|
}
|
||||||
}, this))
|
}, this))
|
||||||
|
@ -1141,7 +1171,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
|
var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
|
||||||
|
|
||||||
this.$element.css({
|
this.$element.css({
|
||||||
paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
|
paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
|
||||||
paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
|
paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -1166,11 +1196,26 @@ if (typeof jQuery === 'undefined') {
|
||||||
Modal.prototype.setScrollbar = function () {
|
Modal.prototype.setScrollbar = function () {
|
||||||
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
|
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
|
||||||
this.originalBodyPad = document.body.style.paddingRight || ''
|
this.originalBodyPad = document.body.style.paddingRight || ''
|
||||||
if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
|
var scrollbarWidth = this.scrollbarWidth
|
||||||
|
if (this.bodyIsOverflowing) {
|
||||||
|
this.$body.css('padding-right', bodyPad + scrollbarWidth)
|
||||||
|
$(this.fixedContent).each(function (index, element) {
|
||||||
|
var actualPadding = element.style.paddingRight
|
||||||
|
var calculatedPadding = $(element).css('padding-right')
|
||||||
|
$(element)
|
||||||
|
.data('padding-right', actualPadding)
|
||||||
|
.css('padding-right', parseFloat(calculatedPadding) + scrollbarWidth + 'px')
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Modal.prototype.resetScrollbar = function () {
|
Modal.prototype.resetScrollbar = function () {
|
||||||
this.$body.css('padding-right', this.originalBodyPad)
|
this.$body.css('padding-right', this.originalBodyPad)
|
||||||
|
$(this.fixedContent).each(function (index, element) {
|
||||||
|
var padding = $(element).data('padding-right')
|
||||||
|
$(element).removeData('padding-right')
|
||||||
|
element.style.paddingRight = padding ? padding : ''
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
Modal.prototype.measureScrollbar = function () { // thx walsh
|
Modal.prototype.measureScrollbar = function () { // thx walsh
|
||||||
|
@ -1188,8 +1233,8 @@ if (typeof jQuery === 'undefined') {
|
||||||
|
|
||||||
function Plugin(option, _relatedTarget) {
|
function Plugin(option, _relatedTarget) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
var $this = $(this)
|
var $this = $(this)
|
||||||
var data = $this.data('bs.modal')
|
var data = $this.data('bs.modal')
|
||||||
var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
|
var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
|
||||||
|
|
||||||
if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
|
if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
|
||||||
|
@ -1200,7 +1245,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
|
|
||||||
var old = $.fn.modal
|
var old = $.fn.modal
|
||||||
|
|
||||||
$.fn.modal = Plugin
|
$.fn.modal = Plugin
|
||||||
$.fn.modal.Constructor = Modal
|
$.fn.modal.Constructor = Modal
|
||||||
|
|
||||||
|
|
||||||
|
@ -1217,10 +1262,13 @@ if (typeof jQuery === 'undefined') {
|
||||||
// ==============
|
// ==============
|
||||||
|
|
||||||
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
|
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
|
||||||
var $this = $(this)
|
var $this = $(this)
|
||||||
var href = $this.attr('href')
|
var href = $this.attr('href')
|
||||||
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
|
var target = $this.attr('data-target') ||
|
||||||
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
(href && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
|
||||||
|
|
||||||
|
var $target = $(document).find(target)
|
||||||
|
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
||||||
|
|
||||||
if ($this.is('a')) e.preventDefault()
|
if ($this.is('a')) e.preventDefault()
|
||||||
|
|
||||||
|
@ -1236,18 +1284,148 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: tooltip.js v3.3.7
|
* Bootstrap: tooltip.js v3.4.1
|
||||||
* http://getbootstrap.com/javascript/#tooltip
|
* https://getbootstrap.com/docs/3.4/javascript/#tooltip
|
||||||
* Inspired by the original jQuery.tipsy by Jason Frame
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
|
||||||
+function ($) {
|
+function ($) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']
|
||||||
|
|
||||||
|
var uriAttrs = [
|
||||||
|
'background',
|
||||||
|
'cite',
|
||||||
|
'href',
|
||||||
|
'itemtype',
|
||||||
|
'longdesc',
|
||||||
|
'poster',
|
||||||
|
'src',
|
||||||
|
'xlink:href'
|
||||||
|
]
|
||||||
|
|
||||||
|
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i
|
||||||
|
|
||||||
|
var DefaultWhitelist = {
|
||||||
|
// Global attributes allowed on any supplied element below.
|
||||||
|
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
|
||||||
|
a: ['target', 'href', 'title', 'rel'],
|
||||||
|
area: [],
|
||||||
|
b: [],
|
||||||
|
br: [],
|
||||||
|
col: [],
|
||||||
|
code: [],
|
||||||
|
div: [],
|
||||||
|
em: [],
|
||||||
|
hr: [],
|
||||||
|
h1: [],
|
||||||
|
h2: [],
|
||||||
|
h3: [],
|
||||||
|
h4: [],
|
||||||
|
h5: [],
|
||||||
|
h6: [],
|
||||||
|
i: [],
|
||||||
|
img: ['src', 'alt', 'title', 'width', 'height'],
|
||||||
|
li: [],
|
||||||
|
ol: [],
|
||||||
|
p: [],
|
||||||
|
pre: [],
|
||||||
|
s: [],
|
||||||
|
small: [],
|
||||||
|
span: [],
|
||||||
|
sub: [],
|
||||||
|
sup: [],
|
||||||
|
strong: [],
|
||||||
|
u: [],
|
||||||
|
ul: []
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A pattern that recognizes a commonly useful subset of URLs that are safe.
|
||||||
|
*
|
||||||
|
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
|
||||||
|
*/
|
||||||
|
var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A pattern that matches safe data URLs. Only matches image, video and audio types.
|
||||||
|
*
|
||||||
|
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
|
||||||
|
*/
|
||||||
|
var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i
|
||||||
|
|
||||||
|
function allowedAttribute(attr, allowedAttributeList) {
|
||||||
|
var attrName = attr.nodeName.toLowerCase()
|
||||||
|
|
||||||
|
if ($.inArray(attrName, allowedAttributeList) !== -1) {
|
||||||
|
if ($.inArray(attrName, uriAttrs) !== -1) {
|
||||||
|
return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
var regExp = $(allowedAttributeList).filter(function (index, value) {
|
||||||
|
return value instanceof RegExp
|
||||||
|
})
|
||||||
|
|
||||||
|
// Check if a regular expression validates the attribute.
|
||||||
|
for (var i = 0, l = regExp.length; i < l; i++) {
|
||||||
|
if (attrName.match(regExp[i])) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
|
||||||
|
if (unsafeHtml.length === 0) {
|
||||||
|
return unsafeHtml
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sanitizeFn && typeof sanitizeFn === 'function') {
|
||||||
|
return sanitizeFn(unsafeHtml)
|
||||||
|
}
|
||||||
|
|
||||||
|
// IE 8 and below don't support createHTMLDocument
|
||||||
|
if (!document.implementation || !document.implementation.createHTMLDocument) {
|
||||||
|
return unsafeHtml
|
||||||
|
}
|
||||||
|
|
||||||
|
var createdDocument = document.implementation.createHTMLDocument('sanitization')
|
||||||
|
createdDocument.body.innerHTML = unsafeHtml
|
||||||
|
|
||||||
|
var whitelistKeys = $.map(whiteList, function (el, i) { return i })
|
||||||
|
var elements = $(createdDocument.body).find('*')
|
||||||
|
|
||||||
|
for (var i = 0, len = elements.length; i < len; i++) {
|
||||||
|
var el = elements[i]
|
||||||
|
var elName = el.nodeName.toLowerCase()
|
||||||
|
|
||||||
|
if ($.inArray(elName, whitelistKeys) === -1) {
|
||||||
|
el.parentNode.removeChild(el)
|
||||||
|
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
var attributeList = $.map(el.attributes, function (el) { return el })
|
||||||
|
var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])
|
||||||
|
|
||||||
|
for (var j = 0, len2 = attributeList.length; j < len2; j++) {
|
||||||
|
if (!allowedAttribute(attributeList[j], whitelistedAttributes)) {
|
||||||
|
el.removeAttribute(attributeList[j].nodeName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return createdDocument.body.innerHTML
|
||||||
|
}
|
||||||
|
|
||||||
// TOOLTIP PUBLIC CLASS DEFINITION
|
// TOOLTIP PUBLIC CLASS DEFINITION
|
||||||
// ===============================
|
// ===============================
|
||||||
|
|
||||||
|
@ -1263,7 +1441,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
this.init('tooltip', element, options)
|
this.init('tooltip', element, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
Tooltip.VERSION = '3.3.7'
|
Tooltip.VERSION = '3.4.1'
|
||||||
|
|
||||||
Tooltip.TRANSITION_DURATION = 150
|
Tooltip.TRANSITION_DURATION = 150
|
||||||
|
|
||||||
|
@ -1280,7 +1458,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
viewport: {
|
viewport: {
|
||||||
selector: 'body',
|
selector: 'body',
|
||||||
padding: 0
|
padding: 0
|
||||||
}
|
},
|
||||||
|
sanitize : true,
|
||||||
|
sanitizeFn : null,
|
||||||
|
whiteList : DefaultWhitelist
|
||||||
}
|
}
|
||||||
|
|
||||||
Tooltip.prototype.init = function (type, element, options) {
|
Tooltip.prototype.init = function (type, element, options) {
|
||||||
|
@ -1288,7 +1469,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
this.type = type
|
this.type = type
|
||||||
this.$element = $(element)
|
this.$element = $(element)
|
||||||
this.options = this.getOptions(options)
|
this.options = this.getOptions(options)
|
||||||
this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
|
this.$viewport = this.options.viewport && $(document).find($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
|
||||||
this.inState = { click: false, hover: false, focus: false }
|
this.inState = { click: false, hover: false, focus: false }
|
||||||
|
|
||||||
if (this.$element[0] instanceof document.constructor && !this.options.selector) {
|
if (this.$element[0] instanceof document.constructor && !this.options.selector) {
|
||||||
|
@ -1321,7 +1502,15 @@ if (typeof jQuery === 'undefined') {
|
||||||
}
|
}
|
||||||
|
|
||||||
Tooltip.prototype.getOptions = function (options) {
|
Tooltip.prototype.getOptions = function (options) {
|
||||||
options = $.extend({}, this.getDefaults(), this.$element.data(), options)
|
var dataAttributes = this.$element.data()
|
||||||
|
|
||||||
|
for (var dataAttr in dataAttributes) {
|
||||||
|
if (dataAttributes.hasOwnProperty(dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {
|
||||||
|
delete dataAttributes[dataAttr]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
options = $.extend({}, this.getDefaults(), dataAttributes, options)
|
||||||
|
|
||||||
if (options.delay && typeof options.delay == 'number') {
|
if (options.delay && typeof options.delay == 'number') {
|
||||||
options.delay = {
|
options.delay = {
|
||||||
|
@ -1330,6 +1519,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options.sanitize) {
|
||||||
|
options.template = sanitizeHtml(options.template, options.whiteList, options.sanitizeFn)
|
||||||
|
}
|
||||||
|
|
||||||
return options
|
return options
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1441,7 +1634,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
.addClass(placement)
|
.addClass(placement)
|
||||||
.data('bs.' + this.type, this)
|
.data('bs.' + this.type, this)
|
||||||
|
|
||||||
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
|
this.options.container ? $tip.appendTo($(document).find(this.options.container)) : $tip.insertAfter(this.$element)
|
||||||
this.$element.trigger('inserted.bs.' + this.type)
|
this.$element.trigger('inserted.bs.' + this.type)
|
||||||
|
|
||||||
var pos = this.getPosition()
|
var pos = this.getPosition()
|
||||||
|
@ -1543,7 +1736,16 @@ if (typeof jQuery === 'undefined') {
|
||||||
var $tip = this.tip()
|
var $tip = this.tip()
|
||||||
var title = this.getTitle()
|
var title = this.getTitle()
|
||||||
|
|
||||||
$tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
|
if (this.options.html) {
|
||||||
|
if (this.options.sanitize) {
|
||||||
|
title = sanitizeHtml(title, this.options.whiteList, this.options.sanitizeFn)
|
||||||
|
}
|
||||||
|
|
||||||
|
$tip.find('.tooltip-inner').html(title)
|
||||||
|
} else {
|
||||||
|
$tip.find('.tooltip-inner').text(title)
|
||||||
|
}
|
||||||
|
|
||||||
$tip.removeClass('fade in top bottom left right')
|
$tip.removeClass('fade in top bottom left right')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1724,6 +1926,9 @@ if (typeof jQuery === 'undefined') {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Tooltip.prototype.sanitizeHtml = function (unsafeHtml) {
|
||||||
|
return sanitizeHtml(unsafeHtml, this.options.whiteList, this.options.sanitizeFn)
|
||||||
|
}
|
||||||
|
|
||||||
// TOOLTIP PLUGIN DEFINITION
|
// TOOLTIP PLUGIN DEFINITION
|
||||||
// =========================
|
// =========================
|
||||||
|
@ -1757,10 +1962,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: popover.js v3.3.7
|
* Bootstrap: popover.js v3.4.1
|
||||||
* http://getbootstrap.com/javascript/#popovers
|
* https://getbootstrap.com/docs/3.4/javascript/#popovers
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -1777,7 +1982,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
|
|
||||||
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
||||||
|
|
||||||
Popover.VERSION = '3.3.7'
|
Popover.VERSION = '3.4.1'
|
||||||
|
|
||||||
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
||||||
placement: 'right',
|
placement: 'right',
|
||||||
|
@ -1803,10 +2008,25 @@ if (typeof jQuery === 'undefined') {
|
||||||
var title = this.getTitle()
|
var title = this.getTitle()
|
||||||
var content = this.getContent()
|
var content = this.getContent()
|
||||||
|
|
||||||
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
|
if (this.options.html) {
|
||||||
$tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
|
var typeContent = typeof content
|
||||||
this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
|
|
||||||
](content)
|
if (this.options.sanitize) {
|
||||||
|
title = this.sanitizeHtml(title)
|
||||||
|
|
||||||
|
if (typeContent === 'string') {
|
||||||
|
content = this.sanitizeHtml(content)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$tip.find('.popover-title').html(title)
|
||||||
|
$tip.find('.popover-content').children().detach().end()[
|
||||||
|
typeContent === 'string' ? 'html' : 'append'
|
||||||
|
](content)
|
||||||
|
} else {
|
||||||
|
$tip.find('.popover-title').text(title)
|
||||||
|
$tip.find('.popover-content').children().detach().end().text(content)
|
||||||
|
}
|
||||||
|
|
||||||
$tip.removeClass('fade top bottom left right in')
|
$tip.removeClass('fade top bottom left right in')
|
||||||
|
|
||||||
|
@ -1825,8 +2045,8 @@ if (typeof jQuery === 'undefined') {
|
||||||
|
|
||||||
return $e.attr('data-content')
|
return $e.attr('data-content')
|
||||||
|| (typeof o.content == 'function' ?
|
|| (typeof o.content == 'function' ?
|
||||||
o.content.call($e[0]) :
|
o.content.call($e[0]) :
|
||||||
o.content)
|
o.content)
|
||||||
}
|
}
|
||||||
|
|
||||||
Popover.prototype.arrow = function () {
|
Popover.prototype.arrow = function () {
|
||||||
|
@ -1866,10 +2086,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: scrollspy.js v3.3.7
|
* Bootstrap: scrollspy.js v3.4.1
|
||||||
* http://getbootstrap.com/javascript/#scrollspy
|
* https://getbootstrap.com/docs/3.4/javascript/#scrollspy
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -1895,7 +2115,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
this.process()
|
this.process()
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollSpy.VERSION = '3.3.7'
|
ScrollSpy.VERSION = '3.4.1'
|
||||||
|
|
||||||
ScrollSpy.DEFAULTS = {
|
ScrollSpy.DEFAULTS = {
|
||||||
offset: 10
|
offset: 10
|
||||||
|
@ -2039,10 +2259,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: tab.js v3.3.7
|
* Bootstrap: tab.js v3.4.1
|
||||||
* http://getbootstrap.com/javascript/#tabs
|
* https://getbootstrap.com/docs/3.4/javascript/#tabs
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -2059,7 +2279,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
// jscs:enable requireDollarBeforejQueryAssignment
|
// jscs:enable requireDollarBeforejQueryAssignment
|
||||||
}
|
}
|
||||||
|
|
||||||
Tab.VERSION = '3.3.7'
|
Tab.VERSION = '3.4.1'
|
||||||
|
|
||||||
Tab.TRANSITION_DURATION = 150
|
Tab.TRANSITION_DURATION = 150
|
||||||
|
|
||||||
|
@ -2088,7 +2308,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
|
|
||||||
if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
|
if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
|
||||||
|
|
||||||
var $target = $(selector)
|
var $target = $(document).find(selector)
|
||||||
|
|
||||||
this.activate($this.closest('li'), $ul)
|
this.activate($this.closest('li'), $ul)
|
||||||
this.activate($target, $target.parent(), function () {
|
this.activate($target, $target.parent(), function () {
|
||||||
|
@ -2113,15 +2333,15 @@ if (typeof jQuery === 'undefined') {
|
||||||
$active
|
$active
|
||||||
.removeClass('active')
|
.removeClass('active')
|
||||||
.find('> .dropdown-menu > .active')
|
.find('> .dropdown-menu > .active')
|
||||||
.removeClass('active')
|
.removeClass('active')
|
||||||
.end()
|
.end()
|
||||||
.find('[data-toggle="tab"]')
|
.find('[data-toggle="tab"]')
|
||||||
.attr('aria-expanded', false)
|
.attr('aria-expanded', false)
|
||||||
|
|
||||||
element
|
element
|
||||||
.addClass('active')
|
.addClass('active')
|
||||||
.find('[data-toggle="tab"]')
|
.find('[data-toggle="tab"]')
|
||||||
.attr('aria-expanded', true)
|
.attr('aria-expanded', true)
|
||||||
|
|
||||||
if (transition) {
|
if (transition) {
|
||||||
element[0].offsetWidth // reflow for transition
|
element[0].offsetWidth // reflow for transition
|
||||||
|
@ -2133,10 +2353,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
if (element.parent('.dropdown-menu').length) {
|
if (element.parent('.dropdown-menu').length) {
|
||||||
element
|
element
|
||||||
.closest('li.dropdown')
|
.closest('li.dropdown')
|
||||||
.addClass('active')
|
.addClass('active')
|
||||||
.end()
|
.end()
|
||||||
.find('[data-toggle="tab"]')
|
.find('[data-toggle="tab"]')
|
||||||
.attr('aria-expanded', true)
|
.attr('aria-expanded', true)
|
||||||
}
|
}
|
||||||
|
|
||||||
callback && callback()
|
callback && callback()
|
||||||
|
@ -2195,10 +2415,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: affix.js v3.3.7
|
* Bootstrap: affix.js v3.4.1
|
||||||
* http://getbootstrap.com/javascript/#affix
|
* https://getbootstrap.com/docs/3.4/javascript/#affix
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -2212,7 +2432,9 @@ if (typeof jQuery === 'undefined') {
|
||||||
var Affix = function (element, options) {
|
var Affix = function (element, options) {
|
||||||
this.options = $.extend({}, Affix.DEFAULTS, options)
|
this.options = $.extend({}, Affix.DEFAULTS, options)
|
||||||
|
|
||||||
this.$target = $(this.options.target)
|
var target = this.options.target === Affix.DEFAULTS.target ? $(this.options.target) : $(document).find(this.options.target)
|
||||||
|
|
||||||
|
this.$target = target
|
||||||
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
|
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
|
||||||
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
|
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
|
||||||
|
|
||||||
|
@ -2224,7 +2446,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
this.checkPosition()
|
this.checkPosition()
|
||||||
}
|
}
|
||||||
|
|
||||||
Affix.VERSION = '3.3.7'
|
Affix.VERSION = '3.4.1'
|
||||||
|
|
||||||
Affix.RESET = 'affix affix-top affix-bottom'
|
Affix.RESET = 'affix affix-top affix-bottom'
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,3 +1,106 @@
|
||||||
|
/* dataset polyfill for IE < 11 */
|
||||||
|
(function datasetModule(global, definition) { // non-exporting module magic dance
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var
|
||||||
|
amd = 'amd',
|
||||||
|
exports = 'exports'; // keeps the method names for CommonJS / AMD from being compiled to single character variable
|
||||||
|
|
||||||
|
if (typeof define === 'function' && define[amd]) {
|
||||||
|
define(function definer() {
|
||||||
|
return definition(global);
|
||||||
|
});
|
||||||
|
} else if (typeof module === 'function' && module[exports]) {
|
||||||
|
module[exports] = definition(global);
|
||||||
|
} else {
|
||||||
|
definition(global);
|
||||||
|
}
|
||||||
|
}(this, function datasetPolyfill(global) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var
|
||||||
|
attribute,
|
||||||
|
attributes,
|
||||||
|
counter,
|
||||||
|
dash,
|
||||||
|
dataRegEx,
|
||||||
|
document = global.document,
|
||||||
|
hasEventListener,
|
||||||
|
length,
|
||||||
|
match,
|
||||||
|
mutationSupport,
|
||||||
|
test = document.createElement('_'),
|
||||||
|
DOMAttrModified = 'DOMAttrModified';
|
||||||
|
|
||||||
|
function clearDataset(event) {
|
||||||
|
delete event.target._datasetCache;
|
||||||
|
}
|
||||||
|
|
||||||
|
function toCamelCase(string) {
|
||||||
|
return string.replace(dash, function (m, letter) {
|
||||||
|
return letter.toUpperCase();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getDataset() {
|
||||||
|
var
|
||||||
|
dataset = {};
|
||||||
|
|
||||||
|
attributes = this.attributes;
|
||||||
|
for (counter = 0, length = attributes.length; counter < length; counter += 1) {
|
||||||
|
attribute = attributes[counter];
|
||||||
|
match = attribute.name.match(dataRegEx);
|
||||||
|
if (match) {
|
||||||
|
dataset[toCamelCase(match[1])] = attribute.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dataset;
|
||||||
|
}
|
||||||
|
|
||||||
|
function mutation() {
|
||||||
|
if (hasEventListener) {
|
||||||
|
test.removeEventListener(DOMAttrModified, mutation, false);
|
||||||
|
} else {
|
||||||
|
test.detachEvent('on' + DOMAttrModified, mutation);
|
||||||
|
}
|
||||||
|
|
||||||
|
mutationSupport = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (test.dataset !== undefined) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dash = /\-([a-z])/ig;
|
||||||
|
dataRegEx = /^data\-(.+)/;
|
||||||
|
hasEventListener = !!document.addEventListener;
|
||||||
|
mutationSupport = false;
|
||||||
|
|
||||||
|
if (hasEventListener) {
|
||||||
|
test.addEventListener(DOMAttrModified, mutation, false);
|
||||||
|
} else {
|
||||||
|
test.attachEvent('on' + DOMAttrModified, mutation);
|
||||||
|
}
|
||||||
|
|
||||||
|
// trigger event (if supported)
|
||||||
|
test.setAttribute('foo', 'bar');
|
||||||
|
|
||||||
|
Object.defineProperty(global.Element.prototype, 'dataset', {
|
||||||
|
get: mutationSupport
|
||||||
|
? function get() {
|
||||||
|
if (!this._datasetCache) {
|
||||||
|
this._datasetCache = getDataset.call(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this._datasetCache;
|
||||||
|
} : getDataset
|
||||||
|
});
|
||||||
|
|
||||||
|
if (mutationSupport && hasEventListener) { // < IE9 supports neither
|
||||||
|
document.addEventListener(DOMAttrModified, clearDataset, false);
|
||||||
|
}
|
||||||
|
}));
|
||||||
$.fn.size= function(){
|
$.fn.size= function(){
|
||||||
return this.length;
|
return this.length;
|
||||||
}
|
}
|
||||||
|
@ -8,6 +111,7 @@ $.fn.find= function( selector ) {
|
||||||
var i, ret,
|
var i, ret,
|
||||||
len = this.length,
|
len = this.length,
|
||||||
self = this;
|
self = this;
|
||||||
|
|
||||||
if ( typeof selector !== "string" ) {
|
if ( typeof selector !== "string" ) {
|
||||||
return this.pushStack( jQuery( selector ).filter( function() {
|
return this.pushStack( jQuery( selector ).filter( function() {
|
||||||
for ( i = 0; i < len; i++ ) {
|
for ( i = 0; i < len; i++ ) {
|
||||||
|
@ -17,6 +121,7 @@ $.fn.find= function( selector ) {
|
||||||
}
|
}
|
||||||
} ) );
|
} ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = this.pushStack( [] );
|
ret = this.pushStack( [] );
|
||||||
if (selector != '\#'){
|
if (selector != '\#'){
|
||||||
for ( i = 0; i < len; i++ ) {
|
for ( i = 0; i < len; i++ ) {
|
||||||
|
@ -26,8 +131,10 @@ $.fn.find= function( selector ) {
|
||||||
else{
|
else{
|
||||||
jQuery.find( document, self[ i ], ret );
|
jQuery.find( document, self[ i ], ret );
|
||||||
}
|
}
|
||||||
|
|
||||||
return len > 1 ? jQuery.uniqueSort( ret ) : ret;
|
return len > 1 ? jQuery.uniqueSort( ret ) : ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
$.event.props = ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " +
|
$.event.props = ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " +
|
||||||
"metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " )
|
"metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " )
|
||||||
$.fn.load= function( url, params, callback ){
|
$.fn.load= function( url, params, callback ){
|
||||||
|
@ -70,9 +177,11 @@ function migrateWarnFunc( obj, prop, newFunc, msg ) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if ( jQuery.ajax ) {
|
if ( jQuery.ajax ) {
|
||||||
|
|
||||||
var oldAjax = jQuery.ajax;
|
var oldAjax = jQuery.ajax;
|
||||||
jQuery.ajax = function( ) {
|
jQuery.ajax = function( ) {
|
||||||
var jQXHR = oldAjax.apply( this, arguments );
|
var jQXHR = oldAjax.apply( this, arguments );
|
||||||
|
|
||||||
// Be sure we got a jQXHR (e.g., not sync)
|
// Be sure we got a jQXHR (e.g., not sync)
|
||||||
if ( jQXHR.promise ) {
|
if ( jQXHR.promise ) {
|
||||||
migrateWarnFunc( jQXHR, "success", jQXHR.done,
|
migrateWarnFunc( jQXHR, "success", jQXHR.done,
|
||||||
|
@ -82,13 +191,14 @@ if ( jQuery.ajax ) {
|
||||||
migrateWarnFunc( jQXHR, "complete", jQXHR.always,
|
migrateWarnFunc( jQXHR, "complete", jQXHR.always,
|
||||||
"jQXHR.complete is deprecated and removed" );
|
"jQXHR.complete is deprecated and removed" );
|
||||||
}
|
}
|
||||||
|
|
||||||
return jQXHR;
|
return jQXHR;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
$(function(){
|
$(function(){
|
||||||
$('input[type!="checkbox"],textarea').not('[type="submit"],[type=radio]').on('focus', function() {
|
$('input[type!="checkbox"],textarea').not('[type="submit"],[type=radio]').on('focus', function() {
|
||||||
$([document.documentElement, document.body]).animate({
|
$([document.documentElement, document.body]).animate({
|
||||||
scrollTop: $(this).offset().top -200
|
scrollTop: $(this).offset().top -$(window).outerHeight()/2
|
||||||
}, 100);
|
}, 100);
|
||||||
});
|
});
|
||||||
$.each($('input[type="text"][placeholder]'),function(i,v){
|
$.each($('input[type="text"][placeholder]'),function(i,v){
|
||||||
|
|
Loading…
Reference in New Issue