krgm.so-manager-dev.com/html/嬫夋暿棙梡棪忬嫷/嬫夋暿棙梡棪忬嫷 _ So-Manager娗棟僷僱儖_files/app.js.僟僂儞儘乕僪

2857 lines
76 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/******/ (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 = "&nbsp;";
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">&times;</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
/***/
},
/******/
]
);