All checks were successful
Deploy previews (main_*) / preview (push) Successful in 10s
1575 lines
57 KiB
JavaScript
1575 lines
57 KiB
JavaScript
/******/ (function(modules) { // webpackBootstrap
|
||
/******/ // The module cache
|
||
/******/ var installedModules = {};
|
||
/******/
|
||
/******/ // The require function
|
||
/******/ function __webpack_require__(moduleId) {
|
||
/******/
|
||
/******/ // Check if module is in cache
|
||
/******/ if(installedModules[moduleId]) {
|
||
/******/ return installedModules[moduleId].exports;
|
||
/******/ }
|
||
/******/ // Create a new module (and put it into the cache)
|
||
/******/ var module = installedModules[moduleId] = {
|
||
/******/ i: moduleId,
|
||
/******/ l: false,
|
||
/******/ exports: {}
|
||
/******/ };
|
||
/******/
|
||
/******/ // Execute the module function
|
||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||
/******/
|
||
/******/ // Flag the module as loaded
|
||
/******/ module.l = true;
|
||
/******/
|
||
/******/ // Return the exports of the module
|
||
/******/ return module.exports;
|
||
/******/ }
|
||
/******/
|
||
/******/
|
||
/******/ // expose the modules object (__webpack_modules__)
|
||
/******/ __webpack_require__.m = modules;
|
||
/******/
|
||
/******/ // expose the module cache
|
||
/******/ __webpack_require__.c = installedModules;
|
||
/******/
|
||
/******/ // define getter function for harmony exports
|
||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||
/******/ Object.defineProperty(exports, name, {
|
||
/******/ configurable: false,
|
||
/******/ enumerable: true,
|
||
/******/ get: getter
|
||
/******/ });
|
||
/******/ }
|
||
/******/ };
|
||
/******/
|
||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||
/******/ __webpack_require__.n = function(module) {
|
||
/******/ var getter = module && module.__esModule ?
|
||
/******/ function getDefault() { return module['default']; } :
|
||
/******/ function getModuleExports() { return module; };
|
||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||
/******/ return getter;
|
||
/******/ };
|
||
/******/
|
||
/******/ // Object.prototype.hasOwnProperty.call
|
||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||
/******/
|
||
/******/ // __webpack_public_path__
|
||
/******/ __webpack_require__.p = "/";
|
||
/******/
|
||
/******/ // Load entry module and return exports
|
||
/******/ return __webpack_require__(__webpack_require__.s = 0);
|
||
/******/ })
|
||
/************************************************************************/
|
||
/******/ ([
|
||
/* 0 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
__webpack_require__(1);
|
||
module.exports = __webpack_require__(3);
|
||
|
||
|
||
/***/ }),
|
||
/* 1 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/**
|
||
* First we will load all of this project's JavaScript dependencies which
|
||
* includes Vue and other libraries. It is a great starting point when
|
||
* building robust, powerful web applications using Vue and Laravel.
|
||
*/
|
||
|
||
// require('./bootstrap');
|
||
__webpack_require__(2);
|
||
// window.Vue = require('vue');
|
||
|
||
/**
|
||
* Next, we will create a fresh Vue application instance and attach it to
|
||
* the page. Then, you may begin adding components to this application
|
||
* or customize the JavaScript scaffolding to fit your unique needs.
|
||
*/
|
||
|
||
//Vue.component('example-component', require('./components/ExampleComponent.vue'));
|
||
|
||
// const app = new Vue({
|
||
// el: '#app'
|
||
// });
|
||
|
||
$('#checkbox_all').on('ifChecked ifUnchecked', function (event) {
|
||
if (event.type == 'ifChecked') {
|
||
$('input.checkbox:not(:disabled)').iCheck('check');
|
||
} else {
|
||
$('input.checkbox:not(:disabled)').iCheck('uncheck');
|
||
}
|
||
});
|
||
|
||
$('#delete').on('click', function () {
|
||
$.confirm({
|
||
title: '確認ダイアログ。',
|
||
content: '!※※※このレコードは他のテーブルから参照されている可能性があります。削除の際は十分注意してください。\n' + '※※※ チェックボックスにて選択したレコードを削除してよろしいでしょうか?はい/いいえ',
|
||
buttons: {
|
||
ok: {
|
||
text: "はい",
|
||
btnClass: 'btn-primary',
|
||
keys: ['enter'],
|
||
action: function action() {
|
||
$("#form_delete").submit();
|
||
}
|
||
},
|
||
いいえ: function _() {}
|
||
}
|
||
});
|
||
});
|
||
$('#import_csv').on('click', function () {
|
||
var action = $(this).attr('action'),
|
||
token = $('meta[name="csrf-token"]').attr('content');
|
||
$.confirm({
|
||
title: 'インポート確認ダイアログ。',
|
||
content: '' + '<form action="' + action + '" class="formName" id="form_import" method="post" enctype="multipart/form-data">' + '<input type="hidden" name="_token" value="' + token + '" />' + '<p>!データをインポートします。既存のデータは全て削除します。継続してよろしいですか? はい/いいえ。</p>' + '<div class="form-group">' + '<input type="file" name="file" accept=".csv" />' + '</div>' + '</form>',
|
||
buttons: {
|
||
formSubmit: {
|
||
text: 'はい',
|
||
btnClass: 'btn-blue',
|
||
action: function action() {
|
||
$("#form_import").submit();
|
||
}
|
||
},
|
||
いいえ: function _() {
|
||
//close
|
||
}
|
||
}
|
||
});
|
||
});
|
||
|
||
$('#export_csv').on('click', function () {
|
||
var _action = $(this).attr('action'),
|
||
user_id = $('#user_id').val(),
|
||
member_id = $('#member_id').val(),
|
||
user_tag_serial = $('#user_tag_serial').val(),
|
||
user_phonetic = $('#user_phonetic').val(),
|
||
phone = $('#phone').val(),
|
||
crime = $('#crime').val(),
|
||
sort = $('#sort').val(),
|
||
sort_type = $('#sort_type').val();
|
||
$.confirm({
|
||
title: '確認ダイアログ。',
|
||
content: '!CSVファイルを出力します。よろしいですか?はい/いいえ',
|
||
buttons: {
|
||
ok: {
|
||
text: "はい",
|
||
btnClass: 'btn-primary',
|
||
keys: ['enter'],
|
||
action: function action() {
|
||
window.location.href = _action + '?user_id=' + user_id + '&member_id=' + member_id + '&user_tag_serial=' + user_tag_serial + '&user_phonetic=' + user_phonetic + '&phone=' + phone + '&crime=' + crime + '&sort=' + sort + '&sort_type=' + sort_type + '&isExport=1';
|
||
}
|
||
},
|
||
いいえ: function _() {}
|
||
}
|
||
});
|
||
});
|
||
|
||
// for sorting
|
||
$('.table thead th.sorting').on('click', function (e) {
|
||
var sort = $(this).attr('sort');
|
||
var sort_type = 'asc';
|
||
if ($(this).hasClass('sorting_asc')) {
|
||
sort_type = 'desc';
|
||
}
|
||
$('input:hidden[name="sort"]').val(sort);
|
||
$('input:hidden[name="sort_type"]').val(sort_type);
|
||
$('form#list-form').submit();
|
||
});
|
||
|
||
$('.date').datepicker({
|
||
language: "ja",
|
||
format: "yyyy/mm/dd"
|
||
});
|
||
|
||
$('#select_user').on('change', function () {
|
||
var mobile = $('option:selected', this).attr('mobile'),
|
||
homePhone = $('option:selected', this).attr('homePhone');
|
||
$('#mobile').val(mobile);
|
||
$('#homephone').val(homePhone);
|
||
});
|
||
$('#select_user').trigger('change');
|
||
|
||
$('.register').on('click', function (e) {
|
||
e.preventDefault();
|
||
$.confirm({
|
||
title: '確認ダイアログ。',
|
||
content: '登録してよろしいですか?はい/いいえ',
|
||
buttons: {
|
||
ok: {
|
||
text: "はい",
|
||
btnClass: 'btn-primary',
|
||
keys: ['enter'],
|
||
action: function action() {
|
||
$("form").submit();
|
||
}
|
||
},
|
||
いいえ: function _() {}
|
||
}
|
||
});
|
||
});
|
||
|
||
/***/ }),
|
||
/* 2 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/*!
|
||
* jquery-confirm v3.3.2 (http://craftpip.github.io/jquery-confirm/)
|
||
* Author: Boniface Pereira
|
||
* Website: www.craftpip.com
|
||
* Contact: hey@craftpip.com
|
||
*
|
||
* Copyright 2013-2017 jquery-confirm
|
||
* Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE)
|
||
*/
|
||
|
||
if (typeof jQuery === 'undefined') {
|
||
throw new Error('jquery-confirm requires jQuery');
|
||
}
|
||
|
||
var jconfirm, Jconfirm;
|
||
(function ($, window) {
|
||
"use strict";
|
||
|
||
$.fn.confirm = function (options, option2) {
|
||
if (typeof options === 'undefined') options = {};
|
||
if (typeof options === 'string') {
|
||
options = {
|
||
content: options,
|
||
title: (option2) ? option2 : false
|
||
};
|
||
}
|
||
/*
|
||
* Alias of $.confirm to emulate native confirm()
|
||
*/
|
||
$(this).each(function () {
|
||
var $this = $(this);
|
||
if ($this.attr('jc-attached')) {
|
||
console.warn('jConfirm has already been attached to this element ', $this[0]);
|
||
return;
|
||
}
|
||
|
||
$this.on('click', function (e) {
|
||
e.preventDefault();
|
||
var jcOption = $.extend({}, options);
|
||
if ($this.attr('data-title'))
|
||
jcOption['title'] = $this.attr('data-title');
|
||
if ($this.attr('data-content'))
|
||
jcOption['content'] = $this.attr('data-content');
|
||
if (typeof jcOption['buttons'] == 'undefined')
|
||
jcOption['buttons'] = {};
|
||
|
||
jcOption['$target'] = $this;
|
||
if ($this.attr('href') && Object.keys(jcOption['buttons']).length == 0) {
|
||
var buttons = $.extend(true, {}, jconfirm.pluginDefaults.defaultButtons, (jconfirm.defaults || {}).defaultButtons || {});
|
||
var firstBtn = Object.keys(buttons)[0];
|
||
jcOption['buttons'] = buttons;
|
||
jcOption.buttons[firstBtn].action = function () {
|
||
location.href = $this.attr('href');
|
||
};
|
||
}
|
||
jcOption['closeIcon'] = false;
|
||
var instance = $.confirm(jcOption);
|
||
});
|
||
|
||
$this.attr('jc-attached', true);
|
||
});
|
||
return $(this);
|
||
};
|
||
$.confirm = function (options, option2) {
|
||
if (typeof options === 'undefined') options = {};
|
||
if (typeof options === 'string') {
|
||
options = {
|
||
content: options,
|
||
title: (option2) ? option2 : false
|
||
};
|
||
}
|
||
|
||
var putDefaultButtons = !(options['buttons'] == false);
|
||
|
||
if (typeof options['buttons'] != 'object')
|
||
options['buttons'] = {};
|
||
|
||
if (Object.keys(options['buttons']).length == 0 && putDefaultButtons) {
|
||
var buttons = $.extend(true, {}, jconfirm.pluginDefaults.defaultButtons, (jconfirm.defaults || {}).defaultButtons || {});
|
||
options['buttons'] = buttons;
|
||
}
|
||
|
||
/*
|
||
* Alias of jconfirm
|
||
*/
|
||
return jconfirm(options);
|
||
};
|
||
$.alert = function (options, option2) {
|
||
if (typeof options === 'undefined') options = {};
|
||
if (typeof options === 'string') {
|
||
options = {
|
||
content: options,
|
||
title: (option2) ? option2 : false
|
||
};
|
||
}
|
||
|
||
var putDefaultButtons = !(options['buttons'] == false);
|
||
|
||
if (typeof options.buttons != 'object')
|
||
options.buttons = {};
|
||
|
||
if (Object.keys(options['buttons']).length == 0 && putDefaultButtons) {
|
||
var buttons = $.extend(true, {}, jconfirm.pluginDefaults.defaultButtons, (jconfirm.defaults || {}).defaultButtons || {});
|
||
var firstBtn = Object.keys(buttons)[0];
|
||
options['buttons'][firstBtn] = buttons[firstBtn];
|
||
}
|
||
/*
|
||
* Alias of jconfirm
|
||
*/
|
||
return jconfirm(options);
|
||
};
|
||
$.dialog = function (options, option2) {
|
||
if (typeof options === 'undefined') options = {};
|
||
if (typeof options === 'string') {
|
||
options = {
|
||
content: options,
|
||
title: (option2) ? option2 : false,
|
||
closeIcon: function () {
|
||
// Just close the modal
|
||
}
|
||
};
|
||
}
|
||
|
||
options['buttons'] = {}; // purge buttons
|
||
|
||
if (typeof options['closeIcon'] == 'undefined') {
|
||
// Dialog must have a closeIcon.
|
||
options['closeIcon'] = function () {
|
||
}
|
||
}
|
||
/*
|
||
* Alias of jconfirm
|
||
*/
|
||
options.confirmKeys = [13];
|
||
return jconfirm(options);
|
||
};
|
||
|
||
jconfirm = function (options) {
|
||
if (typeof options === 'undefined') options = {};
|
||
/*
|
||
* initial function for calling.
|
||
*/
|
||
var pluginOptions = $.extend(true, {}, jconfirm.pluginDefaults);
|
||
if (jconfirm.defaults) {
|
||
pluginOptions = $.extend(true, pluginOptions, jconfirm.defaults);
|
||
}
|
||
|
||
/*
|
||
* merge options with plugin defaults.
|
||
*/
|
||
pluginOptions = $.extend(true, {}, pluginOptions, options);
|
||
var instance = new Jconfirm(pluginOptions);
|
||
jconfirm.instances.push(instance);
|
||
return instance;
|
||
};
|
||
Jconfirm = function (options) {
|
||
/*
|
||
* constructor function Jconfirm,
|
||
* options = user options.
|
||
*/
|
||
$.extend(this, options);
|
||
this._init();
|
||
};
|
||
Jconfirm.prototype = {
|
||
_init: function () {
|
||
var that = this;
|
||
|
||
if (!jconfirm.instances.length)
|
||
jconfirm.lastFocused = $('body').find(':focus');
|
||
|
||
this._id = Math.round(Math.random() * 99999);
|
||
/**
|
||
* contentParsed maintains the contents for $content, before it is put in DOM
|
||
*/
|
||
this.contentParsed = $(document.createElement('div'));
|
||
|
||
if (!this.lazyOpen) {
|
||
setTimeout(function () {
|
||
that.open();
|
||
}, 0);
|
||
}
|
||
},
|
||
_buildHTML: function () {
|
||
var that = this;
|
||
|
||
// prefix the animation string and store in animationParsed
|
||
this._parseAnimation(this.animation, 'o');
|
||
this._parseAnimation(this.closeAnimation, 'c');
|
||
this._parseBgDismissAnimation(this.backgroundDismissAnimation);
|
||
this._parseColumnClass(this.columnClass);
|
||
this._parseTheme(this.theme);
|
||
this._parseType(this.type);
|
||
|
||
/*
|
||
* Append html.
|
||
*/
|
||
var template = $(this.template);
|
||
template.find('.jconfirm-box').addClass(this.animationParsed).addClass(this.backgroundDismissAnimationParsed).addClass(this.typeParsed);
|
||
|
||
if (this.typeAnimated)
|
||
template.find('.jconfirm-box').addClass('jconfirm-type-animated');
|
||
|
||
if (this.useBootstrap) {
|
||
template.find('.jc-bs3-row').addClass(this.bootstrapClasses.row);
|
||
template.find('.jc-bs3-row').addClass('justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center');
|
||
|
||
template.find('.jconfirm-box-container').addClass(this.columnClassParsed);
|
||
|
||
if (this.containerFluid)
|
||
template.find('.jc-bs3-container').addClass(this.bootstrapClasses.containerFluid);
|
||
else
|
||
template.find('.jc-bs3-container').addClass(this.bootstrapClasses.container);
|
||
} else {
|
||
template.find('.jconfirm-box').css('width', this.boxWidth);
|
||
}
|
||
|
||
if (this.titleClass)
|
||
template.find('.jconfirm-title-c').addClass(this.titleClass);
|
||
|
||
template.addClass(this.themeParsed);
|
||
var ariaLabel = 'jconfirm-box' + this._id;
|
||
template.find('.jconfirm-box').attr('aria-labelledby', ariaLabel).attr('tabindex', -1);
|
||
template.find('.jconfirm-content').attr('id', ariaLabel);
|
||
if (this.bgOpacity !== null)
|
||
template.find('.jconfirm-bg').css('opacity', this.bgOpacity);
|
||
if (this.rtl)
|
||
template.addClass('jconfirm-rtl');
|
||
|
||
this.$el = template.appendTo(this.container);
|
||
this.$jconfirmBoxContainer = this.$el.find('.jconfirm-box-container');
|
||
this.$jconfirmBox = this.$body = this.$el.find('.jconfirm-box');
|
||
this.$jconfirmBg = this.$el.find('.jconfirm-bg');
|
||
this.$title = this.$el.find('.jconfirm-title');
|
||
this.$titleContainer = this.$el.find('.jconfirm-title-c');
|
||
this.$content = this.$el.find('div.jconfirm-content');
|
||
this.$contentPane = this.$el.find('.jconfirm-content-pane');
|
||
this.$icon = this.$el.find('.jconfirm-icon-c');
|
||
this.$closeIcon = this.$el.find('.jconfirm-closeIcon');
|
||
this.$holder = this.$el.find('.jconfirm-holder');
|
||
// this.$content.css(this._getCSS(this.animationSpeed, this.animationBounce));
|
||
this.$btnc = this.$el.find('.jconfirm-buttons');
|
||
this.$scrollPane = this.$el.find('.jconfirm-scrollpane');
|
||
|
||
that.setStartingPoint();
|
||
|
||
// for loading content via URL
|
||
this._contentReady = $.Deferred();
|
||
this._modalReady = $.Deferred();
|
||
this.$holder.css({
|
||
'padding-top': this.offsetTop,
|
||
'padding-bottom': this.offsetBottom,
|
||
});
|
||
|
||
this.setTitle();
|
||
this.setIcon();
|
||
this._setButtons();
|
||
this._parseContent();
|
||
this.initDraggable();
|
||
|
||
if (this.isAjax)
|
||
this.showLoading(false);
|
||
|
||
$.when(this._contentReady, this._modalReady).then(function () {
|
||
if (that.isAjaxLoading)
|
||
setTimeout(function () {
|
||
that.isAjaxLoading = false;
|
||
that.setContent();
|
||
that.setTitle();
|
||
that.setIcon();
|
||
setTimeout(function () {
|
||
that.hideLoading(false);
|
||
that._updateContentMaxHeight();
|
||
}, 100);
|
||
if (typeof that.onContentReady === 'function')
|
||
that.onContentReady();
|
||
}, 50);
|
||
else {
|
||
// that.setContent();
|
||
that._updateContentMaxHeight();
|
||
that.setTitle();
|
||
that.setIcon();
|
||
if (typeof that.onContentReady === 'function')
|
||
that.onContentReady();
|
||
}
|
||
|
||
// start countdown after content has loaded.
|
||
if (that.autoClose)
|
||
that._startCountDown();
|
||
});
|
||
|
||
this._watchContent();
|
||
|
||
if (this.animation === 'none') {
|
||
this.animationSpeed = 1;
|
||
this.animationBounce = 1;
|
||
}
|
||
|
||
this.$body.css(this._getCSS(this.animationSpeed, this.animationBounce));
|
||
this.$contentPane.css(this._getCSS(this.animationSpeed, 1));
|
||
this.$jconfirmBg.css(this._getCSS(this.animationSpeed, 1));
|
||
this.$jconfirmBoxContainer.css(this._getCSS(this.animationSpeed, 1));
|
||
},
|
||
_typePrefix: 'jconfirm-type-',
|
||
typeParsed: '',
|
||
_parseType: function (type) {
|
||
this.typeParsed = this._typePrefix + type;
|
||
},
|
||
setType: function (type) {
|
||
var oldClass = this.typeParsed;
|
||
this._parseType(type);
|
||
this.$jconfirmBox.removeClass(oldClass).addClass(this.typeParsed);
|
||
},
|
||
themeParsed: '',
|
||
_themePrefix: 'jconfirm-',
|
||
setTheme: function (theme) {
|
||
var previous = this.theme;
|
||
this.theme = theme || this.theme;
|
||
this._parseTheme(this.theme);
|
||
if (previous)
|
||
this.$el.removeClass(previous);
|
||
this.$el.addClass(this.themeParsed);
|
||
this.theme = theme;
|
||
},
|
||
_parseTheme: function (theme) {
|
||
var that = this;
|
||
theme = theme.split(',');
|
||
$.each(theme, function (k, a) {
|
||
if (a.indexOf(that._themePrefix) === -1)
|
||
theme[k] = that._themePrefix + $.trim(a);
|
||
});
|
||
this.themeParsed = theme.join(' ').toLowerCase();
|
||
},
|
||
backgroundDismissAnimationParsed: '',
|
||
_bgDismissPrefix: 'jconfirm-hilight-',
|
||
_parseBgDismissAnimation: function (bgDismissAnimation) {
|
||
var animation = bgDismissAnimation.split(',');
|
||
var that = this;
|
||
$.each(animation, function (k, a) {
|
||
if (a.indexOf(that._bgDismissPrefix) === -1)
|
||
animation[k] = that._bgDismissPrefix + $.trim(a);
|
||
});
|
||
this.backgroundDismissAnimationParsed = animation.join(' ').toLowerCase();
|
||
},
|
||
animationParsed: '',
|
||
closeAnimationParsed: '',
|
||
_animationPrefix: 'jconfirm-animation-',
|
||
setAnimation: function (animation) {
|
||
this.animation = animation || this.animation;
|
||
this._parseAnimation(this.animation, 'o');
|
||
},
|
||
_parseAnimation: function (animation, which) {
|
||
which = which || 'o'; // parse what animation and store where. open or close?
|
||
var animations = animation.split(',');
|
||
var that = this;
|
||
$.each(animations, function (k, a) {
|
||
if (a.indexOf(that._animationPrefix) === -1)
|
||
animations[k] = that._animationPrefix + $.trim(a);
|
||
});
|
||
var a_string = animations.join(' ').toLowerCase();
|
||
if (which === 'o')
|
||
this.animationParsed = a_string;
|
||
else
|
||
this.closeAnimationParsed = a_string;
|
||
|
||
return a_string;
|
||
},
|
||
setCloseAnimation: function (closeAnimation) {
|
||
this.closeAnimation = closeAnimation || this.closeAnimation;
|
||
this._parseAnimation(this.closeAnimation, 'c');
|
||
},
|
||
setAnimationSpeed: function (speed) {
|
||
this.animationSpeed = speed || this.animationSpeed;
|
||
// this.$body.css(this._getCSS(this.animationSpeed, this.animationBounce));
|
||
},
|
||
columnClassParsed: '',
|
||
setColumnClass: function (colClass) {
|
||
if (!this.useBootstrap) {
|
||
console.warn("cannot set columnClass, useBootstrap is set to false");
|
||
return;
|
||
}
|
||
this.columnClass = colClass || this.columnClass;
|
||
this._parseColumnClass(this.columnClass);
|
||
this.$jconfirmBoxContainer.addClass(this.columnClassParsed);
|
||
},
|
||
_updateContentMaxHeight: function () {
|
||
var height = $(window).height() - (this.$jconfirmBox.outerHeight() - this.$contentPane.outerHeight()) - (this.offsetTop + this.offsetBottom);
|
||
this.$contentPane.css({
|
||
'max-height': height + 'px'
|
||
});
|
||
},
|
||
setBoxWidth: function (width) {
|
||
if (this.useBootstrap) {
|
||
console.warn("cannot set boxWidth, useBootstrap is set to true");
|
||
return;
|
||
}
|
||
this.boxWidth = width;
|
||
this.$jconfirmBox.css('width', width);
|
||
},
|
||
_parseColumnClass: function (colClass) {
|
||
colClass = colClass.toLowerCase();
|
||
var p;
|
||
switch (colClass) {
|
||
case 'xl':
|
||
case 'xlarge':
|
||
p = 'col-md-12';
|
||
break;
|
||
case 'l':
|
||
case 'large':
|
||
p = 'col-md-8 col-md-offset-2';
|
||
break;
|
||
case 'm':
|
||
case 'medium':
|
||
p = 'col-md-6 col-md-offset-3';
|
||
break;
|
||
case 's':
|
||
case 'small':
|
||
p = 'col-md-4 col-md-offset-4';
|
||
break;
|
||
case 'xs':
|
||
case 'xsmall':
|
||
p = 'col-md-2 col-md-offset-5';
|
||
break;
|
||
default:
|
||
p = colClass;
|
||
}
|
||
this.columnClassParsed = p;
|
||
},
|
||
initDraggable: function () {
|
||
var that = this;
|
||
var $t = this.$titleContainer;
|
||
|
||
this.resetDrag();
|
||
if (this.draggable) {
|
||
$t.on('mousedown', function (e) {
|
||
$t.addClass('jconfirm-hand');
|
||
that.mouseX = e.clientX;
|
||
that.mouseY = e.clientY;
|
||
that.isDrag = true;
|
||
});
|
||
$(window).on('mousemove.' + this._id, function (e) {
|
||
if (that.isDrag) {
|
||
that.movingX = e.clientX - that.mouseX + that.initialX;
|
||
that.movingY = e.clientY - that.mouseY + that.initialY;
|
||
that.setDrag();
|
||
}
|
||
});
|
||
|
||
$(window).on('mouseup.' + this._id, function () {
|
||
$t.removeClass('jconfirm-hand');
|
||
if (that.isDrag) {
|
||
that.isDrag = false;
|
||
that.initialX = that.movingX;
|
||
that.initialY = that.movingY;
|
||
}
|
||
})
|
||
}
|
||
},
|
||
resetDrag: function () {
|
||
this.isDrag = false;
|
||
this.initialX = 0;
|
||
this.initialY = 0;
|
||
this.movingX = 0;
|
||
this.movingY = 0;
|
||
this.mouseX = 0;
|
||
this.mouseY = 0;
|
||
this.$jconfirmBoxContainer.css('transform', 'translate(' + 0 + 'px, ' + 0 + 'px)');
|
||
},
|
||
setDrag: function () {
|
||
if (!this.draggable)
|
||
return;
|
||
|
||
this.alignMiddle = false;
|
||
var boxWidth = this.$jconfirmBox.outerWidth();
|
||
var boxHeight = this.$jconfirmBox.outerHeight();
|
||
var windowWidth = $(window).width();
|
||
var windowHeight = $(window).height();
|
||
var that = this;
|
||
var dragUpdate = 1;
|
||
if (that.movingX % dragUpdate === 0 || that.movingY % dragUpdate === 0) {
|
||
if (that.dragWindowBorder) {
|
||
var leftDistance = (windowWidth / 2) - boxWidth / 2;
|
||
var topDistance = (windowHeight / 2) - boxHeight / 2;
|
||
topDistance -= that.dragWindowGap;
|
||
leftDistance -= that.dragWindowGap;
|
||
|
||
if (leftDistance + that.movingX < 0) {
|
||
that.movingX = -leftDistance;
|
||
} else if (leftDistance - that.movingX < 0) {
|
||
that.movingX = leftDistance;
|
||
}
|
||
|
||
if (topDistance + that.movingY < 0) {
|
||
that.movingY = -topDistance;
|
||
} else if (topDistance - that.movingY < 0) {
|
||
that.movingY = topDistance;
|
||
}
|
||
}
|
||
|
||
that.$jconfirmBoxContainer.css('transform', 'translate(' + that.movingX + 'px, ' + that.movingY + 'px)');
|
||
}
|
||
},
|
||
_scrollTop: function () {
|
||
if (typeof pageYOffset !== 'undefined') {
|
||
//most browsers except IE before #9
|
||
return pageYOffset;
|
||
}
|
||
else {
|
||
var B = document.body; //IE 'quirks'
|
||
var D = document.documentElement; //IE with doctype
|
||
D = (D.clientHeight) ? D : B;
|
||
return D.scrollTop;
|
||
}
|
||
},
|
||
_watchContent: function () {
|
||
var that = this;
|
||
if (this._timer) clearInterval(this._timer);
|
||
|
||
var prevContentHeight = 0;
|
||
this._timer = setInterval(function () {
|
||
if (that.smoothContent) {
|
||
var contentHeight = that.$content.outerHeight() || 0;
|
||
if (contentHeight !== prevContentHeight) {
|
||
that.$contentPane.css({
|
||
'height': contentHeight
|
||
}).scrollTop(0);
|
||
prevContentHeight = contentHeight;
|
||
}
|
||
var wh = $(window).height();
|
||
var total = that.offsetTop + that.offsetBottom + that.$jconfirmBox.height() - that.$contentPane.height() + that.$content.height();
|
||
if (total < wh) {
|
||
that.$contentPane.addClass('no-scroll');
|
||
} else {
|
||
that.$contentPane.removeClass('no-scroll');
|
||
}
|
||
}
|
||
}, this.watchInterval);
|
||
},
|
||
_overflowClass: 'jconfirm-overflow',
|
||
_hilightAnimating: false,
|
||
highlight: function () {
|
||
this.hiLightModal();
|
||
},
|
||
hiLightModal: function () {
|
||
var that = this;
|
||
if (this._hilightAnimating)
|
||
return;
|
||
|
||
that.$body.addClass('hilight');
|
||
var duration = parseFloat(that.$body.css('animation-duration')) || 2;
|
||
this._hilightAnimating = true;
|
||
setTimeout(function () {
|
||
that._hilightAnimating = false;
|
||
that.$body.removeClass('hilight');
|
||
}, duration * 1000);
|
||
},
|
||
_bindEvents: function () {
|
||
var that = this;
|
||
this.boxClicked = false;
|
||
|
||
this.$scrollPane.click(function (e) { // Ignore propagated clicks
|
||
if (!that.boxClicked) { // Background clicked
|
||
/*
|
||
If backgroundDismiss is a function and its return value is truthy
|
||
proceed to close the modal.
|
||
*/
|
||
var buttonName = false;
|
||
var shouldClose = false;
|
||
var str;
|
||
|
||
if (typeof that.backgroundDismiss == 'function')
|
||
str = that.backgroundDismiss();
|
||
else
|
||
str = that.backgroundDismiss;
|
||
|
||
if (typeof str == 'string' && typeof that.buttons[str] != 'undefined') {
|
||
buttonName = str;
|
||
shouldClose = false;
|
||
} else if (typeof str == 'undefined' || !!(str) == true) {
|
||
shouldClose = true;
|
||
} else {
|
||
shouldClose = false;
|
||
}
|
||
|
||
if (buttonName) {
|
||
var btnResponse = that.buttons[buttonName].action.apply(that);
|
||
shouldClose = (typeof btnResponse == 'undefined') || !!(btnResponse);
|
||
}
|
||
|
||
if (shouldClose)
|
||
that.close();
|
||
else
|
||
that.hiLightModal();
|
||
}
|
||
that.boxClicked = false;
|
||
});
|
||
|
||
this.$jconfirmBox.click(function (e) {
|
||
that.boxClicked = true;
|
||
});
|
||
|
||
var isKeyDown = false;
|
||
$(window).on('jcKeyDown.' + that._id, function (e) {
|
||
if (!isKeyDown) {
|
||
isKeyDown = true;
|
||
}
|
||
});
|
||
$(window).on('keyup.' + that._id, function (e) {
|
||
if (isKeyDown) {
|
||
that.reactOnKey(e);
|
||
isKeyDown = false;
|
||
}
|
||
});
|
||
|
||
$(window).on('resize.' + this._id, function () {
|
||
that._updateContentMaxHeight();
|
||
setTimeout(function () {
|
||
that.resetDrag();
|
||
}, 100);
|
||
});
|
||
},
|
||
_cubic_bezier: '0.36, 0.55, 0.19',
|
||
_getCSS: function (speed, bounce) {
|
||
return {
|
||
'-webkit-transition-duration': speed / 1000 + 's',
|
||
'transition-duration': speed / 1000 + 's',
|
||
'-webkit-transition-timing-function': 'cubic-bezier(' + this._cubic_bezier + ', ' + bounce + ')',
|
||
'transition-timing-function': 'cubic-bezier(' + this._cubic_bezier + ', ' + bounce + ')'
|
||
};
|
||
},
|
||
_setButtons: function () {
|
||
var that = this;
|
||
/*
|
||
* Settings up buttons
|
||
*/
|
||
|
||
var total_buttons = 0;
|
||
if (typeof this.buttons !== 'object')
|
||
this.buttons = {};
|
||
|
||
$.each(this.buttons, function (key, button) {
|
||
total_buttons += 1;
|
||
if (typeof button === 'function') {
|
||
that.buttons[key] = button = {
|
||
action: button
|
||
};
|
||
}
|
||
|
||
that.buttons[key].text = button.text || key;
|
||
that.buttons[key].btnClass = button.btnClass || 'btn-default';
|
||
that.buttons[key].action = button.action || function () {
|
||
};
|
||
that.buttons[key].keys = button.keys || [];
|
||
that.buttons[key].isHidden = button.isHidden || false;
|
||
that.buttons[key].isDisabled = button.isDisabled || false;
|
||
|
||
$.each(that.buttons[key].keys, function (i, a) {
|
||
that.buttons[key].keys[i] = a.toLowerCase();
|
||
});
|
||
|
||
var button_element = $('<button type="button" class="btn"></button>')
|
||
.html(that.buttons[key].text)
|
||
.addClass(that.buttons[key].btnClass)
|
||
.prop('disabled', that.buttons[key].isDisabled)
|
||
.css('display', that.buttons[key].isHidden ? 'none' : '')
|
||
.click(function (e) {
|
||
e.preventDefault();
|
||
var res = that.buttons[key].action.apply(that, [that.buttons[key]]);
|
||
that.onAction.apply(that, [key, that.buttons[key]]);
|
||
that._stopCountDown();
|
||
if (typeof res === 'undefined' || res)
|
||
that.close();
|
||
});
|
||
|
||
that.buttons[key].el = button_element;
|
||
that.buttons[key].setText = function (text) {
|
||
button_element.html(text);
|
||
};
|
||
that.buttons[key].addClass = function (className) {
|
||
button_element.addClass(className);
|
||
};
|
||
that.buttons[key].removeClass = function (className) {
|
||
button_element.removeClass(className);
|
||
};
|
||
that.buttons[key].disable = function () {
|
||
that.buttons[key].isDisabled = true;
|
||
button_element.prop('disabled', true);
|
||
};
|
||
that.buttons[key].enable = function () {
|
||
that.buttons[key].isDisabled = false;
|
||
button_element.prop('disabled', false);
|
||
};
|
||
that.buttons[key].show = function () {
|
||
that.buttons[key].isHidden = false;
|
||
button_element.css('display', '');
|
||
};
|
||
that.buttons[key].hide = function () {
|
||
that.buttons[key].isHidden = true;
|
||
button_element.css('display', 'none');
|
||
};
|
||
/*
|
||
Buttons are prefixed with $_ or $$ for quick access
|
||
*/
|
||
that['$_' + key] = that['$$' + key] = button_element;
|
||
that.$btnc.append(button_element);
|
||
});
|
||
|
||
if (total_buttons === 0) this.$btnc.hide();
|
||
if (this.closeIcon === null && total_buttons === 0) {
|
||
/*
|
||
in case when no buttons are present & closeIcon is null, closeIcon is set to true,
|
||
set closeIcon to true to explicitly tell to hide the close icon
|
||
*/
|
||
this.closeIcon = true;
|
||
}
|
||
|
||
if (this.closeIcon) {
|
||
if (this.closeIconClass) {
|
||
// user requires a custom class.
|
||
var closeHtml = '<i class="' + this.closeIconClass + '"></i>';
|
||
this.$closeIcon.html(closeHtml);
|
||
}
|
||
|
||
this.$closeIcon.click(function (e) {
|
||
e.preventDefault();
|
||
|
||
var buttonName = false;
|
||
var shouldClose = false;
|
||
var str;
|
||
|
||
if (typeof that.closeIcon == 'function') {
|
||
str = that.closeIcon();
|
||
} else {
|
||
str = that.closeIcon;
|
||
}
|
||
|
||
if (typeof str == 'string' && typeof that.buttons[str] != 'undefined') {
|
||
buttonName = str;
|
||
shouldClose = false;
|
||
} else if (typeof str == 'undefined' || !!(str) == true) {
|
||
shouldClose = true;
|
||
} else {
|
||
shouldClose = false;
|
||
}
|
||
if (buttonName) {
|
||
var btnResponse = that.buttons[buttonName].action.apply(that);
|
||
shouldClose = (typeof btnResponse == 'undefined') || !!(btnResponse);
|
||
}
|
||
if (shouldClose) {
|
||
that.close();
|
||
}
|
||
});
|
||
this.$closeIcon.show();
|
||
} else {
|
||
this.$closeIcon.hide();
|
||
}
|
||
},
|
||
setTitle: function (string, force) {
|
||
force = force || false;
|
||
|
||
if (typeof string !== 'undefined')
|
||
if (typeof string == 'string')
|
||
this.title = string;
|
||
else if (typeof string == 'function') {
|
||
if (typeof string.promise == 'function')
|
||
console.error('Promise was returned from title function, this is not supported.');
|
||
|
||
var response = string();
|
||
if (typeof response == 'string')
|
||
this.title = response;
|
||
else
|
||
this.title = false;
|
||
} else
|
||
this.title = false;
|
||
|
||
if (this.isAjaxLoading && !force)
|
||
return;
|
||
|
||
this.$title.html(this.title || '');
|
||
this.updateTitleContainer();
|
||
},
|
||
setIcon: function (iconClass, force) {
|
||
force = force || false;
|
||
|
||
if (typeof iconClass !== 'undefined')
|
||
if (typeof iconClass == 'string')
|
||
this.icon = iconClass;
|
||
else if (typeof iconClass === 'function') {
|
||
var response = iconClass();
|
||
if (typeof response == 'string')
|
||
this.icon = response;
|
||
else
|
||
this.icon = false;
|
||
}
|
||
else
|
||
this.icon = false;
|
||
|
||
if (this.isAjaxLoading && !force)
|
||
return;
|
||
|
||
this.$icon.html(this.icon ? '<i class="' + this.icon + '"></i>' : '');
|
||
this.updateTitleContainer();
|
||
},
|
||
updateTitleContainer: function () {
|
||
if (!this.title && !this.icon) {
|
||
this.$titleContainer.hide();
|
||
} else {
|
||
this.$titleContainer.show();
|
||
}
|
||
},
|
||
setContentPrepend: function (content, force) {
|
||
if (!content)
|
||
return;
|
||
|
||
this.contentParsed.prepend(content);
|
||
},
|
||
setContentAppend: function (content) {
|
||
if (!content)
|
||
return;
|
||
|
||
this.contentParsed.append(content);
|
||
},
|
||
setContent: function (content, force) {
|
||
force = !!force;
|
||
var that = this;
|
||
if (content)
|
||
this.contentParsed.html('').append(content);
|
||
if (this.isAjaxLoading && !force)
|
||
return;
|
||
|
||
this.$content.html('');
|
||
this.$content.append(this.contentParsed);
|
||
setTimeout(function () {
|
||
that.$body.find('input[autofocus]:visible:first').focus();
|
||
}, 100);
|
||
},
|
||
loadingSpinner: false,
|
||
showLoading: function (disableButtons) {
|
||
this.loadingSpinner = true;
|
||
this.$jconfirmBox.addClass('loading');
|
||
if (disableButtons)
|
||
this.$btnc.find('button').prop('disabled', true);
|
||
|
||
},
|
||
hideLoading: function (enableButtons) {
|
||
this.loadingSpinner = false;
|
||
this.$jconfirmBox.removeClass('loading');
|
||
if (enableButtons)
|
||
this.$btnc.find('button').prop('disabled', false);
|
||
|
||
},
|
||
ajaxResponse: false,
|
||
contentParsed: '',
|
||
isAjax: false,
|
||
isAjaxLoading: false,
|
||
_parseContent: function () {
|
||
var that = this;
|
||
var e = ' ';
|
||
|
||
if (typeof this.content == 'function') {
|
||
var res = this.content.apply(this);
|
||
if (typeof res == 'string') {
|
||
this.content = res;
|
||
}
|
||
else if (typeof res == 'object' && typeof res.always == 'function') {
|
||
// this is ajax loading via promise
|
||
this.isAjax = true;
|
||
this.isAjaxLoading = true;
|
||
res.always(function (data, status, xhr) {
|
||
that.ajaxResponse = {
|
||
data: data,
|
||
status: status,
|
||
xhr: xhr
|
||
};
|
||
that._contentReady.resolve(data, status, xhr);
|
||
if (typeof that.contentLoaded == 'function')
|
||
that.contentLoaded(data, status, xhr);
|
||
});
|
||
this.content = e;
|
||
} else {
|
||
this.content = e;
|
||
}
|
||
}
|
||
|
||
if (typeof this.content == 'string' && this.content.substr(0, 4).toLowerCase() === 'url:') {
|
||
this.isAjax = true;
|
||
this.isAjaxLoading = true;
|
||
var u = this.content.substring(4, this.content.length);
|
||
$.get(u).done(function (html) {
|
||
that.contentParsed.html(html);
|
||
}).always(function (data, status, xhr) {
|
||
that.ajaxResponse = {
|
||
data: data,
|
||
status: status,
|
||
xhr: xhr
|
||
};
|
||
that._contentReady.resolve(data, status, xhr);
|
||
if (typeof that.contentLoaded == 'function')
|
||
that.contentLoaded(data, status, xhr);
|
||
});
|
||
}
|
||
|
||
if (!this.content)
|
||
this.content = e;
|
||
|
||
if (!this.isAjax) {
|
||
this.contentParsed.html(this.content);
|
||
this.setContent();
|
||
that._contentReady.resolve();
|
||
}
|
||
},
|
||
_stopCountDown: function () {
|
||
clearInterval(this.autoCloseInterval);
|
||
if (this.$cd)
|
||
this.$cd.remove();
|
||
},
|
||
_startCountDown: function () {
|
||
var that = this;
|
||
var opt = this.autoClose.split('|');
|
||
if (opt.length !== 2) {
|
||
console.error('Invalid option for autoClose. example \'close|10000\'');
|
||
return false;
|
||
}
|
||
|
||
var button_key = opt[0];
|
||
var time = parseInt(opt[1]);
|
||
if (typeof this.buttons[button_key] === 'undefined') {
|
||
console.error('Invalid button key \'' + button_key + '\' for autoClose');
|
||
return false;
|
||
}
|
||
|
||
var seconds = Math.ceil(time / 1000);
|
||
this.$cd = $('<span class="countdown"> (' + seconds + ')</span>')
|
||
.appendTo(this['$_' + button_key]);
|
||
|
||
this.autoCloseInterval = setInterval(function () {
|
||
that.$cd.html(' (' + (seconds -= 1) + ') ');
|
||
if (seconds <= 0) {
|
||
that['$$' + button_key].trigger('click');
|
||
that._stopCountDown();
|
||
}
|
||
}, 1000);
|
||
},
|
||
_getKey: function (key) {
|
||
// very necessary keys.
|
||
switch (key) {
|
||
case 192:
|
||
return 'tilde';
|
||
case 13:
|
||
return 'enter';
|
||
case 16:
|
||
return 'shift';
|
||
case 9:
|
||
return 'tab';
|
||
case 20:
|
||
return 'capslock';
|
||
case 17:
|
||
return 'ctrl';
|
||
case 91:
|
||
return 'win';
|
||
case 18:
|
||
return 'alt';
|
||
case 27:
|
||
return 'esc';
|
||
case 32:
|
||
return 'space';
|
||
}
|
||
|
||
// only trust alphabets with this.
|
||
var initial = String.fromCharCode(key);
|
||
if (/^[A-z0-9]+$/.test(initial))
|
||
return initial.toLowerCase();
|
||
else
|
||
return false;
|
||
},
|
||
reactOnKey: function (e) {
|
||
var that = this;
|
||
|
||
/*
|
||
Prevent keyup event if the dialog is not last!
|
||
*/
|
||
var a = $('.jconfirm');
|
||
if (a.eq(a.length - 1)[0] !== this.$el[0])
|
||
return false;
|
||
|
||
var key = e.which;
|
||
/*
|
||
Do not react if Enter or Space is pressed on input elements
|
||
*/
|
||
if (this.$content.find(':input').is(':focus') && /13|32/.test(key))
|
||
return false;
|
||
|
||
var keyChar = this._getKey(key);
|
||
|
||
// If esc is pressed
|
||
if (keyChar === 'esc' && this.escapeKey) {
|
||
if (this.escapeKey === true) {
|
||
this.$scrollPane.trigger('click');
|
||
}
|
||
else if (typeof this.escapeKey === 'string' || typeof this.escapeKey === 'function') {
|
||
var buttonKey;
|
||
if (typeof this.escapeKey === 'function') {
|
||
buttonKey = this.escapeKey();
|
||
} else {
|
||
buttonKey = this.escapeKey;
|
||
}
|
||
|
||
if (buttonKey)
|
||
if (typeof this.buttons[buttonKey] === 'undefined') {
|
||
console.warn('Invalid escapeKey, no buttons found with key ' + buttonKey);
|
||
} else {
|
||
this['$_' + buttonKey].trigger('click');
|
||
}
|
||
}
|
||
}
|
||
|
||
// check if any button is listening to this key.
|
||
$.each(this.buttons, function (key, button) {
|
||
if (button.keys.indexOf(keyChar) != -1) {
|
||
that['$_' + key].trigger('click');
|
||
}
|
||
});
|
||
},
|
||
setDialogCenter: function () {
|
||
console.info('setDialogCenter is deprecated, dialogs are centered with CSS3 tables');
|
||
},
|
||
_unwatchContent: function () {
|
||
clearInterval(this._timer);
|
||
},
|
||
close: function (onClosePayload) {
|
||
var that = this;
|
||
|
||
if (typeof this.onClose === 'function')
|
||
this.onClose(onClosePayload);
|
||
|
||
this._unwatchContent();
|
||
|
||
/*
|
||
unbind the window resize & keyup event.
|
||
*/
|
||
$(window).unbind('resize.' + this._id);
|
||
$(window).unbind('keyup.' + this._id);
|
||
$(window).unbind('jcKeyDown.' + this._id);
|
||
|
||
if (this.draggable) {
|
||
$(window).unbind('mousemove.' + this._id);
|
||
$(window).unbind('mouseup.' + this._id);
|
||
this.$titleContainer.unbind('mousedown');
|
||
}
|
||
|
||
that.$el.removeClass(that.loadedClass);
|
||
$('body').removeClass('jconfirm-no-scroll-' + that._id);
|
||
that.$jconfirmBoxContainer.removeClass('jconfirm-no-transition');
|
||
|
||
setTimeout(function () {
|
||
that.$body.addClass(that.closeAnimationParsed);
|
||
that.$jconfirmBg.addClass('jconfirm-bg-h');
|
||
var closeTimer = (that.closeAnimation === 'none') ? 1 : that.animationSpeed;
|
||
|
||
setTimeout(function () {
|
||
that.$el.remove();
|
||
|
||
var l = jconfirm.instances;
|
||
var i = jconfirm.instances.length - 1;
|
||
for (i; i >= 0; i--) {
|
||
if (jconfirm.instances[i]._id === that._id) {
|
||
jconfirm.instances.splice(i, 1);
|
||
}
|
||
}
|
||
|
||
// Focusing a element, scrolls automatically to that element.
|
||
// no instances should be open, lastFocused should be true, the lastFocused element must exists in DOM
|
||
if (!jconfirm.instances.length) {
|
||
if (that.scrollToPreviousElement && jconfirm.lastFocused && jconfirm.lastFocused.length && $.contains(document, jconfirm.lastFocused[0])) {
|
||
var $lf = jconfirm.lastFocused;
|
||
if (that.scrollToPreviousElementAnimate) {
|
||
var st = $(window).scrollTop();
|
||
var ot = jconfirm.lastFocused.offset().top;
|
||
var wh = $(window).height();
|
||
if (!(ot > st && ot < (st + wh))) {
|
||
var scrollTo = (ot - Math.round((wh / 3)));
|
||
$('html, body').animate({
|
||
scrollTop: scrollTo
|
||
}, that.animationSpeed, 'swing', function () {
|
||
// gracefully scroll and then focus.
|
||
$lf.focus();
|
||
});
|
||
} else {
|
||
// the element to be focused is already in view.
|
||
$lf.focus();
|
||
}
|
||
} else {
|
||
$lf.focus();
|
||
}
|
||
jconfirm.lastFocused = false;
|
||
}
|
||
}
|
||
|
||
if (typeof that.onDestroy === 'function')
|
||
that.onDestroy();
|
||
|
||
}, closeTimer * 0.40);
|
||
}, 50);
|
||
|
||
return true;
|
||
},
|
||
open: function () {
|
||
if (this.isOpen())
|
||
return false;
|
||
|
||
// var that = this;
|
||
this._buildHTML();
|
||
this._bindEvents();
|
||
this._open();
|
||
|
||
return true;
|
||
},
|
||
setStartingPoint: function () {
|
||
var el = false;
|
||
|
||
if (this.animateFromElement !== true && this.animateFromElement) {
|
||
el = this.animateFromElement;
|
||
jconfirm.lastClicked = false;
|
||
} else if (jconfirm.lastClicked && this.animateFromElement === true) {
|
||
el = jconfirm.lastClicked;
|
||
jconfirm.lastClicked = false;
|
||
} else {
|
||
return false;
|
||
}
|
||
|
||
if (!el)
|
||
return false;
|
||
|
||
var offset = el.offset();
|
||
|
||
var iTop = el.outerHeight() / 2;
|
||
var iLeft = el.outerWidth() / 2;
|
||
|
||
// placing position of jconfirm modal in center of clicked element
|
||
iTop -= this.$jconfirmBox.outerHeight() / 2;
|
||
iLeft -= this.$jconfirmBox.outerWidth() / 2;
|
||
|
||
// absolute position on screen
|
||
var sourceTop = offset.top + iTop;
|
||
sourceTop = sourceTop - this._scrollTop();
|
||
var sourceLeft = offset.left + iLeft;
|
||
|
||
// window halved
|
||
var wh = $(window).height() / 2;
|
||
var ww = $(window).width() / 2;
|
||
|
||
var targetH = wh - this.$jconfirmBox.outerHeight() / 2;
|
||
var targetW = ww - this.$jconfirmBox.outerWidth() / 2;
|
||
|
||
sourceTop -= targetH;
|
||
sourceLeft -= targetW;
|
||
|
||
// Check if the element is inside the viewable window.
|
||
if (Math.abs(sourceTop) > wh || Math.abs(sourceLeft) > ww)
|
||
return false;
|
||
|
||
this.$jconfirmBoxContainer.css('transform', 'translate(' + sourceLeft + 'px, ' + sourceTop + 'px)');
|
||
},
|
||
_open: function () {
|
||
var that = this;
|
||
if (typeof that.onOpenBefore === 'function')
|
||
that.onOpenBefore();
|
||
|
||
this.$body.removeClass(this.animationParsed);
|
||
this.$jconfirmBg.removeClass('jconfirm-bg-h');
|
||
this.$body.focus();
|
||
|
||
that.$jconfirmBoxContainer.css('transform', 'translate(' + 0 + 'px, ' + 0 + 'px)');
|
||
|
||
setTimeout(function () {
|
||
that.$body.css(that._getCSS(that.animationSpeed, 1));
|
||
that.$body.css({
|
||
'transition-property': that.$body.css('transition-property') + ', margin'
|
||
});
|
||
that.$jconfirmBoxContainer.addClass('jconfirm-no-transition');
|
||
that._modalReady.resolve();
|
||
if (typeof that.onOpen === 'function')
|
||
that.onOpen();
|
||
|
||
that.$el.addClass(that.loadedClass);
|
||
}, this.animationSpeed);
|
||
},
|
||
loadedClass: 'jconfirm-open',
|
||
isClosed: function () {
|
||
return !this.$el || this.$el.css('display') === '';
|
||
},
|
||
isOpen: function () {
|
||
return !this.isClosed();
|
||
},
|
||
toggle: function () {
|
||
if (!this.isOpen())
|
||
this.open();
|
||
else
|
||
this.close();
|
||
}
|
||
};
|
||
|
||
jconfirm.instances = [];
|
||
jconfirm.lastFocused = false;
|
||
jconfirm.pluginDefaults = {
|
||
template: '' +
|
||
'<div class="jconfirm">' +
|
||
'<div class="jconfirm-bg jconfirm-bg-h"></div>' +
|
||
'<div class="jconfirm-scrollpane">' +
|
||
'<div class="jconfirm-row">' +
|
||
'<div class="jconfirm-cell">' +
|
||
'<div class="jconfirm-holder">' +
|
||
'<div class="jc-bs3-container">' +
|
||
'<div class="jc-bs3-row">' +
|
||
'<div class="jconfirm-box-container jconfirm-animated">' +
|
||
'<div class="jconfirm-box" role="dialog" aria-labelledby="labelled" tabindex="-1">' +
|
||
'<div class="jconfirm-closeIcon">×</div>' +
|
||
'<div class="jconfirm-title-c">' +
|
||
'<span class="jconfirm-icon-c"></span>' +
|
||
'<span class="jconfirm-title"></span>' +
|
||
'</div>' +
|
||
'<div class="jconfirm-content-pane">' +
|
||
'<div class="jconfirm-content"></div>' +
|
||
'</div>' +
|
||
'<div class="jconfirm-buttons">' +
|
||
'</div>' +
|
||
'<div class="jconfirm-clear">' +
|
||
'</div>' +
|
||
'</div>' +
|
||
'</div>' +
|
||
'</div>' +
|
||
'</div>' +
|
||
'</div>' +
|
||
'</div>' +
|
||
'</div>' +
|
||
'</div></div>',
|
||
title: 'Hello',
|
||
titleClass: '',
|
||
type: 'default',
|
||
typeAnimated: true,
|
||
draggable: true,
|
||
dragWindowGap: 15,
|
||
dragWindowBorder: true,
|
||
animateFromElement: true,
|
||
/**
|
||
* @deprecated
|
||
*/
|
||
alignMiddle: true,
|
||
smoothContent: true,
|
||
content: 'Are you sure to continue?',
|
||
buttons: {},
|
||
defaultButtons: {
|
||
ok: {
|
||
action: function () {
|
||
}
|
||
},
|
||
close: {
|
||
action: function () {
|
||
}
|
||
}
|
||
},
|
||
contentLoaded: function () {
|
||
},
|
||
icon: '',
|
||
lazyOpen: false,
|
||
bgOpacity: null,
|
||
theme: 'light',
|
||
animation: 'scale',
|
||
closeAnimation: 'scale',
|
||
animationSpeed: 400,
|
||
animationBounce: 1,
|
||
escapeKey: true,
|
||
rtl: false,
|
||
container: 'body',
|
||
containerFluid: false,
|
||
backgroundDismiss: false,
|
||
backgroundDismissAnimation: 'shake',
|
||
autoClose: false,
|
||
closeIcon: null,
|
||
closeIconClass: false,
|
||
watchInterval: 100,
|
||
columnClass: 'col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1',
|
||
boxWidth: '50%',
|
||
scrollToPreviousElement: true,
|
||
scrollToPreviousElementAnimate: true,
|
||
useBootstrap: true,
|
||
offsetTop: 40,
|
||
offsetBottom: 40,
|
||
bootstrapClasses: {
|
||
container: 'container',
|
||
containerFluid: 'container-fluid',
|
||
row: 'row'
|
||
},
|
||
onContentReady: function () {
|
||
|
||
},
|
||
onOpenBefore: function () {
|
||
|
||
},
|
||
onOpen: function () {
|
||
|
||
},
|
||
onClose: function () {
|
||
|
||
},
|
||
onDestroy: function () {
|
||
|
||
},
|
||
onAction: function () {
|
||
|
||
}
|
||
};
|
||
|
||
/**
|
||
* This refers to the issue #241 and #246
|
||
*
|
||
* Problem:
|
||
* Button A is clicked (keydown) using the Keyboard ENTER key
|
||
* A opens the jconfirm modal B,
|
||
* B has registered ENTER key for one of its button C
|
||
* A is released (keyup), B gets the keyup event and triggers C.
|
||
*
|
||
* Solution:
|
||
* Register a global keydown event, that tells jconfirm if the keydown originated inside jconfirm
|
||
*/
|
||
var keyDown = false;
|
||
$(window).on('keydown', function (e) {
|
||
if (!keyDown) {
|
||
var $target = $(e.target);
|
||
var pass = false;
|
||
if ($target.closest('.jconfirm-box').length)
|
||
pass = true;
|
||
if (pass)
|
||
$(window).trigger('jcKeyDown');
|
||
|
||
keyDown = true;
|
||
}
|
||
});
|
||
$(window).on('keyup', function () {
|
||
keyDown = false;
|
||
});
|
||
jconfirm.lastClicked = false;
|
||
$(document).on('mousedown', 'button, a', function () {
|
||
jconfirm.lastClicked = $(this);
|
||
});
|
||
})(jQuery, window);
|
||
|
||
|
||
/***/ }),
|
||
/* 3 */
|
||
/***/ (function(module, exports) {
|
||
|
||
// removed by extract-text-webpack-plugin
|
||
|
||
/***/ })
|
||
/******/ ]); |