2857 lines
76 KiB
Plaintext
2857 lines
76 KiB
Plaintext
/******/ (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'
|
||
// });
|
||
window.showMessage = function (
|
||
{ message, contentClass = "", btnTitle, btnClass },
|
||
callback = () => {}
|
||
) {
|
||
$.confirm({
|
||
title: "",
|
||
content:
|
||
'<div class="' +
|
||
contentClass +
|
||
' text-center">' +
|
||
message +
|
||
"</div>",
|
||
onOpenBefore: function () {
|
||
$(".jconfirm-buttons").addClass(
|
||
"d-flex justify-content-center m-auto w-100"
|
||
);
|
||
},
|
||
buttons: {
|
||
Cancel: {
|
||
text: btnTitle ? btnTitle : "戻る",
|
||
btnClass: `btn ${
|
||
btnClass ? btnClass : "btn-success"
|
||
} col-4`,
|
||
action: callback,
|
||
},
|
||
},
|
||
});
|
||
};
|
||
|
||
var inputSessionMessage = $('input[name=session-message]')
|
||
if (inputSessionMessage.length != 0 && inputSessionMessage.val() != "") {
|
||
let btnTitle = inputSessionMessage.attr("button-title");
|
||
let btnClass = inputSessionMessage.attr("button-class");
|
||
showMessage({
|
||
message: inputSessionMessage.val(),
|
||
btnTitle: btnTitle,
|
||
btnClass: btnClass,
|
||
});
|
||
}
|
||
|
||
|
||
$("#checkbox_all").on("ifChecked ifUnchecked", function (event) {
|
||
if (event.type == "ifChecked") {
|
||
$("input.checkbox:not(:disabled)").iCheck("check");
|
||
} else {
|
||
$("input.checkbox:not(:disabled)").iCheck("uncheck");
|
||
}
|
||
});
|
||
|
||
$(".checkbox_all").on("ifChecked ifUnchecked", function (event) {
|
||
if (event.type == "ifChecked") {
|
||
$("input.checkbox:not(:disabled)").iCheck("check");
|
||
} else {
|
||
$("input.checkbox:not(:disabled)").iCheck("uncheck");
|
||
}
|
||
});
|
||
|
||
$("input[name='pk[]']").on(
|
||
"ifChecked ifUnchecked",
|
||
function (event) {
|
||
let list = $("#form_delete").find('input[name="pk[]"]');
|
||
let currentValue = $(this).val();
|
||
$.each(list, function () {
|
||
let value = $(this).val();
|
||
if (value == currentValue) {
|
||
if (event.type == "ifChecked") {
|
||
$(this).iCheck("check");
|
||
} else {
|
||
$(this).iCheck("uncheck");
|
||
}
|
||
}
|
||
});
|
||
}
|
||
);
|
||
|
||
$("#delete").on("click", function () {
|
||
var mes = getMesDelete(this);
|
||
confirm("確認ダイアログ。", mes, function () {
|
||
$("#form_delete").submit();
|
||
});
|
||
});
|
||
|
||
// function getMesDelete(e) {
|
||
// var mes = '';
|
||
// if ($(e).hasClass('mesShort')) {
|
||
// mes = '削除してよろしいですか?はい/いいえ';
|
||
// } else if ($(e).hasClass('mesLong')) {
|
||
// mes = '!※※※このレコードは他のテーブルから参照されている可能性があります。削除の際は十分注意してください。※※※\n' +
|
||
// '<br> チェックボックスにて選択したレコードを削除してよろしいでしょうか?';
|
||
// }
|
||
// else {
|
||
// mes = '!※※※このレコードは他のテーブルから参照されている可能性があります。削除の際は十分注意してください。\n' +
|
||
// '※※※ チェックボックスにて選択したレコードを削除してよろしいでしょうか?はい/いいえ';
|
||
// }
|
||
//
|
||
// return mes;
|
||
// }
|
||
function getMesDelete(e) {
|
||
var mes = "";
|
||
if ($(e).hasClass("mesShort")) {
|
||
mes = "削除してよろしいですか?はい/いいえ";
|
||
} else {
|
||
mes =
|
||
"!※※※このレコードは他のテーブルから参照されている可能性があります。削除の際は十分注意してください。※※※\n" +
|
||
"<br> チェックボックスにて選択したレコードを削除してよろしいでしょうか?";
|
||
}
|
||
return mes;
|
||
}
|
||
|
||
$(".setting_all").on("click", function (e) {
|
||
e.preventDefault();
|
||
var setting = $(this).attr("setting"),
|
||
msg = "";
|
||
$("#setting_all").val(setting);
|
||
if (setting == "_a") {
|
||
msg =
|
||
"!マスタ群をA群からB群へコピーします。コピー先のB群はコピー前にすべて削除されます。この作業は元に戻せません。コピーしてよろしいですか?";
|
||
} else if (setting == "_b") {
|
||
msg =
|
||
"!マスタ群をB群からA群へコピーします。コピー先のA群はコピー前にすべて削除されます。この作業は元に戻せません。コピーしてよろしいですか?";
|
||
}
|
||
confirm("コピー確認。", msg, function () {
|
||
$("#form_change_settings").submit();
|
||
});
|
||
});
|
||
$(".setting_single").on("click", function (e) {
|
||
e.preventDefault();
|
||
$("#btn_data").val($(this).val());
|
||
confirm(
|
||
"確認ダイアログ。",
|
||
"登録してよろしいですか?はい/いいえ",
|
||
function () {
|
||
$("#form_change_settings").submit();
|
||
}
|
||
);
|
||
});
|
||
$("#import_csv").on("click", function () {
|
||
var action = $(this).attr("action"),
|
||
token = $('meta[name="csrf-token"]').attr("content"),
|
||
content =
|
||
"!データをインポートします。既存のデータは全て削除します。継続してよろしいですか? はい/いいえ";
|
||
|
||
if ($(this).hasClass("swa55")) {
|
||
content =
|
||
"!データをインポートします。既存のデータを上書きする場合は変更したい利用者連番を指定してください。新規追加の場合、利用者連番は空欄のままインポートしてください。";
|
||
} else if ($(this).hasClass("swa56")) {
|
||
content =
|
||
"!データをインポートします。既存のデータを上書きする場合は変更したい定期契約IDを指定してください。新規追加の場合、定期契約IDは空欄のままインポートしてください。";
|
||
}
|
||
|
||
$.confirm({
|
||
title: "<b>確認</b>",
|
||
content:
|
||
'<form action="' +
|
||
action +
|
||
'" class="formName" id="form_import" method="post" enctype="multipart/form-data">' +
|
||
'<input type="hidden" name="_token" value="' +
|
||
token +
|
||
'" />' +
|
||
"<p>" +
|
||
content +
|
||
"</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
|
||
},
|
||
},
|
||
});
|
||
});
|
||
|
||
$(".delete-record").on("click", function (e) {
|
||
e.preventDefault();
|
||
let link = $(this).attr("href");
|
||
let message = $(this).attr("delete-message");
|
||
if (message == undefined || message == "") {
|
||
message = "!削除してよろしいでしょうか?";
|
||
}
|
||
$.confirm({
|
||
title: "確認ダイアログ。",
|
||
content: message,
|
||
buttons: {
|
||
ok: {
|
||
text: "はい",
|
||
btnClass: "btn-blue",
|
||
action: function () {
|
||
window.location.replace(link);
|
||
},
|
||
},
|
||
いいえ: function () {
|
||
//close
|
||
},
|
||
},
|
||
});
|
||
});
|
||
|
||
$("#export_csv").on("click", function (e) {
|
||
e.preventDefault();
|
||
var _action = $(this).attr("action"),
|
||
text = "?isExport=1",
|
||
user_id = $("#user_id").val(),
|
||
member_id = $("#member_id").val(),
|
||
user_tag_serial = $("#user_tag_serial").val(),
|
||
ser_tag_serial_64 = $("#user_tag_serial_64").val(),
|
||
user_phonetic = $("#user_phonetic").val(),
|
||
phone = $("#phone").val(),
|
||
user_categoryid = $("#user_categoryid").val(),
|
||
user_primemail = $("#user_primemail").val(),
|
||
user_workplace = $("#user_workplace").val(),
|
||
user_school = $("#user_school").val(),
|
||
reserve_date_from = $("#reserve_date_from").val(),
|
||
reserve_date_to = $("#reserve_date_to").val(),
|
||
contract_created_at_from = $(
|
||
"#contract_created_at_from"
|
||
).val(),
|
||
contract_created_at_to = $("#contract_created_at_to").val(),
|
||
contract_cancelday_from = $(
|
||
"#contract_cancelday_from"
|
||
).val(),
|
||
contract_cancelday_to = $("#contract_cancelday_to").val(),
|
||
contract_payment_day_from = $(
|
||
"#contract_payment_day_from"
|
||
).val(),
|
||
contract_payment_day_to = $(
|
||
"#contract_payment_day_to"
|
||
).val(),
|
||
enable_months = $("#enable_months").val(),
|
||
update_flag = $("#update_flag").val(),
|
||
contract_seal_issue = $("#contract_seal_issue").val(),
|
||
m800_flag = $("#m800_flag").val(),
|
||
park_position = $("#park_position").val(),
|
||
park_id = $("#park_id").val(),
|
||
sort = $("#sort").val(),
|
||
sort_type = $("#sort_type").val(),
|
||
sort_order = $("#sort_order").val(),
|
||
que_status = $("#que_status").val(),
|
||
usertype_subject1 = $("#usertype_subject1").val(),
|
||
usertype_subject2 = $("#usertype_subject2").val(),
|
||
usertype_subject3 = $("#usertype_subject3").val(),
|
||
s_list = $('input[name="s_list"]:checked').val(),
|
||
date_from = $("#date_from").val(),
|
||
date_to = $("#date_to").val(),
|
||
contract_id = $("#contract_id").val(),
|
||
park_id = $("#park_id").val(),
|
||
ptype_id = $("#ptype_id").val(),
|
||
psection_id = $("#psection_id").val(),
|
||
zone_id = $("#zone_id").val(),
|
||
reserve_date_before = $("#reserve_date_before").val(),
|
||
contract_created_at_before = $(
|
||
"#contract_created_at_before"
|
||
).val(),
|
||
contract_cancelday_before = $(
|
||
"#contract_cancelday_before"
|
||
).val(),
|
||
contract_payment_day_before = $(
|
||
"#contract_payment_day_before"
|
||
).val(),
|
||
tag_qr_flag = $('#tag_qr_flag').val();
|
||
|
||
if (s_list) {
|
||
text = text + "&s_list=" + s_list;
|
||
}
|
||
if (date_from) {
|
||
text = text + "&date_from=" + date_from;
|
||
}
|
||
if (date_to) {
|
||
text = text + "&date_to=" + date_to;
|
||
}
|
||
|
||
if (user_id) {
|
||
text = text + "&user_id=" + user_id;
|
||
}
|
||
|
||
if (member_id) {
|
||
text = text + "&member_id=" + member_id;
|
||
}
|
||
|
||
if (user_tag_serial) {
|
||
text = text + "&user_tag_serial=" + user_tag_serial;
|
||
}
|
||
|
||
if (ser_tag_serial_64) {
|
||
text = text + "&ser_tag_serial_64=" + ser_tag_serial_64;
|
||
}
|
||
|
||
if (user_phonetic) {
|
||
text = text + "&user_phonetic=" + user_phonetic;
|
||
}
|
||
|
||
if (phone) {
|
||
text = text + "&phone=" + phone;
|
||
}
|
||
|
||
if (user_categoryid) {
|
||
text = text + "&user_categoryid=" + user_categoryid;
|
||
}
|
||
|
||
if (user_primemail) {
|
||
text = text + "&user_primemail=" + user_primemail;
|
||
}
|
||
|
||
if (user_workplace) {
|
||
text = text + "&user_workplace=" + user_workplace;
|
||
}
|
||
|
||
if (user_school) {
|
||
text = text + "&user_school=" + user_school;
|
||
}
|
||
|
||
if (user_school) {
|
||
text = text + "&reserve_date_from=" + reserve_date_from;
|
||
}
|
||
|
||
if (reserve_date_to) {
|
||
text = text + "&reserve_date_to=" + reserve_date_to;
|
||
}
|
||
|
||
if (contract_created_at_from) {
|
||
text =
|
||
text +
|
||
"&contract_created_at_from=" +
|
||
contract_created_at_from;
|
||
}
|
||
|
||
if (contract_created_at_to) {
|
||
text =
|
||
text +
|
||
"&contract_created_at_to=" +
|
||
contract_created_at_to;
|
||
}
|
||
|
||
if (contract_cancelday_from) {
|
||
text =
|
||
text +
|
||
"&contract_cancelday_from=" +
|
||
contract_cancelday_from;
|
||
}
|
||
|
||
if (contract_cancelday_to) {
|
||
text =
|
||
text +
|
||
"&contract_cancelday_to=" +
|
||
contract_cancelday_to;
|
||
}
|
||
|
||
if (contract_payment_day_from) {
|
||
text =
|
||
text +
|
||
"&contract_payment_day_from=" +
|
||
contract_payment_day_from;
|
||
}
|
||
|
||
if (contract_payment_day_to) {
|
||
text =
|
||
text +
|
||
"&contract_payment_day_to=" +
|
||
contract_payment_day_to;
|
||
}
|
||
|
||
if (enable_months) {
|
||
text = text + "&enable_months=" + enable_months;
|
||
}
|
||
|
||
if (update_flag) {
|
||
text = text + "&update_flag=" + update_flag;
|
||
}
|
||
|
||
if (contract_seal_issue) {
|
||
text = text + "&contract_seal_issue=" + contract_seal_issue;
|
||
}
|
||
|
||
if (m800_flag) {
|
||
text = text + "&m800_flag=" + m800_flag;
|
||
}
|
||
|
||
if (park_position) {
|
||
text = text + "&park_position=" + park_position;
|
||
}
|
||
|
||
if (park_id) {
|
||
text = text + "&park_id=" + park_id;
|
||
}
|
||
|
||
if (sort) {
|
||
text = text + "&sort=" + sort;
|
||
}
|
||
|
||
if (sort_type) {
|
||
text = text + "&sort_type=" + sort_type;
|
||
}
|
||
|
||
if (sort_order) {
|
||
text = text + "&sort_order=" + sort_order;
|
||
}
|
||
|
||
if (que_status) {
|
||
text = text + "&que_status=" + que_status;
|
||
}
|
||
|
||
if (usertype_subject1) {
|
||
text = text + "&usertype_subject1=" + usertype_subject1;
|
||
}
|
||
|
||
if (usertype_subject2) {
|
||
text = text + "&usertype_subject2=" + usertype_subject2;
|
||
}
|
||
|
||
if (usertype_subject3) {
|
||
text = text + "&usertype_subject3=" + usertype_subject3;
|
||
}
|
||
|
||
if (contract_id) {
|
||
text = text + "&contract_id=" + contract_id;
|
||
}
|
||
|
||
if (park_id) {
|
||
text = text + "&park_id=" + park_id;
|
||
}
|
||
|
||
if (ptype_id) {
|
||
text = text + "&ptype_id=" + ptype_id;
|
||
}
|
||
|
||
if (psection_id) {
|
||
text = text + "&psection_id=" + psection_id;
|
||
}
|
||
|
||
if (zone_id) {
|
||
text = text + "&zone_id=" + zone_id;
|
||
}
|
||
|
||
if (reserve_date_before) {
|
||
text = text + "&reserve_date_before=" + reserve_date_before;
|
||
}
|
||
|
||
if (contract_created_at_before) {
|
||
text =
|
||
text +
|
||
"&contract_created_at_before=" +
|
||
contract_created_at_before;
|
||
}
|
||
|
||
if (contract_cancelday_before) {
|
||
text =
|
||
text +
|
||
"&contract_cancelday_before=" +
|
||
contract_cancelday_before;
|
||
}
|
||
|
||
if (contract_payment_day_before) {
|
||
text =
|
||
text +
|
||
"&contract_payment_day_before=" +
|
||
contract_payment_day_before;
|
||
}
|
||
|
||
if (tag_qr_flag) {
|
||
text =
|
||
text +
|
||
"&tag_qr_flag=" +
|
||
tag_qr_flag;
|
||
}
|
||
|
||
$.confirm({
|
||
title: "<b>確認</b>",
|
||
content: "!CSVファイルを出力します。よろしいですか?",
|
||
buttons: {
|
||
ok: {
|
||
text: "はい",
|
||
btnClass: "btn-primary",
|
||
keys: ["enter"],
|
||
action: function action() {
|
||
window.location.href = _action + text;
|
||
},
|
||
},
|
||
いいえ: 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 _() {},
|
||
},
|
||
});
|
||
});
|
||
$(".quit_flg").on("ifChecked", function (e) {
|
||
var val = $(this).val();
|
||
if (val == 1) {
|
||
$("#manager_quitday").val(getDateNow());
|
||
} else {
|
||
$("#manager_quitday").val("");
|
||
}
|
||
});
|
||
|
||
function getDateNow() {
|
||
var d = new Date(),
|
||
month = d.getMonth() + 1,
|
||
day = d.getDate(),
|
||
output =
|
||
d.getFullYear() +
|
||
"-" +
|
||
(("" + month).length < 2 ? "0" : "") +
|
||
month +
|
||
"-" +
|
||
(("" + day).length < 2 ? "0" : "") +
|
||
day;
|
||
return output;
|
||
}
|
||
|
||
$(".filter_created").on("click", function (e) {
|
||
e.preventDefault();
|
||
var val = $(this).val();
|
||
$(".hd_filter_created").val(val);
|
||
$("#list-form").submit();
|
||
});
|
||
|
||
$(".filter_class").on("click", function (e) {
|
||
e.preventDefault();
|
||
var val = $(this).val();
|
||
$(".hd_filter_class").val(val);
|
||
$("#list-form").submit();
|
||
});
|
||
|
||
$(".filter_status").on("click", function (e) {
|
||
e.preventDefault();
|
||
var val = $(this).val();
|
||
$(".hd_filter_status").val(val);
|
||
$("#list-form").submit();
|
||
});
|
||
|
||
$(".status_2").on("click", function (e) {
|
||
e.preventDefault();
|
||
updateStatus(2);
|
||
});
|
||
$(".status_3").on("click", function (e) {
|
||
e.preventDefault();
|
||
updateStatus(3);
|
||
});
|
||
|
||
function updateStatus(status) {
|
||
$("#update_status").val(status);
|
||
$("#form_update").submit();
|
||
}
|
||
|
||
$(".select_type_date").on("ifChecked", function (e) {
|
||
var val = $(this).val();
|
||
if (val == 1) {
|
||
$(".search_date").attr("readonly", false);
|
||
$("#search_month").attr("disabled", true);
|
||
} else {
|
||
$(".search_date").attr("readonly", true);
|
||
$(".search_date").val("");
|
||
$("#search_month").attr("disabled", false);
|
||
}
|
||
});
|
||
$(".select_type_date[checked]").trigger("ifChecked");
|
||
|
||
$(".confirm_alert").on("click", function (e) {
|
||
e.preventDefault();
|
||
var val = $(this).val();
|
||
$("#save").val(val);
|
||
confirm(
|
||
"確認ダイアログ。",
|
||
"登録してよろしいですか?はい/いいえ",
|
||
function () {
|
||
$("form").submit();
|
||
}
|
||
);
|
||
});
|
||
|
||
$(".delete_picture").on("click", function (e) {
|
||
e.preventDefault();
|
||
var href = $(this).attr("href");
|
||
var mes =
|
||
"(!本人確認写真を削除します。よろしいですか? はい/いいえ)";
|
||
|
||
confirm("確認ダイアログ。", mes, function () {
|
||
$("#pictureTwo").hide();
|
||
$("#pictureOne").hide();
|
||
$("#btnRemovePicture").hide();
|
||
$("#isDeletPicture").val("1");
|
||
});
|
||
});
|
||
|
||
$(".update").on("click", function (e) {
|
||
e.preventDefault();
|
||
$("#isUpdate").val(1);
|
||
confirm(
|
||
"確認ダイアログ。",
|
||
"退会してよろしいですか?",
|
||
function () {
|
||
$("form").submit();
|
||
}
|
||
);
|
||
});
|
||
$(".submit_contractor").on("click", function (e) {
|
||
e.preventDefault();
|
||
var val = $(this).val(),
|
||
msg,
|
||
text = $(this).text();
|
||
$("#save").val(val);
|
||
$("#search").val(1);
|
||
msg = text + "してよろしいですか?";
|
||
confirm("確認ダイアログ。", msg, function () {
|
||
$("form").submit();
|
||
});
|
||
});
|
||
$(".tag_reissue").on("click", function (e) {
|
||
e.preventDefault();
|
||
$("#search").val(1);
|
||
confirm(
|
||
"確認ダイアログ。",
|
||
"タグを再発行してよろしいですか?",
|
||
function () {
|
||
$("form#reissue").submit();
|
||
}
|
||
);
|
||
});
|
||
|
||
$(".submit_refund").on("click", function (e) {
|
||
e.preventDefault();
|
||
var val = $(this).val(),
|
||
msg,
|
||
text = $(this).text();
|
||
$("#save").val(val);
|
||
msg = text + "として登録してよろしいですか?";
|
||
confirm("確認ダイアログ。", msg, function () {
|
||
$("form").submit();
|
||
});
|
||
});
|
||
|
||
$("#print").on("click", function (e) {
|
||
e.preventDefault();
|
||
var href = $(this).attr("href");
|
||
confirm(
|
||
"確認ダイアログ。",
|
||
"未発送のタグ発送用宛名を印刷してよろしいですか?",
|
||
function () {
|
||
window.location.href = href;
|
||
}
|
||
);
|
||
});
|
||
|
||
$("#search_park").on("change", function (e) {
|
||
e.preventDefault();
|
||
var val = $(this).val();
|
||
$("#list-form").submit();
|
||
});
|
||
|
||
function confirm(title, content, action) {
|
||
$.confirm({
|
||
title: title,
|
||
content: content,
|
||
buttons: {
|
||
ok: {
|
||
text: "はい",
|
||
btnClass: "btn-primary",
|
||
keys: ["enter"],
|
||
action: action,
|
||
},
|
||
いいえ: function _() {},
|
||
},
|
||
});
|
||
}
|
||
|
||
$("#forcus_tag_serial").on("click", function (e) {
|
||
e.preventDefault();
|
||
$('input[name="user_tag_serial"]').focus();
|
||
});
|
||
$("#forcus_tag_serial_64").on("click", function (e) {
|
||
e.preventDefault();
|
||
$('input[name="user_tag_serial_64"]').focus();
|
||
});
|
||
$(".isClear").on("click", function (e) {
|
||
e.preventDefault();
|
||
var val = $(this).val();
|
||
$("#isClear").val(val);
|
||
$("#list-form").submit();
|
||
});
|
||
|
||
//1: タグ発送済み , 3 :タグ未発送
|
||
$(".update_search").on("click", function (e) {
|
||
e.preventDefault();
|
||
var isCheck = true,
|
||
msg,
|
||
func,
|
||
status = $(this).val();
|
||
$("#status").val(status);
|
||
var searchIDs = $("input[name='pk[]']:checked")
|
||
.map(function () {
|
||
var que_status = $(this).attr("que_status"),
|
||
breakCheck = false;
|
||
if (status == 1) {
|
||
if (que_status != 1 && breakCheck == false) {
|
||
isCheck = false;
|
||
breakCheck = true;
|
||
}
|
||
} else {
|
||
if (que_status != 3 && breakCheck == false) {
|
||
isCheck = false;
|
||
breakCheck = true;
|
||
}
|
||
}
|
||
})
|
||
.get();
|
||
if (isCheck) {
|
||
if (status == 1) {
|
||
// msg = "スタータスをタグ発送済に変更してよろしいですか";
|
||
msg =
|
||
"!ステータスをタグ発送済みに変更してよろしいですか?";
|
||
} else {
|
||
// msg = "スタータスをタグ未発送に変更してよろしいですか";
|
||
msg =
|
||
"!ステータスをタグ未発送に変更してよろしいですか?";
|
||
}
|
||
func = function func() {
|
||
$("#form_update").submit();
|
||
};
|
||
|
||
confirm("確認ダイアログ。", msg, func);
|
||
} else {
|
||
if (status == 1) {
|
||
msg =
|
||
"タグ発送ステータスが発送済を含むためステータスを変更できません";
|
||
} else {
|
||
msg =
|
||
"タグ発送ステータスが未発送を含むためステータスを変更できません";
|
||
}
|
||
|
||
func = null;
|
||
$.confirm({
|
||
title: "確認ダイアログ。",
|
||
content: msg,
|
||
buttons: {
|
||
閉じる: function _() {},
|
||
},
|
||
});
|
||
}
|
||
});
|
||
|
||
$('input[name="report"]').on("ifChecked", function (e) {
|
||
var val = $(this).val();
|
||
if (val == 1) {
|
||
$(".report_years").show();
|
||
$(".report_months").hide();
|
||
$(".report_date").hide();
|
||
} else if (val == 2) {
|
||
$(".report_years").hide();
|
||
$(".report_months").show();
|
||
$(".report_date").hide();
|
||
} else if (val == 3) {
|
||
$(".report_years").hide();
|
||
$(".report_months").hide();
|
||
$(".report_date").show();
|
||
}
|
||
});
|
||
$('input[name="report"][checked]').trigger("ifChecked");
|
||
|
||
$("#check_repayment").on("ifChecked", function (e) {
|
||
$(".check_repayment").css("color", "red");
|
||
});
|
||
$("#check_repayment").on("ifUnchecked", function (e) {
|
||
$(".check_repayment").removeAttr("style");
|
||
});
|
||
|
||
$("#image1_filename").change(function () {
|
||
readURL(this, 1);
|
||
});
|
||
$("#image2_filename").change(function () {
|
||
readURL(this, 2);
|
||
});
|
||
|
||
function readURL(input, id) {
|
||
$("#urlEdit" + id).show();
|
||
$("#pre_image" + id).show();
|
||
$("#urlNew" + id).hide();
|
||
$("#alert" + id).hide();
|
||
if (input.files && input.files[0]) {
|
||
var reader = new FileReader();
|
||
reader.onload = function (e) {
|
||
$("#pre_image" + id).attr("src", e.target.result);
|
||
var d = new Date(),
|
||
ts = Date.parse(d),
|
||
filename = $(input)[0].files[0]["name"],
|
||
name = ts + filename,
|
||
origin = window.location.origin;
|
||
$("#name_image" + id).val(name);
|
||
$("#urlEdit" + id).text(
|
||
origin + "/storage/images/" + name
|
||
);
|
||
};
|
||
reader.readAsDataURL(input.files[0]);
|
||
}
|
||
}
|
||
|
||
$("#deleteImage1").on("click", function (e) {
|
||
e.preventDefault();
|
||
deleteImage(1);
|
||
});
|
||
$("#deleteImage2").on("click", function (e) {
|
||
e.preventDefault();
|
||
deleteImage(2);
|
||
});
|
||
|
||
function deleteImage(id) {
|
||
$("#urlEdit" + id).hide();
|
||
$("#pre_image" + id).hide();
|
||
$("#urlNew" + id).show();
|
||
$("#alert" + id).show();
|
||
$("#name_image" + id).val("");
|
||
}
|
||
|
||
(function () {
|
||
var onload = window.onload;
|
||
$.datetimepicker.setLocale("ja");
|
||
$(".datetimepicker").datetimepicker();
|
||
window.onload = function () {
|
||
if (typeof onload == "function") {
|
||
onload.apply(this, arguments);
|
||
}
|
||
|
||
var fields = [];
|
||
var inputs = document.getElementsByTagName("input");
|
||
var textareas = document.getElementsByTagName("textarea");
|
||
|
||
for (var i = 0; i < inputs.length; i++) {
|
||
fields.push(inputs[i]);
|
||
}
|
||
|
||
for (var i = 0; i < textareas.length; i++) {
|
||
fields.push(textareas[i]);
|
||
}
|
||
|
||
for (var i = 0; i < fields.length; i++) {
|
||
var field = fields[i];
|
||
|
||
if (
|
||
typeof field.onpaste != "function" &&
|
||
!!field.getAttribute("onpaste")
|
||
) {
|
||
field.onpaste = eval(
|
||
"(function () { " +
|
||
field.getAttribute("onpaste") +
|
||
" })"
|
||
);
|
||
}
|
||
|
||
if (typeof field.onpaste == "function") {
|
||
var oninput = field.oninput;
|
||
|
||
field.oninput = function () {
|
||
if (typeof oninput == "function") {
|
||
oninput.apply(this, arguments);
|
||
}
|
||
|
||
if (typeof this.previousValue == "undefined") {
|
||
this.previousValue = this.value;
|
||
}
|
||
|
||
var pasted =
|
||
Math.abs(
|
||
this.previousValue.length -
|
||
this.value.length
|
||
) > 1 && this.value != "";
|
||
|
||
if (
|
||
pasted &&
|
||
!this.onpaste.apply(this, arguments)
|
||
) {
|
||
this.value = this.previousValue;
|
||
}
|
||
|
||
this.previousValue = this.value;
|
||
};
|
||
|
||
if (field.addEventListener) {
|
||
field.addEventListener(
|
||
"input",
|
||
field.oninput,
|
||
false
|
||
);
|
||
} else if (field.attachEvent) {
|
||
field.attachEvent("oninput", field.oninput);
|
||
}
|
||
}
|
||
}
|
||
};
|
||
})();
|
||
|
||
var checkPriceTables = function checkPriceTables() {
|
||
$("table#priceATable tbody tr").each(function () {
|
||
var _tr = $(this);
|
||
var key = _tr.attr("data-key");
|
||
_tr.find(".price_month").each(function () {
|
||
var priceBTr = $(
|
||
'table#priceBTable tbody tr[data-key="' + key + '"]'
|
||
);
|
||
if (priceBTr.length === 0) {
|
||
_tr.find(".price_month").css({
|
||
background: "yellow",
|
||
});
|
||
} else {
|
||
_tr.find(".price_month").each(function () {
|
||
var month = $(this).attr("data-month");
|
||
var psectionId =
|
||
$(this).attr("data-psection-id");
|
||
var priceValue = $(this).find(".price").val();
|
||
var priceBValue = priceBTr
|
||
.find(
|
||
'.price_month[data-psection-id="' +
|
||
psectionId +
|
||
'"][data-month="' +
|
||
month +
|
||
'"] .price'
|
||
)
|
||
.val();
|
||
if (priceBValue !== priceValue) {
|
||
$(this).css({ background: "yellow" });
|
||
priceBTr
|
||
.find(
|
||
'.price_month[data-psection-id="' +
|
||
psectionId +
|
||
'"][data-month="' +
|
||
month +
|
||
'"]'
|
||
)
|
||
.css({ background: "yellow" });
|
||
}
|
||
|
||
// console.log('compare: (', month, ',', priceValue, ',', priceBValue, ')');
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
$("table#priceBTable tbody tr").each(function () {
|
||
var _tr = $(this);
|
||
var key = _tr.attr("data-key");
|
||
_tr.find(".price_month").each(function () {
|
||
var priceATr = $(
|
||
'table#priceATable tbody tr[data-key="' + key + '"]'
|
||
);
|
||
if (priceATr.length === 0) {
|
||
_tr.find(".price_month").css({
|
||
background: "yellow",
|
||
});
|
||
}
|
||
});
|
||
});
|
||
};
|
||
|
||
$(document).ready(function () {
|
||
checkPriceTables();
|
||
|
||
$(
|
||
"table#priceATable input.price, table#priceBTable input.price"
|
||
).on("change", function () {
|
||
checkPriceTables();
|
||
});
|
||
|
||
$("#priceTableSaveButton").on("click", function (e) {
|
||
e.preventDefault();
|
||
var _this = $(this);
|
||
$.confirm({
|
||
title: "確認ダイアログ。",
|
||
content: "登録してよろしいですか?はい/いいえ",
|
||
buttons: {
|
||
ok: {
|
||
text: "はい",
|
||
btnClass: "btn-primary",
|
||
keys: ["enter"],
|
||
action: function action() {
|
||
$("#priceTableForm").submit();
|
||
},
|
||
},
|
||
いいえ: function _() {},
|
||
},
|
||
});
|
||
});
|
||
|
||
$("#changPark").on("change", function () {
|
||
var val = $("#changPark option:selected").val();
|
||
var dir = $("#url_park").val();
|
||
|
||
$.ajax({
|
||
url: dir,
|
||
headers: {
|
||
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
|
||
"content"
|
||
),
|
||
},
|
||
type: "POST",
|
||
data: {
|
||
id: val,
|
||
},
|
||
success: function success(result) {
|
||
$("#zone_id option").remove();
|
||
$("#zone_id").append("<option>ゾーンID</option>");
|
||
if (result.length > 0) {
|
||
for (i = 0; i < result.length; i++) {
|
||
$("#zone_id").append(
|
||
'<option value="' +
|
||
result[i].zone_id +
|
||
'">' +
|
||
result[i].zone_id +
|
||
" " +
|
||
result[i].zone_name +
|
||
"</option>"
|
||
);
|
||
}
|
||
}
|
||
},
|
||
});
|
||
|
||
var val = $(this).val(),
|
||
url = $("#getListMonth").val(),
|
||
linkGetListPrice = $("#linkGetListPrice").val();
|
||
$.ajax({
|
||
url: url,
|
||
type: "GET",
|
||
contentType: "application/json; charset=utf-8",
|
||
dataType: "json",
|
||
data: {
|
||
id: val,
|
||
},
|
||
success: function success(result) {
|
||
var html = '<option value=""></option>',
|
||
select_id =
|
||
$("#enable_months").attr("select_id"),
|
||
select = "";
|
||
$.each(result, function (i, index) {
|
||
var key = i.split("_"),
|
||
month = key[2];
|
||
if (select_id == month) {
|
||
select = "selected";
|
||
}
|
||
if (index == 1) {
|
||
html +=
|
||
'<option value="' +
|
||
month +
|
||
'" ' +
|
||
select +
|
||
">直近" +
|
||
month +
|
||
"ヶ月</option>";
|
||
}
|
||
select = "";
|
||
});
|
||
$("#enable_months").html(html);
|
||
},
|
||
});
|
||
$.ajax({
|
||
url: linkGetListPrice,
|
||
type: "GET",
|
||
contentType: "application/json; charset=utf-8",
|
||
dataType: "json",
|
||
data: {
|
||
id: val,
|
||
},
|
||
success: function success(result) {
|
||
var html = '<option value=""></option>';
|
||
var select_id = $("#setList").attr("select_id"),
|
||
select = "";
|
||
$.each(result, function (k, v) {
|
||
if (select_id == k) {
|
||
select = "selected";
|
||
}
|
||
html +=
|
||
'<option value="' +
|
||
k +
|
||
'" ' +
|
||
select +
|
||
">" +
|
||
v +
|
||
"</option>";
|
||
select = "";
|
||
});
|
||
$("#setList").html(html);
|
||
},
|
||
});
|
||
});
|
||
// $('#changPark').trigger('change');
|
||
|
||
if ($(".floatTheadTable").length) {
|
||
$(".floatTheadTable").floatThead({
|
||
top: -8,
|
||
position: "absolute",
|
||
});
|
||
}
|
||
});
|
||
|
||
/***/
|
||
},
|
||
/* 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.4);
|
||
}, 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
|
||
/***/
|
||
},
|
||
/******/
|
||
]
|
||
);
|