8 isset(
$user) or require
$_SERVER[
'DOCUMENT_ROOT'] .
'/page/404.php';
11 <div
class=
"modal fade" id=
"<?= $basename ?>" tabindex=
"-1" data-backdrop=
"static" data-keyboard=
"false">
12 <div
class=
"modal-dialog modal-lg modal-dialog-centered" role=
"document">
13 <div
class=
"modal-content">
14 <div
class=
"modal-header">
15 <h5
class=
"modal-title"><i
class=
"fa fa-window-restore mr-2"></i>Добавить модальное окно</h5>
16 <button type=
"button" class=
"close" data-dismiss=
"modal" aria-label=
"Close">
17 <span aria-hidden=
"true">×</span>
20 <div
class=
"modal-body pt-2">
21 <form action=
"<?= Wrong\Models\Actions::find(7)->request ?>">
22 <div
class=
"border px-2 py-1 rounded bg-light-info">
23 <small>Группы доступа <a onclick=
"if(~~this.dataset.checked){$(this).html('отметить все');this.dataset.checked=0;$(this).parents('form').find('[name^=groups]').prop('checked', false);}else{$(this).html('снять все');this.dataset.checked=1;$(this).parents('form').find('[name^=groups]').prop('checked', true);}return false;" href=
"#">отметить все</a></small>
25 foreach (Wrong\Rights\Group::$groups_not_system as $row) {
26 echo
'<div class="custom-control custom-checkbox small">
27 <input type="checkbox" name="groups[' . $row->id .
']" class="custom-control-input" id="check-group-' . $row->id .
'">
28 <label class="custom-control-label" for="check-group-' . $row->id .
'">' .
Wrong\Rights\Group::text($row->id) .
'</label>
33 <div
class=
"input-group input-group-sm mt-2">
34 <div
class=
"input-group-prepend w-50">
35 <span
class=
"input-group-text w-100">Группа владелец</span>
37 <select name=
"owner_group" class=
"custom-select">
39 foreach (
$user->subordinate_groups as $id) {
41 echo
'<option data-path="' . $row->path .
'" value="' . $row->id .
'" ' . ($row->id ==
$user->main_group_id ?
' selected' :
'') .
'>' . Wrong\Rights\Group::text($row->id) .
'</option>';
46 <div
class=
"input-group input-group-sm mt-2">
47 <div
class=
"input-group-prepend w-50">
48 <span
class=
"input-group-text w-100">Шаблон</span>
50 <select name=
"template_id" class=
"custom-select">
52 foreach (Wrong\Models\Templates::all_available(
'modal',
'type') as $row) {
53 echo
'<option value="' . $row->id .
'">' . $row->name .
'</option>';
58 <div
class=
"input-group input-group-sm mt-2">
59 <div
class=
"input-group-prepend w-50">
60 <span
class=
"input-group-text w-100">Запрос</span>
62 <input type=
"text" name=
"request" class=
"form-control" value=
"/api/modal/request" placeholder=
"/api/modal/request" autocomplete=
"off" required>
64 <div
class=
"input-group input-group-sm mt-2">
65 <div
class=
"input-group-prepend w-50">
66 <span
class=
"input-group-text w-100">Файл обработчик</span>
68 <input title=
"Доступные каталоги: <?= implode(', ', $user->writeble_paths) ?>" type=
"text" name=
"file" class=
"form-control" value=
"/api/modal/<?= Wrong\Rights\Group::row($user->main_group_id)->path ?>/request.php" placeholder=
"/api/modal/<?= Wrong\Rights\Group::row($user->main_group_id)->path ?>/request.php" autocomplete=
"off" required>
70 <div
class=
"bg-light-info border mt-2 px-2 py-1 rounded">
71 <div
class=
"custom-control custom-checkbox small">
72 <input type=
"checkbox" name=
"add-action" class=
"custom-control-input" id=
"add-action">
73 <label
class=
"custom-control-label" for=
"add-action">Добавить действие<i
class=
"fa fa-flash ml-2"></i></label>
76 <button type=
"submit" class=
"btn btn-sm btn-block btn-success mt-3">Сохранить</button>
82 $(
"#<?= $basename ?> form").submit(
function(e) {
83 lockSubmit($(
"#<?= $basename ?> form [type=submit]"));
87 url: $(
this).attr(
"action"),
88 data: $(
this).serialize(),
97 errorToast(response.error);
100 $(
'.dataTable').DataTable().ajax.reload(
null,
false);
101 $(
'.toast').toast(
'hide');
102 successToast(response.message);
103 $(
"#<?= $basename ?>").modal(
"hide");
106 unlockSubmit($(
"#<?= $basename ?> form [type=submit]"));
110 $(
"#<?= $basename ?> form [name=request]").keyup(
function() {
111 let filename = ($(
this).val().trim().match(/[^\/]+$/)?. [0] ||
'') +
'.php';
112 let replace = $(
"#<?= $basename ?> form [name=file]").val().trim().replace(/[^\/]+$/, filename);
113 $(
"#<?= $basename ?> form [name=file]").val(replace);
118 let path = $(
'#<?= $basename ?> [name="owner_group"] option:selected').data(
'path');
119 let file = $(
"#<?= $basename ?> form [name=file]").val();
120 file = file.replace(/^(\/api\/[^/]+\/)[^/]+/,
'$1' + path);
121 $(
"#<?= $basename ?> form [name=file]").val(file);
123 $(
'#<?= $basename ?> [name="owner_group"]').on(
'change', setPath);
124 $(
'#<?= $basename ?> [name="owner_group"]').trigger(
'change');
setcookie('FROM_UID', $uid, [ 'expires'=> time()+31536000, 'path'=> '/', 'domain'=> $_SERVER['HTTP_HOST'], 'secure'=> Wrong\Start\Env::$e->IS_SECURE, 'httponly'=> false, 'samesite'=> Wrong\Start\Env::$e->IS_SECURE ? 'None' :'Lax']) or setcookie('FROM_UID' $_SERVER['HTTP_HOST']