This commit is contained in:
108
application/views/pages/about.php
Normal file
108
application/views/pages/about.php
Normal file
@@ -0,0 +1,108 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div id="about-page" class="container backend-page">
|
||||
<div id="about" class="col-lg-8 offset-lg-2">
|
||||
|
||||
<div class="text-center my-5">
|
||||
<img src="<?= base_url('assets/img/logo.png') ?>" alt="Easy!Appointments Logo" class="mb-5">
|
||||
|
||||
<h3>
|
||||
Easy!Appointments
|
||||
</h3>
|
||||
<h6 class="text-primary">
|
||||
Online Appointment Scheduler
|
||||
</h6>
|
||||
</div>
|
||||
|
||||
<p class="mb-5">
|
||||
<?= lang('about_app_info') ?>
|
||||
</p>
|
||||
|
||||
<div class="card mb-5">
|
||||
<div class="card-header">
|
||||
<h5 class="fw-light text-black-50 mb-0">
|
||||
<?= lang('current_version') ?>
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<strong>
|
||||
<?= config('version') ?>
|
||||
</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4 class="fw-light text-black-50 mb-3">
|
||||
<?= lang('support') ?>
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
<?= lang('about_app_support') ?>
|
||||
</p>
|
||||
|
||||
<div class="row mb-5">
|
||||
<div class="col-lg-6 mb-3">
|
||||
<a class="btn btn-outline-secondary d-block" href="https://easyappointments.org" target="_blank">
|
||||
<i class="fas fa-external-link-alt me-2"></i>
|
||||
<?= lang('official_website') ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-3">
|
||||
<a class="btn btn-outline-secondary d-block"
|
||||
href="https://groups.google.com/forum/#!forum/easy-appointments" target="_blank">
|
||||
<i class="fas fa-external-link-alt me-2"></i>
|
||||
<?= lang('support_group') ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-3">
|
||||
<a class="btn btn-outline-secondary d-block"
|
||||
href="https://github.com/alextselegidis/easyappointments/issues" target="_blank">
|
||||
<i class="fas fa-external-link-alt me-2"></i>
|
||||
<?= lang('project_issues') ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-3">
|
||||
<a class="btn btn-outline-secondary d-block" href="https://facebook.com/easyappts" target="_blank">
|
||||
<i class="fas fa-external-link-alt me-2"></i>
|
||||
Facebook
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-3">
|
||||
<a class="btn btn-outline-secondary d-block" href="https://x.com/easyappts" target="_blank">
|
||||
<i class="fas fa-external-link-alt me-2"></i>
|
||||
X.com
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-3">
|
||||
<a class="btn btn-outline-secondary d-block" href="https://easyappointments.org/get-a-free-quote" target="_blank">
|
||||
<i class="fas fa-external-link-alt me-2"></i>
|
||||
Customize E!A
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4 class="fw-light text-black-50 mb-3">
|
||||
<?= lang('license') ?>
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
<?= lang('about_app_license') ?>
|
||||
</p>
|
||||
|
||||
<div class="mb-5">
|
||||
<a class="btn btn-outline-secondary d-block w-50 m-auto" href="https://www.gnu.org/licenses/gpl-3.0.en.html"
|
||||
target="_blank">
|
||||
<i class="fas fa-external-link-alt me-2"></i>
|
||||
GPL-3.0
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
195
application/views/pages/account.php
Normal file
195
application/views/pages/account.php
Normal file
@@ -0,0 +1,195 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div id="account-page" class="container backend-page">
|
||||
<div id="account">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 offset-lg-2">
|
||||
<form>
|
||||
<fieldset>
|
||||
<div class="d-flex justify-content-between align-items-center border-bottom mb-4 py-2">
|
||||
<h4 class="text-black-50 mb-0 fw-light">
|
||||
<?= lang('account') ?>
|
||||
</h4>
|
||||
|
||||
<?php if (can('edit', PRIV_USER_SETTINGS)): ?>
|
||||
<button type="button" id="save-settings" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<input type="hidden" id="user-id">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="first-name">
|
||||
<?= lang('first_name') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="first-name" class="form-control required">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="last-name">
|
||||
<?= lang('last_name') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="last-name" class="form-control required">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="email">
|
||||
<?= lang('email') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="email" class="form-control required">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="phone-number">
|
||||
<?= lang('phone_number') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="phone-number" class="form-control required">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="mobile-number">
|
||||
<?= lang('mobile_number') ?>
|
||||
</label>
|
||||
<input id="mobile-number" class="form-control">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="address">
|
||||
<?= lang('address') ?>
|
||||
</label>
|
||||
<input id="address" class="form-control">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="city">
|
||||
<?= lang('city') ?>
|
||||
</label>
|
||||
<input id="city" class="form-control">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="state">
|
||||
<?= lang('state') ?>
|
||||
</label>
|
||||
<input id="state" class="form-control">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="zip-code">
|
||||
<?= lang('zip_code') ?>
|
||||
</label>
|
||||
<input id="zip-code" class="form-control">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="notes">
|
||||
<?= lang('notes') ?>
|
||||
</label>
|
||||
<textarea id="notes" class="form-control" rows="3"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="username">
|
||||
<?= lang('username') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="username" class="form-control required">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="password">
|
||||
<?= lang('password') ?>
|
||||
</label>
|
||||
<input type="password" id="password" class="form-control"
|
||||
autocomplete="new-password">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="retype-password">
|
||||
<?= lang('retype_password') ?>
|
||||
</label>
|
||||
<input type="password" id="retype-password" class="form-control"
|
||||
autocomplete="new-password">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="calendar-view"><?= lang('calendar') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<select id="calendar-view" class="form-select required">
|
||||
<option value="default"><?= lang('default') ?></option>
|
||||
<option value="table"><?= lang('table') ?></option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="language">
|
||||
<?= lang('language') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<select id="language" class="form-select required">
|
||||
<?php foreach (vars('available_languages') as $available_language): ?>
|
||||
<option value="<?= $available_language ?>">
|
||||
<?= ucfirst($available_language) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="timezone">
|
||||
<?= lang('timezone') ?>
|
||||
</label>
|
||||
<?php component('timezone_dropdown', [
|
||||
'attributes' => 'id="timezone" class="form-control required"',
|
||||
'grouped_timezones' => vars('grouped_timezones'),
|
||||
]); ?>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label mb-3">
|
||||
<?= lang('options') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="border rounded mb-3 p-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" id="notifications" type="checkbox">
|
||||
<label class="form-check-label" for="notifications">
|
||||
<?= lang('receive_notifications') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/account_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/account.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
254
application/views/pages/admins.php
Normal file
254
application/views/pages/admins.php
Normal file
@@ -0,0 +1,254 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div class="container-fluid backend-page" id="admins-page">
|
||||
<div class="row" id="admins">
|
||||
<div id="filter-admins" class="filter-records column col-12 col-md-5">
|
||||
<form class="mb-4">
|
||||
<div class="input-group">
|
||||
<input type="text" class="key form-control" aria-label="keyword">
|
||||
|
||||
<button class="filter btn btn-outline-secondary" type="submit"
|
||||
data-tippy-content="<?= lang('filter') ?>">
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('admins') ?>
|
||||
</h4>
|
||||
|
||||
<?php slot('after_page_title'); ?>
|
||||
|
||||
<div class="results">
|
||||
<!-- JS -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="record-details column col-12 col-md-7">
|
||||
<div class="btn-toolbar mb-4">
|
||||
<div class="add-edit-delete-group btn-group">
|
||||
<button id="add-admin" class="btn btn-primary">
|
||||
<i class="fas fa-plus-square me-2"></i>
|
||||
<?= lang('add') ?>
|
||||
</button>
|
||||
<button id="edit-admin" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-edit me-2"></i>
|
||||
<?= lang('edit') ?>
|
||||
</button>
|
||||
<button id="delete-admin" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-trash-alt me-2"></i>
|
||||
<?= lang('delete') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="save-cancel-group" style="display:none;">
|
||||
<button id="save-admin" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<button id="cancel-admin" class="btn btn-secondary">
|
||||
<?= lang('cancel') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<?php slot('after_page_actions'); ?>
|
||||
</div>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('details') ?>
|
||||
</h4>
|
||||
|
||||
<div class="form-message alert" style="display:none;"></div>
|
||||
|
||||
<input type="hidden" id="id" class="record-id">
|
||||
|
||||
<div class="row">
|
||||
<div class="details col-12 col-md-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="first-name">
|
||||
<?= lang('first_name') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="first-name" class="form-control required" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="last-name">
|
||||
<?= lang('last_name') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="last-name" class="form-control required" maxlength="512" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="email">
|
||||
<?= lang('email') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="email" class="form-control required" maxlength="512" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="phone-number">
|
||||
<?= lang('phone_number') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="phone-number" class="form-control required" maxlength="128" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="mobile-number">
|
||||
<?= lang('mobile_number') ?>
|
||||
|
||||
</label>
|
||||
<input id="mobile-number" class="form-control" maxlength="128" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="address">
|
||||
<?= lang('address') ?>
|
||||
</label>
|
||||
<input id="address" class="form-control" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="city">
|
||||
<?= lang('city') ?>
|
||||
|
||||
</label>
|
||||
<input id="city" class="form-control" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="state">
|
||||
<?= lang('state') ?>
|
||||
</label>
|
||||
<input id="state" class="form-control" maxlength="128" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="zip-code">
|
||||
<?= lang('zip_code') ?>
|
||||
</label>
|
||||
<input id="zip-code" class="form-control" maxlength="64" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="notes">
|
||||
<?= lang('notes') ?>
|
||||
</label>
|
||||
<textarea id="notes" class="form-control" rows="3" disabled></textarea>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_fields'); ?>
|
||||
</div>
|
||||
<div class="settings col-12 col-md-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="username">
|
||||
<?= lang('username') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="username" class="form-control required" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="password">
|
||||
<?= lang('password') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input type="password" id="password" class="form-control required" maxlength="512"
|
||||
autocomplete="new-password" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="password-confirm">
|
||||
<?= lang('retype_password') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input type="password" id="password-confirm" class="form-control required"
|
||||
maxlength="512" autocomplete="new-password" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="calendar-view">
|
||||
<?= lang('calendar') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<select id="calendar-view" class="form-select required" disabled>
|
||||
<option value="default"><?= lang('default') ?></option>
|
||||
<option value="table"><?= lang('table') ?></option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="language">
|
||||
<?= lang('language') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<select id="language" class="form-select required" disabled>
|
||||
<?php foreach (vars('available_languages') as $available_language): ?>
|
||||
<option value="<?= $available_language ?>">
|
||||
<?= ucfirst($available_language) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="timezone">
|
||||
<?= lang('timezone') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<?php component('timezone_dropdown', [
|
||||
'attributes' => 'id="timezone" class="form-control required" disabled',
|
||||
'grouped_timezones' => vars('grouped_timezones'),
|
||||
]); ?>
|
||||
</div>
|
||||
|
||||
<?php if (setting('ldap_is_active')): ?>
|
||||
<div class="mb-3">
|
||||
<label for="ldap-dn" class="form-label">
|
||||
<?= lang('ldap_dn') ?>
|
||||
</label>
|
||||
<input type="text" id="ldap-dn" class="form-control" maxlength="100" disabled/>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div>
|
||||
<label class="form-label mb-3">
|
||||
<?= lang('options') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="border rounded mb-3 p-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="notifications" disabled>
|
||||
<label class="form-check-label" for="notifications">
|
||||
<?= lang('receive_notifications') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php slot('after_secondary_fields'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/account_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/admins_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/admins.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
|
||||
64
application/views/pages/api_settings.php
Normal file
64
application/views/pages/api_settings.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div id="api-settings-page" class="container backend-page">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 offset-sm-1">
|
||||
<?php component('settings_nav'); ?>
|
||||
</div>
|
||||
<div id="api-settings" class="col-sm-6">
|
||||
<form>
|
||||
<fieldset>
|
||||
<div class="d-flex justify-content-between align-items-center border-bottom mb-4 py-2">
|
||||
<h4 class="text-black-50 mb-0 fw-light">
|
||||
<?= lang('api') ?>
|
||||
</h4>
|
||||
|
||||
<div>
|
||||
<a href="<?= site_url('integrations') ?>" class="btn btn-outline-primary me-2">
|
||||
<i class="fas fa-chevron-left me-2"></i>
|
||||
<?= lang('back') ?>
|
||||
</a>
|
||||
|
||||
<?php if (can('edit', PRIV_SYSTEM_SETTINGS)): ?>
|
||||
<button type="button" id="save-settings" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="api-token">
|
||||
<?= lang('api_token') ?>
|
||||
</label>
|
||||
<input id="api-token" class="form-control" data-field="api_token">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('api_token_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_appointment_fields'); ?>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/api_settings_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/api_settings.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
122
application/views/pages/blocked_periods.php
Normal file
122
application/views/pages/blocked_periods.php
Normal file
@@ -0,0 +1,122 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div class="container-fluid backend-page" id="blocked-periods-page">
|
||||
|
||||
<div class="row" id="blocked-periods">
|
||||
<div id="filter-blocked-periods" class="filter-records column col-12 col-md-5">
|
||||
<form class="input-append mb-4">
|
||||
<div class="input-group">
|
||||
<input type="text" class="key form-control" aria-label="keyword">
|
||||
|
||||
<button class="filter btn btn-outline-secondary" type="submit"
|
||||
data-tippy-content="<?= lang('filter') ?>">
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('blocked_periods') ?>
|
||||
</h4>
|
||||
|
||||
<?php slot('after_page_title'); ?>
|
||||
|
||||
<div class="results">
|
||||
<!-- JS -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="record-details col-12 col-md-5">
|
||||
<div class="btn-toolbar mb-4">
|
||||
<a href="<?= site_url('business_settings') ?>" class="btn btn-outline-primary me-2">
|
||||
<i class="fas fa-chevron-left me-2"></i>
|
||||
<?= lang('back') ?>
|
||||
</a>
|
||||
|
||||
<div class="add-edit-delete-group btn-group">
|
||||
<button id="add-blocked-period" class="btn btn-primary">
|
||||
<i class="fas fa-plus-square me-2"></i>
|
||||
<?= lang('add') ?>
|
||||
</button>
|
||||
<button id="edit-blocked-period" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-edit me-2"></i>
|
||||
<?= lang('edit') ?>
|
||||
</button>
|
||||
<button id="delete-blocked-period" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-trash-alt me-2"></i>
|
||||
<?= lang('delete') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="save-cancel-group" style="display:none;">
|
||||
<button id="save-blocked-period" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<button id="cancel-blocked-period" class="btn btn-secondary">
|
||||
<?= lang('cancel') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<?php slot('after_page_actions'); ?>
|
||||
</div>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('details') ?>
|
||||
</h4>
|
||||
|
||||
<div class="form-message alert" style="display:none;"></div>
|
||||
|
||||
<input type="hidden" id="id">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="name">
|
||||
<?= lang('name') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="name" class="form-control required" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="start-date-time">
|
||||
<?= lang('start') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="start-date-time" class="form-control required" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="end-date-time">
|
||||
<?= lang('end') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="end-date-time" class="form-control required" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="notes">
|
||||
<?= lang('notes') ?>
|
||||
</label>
|
||||
<textarea id="notes" rows="4" class="form-control" disabled></textarea>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_fields'); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/ui.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/blocked_periods_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/blocked_periods.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
64
application/views/pages/booking.php
Normal file
64
application/views/pages/booking.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php extend('layouts/booking_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<!-- Booking Cancellation Frame -->
|
||||
|
||||
<?php component('booking_cancellation_frame', [
|
||||
'manage_mode' => vars('manage_mode'),
|
||||
'appointment_data' => vars('appointment_data'),
|
||||
'display_delete_personal_information' => vars('display_delete_personal_information'),
|
||||
]); ?>
|
||||
|
||||
<!-- Select Service & Provider -->
|
||||
|
||||
<?php component('booking_type_step', ['available_services' => vars('available_services')]); ?>
|
||||
|
||||
<!-- Pick An Appointment Date -->
|
||||
|
||||
<?php component('booking_time_step', ['grouped_timezones' => vars('grouped_timezones')]); ?>
|
||||
|
||||
<!-- Enter Customer Information -->
|
||||
|
||||
<?php component('booking_info_step', [
|
||||
'display_first_name' => vars('display_first_name'),
|
||||
'require_first_name' => vars('require_first_name'),
|
||||
'display_last_name' => vars('display_last_name'),
|
||||
'require_last_name' => vars('require_last_name'),
|
||||
'display_email' => vars('display_email'),
|
||||
'require_email' => vars('require_email'),
|
||||
'display_phone_number' => vars('display_phone_number'),
|
||||
'require_phone_number' => vars('require_phone_number'),
|
||||
'display_address' => vars('display_address'),
|
||||
'require_address' => vars('require_address'),
|
||||
'display_city' => vars('display_city'),
|
||||
'require_city' => vars('require_city'),
|
||||
'display_zip_code' => vars('display_zip_code'),
|
||||
'require_zip_code' => vars('require_zip_code'),
|
||||
'display_notes' => vars('display_notes'),
|
||||
'require_notes' => vars('require_notes'),
|
||||
]); ?>
|
||||
|
||||
<!-- Appointment Data Confirmation -->
|
||||
|
||||
<?php component('booking_final_step', [
|
||||
'manage_mode' => vars('manage_mode'),
|
||||
'display_terms_and_conditions' => vars('display_terms_and_conditions'),
|
||||
'display_privacy_policy' => vars('display_privacy_policy'),
|
||||
]); ?>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/date.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/lang.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/string.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/ui.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/booking_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/booking.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
32
application/views/pages/booking_cancellation.php
Normal file
32
application/views/pages/booking_cancellation.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php extend('layouts/message_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div>
|
||||
<img id="success-icon" class="mt-0 mb-5" src="<?= base_url('assets/img/success.png') ?>" alt="success"/>
|
||||
</div>
|
||||
|
||||
<div class="mb-5">
|
||||
<h4 class="mb-5"><?= lang('appointment_cancelled_title') ?></h4>
|
||||
|
||||
<p class="mb-5">
|
||||
<?= lang('appointment_cancelled') ?>
|
||||
</p>
|
||||
|
||||
<a href="<?= site_url() ?>" class="btn btn-primary btn-large">
|
||||
<i class="fas fa-calendar-alt me-2"></i>
|
||||
<?= lang('go_to_booking_page') ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<?php component('google_analytics_script', ['google_analytics_code' => vars('google_analytics_code')]); ?>
|
||||
<?php component('matomo_analytics_script', [
|
||||
'matomo_analytics_url' => vars('matomo_analytics_url'),
|
||||
'matomo_analytics_site_id' => vars('matomo_analytics_site_id'),
|
||||
]); ?>
|
||||
<?php end_section('scripts'); ?>
|
||||
|
||||
43
application/views/pages/booking_confirmation.php
Normal file
43
application/views/pages/booking_confirmation.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php extend('layouts/message_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div>
|
||||
<img id="success-icon" class="mt-0 mb-5" src="<?= base_url('assets/img/success.png') ?>" alt="success"/>
|
||||
</div>
|
||||
|
||||
<div class="mb-5">
|
||||
<h4 class="mb-5"><?= lang('appointment_registered') ?></h4>
|
||||
|
||||
<p>
|
||||
<?= lang('appointment_details_was_sent_to_you') ?>
|
||||
</p>
|
||||
|
||||
<p class="mb-5 text-muted">
|
||||
<small>
|
||||
<?= lang('check_spam_folder') ?>
|
||||
</small>
|
||||
</p>
|
||||
|
||||
<a href="<?= site_url() ?>" class="btn btn-primary btn-large">
|
||||
<i class="fas fa-calendar-alt me-2"></i>
|
||||
<?= lang('go_to_booking_page') ?>
|
||||
</a>
|
||||
|
||||
<a href="<?= vars('add_to_google_url') ?>" id="add-to-google-calendar" class="btn btn-primary" target="_blank">
|
||||
<i class="fas fa-plus me-2"></i>
|
||||
<?= lang('add_to_google_calendar') ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<?php component('google_analytics_script', ['google_analytics_code' => vars('google_analytics_code')]); ?>
|
||||
<?php component('matomo_analytics_script', [
|
||||
'matomo_analytics_url' => vars('matomo_analytics_url'),
|
||||
'matomo_analytics_site_id' => vars('matomo_analytics_site_id'),
|
||||
]); ?>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
26
application/views/pages/booking_message.php
Normal file
26
application/views/pages/booking_message.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php extend('layouts/message_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div>
|
||||
<img id="message-icon" class="mt-0 mb-5" src="<?= vars('message_icon') ?>" alt="warning">
|
||||
</div>
|
||||
|
||||
<div class="mb-5">
|
||||
<h4 class="mb-5"><?= vars('message_title') ?></h4>
|
||||
|
||||
<p><?= vars('message_text') ?></p>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<?php component('google_analytics_script', ['google_analytics_code' => vars('google_analytics_code')]); ?>
|
||||
<?php component('matomo_analytics_script', [
|
||||
'matomo_analytics_url' => vars('matomo_analytics_url'),
|
||||
'matomo_analytics_site_id' => vars('matomo_analytics_site_id'),
|
||||
]); ?>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
|
||||
443
application/views/pages/booking_settings.php
Normal file
443
application/views/pages/booking_settings.php
Normal file
@@ -0,0 +1,443 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div id="booking-settings-page" class="container backend-page">
|
||||
<div id="booking-settings">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 offset-sm-1">
|
||||
<?php component('settings_nav'); ?>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<form>
|
||||
<fieldset>
|
||||
<div class="d-flex justify-content-between align-items-center border-bottom mb-4 py-2">
|
||||
<h4 class="text-black-50 mb-0 fw-light">
|
||||
<?= lang('booking_settings') ?>
|
||||
</h4>
|
||||
|
||||
<?php if (can('edit', PRIV_SYSTEM_SETTINGS)): ?>
|
||||
<button type="button" id="save-settings" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<h5 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('fields') ?>
|
||||
</h5>
|
||||
|
||||
<div class="row mb-5 fields-row">
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group mb-5">
|
||||
<label for="first-name" class="form-label">
|
||||
<?= lang('first_name') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" id="first-name" class="form-control mb-2" readonly/>
|
||||
|
||||
<div class="d-flex">
|
||||
<div class="form-check form-switch me-4">
|
||||
<input class="form-check-input display-switch" type="checkbox"
|
||||
id="display-first-name"
|
||||
data-field="display_first_name">
|
||||
<label class="form-check-label" for="display-first-name">
|
||||
<?= lang('display') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input require-switch" type="checkbox"
|
||||
id="require-first-name"
|
||||
data-field="require_first_name">
|
||||
<label class="form-check-label" for="require-first-name">
|
||||
<?= lang('require') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-5">
|
||||
<label for="last-name" class="form-label">
|
||||
<?= lang('last_name') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input type="text" id="last-name" class="form-control mb-2" readonly/>
|
||||
<div class="d-flex">
|
||||
<div class="form-check form-switch me-4">
|
||||
<input class="form-check-input display-switch" type="checkbox"
|
||||
id="display-last-name"
|
||||
data-field="display_last_name">
|
||||
<label class="form-check-label" for="display-last-name">
|
||||
<?= lang('display') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input require-switch" type="checkbox"
|
||||
id="require-last-name"
|
||||
data-field="require_last_name">
|
||||
<label class="form-check-label" for="require-last-name">
|
||||
<?= lang('require') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-5">
|
||||
<label for="email" class="form-label">
|
||||
<?= lang('email') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input type="text" id="email" class="form-control mb-2" readonly/>
|
||||
<div class="d-flex">
|
||||
<div class="form-check form-switch me-4">
|
||||
<input class="form-check-input display-switch" type="checkbox"
|
||||
id="display-email"
|
||||
data-field="display_email">
|
||||
<label class="form-check-label" for="display-email">
|
||||
<?= lang('display') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input require-switch" type="checkbox"
|
||||
id="require-email"
|
||||
data-field="require_email">
|
||||
<label class="form-check-label" for="require-email">
|
||||
<?= lang('require') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-3">
|
||||
<label for="phone-number" class="form-label">
|
||||
<?= lang('phone_number') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input type="text" id="phone-number" class="form-control mb-2" readonly/>
|
||||
<div class="d-flex">
|
||||
<div class="form-check form-switch me-4">
|
||||
<input class="form-check-input display-switch" type="checkbox"
|
||||
id="display-phone-number"
|
||||
data-field="display_phone_number">
|
||||
<label class="form-check-label" for="display-phone-number">
|
||||
<?= lang('display') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input require-switch" type="checkbox"
|
||||
id="require-phone-number"
|
||||
data-field="require_phone_number">
|
||||
<label class="form-check-label" for="require-phone-number">
|
||||
<?= lang('require') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group mb-5">
|
||||
<label for="address" class="form-label">
|
||||
<?= lang('address') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input type="text" id="address" class="form-control mb-2" readonly/>
|
||||
<div class="d-flex">
|
||||
<div class="form-check form-switch me-4">
|
||||
<input class="form-check-input display-switch" type="checkbox"
|
||||
id="display-address"
|
||||
data-field="display_address">
|
||||
<label class="form-check-label" for="display-address">
|
||||
<?= lang('display') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input require-switch" type="checkbox"
|
||||
id="require-address"
|
||||
data-field="require_address">
|
||||
<label class="form-check-label" for="require-address">
|
||||
<?= lang('require') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-5">
|
||||
<label for="city" class="form-label">
|
||||
<?= lang('city') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input type="text" id="city" class="form-control mb-2" readonly/>
|
||||
<div class="d-flex">
|
||||
<div class="form-check form-switch me-4">
|
||||
<input class="form-check-input display-switch" type="checkbox"
|
||||
id="display-city"
|
||||
data-field="display_city">
|
||||
<label class="form-check-label" for="display-city">
|
||||
<?= lang('display') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input require-switch" type="checkbox"
|
||||
id="require-city"
|
||||
data-field="require_city">
|
||||
<label class="form-check-label" for="require-city">
|
||||
<?= lang('require') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-5">
|
||||
<label for="zip-code" class="form-label">
|
||||
<?= lang('zip_code') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input type="text" id="zip-code" class="form-control mb-2" readonly/>
|
||||
<div class="d-flex">
|
||||
<div class="form-check form-switch me-4">
|
||||
<input class="form-check-input display-switch" type="checkbox"
|
||||
id="display-zip-code"
|
||||
data-field="display_zip_code">
|
||||
<label class="form-check-label" for="display-zip-code">
|
||||
<?= lang('display') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input require-switch" type="checkbox"
|
||||
id="require-zip-code"
|
||||
data-field="require_zip_code">
|
||||
<label class="form-check-label" for="require-zip-code">
|
||||
<?= lang('require') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-3">
|
||||
<label for="notes" class="form-label">
|
||||
<?= lang('notes') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<textarea id="notes" class="form-control mb-2" rows="1" readonly></textarea>
|
||||
<div class="d-flex">
|
||||
<div class="form-check form-switch me-4">
|
||||
<input class="form-check-input display-switch" type="checkbox"
|
||||
id="display-notes"
|
||||
data-field="display_notes">
|
||||
<label class="form-check-label" for="display-notes">
|
||||
<?= lang('display') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input require-switch" type="checkbox"
|
||||
id="require-notes"
|
||||
data-field="require_notes">
|
||||
<label class="form-check-label" for="require-notes">
|
||||
<?= lang('require') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('custom_fields') ?>
|
||||
</h5>
|
||||
|
||||
<div class="row mb-5 fields-row">
|
||||
<?php for ($i = 1; $i <= 5; $i++): ?>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group mb-5">
|
||||
<label for="first-name" class="form-label">
|
||||
<?= lang('custom_field') ?> #<?= $i ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" id="custom-field-<?= $i ?>" class="form-control mb-2"
|
||||
placeholder="<?= lang('label') ?>"
|
||||
data-field="label_custom_field_<?= $i ?>"
|
||||
aria-label="label"
|
||||
/>
|
||||
|
||||
<div class="d-flex">
|
||||
<div class="form-check form-switch me-4">
|
||||
<input class="form-check-input display-switch" type="checkbox"
|
||||
id="display-custom-field-<?= $i ?>"
|
||||
data-field="display_custom_field_<?= $i ?>">
|
||||
<label class="form-check-label" for="display-custom-field-<?= $i ?>">
|
||||
<?= lang('display') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input require-switch" type="checkbox"
|
||||
id="require-custom-field-<?= $i ?>"
|
||||
data-field="require_custom_field_<?= $i ?>">
|
||||
<label class="form-check-label" for="require-custom-field-<?= $i ?>">
|
||||
<?= lang('require') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endfor; ?>
|
||||
</div>
|
||||
|
||||
|
||||
<h5 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('options') ?>
|
||||
</h5>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="border rounded mb-3 p-3">
|
||||
<div class="mb-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="customer-notifications"
|
||||
data-field="customer_notifications">
|
||||
<label class="form-check-label" for="customer-notifications">
|
||||
<?= lang('customer_notifications') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('customer_notifications_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="limit-customer-access"
|
||||
data-field="limit_customer_access">
|
||||
<label class="form-check-label" for="limit-customer-access">
|
||||
<?= lang('limit_customer_access') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('limit_customer_access_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="require-captcha"
|
||||
data-field="require_captcha">
|
||||
<label class="form-check-label" for="require-captcha">
|
||||
CAPTCHA
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('require_captcha_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="display-any-provider"
|
||||
data-field="display_any_provider">
|
||||
<label class="form-check-label" for="display-any-provider">
|
||||
<?= lang('any_provider') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('display_any_provider_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="display-login-button"
|
||||
data-field="display_login_button">
|
||||
<label class="form-check-label" for="display-login-button">
|
||||
<?= lang('login_button') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('display_login_button_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox"
|
||||
id="display-delete-personal-information"
|
||||
data-field="display_delete_personal_information">
|
||||
<label class="form-check-label" for="display-delete-personal-information">
|
||||
<?= lang('delete_personal_information') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('delete_personal_information_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="disable-booking"
|
||||
data-field="disable_booking">
|
||||
<label class="form-check-label" for="disable-booking">
|
||||
<?= lang('disable_booking') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('disable_booking_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group mb-3" hidden>
|
||||
<label class="form-label" for="disable-booking-message">
|
||||
<?= lang('display_message') ?>
|
||||
</label>
|
||||
<textarea id="disable-booking-message" cols="30" rows="10"
|
||||
class="mb-3"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_fields'); ?>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/booking_settings_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/booking_settings.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
|
||||
|
||||
|
||||
161
application/views/pages/business_settings.php
Normal file
161
application/views/pages/business_settings.php
Normal file
@@ -0,0 +1,161 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div id="business-logic-page" class="container backend-page">
|
||||
<div id="business-logic">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 offset-sm-1">
|
||||
<?php component('settings_nav'); ?>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<form>
|
||||
<fieldset>
|
||||
<div class="d-flex justify-content-between align-items-center border-bottom mb-4 py-2">
|
||||
<h4 class="text-black-50 mb-0 fw-light">
|
||||
<?= lang('business_logic') ?>
|
||||
</h4>
|
||||
|
||||
<?php if (can('edit', PRIV_SYSTEM_SETTINGS)): ?>
|
||||
<button type="button" id="save-settings" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<h5 class="text-black-50 mb-3 fw-light"><?= lang('working_plan') ?></h5>
|
||||
|
||||
<p class="form-text text-muted mb-4">
|
||||
<?= lang('edit_working_plan_hint') ?>
|
||||
</p>
|
||||
|
||||
<table class="working-plan table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?= lang('day') ?></th>
|
||||
<th><?= lang('start') ?></th>
|
||||
<th><?= lang('end') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><!-- Dynamic Content --></tbody>
|
||||
</table>
|
||||
|
||||
<div class="text-end mb-5">
|
||||
<button class="btn btn-outline-secondary" id="apply-global-working-plan" type="button">
|
||||
<i class="fas fa-check"></i>
|
||||
<?= lang('apply_to_all_providers') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<h5 class="text-black-50 mb-3 fw-light"><?= lang('breaks') ?></h5>
|
||||
|
||||
<p class="form-text text-muted">
|
||||
<?= lang('edit_breaks_hint') ?>
|
||||
</p>
|
||||
|
||||
<div class="mt-2">
|
||||
<button type="button" class="add-break btn btn-primary">
|
||||
<i class="fas fa-plus-square me-2"></i>
|
||||
<?= lang('add_break') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<table class="breaks table table-striped mb-5">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?= lang('day') ?></th>
|
||||
<th><?= lang('start') ?></th>
|
||||
<th><?= lang('end') ?></th>
|
||||
<th><?= lang('actions') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><!-- Dynamic Content --></tbody>
|
||||
</table>
|
||||
|
||||
<?php if (can('view', PRIV_BLOCKED_PERIODS)): ?>
|
||||
<h5 class="text-black-50 mb-3 fw-light"><?= lang('blocked_periods') ?></h5>
|
||||
|
||||
<p class="form-text text-muted">
|
||||
<?= lang('blocked_periods_hint') ?>
|
||||
</p>
|
||||
|
||||
<div class="mb-5">
|
||||
<a href="<?= site_url('blocked_periods') ?>" class="btn btn-primary">
|
||||
<i class="fas fa-cogs me-2"></i>
|
||||
<?= lang('configure') ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<h5 class="text-black-50 mb-3 fw-light"><?= lang(
|
||||
'allow_rescheduling_cancellation_before',
|
||||
) ?></h5>
|
||||
|
||||
<div class="mb-5">
|
||||
<label for="book-advance-timeout" class="form-label">
|
||||
<?= lang('timeout_minutes') ?>
|
||||
</label>
|
||||
<input id="book-advance-timeout" data-field="book_advance_timeout" class="form-control"
|
||||
type="number" min="15">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('book_advance_timeout_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5 class="text-black-50 mb-3 fw-light"><?= lang('future_booking_limit') ?></h5>
|
||||
|
||||
<div class="mb-5">
|
||||
<label for="future-booking-limit" class="form-label">
|
||||
<?= lang('limit_days') ?>
|
||||
</label>
|
||||
<input id="future-booking-limit" data-field="future_booking_limit" class="form-control"
|
||||
type="number" min="15">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('future_booking_limit_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-start align-items-center mb-3">
|
||||
<h5 class="text-black-50 mb-0 me-3 fw-light">
|
||||
<?= lang('appointment_status_options') ?>
|
||||
</h5>
|
||||
</div>
|
||||
|
||||
<p class="form-text text-muted mb-4">
|
||||
<?= lang('appointment_status_options_info') ?>
|
||||
</p>
|
||||
|
||||
<?php component('appointment_status_options', [
|
||||
'attributes' => 'id="appointment-status-options"',
|
||||
]); ?>
|
||||
|
||||
<?php slot('after_primary_fields'); ?>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/vendor/jquery-jeditable/jquery.jeditable.min.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/date.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/string.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/ui.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/working_plan.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/business_settings_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/business_settings.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
|
||||
156
application/views/pages/calendar.php
Normal file
156
application/views/pages/calendar.php
Normal file
@@ -0,0 +1,156 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div class="container-fluid backend-page" id="calendar-page">
|
||||
<div class="row" id="calendar-toolbar">
|
||||
<div id="calendar-filter" class="col-md-3">
|
||||
<div class="calendar-filter-items">
|
||||
<select id="select-filter-item"
|
||||
class="form-select col"
|
||||
data-tippy-content="<?= lang('select_filter_item_hint') ?>"
|
||||
aria-label="Filter">
|
||||
<!-- JS -->
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="calendar-actions" class="col-md-9">
|
||||
<?php if (vars('calendar_view') === CALENDAR_VIEW_DEFAULT): ?>
|
||||
<button
|
||||
id="enable-sync"
|
||||
class="btn btn-light"
|
||||
data-tippy-content="<?= lang('enable_appointment_sync_hint') ?>"
|
||||
hidden>
|
||||
<i class="fas fa-rotate me-2"></i>
|
||||
<?= lang('enable_sync') ?>
|
||||
</button>
|
||||
|
||||
<div class="btn-group" id="sync-button-group" hidden>
|
||||
<button type="button" class="btn btn-light" id="trigger-sync" data-tippy-content="<?= lang(
|
||||
'trigger_sync_hint',
|
||||
) ?>">
|
||||
<i class="fas fa-rotate me-2"></i>
|
||||
<?= lang('synchronize') ?>
|
||||
</button>
|
||||
<button type="button" class="btn btn-light dropdown-toggle dropdown-toggle-split"
|
||||
data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<span class="visually-hidden">
|
||||
Toggle Dropdown
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li>
|
||||
<a class="dropdown-item" href="#" id="disable-sync">
|
||||
<?= lang('disable_sync') ?>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (can('add', PRIV_APPOINTMENTS)): ?>
|
||||
<div class="dropdown d-sm-inline-block">
|
||||
<button class="btn btn-light" type="button" data-bs-toggle="dropdown">
|
||||
<i class="fas fa-plus-square"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a class="dropdown-item" href="#" id="insert-appointment">
|
||||
<?= lang('appointment') ?>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item" href="#" id="insert-unavailability">
|
||||
<?= lang('unavailability') ?>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item" href="#"
|
||||
id="insert-working-plan-exception" <?= session('role_slug') !== DB_SLUG_ADMIN
|
||||
? 'hidden'
|
||||
: '' ?>>
|
||||
<?= lang('working_plan_exception') ?>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<button id="reload-appointments" class="btn btn-light"
|
||||
data-tippy-content="<?= lang('reload_appointments_hint') ?>">
|
||||
<i class="fas fa-sync-alt"></i>
|
||||
</button>
|
||||
|
||||
<?php if (vars('calendar_view') === CALENDAR_VIEW_DEFAULT): ?>
|
||||
<a class="btn btn-light mb-0" href="<?= site_url('calendar?view=table') ?>"
|
||||
data-tippy-content="<?= lang('table') ?>">
|
||||
<i class="fas fa-table"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (vars('calendar_view') === CALENDAR_VIEW_TABLE): ?>
|
||||
<a class="btn btn-light mb-0" href="<?= site_url('calendar?view=default') ?>"
|
||||
data-tippy-content="<?= lang('default') ?>">
|
||||
<i class="fas fa-calendar-alt"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php slot('after_calendar_actions'); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="calendar">
|
||||
<!-- Dynamically Generated Content -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Page Components -->
|
||||
|
||||
<?php component('appointments_modal', [
|
||||
'available_services' => vars('available_services'),
|
||||
'appointment_status_options' => vars('appointment_status_options'),
|
||||
'timezones' => vars('timezones'),
|
||||
'require_first_name' => vars('require_first_name'),
|
||||
'require_last_name' => vars('require_last_name'),
|
||||
'require_email' => vars('require_email'),
|
||||
'require_phone_number' => vars('require_phone_number'),
|
||||
'require_address' => vars('require_address'),
|
||||
'require_city' => vars('require_city'),
|
||||
'require_zip_code' => vars('require_zip_code'),
|
||||
'require_notes' => vars('require_notes'),
|
||||
]); ?>
|
||||
|
||||
<?php component('unavailabilities_modal', [
|
||||
'timezones' => vars('timezones'),
|
||||
'timezone' => vars('timezone'),
|
||||
]); ?>
|
||||
|
||||
<?php component('working_plan_exceptions_modal'); ?>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/vendor/fullcalendar/index.global.min.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/vendor/fullcalendar-moment/index.global.min.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/vendor/jquery-jeditable/jquery.jeditable.min.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/date.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/ui.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/calendar_default_view.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/calendar_table_view.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/calendar_event_popover.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/calendar_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/customers_http_client.js') ?>"></script>
|
||||
<?php if (vars('calendar_view') === CALENDAR_VIEW_DEFAULT): ?>
|
||||
<script src="<?= asset_url('assets/js/utils/calendar_sync.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/google_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/caldav_http_client.js') ?>"></script>
|
||||
<?php endif; ?>
|
||||
<script src="<?= asset_url('assets/js/pages/calendar.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
|
||||
236
application/views/pages/customers.php
Normal file
236
application/views/pages/customers.php
Normal file
@@ -0,0 +1,236 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div class="container-fluid backend-page" id="customers-page">
|
||||
<div class="row" id="customers">
|
||||
<div id="filter-customers" class="filter-records col col-12 col-md-5">
|
||||
<form class="mb-4">
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" class="key form-control" aria-label="keyword">
|
||||
|
||||
<button class="filter btn btn-outline-secondary" type="submit"
|
||||
data-tippy-content="<?= lang('filter') ?>">
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('customers') ?>
|
||||
</h4>
|
||||
|
||||
<?php slot('after_page_title'); ?>
|
||||
|
||||
<div class="results">
|
||||
<!-- JS -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="record-details col-12 col-md-7">
|
||||
<div class="btn-toolbar mb-4">
|
||||
<div id="add-edit-delete-group" class="btn-group">
|
||||
<?php if (
|
||||
can('add', PRIV_CUSTOMERS) &&
|
||||
(!setting('limit_customer_access') || vars('role_slug') === DB_SLUG_ADMIN)
|
||||
): ?>
|
||||
<button id="add-customer" class="btn btn-primary">
|
||||
<i class="fas fa-plus-square me-2"></i>
|
||||
<?= lang('add') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (can('edit', PRIV_CUSTOMERS)): ?>
|
||||
<button id="edit-customer" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-edit me-2"></i>
|
||||
<?= lang('edit') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (can('delete', PRIV_CUSTOMERS)): ?>
|
||||
<button id="delete-customer" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-trash-alt me-2"></i>
|
||||
<?= lang('delete') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div id="save-cancel-group" style="display:none;">
|
||||
<button id="save-customer" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<button id="cancel-customer" class="btn btn-secondary">
|
||||
<?= lang('cancel') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<?php slot('after_page_actions'); ?>
|
||||
</div>
|
||||
|
||||
<input id="customer-id" type="hidden">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6" style="margin-left: 0;">
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('details') ?>
|
||||
</h4>
|
||||
|
||||
<div id="form-message" class="alert" style="display:none;"></div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="first-name" class="form-label">
|
||||
<?= lang('first_name') ?>
|
||||
<?php if (vars('require_first_name')): ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
<?php endif; ?>
|
||||
</label>
|
||||
<input type="text" id="first-name"
|
||||
class="<?= vars('require_first_name') ? 'required' : '' ?> form-control" maxlength="100"
|
||||
disabled/>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="last-name" class="form-label">
|
||||
<?= lang('last_name') ?>
|
||||
<?php if (vars('require_last_name')): ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
<?php endif; ?>
|
||||
</label>
|
||||
<input type="text" id="last-name"
|
||||
class="<?= vars('require_last_name') ? 'required' : '' ?> form-control" maxlength="120"
|
||||
disabled/>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="email" class="form-label">
|
||||
<?= lang('email') ?>
|
||||
<?php if (vars('require_email')): ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
<?php endif; ?>
|
||||
</label>
|
||||
<input type="text" id="email"
|
||||
class="<?= vars('require_email') ? 'required' : '' ?> form-control" maxlength="120"
|
||||
disabled/>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="phone-number" class="form-label">
|
||||
<?= lang('phone_number') ?>
|
||||
<?php if (vars('require_phone_number')): ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
<?php endif; ?>
|
||||
</label>
|
||||
<input type="text" id="phone-number" maxlength="60"
|
||||
class="<?= vars('require_phone_number') ? 'required' : '' ?> form-control" disabled/>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="address" class="form-label">
|
||||
<?= lang('address') ?>
|
||||
<?php if (vars('require_address')): ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
<?php endif; ?>
|
||||
</label>
|
||||
<input type="text" id="address"
|
||||
class="<?= vars('require_address') ? 'required' : '' ?> form-control"
|
||||
maxlength="120" disabled/>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="city" class="form-label">
|
||||
<?= lang('city') ?>
|
||||
<?php if (vars('require_city')): ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
<?php endif; ?>
|
||||
</label>
|
||||
<input type="text" id="city" class="<?= vars('require_city') ? 'required' : '' ?> form-control"
|
||||
maxlength="120" disabled/>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="zip-code" class="form-label">
|
||||
<?= lang('zip_code') ?>
|
||||
<?php if (vars('require_zip_code')): ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
<?php endif; ?>
|
||||
</label>
|
||||
<input type="text" id="zip-code"
|
||||
class="<?= vars('require_zip_code') ? 'required' : '' ?> form-control"
|
||||
maxlength="120" disabled/>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="language">
|
||||
<?= lang('language') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<select id="language" class="form-select required" disabled>
|
||||
<?php foreach (vars('available_languages') as $available_language): ?>
|
||||
<option value="<?= $available_language ?>">
|
||||
<?= ucfirst($available_language) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="timezone">
|
||||
<?= lang('timezone') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<?php component('timezone_dropdown', [
|
||||
'attributes' => 'id="timezone" class="form-control required" disabled',
|
||||
'grouped_timezones' => vars('grouped_timezones'),
|
||||
]); ?>
|
||||
</div>
|
||||
|
||||
<?php if (setting('ldap_is_active')): ?>
|
||||
<div class="mb-3">
|
||||
<label for="ldap-dn" class="form-label">
|
||||
<?= lang('ldap_dn') ?>
|
||||
</label>
|
||||
<input type="text" id="ldap-dn" class="form-control" maxlength="100" disabled/>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php component('custom_fields', [
|
||||
'disabled' => true,
|
||||
]); ?>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="notes">
|
||||
<?= lang('notes') ?>
|
||||
</label>
|
||||
<textarea id="notes" rows="4" class="form-control" disabled></textarea>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_fields'); ?>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-md-6">
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('appointments') ?>
|
||||
</h4>
|
||||
|
||||
<div id="customer-appointments" class="card bg-white border"></div>
|
||||
|
||||
<?php slot('after_secondary_fields'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/date.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/customers_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/customers.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
250
application/views/pages/general_settings.php
Normal file
250
application/views/pages/general_settings.php
Normal file
@@ -0,0 +1,250 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div id="general-settings-page" class="container backend-page">
|
||||
<div id="general-settings">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 offset-sm-1">
|
||||
<?php component('settings_nav'); ?>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<form>
|
||||
<fieldset>
|
||||
<div class="d-flex justify-content-between align-items-center border-bottom mb-4 py-2">
|
||||
<h4 class="text-black-50 mb-0 fw-light">
|
||||
<?= lang('general_settings') ?>
|
||||
</h4>
|
||||
|
||||
<?php if (can('edit', PRIV_SYSTEM_SETTINGS)): ?>
|
||||
<button type="button" id="save-settings" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="row mb-5">
|
||||
<div class="col-12">
|
||||
<h5 class="text-black-50 mb-3 fw-light"><?= lang('company') ?></h5>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="company-name">
|
||||
<?= lang('company_name') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="company-name" data-field="company_name" class="required form-control">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('company_name_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="company-email">
|
||||
<?= lang('company_email') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="company-email" data-field="company_email" class="required form-control">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('company_email_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="company-link">
|
||||
<?= lang('company_link') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="company-link" data-field="company_link" class="required form-control">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('company_link_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="company-logo">
|
||||
<?= lang('company_logo') ?>
|
||||
</label>
|
||||
<input type="file" id="company-logo" data-field="company_logo" class="form-control"
|
||||
accept="image/*">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('company_logo_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-center">
|
||||
<img src="#" alt="Company Logo Preview" id="company-logo-preview"
|
||||
class="img-thumbnail my-3" hidden>
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-center">
|
||||
<button type="button" class="btn btn-danger btn-sm mb-3"
|
||||
id="remove-company-logo" hidden>
|
||||
<i class="fas fa-trash me-2"></i>
|
||||
<?= lang('remove') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="company-color">
|
||||
<?= lang('company_color') ?>
|
||||
</label>
|
||||
|
||||
<input type="color" id="company-color" data-field="company_color"
|
||||
class="form-control">
|
||||
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('company_color_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-center">
|
||||
<button type="button" class="btn btn-danger btn-sm my-3"
|
||||
id="reset-company-color" hidden>
|
||||
<i class="fas fa-undo-alt me-2"></i>
|
||||
<?= lang('reset') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="theme">
|
||||
<?= lang('theme') ?>
|
||||
</label>
|
||||
|
||||
<select id="theme" data-field="theme" class="form-select">
|
||||
<?php foreach (vars('available_themes') as $available_theme): ?>
|
||||
<option value="<?= $available_theme ?>">
|
||||
<?= ucfirst($available_theme) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('company_color_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-5">
|
||||
<div class="col-12">
|
||||
<h5 class="text-black-50 mb-3 fw-light"><?= lang('localization') ?></h5>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="date-format">
|
||||
<?= lang('date_format') ?>
|
||||
</label>
|
||||
<select class="form-select" id="date-format" data-field="date_format">
|
||||
<option value="DMY">DMY</option>
|
||||
<option value="MDY">MDY</option>
|
||||
<option value="YMD">YMD</option>
|
||||
</select>
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('date_format_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="time-format">
|
||||
<?= lang('time_format') ?>
|
||||
</label>
|
||||
<select class="form-select" id="time-format" data-field="time_format">
|
||||
<option value="<?= TIME_FORMAT_REGULAR ?>">H:MM AM/PM</option>
|
||||
<option value="<?= TIME_FORMAT_MILITARY ?>">HH:MM</option>
|
||||
</select>
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('time_format_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="first-weekday">
|
||||
<?= lang('first_weekday') ?>
|
||||
</label>
|
||||
<select class="form-select" id="first-weekday" data-field="first_weekday">
|
||||
<option value="sunday"><?= lang('sunday') ?></option>
|
||||
<option value="monday"><?= lang('monday') ?></option>
|
||||
<option value="tuesday"><?= lang('tuesday') ?></option>
|
||||
<option value="wednesday"><?= lang('wednesday') ?></option>
|
||||
<option value="thursday"><?= lang('thursday') ?></option>
|
||||
<option value="friday"><?= lang('friday') ?></option>
|
||||
<option value="saturday"><?= lang('saturday') ?></option>
|
||||
</select>
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('first_weekday_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="default-language">
|
||||
<?= lang('default_language') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<select id="default-language" class="form-select required" data-field="default_language">
|
||||
<?php foreach (vars('available_languages') as $available_language): ?>
|
||||
<option value="<?= $available_language ?>">
|
||||
<?= ucfirst($available_language) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('default_language_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="default-timezone">
|
||||
<?= lang('default_timezone') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<?php component('timezone_dropdown', [
|
||||
'attributes' =>
|
||||
'id="default-timezone" data-field="default_timezone" class="form-control required"',
|
||||
'grouped_timezones' => vars('grouped_timezones'),
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('default_timezone_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_fields'); ?>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/general_settings_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/general_settings.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
65
application/views/pages/google_analytics_settings.php
Normal file
65
application/views/pages/google_analytics_settings.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div id="google-analytics-settings-page" class="container backend-page">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 offset-sm-1">
|
||||
<?php component('settings_nav'); ?>
|
||||
</div>
|
||||
<div id="google-analytics-settings" class="col-sm-6">
|
||||
<form>
|
||||
<fieldset>
|
||||
<div class="d-flex justify-content-between align-items-center border-bottom mb-4 py-2">
|
||||
<h4 class="text-black-50 mb-0 fw-light">
|
||||
<?= lang('google_analytics') ?>
|
||||
</h4>
|
||||
|
||||
<div>
|
||||
<a href="<?= site_url('integrations') ?>" class="btn btn-outline-primary me-2">
|
||||
<i class="fas fa-chevron-left me-2"></i>
|
||||
<?= lang('back') ?>
|
||||
</a>
|
||||
|
||||
<?php if (can('edit', PRIV_SYSTEM_SETTINGS)): ?>
|
||||
<button type="button" id="save-settings" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="google-analytics-code">
|
||||
<?= lang('google_analytics_code') ?>
|
||||
</label>
|
||||
<input id="google-analytics-code" placeholder="UA-XXXXXXXX-XX or G-XXXXXXXXXX"
|
||||
class="form-control" data-field="google_analytics_code">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('google_analytics_code_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_appointment_fields'); ?>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/google_analytics_settings_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/google_analytics_settings.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
212
application/views/pages/installation.php
Normal file
212
application/views/pages/installation.php
Normal file
@@ -0,0 +1,212 @@
|
||||
<!doctype html>
|
||||
<html lang="<?= config('language_code') ?>">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
|
||||
<title>Installation | Easy!Appointments</title>
|
||||
|
||||
<link rel="icon" type="image/x-icon" href="<?= asset_url('assets/img/favicon.ico') ?>">
|
||||
<link rel="stylesheet" type="text/css" href="<?= asset_url('assets/css/themes/default.min.css') ?>">
|
||||
<link rel="stylesheet" type="text/css" href="<?= asset_url('assets/css/general.css') ?>">
|
||||
<link rel="stylesheet" type="text/css" href="<?= asset_url('assets/css/pages/installation.css') ?>">
|
||||
</head>
|
||||
<body>
|
||||
<div id="loading" class="d-none">
|
||||
<img src="<?= base_url('assets/img/loading.gif') ?>" alt="loading">
|
||||
</div>
|
||||
|
||||
<header>
|
||||
<div class="container">
|
||||
<h1 class="page-title">Easy!Appointments Installation</h1>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="content container">
|
||||
<div class="welcome">
|
||||
<h3>Welcome to the Easy!Appointments installation page.</h3>
|
||||
<p>
|
||||
This page will help you set the main settings of your Easy!Appointments installation. You will be able to
|
||||
edit these settings and many more in the backend session of your system. Remember to use the
|
||||
<strong class="text-primary"><?= site_url('user/login') ?></strong> URL to connect to the backend section
|
||||
of Easy!Appointments.
|
||||
|
||||
If you face any problems during the usage of Easy!Appointments you can always check the
|
||||
<a href="https://easyappointments.org/docs.html">Documentation</a> and
|
||||
<a href="https://groups.google.com/group/easy-appointments">Support Group</a> for getting help. You may also
|
||||
submit new issues on
|
||||
<a href="https://github.com/alextselegidis/easyappointments/issues">GitHub Issues</a>
|
||||
in order to help our development process.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="alert" hidden></div>
|
||||
|
||||
<div class="row">
|
||||
<div class="admin-settings col-12 col-sm-5">
|
||||
<h3 class="text-black-50 mb-3 fw-light">Administrator</h3>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="first-name">
|
||||
<?= lang('first_name') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="first-name" class="form-control required" maxlength="256">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="last-name">
|
||||
<?= lang('last_name') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="last-name" class="form-control required" maxlength="512">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="email">
|
||||
<?= lang('email') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="email" class="form-control required" maxlength="512">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="phone-number">
|
||||
<?= lang('phone_number') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="phone-number" class="form-control required" maxlength="128">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="username">
|
||||
<?= lang('username') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="username" class="form-control required" maxlength="256">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="password">
|
||||
<?= lang('password') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input type="password" id="password" class="form-control required" maxlength="512">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="password-confirm">
|
||||
<?= lang('retype_password') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input type="password" id="password-confirm" class="form-control required" maxlength="512">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="language">
|
||||
<?= lang('language') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<select id="language" class="form-select required">
|
||||
<?php
|
||||
$config_lang = config('language');
|
||||
foreach (vars('available_languages') as $lang): ?>
|
||||
<option value="<?= $lang ?>"<?= $lang == $config_lang ? ' selected' : '' ?>>
|
||||
<?= ucfirst($lang) ?>
|
||||
</option>
|
||||
<?php endforeach;
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="company-settings col-12 col-sm-5">
|
||||
<h3 class="text-black-50 mb-3 fw-light"><?= lang('company') ?></h3>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="company-name">
|
||||
<?= lang('company_name') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="company-name" data-field="company_name" class="required form-control">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('company_name_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="company-email">
|
||||
<?= lang('company_email') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="company-email" data-field="company_email" class="required form-control">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('company_email_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="company-link">
|
||||
<?= lang('company_link') ?>
|
||||
<span class="text-danger">*</span>
|
||||
</label>
|
||||
<input id="company-link" data-field="company_link" class="required form-control">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('company_link_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<p>
|
||||
You will be able to set your business logic in the backend settings page after the installation is complete.
|
||||
<br>
|
||||
Press the following button to complete the installation process.
|
||||
</p>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="mb-2">
|
||||
<h3>License</h3>
|
||||
Easy!Appointments is licensed under the <span class="badge bg-secondary">GPL-3.0 license</span>. By using the
|
||||
code
|
||||
of Easy!Appointments in any way <br> you agree with the terms described in the following url:
|
||||
<a href="https://www.gnu.org/licenses/gpl-3.0.en.html">https://www.gnu.org/licenses/gpl-3.0.en.html</a>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<button type="button" id="install" class="btn btn-primary">
|
||||
<i class="icon-white icon-ok me-2"></i>
|
||||
Install Easy!Appointments
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
Powered by <a href="https://easyappointments.org">Easy!Appointments</a>
|
||||
</footer>
|
||||
|
||||
<?php component('js_vars_script'); ?>
|
||||
<?php component('js_lang_script'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/vendor/jquery/jquery.min.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/vendor/@popperjs-core/popper.min.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/vendor/bootstrap/bootstrap.min.js') ?>"></script>
|
||||
|
||||
<script src="<?= asset_url('assets/js/app.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/installation.js') ?>"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
144
application/views/pages/integrations.php
Normal file
144
application/views/pages/integrations.php
Normal file
@@ -0,0 +1,144 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div id="integrations-page" class="container backend-page">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 offset-sm-1">
|
||||
<?php component('settings_nav'); ?>
|
||||
</div>
|
||||
<div id="integrations" class="col-sm-6">
|
||||
<h4 class="text-black-50 border-bottom py-3 mb-3 fw-light">
|
||||
<?= lang('integrations') ?>
|
||||
</h4>
|
||||
|
||||
<p class="form-text text-muted mb-4">
|
||||
<?= lang('integrations_info') ?>
|
||||
</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-6 mb-4">
|
||||
<div class="card h-100">
|
||||
<div class="card-header">
|
||||
<h5 class="fw-light text-black-50 mb-0">
|
||||
<?= lang('webhooks') ?>
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="mb-3 integration-info">
|
||||
<small>
|
||||
<?= lang('webhooks_info') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer bg-white border-0">
|
||||
<a href="<?= site_url('webhooks') ?>" class="btn btn-outline-primary w-100">
|
||||
<i class="fas fa-cogs me-2"></i>
|
||||
<?= lang('configure') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6 mb-4">
|
||||
<div class="card h-100">
|
||||
<div class="card-header">
|
||||
<h5 class="fw-light text-black-50 mb-0">
|
||||
<?= lang('google_analytics') ?>
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="mb-3 integration-info">
|
||||
<small>
|
||||
<?= lang('google_analytics_info') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer bg-white border-0">
|
||||
<a href="<?= site_url('google_analytics_settings') ?>"
|
||||
class="btn btn-outline-primary w-100">
|
||||
<i class="fas fa-cogs me-2"></i>
|
||||
<?= lang('configure') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6 mb-4">
|
||||
<div class="card h-100">
|
||||
<div class="card-header">
|
||||
<h5 class="fw-light text-black-50 mb-0">
|
||||
<?= lang('matomo_analytics') ?>
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="mb-3 integration-info">
|
||||
<small>
|
||||
<?= lang('matomo_analytics_info') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer bg-white border-0">
|
||||
<a href="<?= site_url('matomo_analytics_settings') ?>"
|
||||
class="btn btn-outline-primary w-100">
|
||||
<i class="fas fa-cogs me-2"></i>
|
||||
<?= lang('configure') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6 mb-4">
|
||||
<div class="card h-100">
|
||||
<div class="card-header">
|
||||
<h5 class="fw-light text-black-50 mb-0">
|
||||
<?= lang('api') ?>
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="mb-3 integration-info">
|
||||
<small>
|
||||
<?= lang('api_info') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer bg-white border-0">
|
||||
<a href="<?= site_url('api_settings') ?>" class="btn btn-outline-primary w-100">
|
||||
<i class="fas fa-cogs me-2"></i>
|
||||
<?= lang('configure') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6 mb-4">
|
||||
<div class="card h-100">
|
||||
<div class="card-header">
|
||||
<h5 class="fw-light text-black-50 mb-0">
|
||||
<?= lang('ldap') ?>
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="mb-3 integration-info">
|
||||
<small>
|
||||
<?= lang('ldap_info') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer bg-white border-0">
|
||||
<a href="<?= site_url('ldap_settings') ?>" class="btn btn-outline-primary w-100">
|
||||
<i class="fas fa-cogs me-2"></i>
|
||||
<?= lang('configure') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php slot('after_integration_cards'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
165
application/views/pages/ldap_settings.php
Normal file
165
application/views/pages/ldap_settings.php
Normal file
@@ -0,0 +1,165 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div id="ldap-settings-page" class="container backend-page">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 offset-sm-1">
|
||||
<?php component('settings_nav'); ?>
|
||||
</div>
|
||||
<div id="ldap-settings" class="col-sm-6">
|
||||
<form>
|
||||
<fieldset>
|
||||
<div class="d-flex justify-content-between align-items-center border-bottom mb-4 py-2">
|
||||
<h4 class="text-black-50 mb-0 fw-light">
|
||||
<?= lang('ldap') ?>
|
||||
</h4>
|
||||
|
||||
<div>
|
||||
<a href="<?= site_url('integrations') ?>" class="btn btn-outline-primary me-2">
|
||||
<i class="fas fa-chevron-left me-2"></i>
|
||||
<?= lang('back') ?>
|
||||
</a>
|
||||
|
||||
<?php if (can('edit', PRIV_SYSTEM_SETTINGS)): ?>
|
||||
<button type="button" id="save-settings" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if (!extension_loaded('ldap')): ?>
|
||||
<div class="alert alert-warning">
|
||||
<?= lang('ldap_extension_not_loaded') ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="mb-3">
|
||||
<div class="form-check form-switch mb-3">
|
||||
<input class="form-check-input" type="checkbox" id="ldap-is-active" data-field="ldap_is_active">
|
||||
<label class="form-check-label" for="ldap-is-active">
|
||||
<?= lang('active') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="ldap-host">
|
||||
<?= lang('host') ?>
|
||||
</label>
|
||||
<input id="ldap-host" class="form-control" data-field="ldap_host">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="ldap-port">
|
||||
<?= lang('port') ?>
|
||||
</label>
|
||||
<input id="ldap-port" class="form-control" data-field="ldap_port">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="ldap-user_dn">
|
||||
<?= lang('user_dn') ?>
|
||||
</label>
|
||||
<input id="ldap-user_dn" class="form-control" data-field="ldap_user_dn">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="ldap-password">
|
||||
<?= lang('password') ?>
|
||||
</label>
|
||||
<input id="ldap-password" type="password" class="form-control" data-field="ldap_password">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="ldap-base-dn">
|
||||
<?= lang('base_dn') ?>
|
||||
</label>
|
||||
<input id="ldap-base-dn" class="form-control" data-field="ldap_base_dn">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="d-flex mb-2">
|
||||
<label class="form-label mb-0" for="ldap-filter">
|
||||
<?= lang('filter') ?>
|
||||
</label>
|
||||
<button type="button" class="btn btn-sm btn-outline-secondary py-0 ms-auto" id="ldap-reset-filter">
|
||||
<i class="fas fa-undo me-2"></i>
|
||||
<?= lang('reset') ?>
|
||||
</button>
|
||||
</div>
|
||||
<input id="ldap-filter" class="form-control" data-field="ldap_filter">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="d-flex mb-2">
|
||||
<label class="form-label mb-0" for="ldap-field-mapping">
|
||||
<?= lang('field_mapping') ?>
|
||||
</label>
|
||||
<button type="button" class="btn btn-sm btn-outline-secondary py-0 ms-auto" id="ldap-reset-field-mapping">
|
||||
<i class="fas fa-undo me-2"></i>
|
||||
<?= lang('reset') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<textarea id="ldap-field-mapping" class="form-control" rows="5" data-field="ldap_field_mapping"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_appointment_fields'); ?>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center border-bottom mb-4 py-2">
|
||||
<h4 class="text-black-50 mb-0 fw-light">
|
||||
<?= lang('search') ?>
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
<p class="text-muted small">
|
||||
<?= lang('ldap_search_hint') ?>
|
||||
</p>
|
||||
|
||||
<form id="ldap-search-form" class="mb-3">
|
||||
<label class="form-label" for="ldap-search-keyword">
|
||||
<?= lang('keyword') ?>
|
||||
</label>
|
||||
|
||||
<div class="input-group">
|
||||
<input id="ldap-search-keyword" class="form-control">
|
||||
|
||||
<button type="submit" class="btn btn-outline-primary">
|
||||
<?= lang('search') ?>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="ldap-search-results" class="mb-3">
|
||||
<!-- JS -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php component('ldap_import_modal', [
|
||||
'roles' => vars('roles'),
|
||||
]); ?>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/customers_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/providers_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/secretaries_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/admins_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/ldap_settings_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/ldap_settings.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
100
application/views/pages/legal_settings.php
Normal file
100
application/views/pages/legal_settings.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div id="legal-settings-page" class="container backend-page">
|
||||
<div id="legal-contents">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 offset-sm-1">
|
||||
<?php component('settings_nav'); ?>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<form>
|
||||
<fieldset>
|
||||
<div class="d-flex justify-content-between align-items-center border-bottom mb-4 py-2">
|
||||
<h4 class="text-black-50 mb-0 fw-light">
|
||||
<?= lang('legal_contents') ?>
|
||||
</h4>
|
||||
|
||||
<?php if (can('edit', PRIV_SYSTEM_SETTINGS)): ?>
|
||||
<button type="button" id="save-settings" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h5 class="text-black-50 mb-3 fw-light"><?= lang('cookie_notice') ?></h5>
|
||||
|
||||
<div class="form-check form-switch mb-3">
|
||||
<input class="form-check-input display-switch" type="checkbox"
|
||||
id="display-cookie-notice">
|
||||
<label class="form-check-label" for="display-cookie-notice">
|
||||
<?= lang('display_cookie_notice') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="mb-5">
|
||||
<label class="form-label"
|
||||
for="cookie-notice-content"><?= lang('cookie_notice_content') ?></label>
|
||||
<textarea id="cookie-notice-content" cols="30" rows="10" class="mb-3"></textarea>
|
||||
</div>
|
||||
|
||||
<h5 class="text-black-50 mb-3 fw-light"><?= lang('terms_and_conditions') ?></h5>
|
||||
|
||||
<div class="form-check form-switch mb-3">
|
||||
<input class="form-check-input display-switch" type="checkbox"
|
||||
id="display-terms-and-conditions">
|
||||
<label class="form-check-label" for="display-terms-and-conditions">
|
||||
<?= lang('display_terms_and_conditions') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="mb-5">
|
||||
<label class="form-label"
|
||||
for="terms-and-conditions-content"><?= lang(
|
||||
'terms_and_conditions_content',
|
||||
) ?></label>
|
||||
<textarea id="terms-and-conditions-content" cols="30" rows="10"
|
||||
class="mb-3"></textarea>
|
||||
</div>
|
||||
|
||||
<h5 class="text-black-50 mb-3 fw-light"><?= lang('privacy_policy') ?></h5>
|
||||
|
||||
<div class="form-check form-switch mb-3">
|
||||
<input class="form-check-input display-switch" type="checkbox"
|
||||
id="display-privacy-policy">
|
||||
<label class="form-check-label" for="display-privacy-policy">
|
||||
<?= lang('display_privacy_policy') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label"
|
||||
for="privacy-policy-content"><?= lang('privacy_policy_content') ?></label>
|
||||
<textarea id="privacy-policy-content" cols="30" rows="10" class="mb-3"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_fields'); ?>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/ui.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/legal_settings_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/legal_settings.js') ?>"></script>
|
||||
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
53
application/views/pages/login.php
Normal file
53
application/views/pages/login.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php extend('layouts/account_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<h2><?= lang('backend_section') ?></h2>
|
||||
|
||||
<p>
|
||||
<small>
|
||||
<?= lang('you_need_to_login') ?>
|
||||
</small>
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
<div class="alert d-none"></div>
|
||||
|
||||
<form id="login-form">
|
||||
<div class="mb-3 mt-5">
|
||||
<label for="username" class="form-label">
|
||||
<?= lang('username') ?>
|
||||
</label>
|
||||
<input type="text" id="username" placeholder="<?= lang(
|
||||
'enter_username_here',
|
||||
) ?>" class="form-control" required/>
|
||||
</div>
|
||||
|
||||
<div class="mb-5">
|
||||
<label for="password" class="form-label">
|
||||
<?= lang('password') ?>
|
||||
</label>
|
||||
<input type="password" id="password" placeholder="<?= lang(
|
||||
'enter_password_here',
|
||||
) ?>" class="form-control" required/>
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mb-5">
|
||||
<a href="<?= site_url('recovery') ?>" class="forgot-password"><?= lang('forgot_your_password') ?></a>
|
||||
|
||||
<button type="submit" id="login" class="btn btn-primary">
|
||||
<i class="fas fa-sign-in-alt me-2"></i>
|
||||
<?= lang('login') ?>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/vendor/@fortawesome-fontawesome-free/fontawesome.min.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/vendor/@fortawesome-fontawesome-free/solid.min.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/login_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/login.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
27
application/views/pages/logout.php
Normal file
27
application/views/pages/logout.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php extend('layouts/account_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<h3><?= lang('log_out') ?></h3>
|
||||
|
||||
<p>
|
||||
<small>
|
||||
<?= lang('logout_success') ?>
|
||||
</small>
|
||||
</p>
|
||||
|
||||
<div class="d-flex justify-content-between my-5">
|
||||
<a href="<?= site_url('login') ?>" class="btn btn-outline-secondary btn-large">
|
||||
<i class="fas fa-wrench me-2"></i>
|
||||
<?= lang('backend_section') ?>
|
||||
</a>
|
||||
|
||||
<a href="<?= site_url() ?>" class="btn btn-primary btn-large">
|
||||
<i class="fas fa-calendar-alt me-2"></i>
|
||||
<?= lang('book_appointment_title') ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
|
||||
78
application/views/pages/matomo_analytics_settings.php
Normal file
78
application/views/pages/matomo_analytics_settings.php
Normal file
@@ -0,0 +1,78 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div id="matomo-analytics-settings-page" class="container backend-page">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 offset-sm-1">
|
||||
<?php component('settings_nav'); ?>
|
||||
</div>
|
||||
<div id="matomo-analytics-settings" class="col-sm-6">
|
||||
<form>
|
||||
<fieldset>
|
||||
<div class="d-flex justify-content-between align-items-center border-bottom mb-4 py-2">
|
||||
<h4 class="text-black-50 mb-0 fw-light">
|
||||
<?= lang('matomo_analytics') ?>
|
||||
</h4>
|
||||
|
||||
<div>
|
||||
<a href="<?= site_url('integrations') ?>" class="btn btn-outline-primary me-2">
|
||||
<i class="fas fa-chevron-left me-2"></i>
|
||||
<?= lang('back') ?>
|
||||
</a>
|
||||
|
||||
<?php if (can('edit', PRIV_SYSTEM_SETTINGS)): ?>
|
||||
<button type="button" id="save-settings" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="matomo-analytics-url">
|
||||
<?= lang('matomo_analytics_url') ?>
|
||||
</label>
|
||||
<input id="matomo-analytics-url" placeholder="//example.org/url/to/matomo/"
|
||||
data-field="matomo_analytics_url" class="form-control">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('matomo_analytics_url_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="matomo-analytics-site-id">
|
||||
<?= lang('matomo_analytics_site_id') ?>
|
||||
</label>
|
||||
<input id="matomo-analytics-site-id" data-field="matomo_analytics_site_id"
|
||||
class="form-control">
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('matomo_analytics_site_id_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_appointment_fields'); ?>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/matomo_analytics_settings_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/matomo_analytics_settings.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
399
application/views/pages/providers.php
Normal file
399
application/views/pages/providers.php
Normal file
@@ -0,0 +1,399 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div class="container-fluid backend-page" id="providers-page">
|
||||
<div class="row" id="providers">
|
||||
<div id="filter-providers" class="filter-records column col-12 col-md-5">
|
||||
<form class="mb-4">
|
||||
<div class="input-group">
|
||||
<input type="text" class="key form-control" aria-label="keyword">
|
||||
|
||||
<button class="filter btn btn-outline-secondary" type="submit"
|
||||
data-tippy-content="<?= lang('filter') ?>">
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('providers') ?>
|
||||
</h4>
|
||||
|
||||
<?php slot('after_page_title'); ?>
|
||||
|
||||
<div class="results">
|
||||
<!-- JS -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="record-details column col-12 col-md-7">
|
||||
<div class="float-md-start mb-4 me-4">
|
||||
<div class="add-edit-delete-group btn-group">
|
||||
<button id="add-provider" class="btn btn-primary">
|
||||
<i class="fas fa-plus-square me-2"></i>
|
||||
<?= lang('add') ?>
|
||||
</button>
|
||||
<button id="edit-provider" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-edit me-2"></i>
|
||||
<?= lang('edit') ?>
|
||||
</button>
|
||||
<button id="delete-provider" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-trash-alt me-2"></i>
|
||||
<?= lang('delete') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="save-cancel-group" style="display:none;">
|
||||
<button id="save-provider" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<button id="cancel-provider" class="btn btn-secondary">
|
||||
<?= lang('cancel') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<?php slot('after_page_actions'); ?>
|
||||
</div>
|
||||
|
||||
<ul class="nav nav-pills switch-view">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="#details" data-bs-toggle="tab">
|
||||
<?= lang('details') ?>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#working-plan" data-bs-toggle="tab">
|
||||
<?= lang('working_plan') ?>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<?php
|
||||
// This form message is outside the details view, so that it can be
|
||||
// visible when the user has working plan view active.
|
||||
?>
|
||||
|
||||
<div class="form-message alert" style="display:none;"></div>
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="details-view tab-pane fade show active clearfix" id="details">
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('details') ?>
|
||||
</h4>
|
||||
|
||||
<input type="hidden" id="id" class="record-id">
|
||||
|
||||
<div class="row">
|
||||
<div class="details col-12 col-md-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="first-name">
|
||||
<?= lang('first_name') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="first-name" class="form-control required" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="last-name">
|
||||
<?= lang('last_name') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="last-name" class="form-control required" maxlength="512" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="email">
|
||||
<?= lang('email') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="email" class="form-control required" max="512" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="phone-number">
|
||||
<?= lang('phone_number') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="phone-number" class="form-control required" max="128" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="mobile-number">
|
||||
<?= lang('mobile_number') ?>
|
||||
|
||||
</label>
|
||||
<input id="mobile-number" class="form-control" maxlength="128" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="address">
|
||||
<?= lang('address') ?>
|
||||
</label>
|
||||
<input id="address" class="form-control" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="city">
|
||||
<?= lang('city') ?>
|
||||
|
||||
</label>
|
||||
<input id="city" class="form-control" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="state">
|
||||
<?= lang('state') ?>
|
||||
</label>
|
||||
<input id="state" class="form-control" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="zip-code">
|
||||
<?= lang('zip_code') ?>
|
||||
|
||||
</label>
|
||||
<input id="zip-code" class="form-control" maxlength="64" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="notes">
|
||||
<?= lang('notes') ?>
|
||||
</label>
|
||||
<textarea id="notes" class="form-control" rows="3" disabled></textarea>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_fields'); ?>
|
||||
</div>
|
||||
<div class="settings col-12 col-md-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="username">
|
||||
<?= lang('username') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="username" class="form-control required" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="password">
|
||||
<?= lang('password') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input type="password" id="password" class="form-control required"
|
||||
maxlength="512" autocomplete="new-password" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="password-confirm">
|
||||
<?= lang('retype_password') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input type="password" id="password-confirm"
|
||||
class="form-control required" maxlength="512"
|
||||
autocomplete="new-password" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="calendar-view">
|
||||
<?= lang('calendar') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<select id="calendar-view" class="form-select required" disabled>
|
||||
<option value="default"><?= lang('default') ?></option>
|
||||
<option value="table"><?= lang('table') ?></option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="language">
|
||||
<?= lang('language') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<select id="language" class="form-select required" disabled>
|
||||
<?php foreach (vars('available_languages') as $available_language): ?>
|
||||
<option value="<?= $available_language ?>">
|
||||
<?= ucfirst($available_language) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="timezone">
|
||||
<?= lang('timezone') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<?php component('timezone_dropdown', [
|
||||
'attributes' => 'id="timezone" class="form-control required" disabled',
|
||||
'grouped_timezones' => vars('grouped_timezones'),
|
||||
]); ?>
|
||||
</div>
|
||||
|
||||
<?php if (setting('ldap_is_active')): ?>
|
||||
<div class="mb-3">
|
||||
<label for="ldap-dn" class="form-label">
|
||||
<?= lang('ldap_dn') ?>
|
||||
</label>
|
||||
<input type="text" id="ldap-dn" class="form-control" maxlength="100" disabled/>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div>
|
||||
<label class="form-label mb-3">
|
||||
<?= lang('options') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="border rounded mb-3 p-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="is-private">
|
||||
<label class="form-check-label" for="is-private">
|
||||
<?= lang('hide_from_public') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-text text-muted mb-3">
|
||||
<small>
|
||||
<?= lang('private_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="notifications" disabled>
|
||||
<label class="form-check-label" for="notifications">
|
||||
<?= lang('receive_notifications') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label mb-3">
|
||||
<?= lang('services') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div id="provider-services" class="card card-body bg-white border">
|
||||
<!-- JS -->
|
||||
</div>
|
||||
|
||||
<?php slot('after_secondary_fields'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="working-plan-view tab-pane fade clearfix" id="working-plan">
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('working_plan') ?>
|
||||
</h4>
|
||||
|
||||
<button id="reset-working-plan" class="btn btn-primary"
|
||||
data-tippy-content="<?= lang('reset_working_plan') ?>">
|
||||
<i class="fas fa-undo-alt me-2"></i>
|
||||
<?= lang('reset_plan') ?></button>
|
||||
<table class="working-plan table table-striped mt-2">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?= lang('day') ?></th>
|
||||
<th><?= lang('start') ?></th>
|
||||
<th><?= lang('end') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><!-- Dynamic Content --></tbody>
|
||||
</table>
|
||||
|
||||
<?php slot('after_working_plan'); ?>
|
||||
|
||||
<br>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('breaks') ?>
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
<?= lang('add_breaks_during_each_day') ?>
|
||||
</p>
|
||||
|
||||
<div>
|
||||
<button type="button" class="add-break btn btn-primary">
|
||||
<i class="fas fa-plus-square me-2"></i>
|
||||
<?= lang('add_break') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<table class="breaks table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?= lang('day') ?></th>
|
||||
<th><?= lang('start') ?></th>
|
||||
<th><?= lang('end') ?></th>
|
||||
<th><?= lang('actions') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><!-- Dynamic Content --></tbody>
|
||||
</table>
|
||||
|
||||
<?php slot('after_breaks'); ?>
|
||||
|
||||
<br>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('working_plan_exceptions') ?>
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
<?= lang('add_working_plan_exceptions_during_each_day') ?>
|
||||
</p>
|
||||
|
||||
<div>
|
||||
<button type="button" class="add-working-plan-exception btn btn-primary me-2">
|
||||
<i class="fas fa-plus-square me-2"></i>
|
||||
<?= lang('add_working_plan_exception') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<table class="working-plan-exceptions table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?= lang('day') ?></th>
|
||||
<th><?= lang('start') ?></th>
|
||||
<th><?= lang('end') ?></th>
|
||||
<th><?= lang('actions') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><!-- Dynamic Content --></tbody>
|
||||
</table>
|
||||
|
||||
<?php component('working_plan_exceptions_modal'); ?>
|
||||
|
||||
<?php slot('after_working_plan_exceptions'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/vendor/jquery-jeditable/jquery.jeditable.min.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/date.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/string.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/ui.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/working_plan.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/account_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/providers_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/providers.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
|
||||
|
||||
|
||||
54
application/views/pages/recovery.php
Normal file
54
application/views/pages/recovery.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php extend('layouts/account_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<h2><?= lang('forgot_your_password') ?></h2>
|
||||
|
||||
<p>
|
||||
<small>
|
||||
<?= lang('type_username_and_email_for_new_password') ?>
|
||||
</small>
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="alert d-none"></div>
|
||||
|
||||
<form class="mb-5">
|
||||
<div class="mb-3 mt-5">
|
||||
<label for="username" class="form-label">
|
||||
<?= lang('username') ?>
|
||||
</label>
|
||||
<input type="text" id="username" placeholder="<?= lang('enter_username_here') ?>" class="form-control"/>
|
||||
</div>
|
||||
|
||||
<div class="mb-5">
|
||||
<label for="email" class="form-label">
|
||||
<?= lang('email') ?>
|
||||
</label>
|
||||
<input type="text" id="email" placeholder="<?= lang('enter_email_here') ?>" class="form-control"/>
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mb-5">
|
||||
<a href="<?= site_url('login') ?>" class="user-login">
|
||||
<?= lang('go_to_login') ?>
|
||||
</a>
|
||||
|
||||
<button type="submit" id="get-new-password" class="btn btn-primary btn-large">
|
||||
<i class="fas fa-unlock-alt me-2"></i>
|
||||
<?= lang('regenerate_password') ?>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/vendor/@fortawesome-fontawesome-free/fontawesome.min.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/vendor/@fortawesome-fontawesome-free/solid.min.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/recovery_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/recovery.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
263
application/views/pages/secretaries.php
Normal file
263
application/views/pages/secretaries.php
Normal file
@@ -0,0 +1,263 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div class="container-fluid backend-page" id="secretaries-page">
|
||||
<div class="row" id="secretaries">
|
||||
<div id="filter-secretaries" class="filter-records column col-12 col-md-5">
|
||||
<form class="mb-4">
|
||||
<div class="input-group">
|
||||
<input type="text" class="key form-control" aria-label="keyword">
|
||||
|
||||
<button class="filter btn btn-outline-secondary" type="submit"
|
||||
data-tippy-content="<?= lang('filter') ?>">
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('secretaries') ?>
|
||||
</h4>
|
||||
|
||||
<?php slot('after_page_title'); ?>
|
||||
|
||||
<div class="results">
|
||||
<!-- JS -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="record-details column col-12 col-md-7">
|
||||
<div class="btn-toolbar mb-4">
|
||||
<div class="add-edit-delete-group btn-group">
|
||||
<button id="add-secretary" class="btn btn-primary">
|
||||
<i class="fas fa-plus-square me-2"></i>
|
||||
<?= lang('add') ?>
|
||||
</button>
|
||||
<button id="edit-secretary" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-edit me-2"></i>
|
||||
<?= lang('edit') ?>
|
||||
</button>
|
||||
<button id="delete-secretary" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-trash-alt me-2"></i>
|
||||
<?= lang('delete') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="save-cancel-group" style="display:none;">
|
||||
<button id="save-secretary" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<button id="cancel-secretary" class="btn btn-secondary">
|
||||
<?= lang('cancel') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<?php slot('after_page_actions'); ?>
|
||||
</div>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('details') ?>
|
||||
</h4>
|
||||
|
||||
<div class="form-message alert" style="display:none;"></div>
|
||||
|
||||
<input type="hidden" id="id" class="record-id">
|
||||
|
||||
<div class="row">
|
||||
<div class="details col-12 col-md-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="first-name">
|
||||
<?= lang('first_name') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="first-name" class="form-control required" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="last-name">
|
||||
<?= lang('last_name') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="last-name" class="form-control required" maxlength="512" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="email">
|
||||
<?= lang('email') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="email" class="form-control required" maxlength="512" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="phone-number">
|
||||
<?= lang('phone_number') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="phone-number" class="form-control required" maxlength="128" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="mobile-number">
|
||||
<?= lang('mobile_number') ?>
|
||||
|
||||
</label>
|
||||
<input id="mobile-number" class="form-control" maxlength="128" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="address">
|
||||
<?= lang('address') ?>
|
||||
</label>
|
||||
<input id="address" class="form-control" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="city">
|
||||
<?= lang('city') ?>
|
||||
</label>
|
||||
<input id="city" class="form-control" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="state">
|
||||
<?= lang('state') ?>
|
||||
</label>
|
||||
<input id="state" class="form-control" maxlength="128" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="zip-code">
|
||||
<?= lang('zip_code') ?>
|
||||
</label>
|
||||
<input id="zip-code" class="form-control" maxlength="64" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="notes">
|
||||
<?= lang('notes') ?>
|
||||
</label>
|
||||
<textarea id="notes" class="form-control" rows="3" disabled></textarea>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_fields'); ?>
|
||||
</div>
|
||||
<div class="settings col-12 col-md-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="username">
|
||||
<?= lang('username') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="username" class="form-control required" maxlength="256" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="password">
|
||||
<?= lang('password') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input type="password" id="password" class="form-control required"
|
||||
maxlength="512" autocomplete="new-password" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="password-confirm">
|
||||
<?= lang('retype_password') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input type="password" id="password-confirm" class="form-control required"
|
||||
maxlength="512" autocomplete="new-password" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="calendar-view">
|
||||
<?= lang('calendar') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<select id="calendar-view" class="form-select required" disabled>
|
||||
<option value="default"><?= lang('default') ?></option>
|
||||
<option value="table"><?= lang('table') ?></option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="language">
|
||||
<?= lang('language') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<select id="language" class="form-select required" disabled>
|
||||
<?php foreach (vars('available_languages') as $available_language): ?>
|
||||
<option value="<?= $available_language ?>">
|
||||
<?= ucfirst($available_language) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="timezone">
|
||||
<?= lang('timezone') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<?php component('timezone_dropdown', [
|
||||
'attributes' => 'id="timezone" class="form-control required" disabled',
|
||||
'grouped_timezones' => vars('grouped_timezones'),
|
||||
]); ?>
|
||||
</div>
|
||||
|
||||
<?php if (setting('ldap_is_active')): ?>
|
||||
<div class="mb-3">
|
||||
<label for="ldap-dn" class="form-label">
|
||||
<?= lang('ldap_dn') ?>
|
||||
</label>
|
||||
<input type="text" id="ldap-dn" class="form-control" maxlength="100" disabled/>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div>
|
||||
<label class="form-label mb-3">
|
||||
<?= lang('options') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="border rounded mb-3 p-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="notifications" disabled>
|
||||
<label class="form-check-label" for="notifications">
|
||||
<?= lang('receive_notifications') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label mb-3">
|
||||
<?= lang('providers') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div id="secretary-providers" class="card card-body bg-white border">
|
||||
<!-- JS -->
|
||||
</div>
|
||||
|
||||
<?php slot('after_secondary_fields'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/account_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/secretaries_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/secretaries.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
|
||||
100
application/views/pages/service_categories.php
Normal file
100
application/views/pages/service_categories.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div class="container-fluid backend-page" id="service-categories-page">
|
||||
|
||||
<div class="row" id="service-categories">
|
||||
<div id="filter-service-categories" class="filter-records column col-12 col-md-5">
|
||||
<form class="input-append mb-4">
|
||||
<div class="input-group">
|
||||
<input type="text" class="key form-control" aria-label="keyword">
|
||||
|
||||
<button class="filter btn btn-outline-secondary" type="submit"
|
||||
data-tippy-content="<?= lang('filter') ?>">
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('service_categories') ?>
|
||||
</h4>
|
||||
|
||||
<?php slot('after_page_title'); ?>
|
||||
|
||||
<div class="results">
|
||||
<!-- JS -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="record-details col-12 col-md-5">
|
||||
<div class="btn-toolbar mb-4">
|
||||
<div class="add-edit-delete-group btn-group">
|
||||
<button id="add-service-category" class="btn btn-primary">
|
||||
<i class="fas fa-plus-square me-2"></i>
|
||||
<?= lang('add') ?>
|
||||
</button>
|
||||
<button id="edit-service-category" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-edit me-2"></i>
|
||||
<?= lang('edit') ?>
|
||||
</button>
|
||||
<button id="delete-service-category" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-trash-alt me-2"></i>
|
||||
<?= lang('delete') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="save-cancel-group" style="display:none;">
|
||||
<button id="save-service-category" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<button id="cancel-service-category" class="btn btn-secondary">
|
||||
<?= lang('cancel') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<?php slot('after_page_actions'); ?>
|
||||
</div>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('details') ?>
|
||||
</h4>
|
||||
|
||||
<div class="form-message alert" style="display:none;"></div>
|
||||
|
||||
<input type="hidden" id="id">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="name">
|
||||
<?= lang('name') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="name" class="form-control required" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="description">
|
||||
<?= lang('description') ?>
|
||||
</label>
|
||||
<textarea id="description" rows="4" class="form-control" disabled></textarea>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_fields'); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/service_categories_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/service_categories.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
187
application/views/pages/services.php
Normal file
187
application/views/pages/services.php
Normal file
@@ -0,0 +1,187 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div class="container-fluid backend-page" id="services-page">
|
||||
<div class="row" id="services">
|
||||
<div id="filter-services" class="filter-records col col-12 col-md-5">
|
||||
<form class="mb-4">
|
||||
<div class="input-group">
|
||||
<input type="text" class="key form-control" aria-label="keyword">
|
||||
|
||||
<button class="filter btn btn-outline-secondary" type="submit"
|
||||
data-tippy-content="<?= lang('filter') ?>">
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('services') ?>
|
||||
</h4>
|
||||
|
||||
<?php slot('after_page_title'); ?>
|
||||
|
||||
<div class="results">
|
||||
<!-- JS -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="record-details column col-12 col-md-5">
|
||||
<div class="btn-toolbar mb-4">
|
||||
<div class="add-edit-delete-group btn-group">
|
||||
<button id="add-service" class="btn btn-primary">
|
||||
<i class="fas fa-plus-square me-2"></i>
|
||||
<?= lang('add') ?>
|
||||
</button>
|
||||
<button id="edit-service" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-edit me-2"></i>
|
||||
<?= lang('edit') ?>
|
||||
</button>
|
||||
<button id="delete-service" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-trash-alt me-2"></i>
|
||||
<?= lang('delete') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="save-cancel-group" style="display:none;">
|
||||
<button id="save-service" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<button id="cancel-service" class="btn btn-secondary">
|
||||
<?= lang('cancel') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<?php slot('after_page_actions'); ?>
|
||||
</div>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('details') ?>
|
||||
</h4>
|
||||
|
||||
<div class="form-message alert" style="display:none;"></div>
|
||||
|
||||
<input type="hidden" id="id">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="name">
|
||||
<?= lang('name') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="name" class="form-control required" maxlength="128" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="duration">
|
||||
<?= lang('duration_minutes') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="duration" class="form-control required" type="number" min="<?= EVENT_MINIMUM_DURATION ?>"
|
||||
disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="price">
|
||||
<?= lang('price') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="price" class="form-control required" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="currency">
|
||||
<?= lang('currency') ?>
|
||||
|
||||
</label>
|
||||
<input id="currency" class="form-control" maxlength="32" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="service-category-id">
|
||||
<?= lang('category') ?>
|
||||
</label>
|
||||
<select id="service-category-id" class="form-select" disabled></select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="availabilities-type">
|
||||
<?= lang('availabilities_type') ?>
|
||||
|
||||
</label>
|
||||
<select id="availabilities-type" class="form-select" disabled>
|
||||
<option value="<?= AVAILABILITIES_TYPE_FLEXIBLE ?>">
|
||||
<?= lang('flexible') ?>
|
||||
</option>
|
||||
<option value="<?= AVAILABILITIES_TYPE_FIXED ?>">
|
||||
<?= lang('fixed') ?>
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="attendants-number" disabled>
|
||||
<?= lang('attendants_number') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="attendants-number" class="form-control required" type="number" min="1">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="location">
|
||||
<?= lang('location') ?>
|
||||
</label>
|
||||
<input id="location" class="form-control" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<?php component('color_selection', ['attributes' => 'id="color"']); ?>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label mb-3">
|
||||
<?= lang('options') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="border rounded mb-3 p-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="is-private">
|
||||
|
||||
<label class="form-check-label" for="is-private">
|
||||
<?= lang('hide_from_public') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-text text-muted">
|
||||
<small>
|
||||
<?= lang('private_hint') ?>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="description">
|
||||
<?= lang('description') ?>
|
||||
</label>
|
||||
<textarea id="description" rows="4" class="form-control" disabled></textarea>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_fields'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/services_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/service_categories_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/services.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
73
application/views/pages/update.php
Normal file
73
application/views/pages/update.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
|
||||
<title>Update | Easy!Appointments</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="<?= asset_url('assets/css/themes/default.min.css') ?>">
|
||||
<link rel="icon" type="image/x-icon" href="<?= asset_url('assets/img/favicon.ico') ?>">
|
||||
<link rel="stylesheet" type="text/css" href="<?= asset_url('assets/css/general.css') ?>">
|
||||
<link rel="stylesheet" type="text/css" href="<?= asset_url('assets/css/pages/update.css') ?>">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div class="container">
|
||||
<h1 class="page-title">Easy!Appointments Update</h1>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<?php if (vars('success')): ?>
|
||||
<div class="jumbotron">
|
||||
<h1 class="display-4">Success!</h1>
|
||||
<p class="lead">
|
||||
The database got updated successfully.
|
||||
</p>
|
||||
<hr class="my-4">
|
||||
<p>
|
||||
You can now use the latest Easy!Appointments version.
|
||||
</p>
|
||||
<a href="<?= site_url('about') ?>" class="btn btn-success btn-large">
|
||||
<i class="fas fa-wrench me-2"></i>
|
||||
<?= lang('backend_section') ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div class="jumbotron">
|
||||
<h1 class="display-4">Failure!</h1>
|
||||
<p class="lead">
|
||||
There was an error during the update process.
|
||||
</p>
|
||||
<hr class="my-4">
|
||||
<p>
|
||||
Please restore your database backup.
|
||||
</p>
|
||||
<a href="<?= site_url('login') ?>" class="btn btn-success btn-large">
|
||||
<i class="fas fa-wrench me-2"></i>
|
||||
<?= lang('backend_section') ?>
|
||||
</a>
|
||||
|
||||
<p>
|
||||
Please restore your database backup.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="well text-start">
|
||||
Error Message: <?= vars('exception') ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
Powered by <a href="https://easyappointments.org">Easy!Appointments</a>
|
||||
</footer>
|
||||
|
||||
<script src="<?= asset_url('assets/vendor/@fortawesome-fontawesome-free/fontawesome.min.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/vendor/@fortawesome-fontawesome-free/solid.min.js') ?>"></script>
|
||||
</body>
|
||||
</html>
|
||||
168
application/views/pages/webhooks.php
Normal file
168
application/views/pages/webhooks.php
Normal file
@@ -0,0 +1,168 @@
|
||||
<?php extend('layouts/backend_layout'); ?>
|
||||
|
||||
<?php section('content'); ?>
|
||||
|
||||
<div class="container-fluid backend-page" id="webhooks-page">
|
||||
<div class="row" id="webhooks">
|
||||
<div id="filter-webhooks" class="filter-records col col-12 col-md-5">
|
||||
<form class="mb-4">
|
||||
<div class="input-group">
|
||||
<input type="text" class="key form-control" aria-label="keyword">
|
||||
|
||||
<button class="filter btn btn-outline-secondary" type="submit"
|
||||
data-tippy-content="<?= lang('filter') ?>">
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('webhooks') ?>
|
||||
</h4>
|
||||
|
||||
<?php slot('after_page_title'); ?>
|
||||
|
||||
<div class="results">
|
||||
<!-- JS -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="record-details column col-12 col-md-5">
|
||||
<div class="btn-toolbar mb-4">
|
||||
<a href="<?= site_url('integrations') ?>" class="btn btn-outline-primary me-2">
|
||||
<i class="fas fa-chevron-left me-2"></i>
|
||||
<?= lang('back') ?>
|
||||
</a>
|
||||
|
||||
<div class="add-edit-delete-group btn-group">
|
||||
<button id="add-webhook" class="btn btn-primary">
|
||||
<i class="fas fa-plus-square me-2"></i>
|
||||
<?= lang('add') ?>
|
||||
</button>
|
||||
<button id="edit-webhook" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-edit me-2"></i>
|
||||
<?= lang('edit') ?>
|
||||
</button>
|
||||
<button id="delete-webhook" class="btn btn-outline-secondary" disabled="disabled">
|
||||
<i class="fas fa-trash-alt me-2"></i>
|
||||
<?= lang('delete') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="save-cancel-group" style="display:none;">
|
||||
<button id="save-webhook" class="btn btn-primary">
|
||||
<i class="fas fa-check-square me-2"></i>
|
||||
<?= lang('save') ?>
|
||||
</button>
|
||||
<button id="cancel-webhook" class="btn btn-secondary">
|
||||
<?= lang('cancel') ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<?php slot('after_page_actions'); ?>
|
||||
</div>
|
||||
|
||||
<h4 class="text-black-50 mb-3 fw-light">
|
||||
<?= lang('details') ?>
|
||||
</h4>
|
||||
|
||||
<div class="form-message alert" style="display:none;"></div>
|
||||
|
||||
<input type="hidden" id="id">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="name">
|
||||
<?= lang('name') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="name" class="form-control required" maxlength="128" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="url">
|
||||
<?= lang('url') ?>
|
||||
<span class="text-danger" hidden>*</span>
|
||||
</label>
|
||||
<input id="url" class="form-control required" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="secret-header">
|
||||
<?= lang('secret_header') ?>
|
||||
</label>
|
||||
|
||||
<input id="secret-header" class="form-control" disabled>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="secret-token">
|
||||
<?= lang('secret_token') ?>
|
||||
</label>
|
||||
|
||||
<input id="secret-token" class="form-control" disabled>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label mb-3" for="actions">
|
||||
<?= lang('actions') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="border rounded mb-3 p-3">
|
||||
<div id="actions">
|
||||
<?php foreach (vars('available_actions') as $available_action): ?>
|
||||
<div class="mb-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox"
|
||||
id="include-<?= str_replace('_', '-', $available_action) ?>"
|
||||
data-action="<?= $available_action ?>">
|
||||
|
||||
<label class="form-check-label"
|
||||
for="include-<?= str_replace('_', '-', $available_action) ?>">
|
||||
<?= lang($available_action) ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="form-label mb-3">
|
||||
<?= lang('options') ?>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="border rounded mb-3 p-3">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" id="is-ssl-verified">
|
||||
|
||||
<label class="form-check-label" for="is-ssl-verified">
|
||||
<?= lang('verify_ssl') ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="notes">
|
||||
<?= lang('notes') ?>
|
||||
</label>
|
||||
<textarea id="notes" rows="4" class="form-control" disabled></textarea>
|
||||
</div>
|
||||
|
||||
<?php slot('after_primary_fields'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php end_section('content'); ?>
|
||||
|
||||
<?php section('scripts'); ?>
|
||||
|
||||
<script src="<?= asset_url('assets/js/utils/message.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/validation.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/utils/url.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/http/webhooks_http_client.js') ?>"></script>
|
||||
<script src="<?= asset_url('assets/js/pages/webhooks.js') ?>"></script>
|
||||
|
||||
<?php end_section('scripts'); ?>
|
||||
Reference in New Issue
Block a user