mirror of
https://github.com/fusionpbx/fusionpbx.git
synced 2025-12-30 00:53:50 +00:00
95 lines
3.6 KiB
PHP
95 lines
3.6 KiB
PHP
<?php
|
|
|
|
/*
|
|
FusionPBX
|
|
Version: MPL 1.1
|
|
|
|
The contents of this file are subject to the Mozilla Public License Version
|
|
1.1 (the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
http://www.mozilla.org/MPL/
|
|
|
|
Software distributed under the License is distributed on an "AS IS" basis,
|
|
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
for the specific language governing rights and limitations under the
|
|
License.
|
|
|
|
The Original Code is FusionPBX
|
|
|
|
The Initial Developer of the Original Code is
|
|
Mark J Crane <markjcrane@fusionpbx.com>
|
|
Copyright (C) 2010 - 2020
|
|
All Rights Reserved.
|
|
|
|
Contributor(s):
|
|
Mark J Crane <markjcrane@fusionpbx.com>
|
|
*/
|
|
|
|
class modal {
|
|
|
|
/**
|
|
* Creates a modal window.
|
|
*
|
|
* @param array $array Array containing the modal's properties.
|
|
* The following keys are supported:
|
|
* - id: ID of the modal (optional).
|
|
* - type: Type of the modal (optional, one of 'copy', 'toggle',
|
|
* 'delete' or 'unassign'). If not specified, a general
|
|
* modal will be created. Defaults to 'general'.
|
|
* - title: Title of the modal (optional). If not specified,
|
|
* a default title will be used based on the type.
|
|
* - message: Message of the modal (optional).
|
|
* - actions: Actions of the modal (optional).
|
|
* - onclose: Function to call when the modal is closed
|
|
* (optional).
|
|
*
|
|
* @return string HTML string representing the modal window.
|
|
*/
|
|
static function create($array) {
|
|
|
|
//define as global
|
|
global $settings;
|
|
|
|
//add multi-lingual support
|
|
$language = new text;
|
|
$text = $language->get();
|
|
|
|
$modal = "<div id='" . (!empty($array['id']) ? $array['id'] : 'modal') . "' class='modal-window'>\n";
|
|
$modal .= " <div>\n";
|
|
$modal .= " <span title=\"" . $text['button-close'] . "\" class='modal-close' onclick=\"modal_close(); " . ($array['onclose'] ?? '') . "\">×</span>\n";
|
|
if (!empty($array['type'])) {
|
|
//determine type
|
|
switch ($array['type']) {
|
|
case 'copy':
|
|
$array['title'] = $text['modal_title-confirmation'];
|
|
$array['message'] = $text['confirm-copy'];
|
|
break;
|
|
case 'toggle':
|
|
$array['title'] = $text['modal_title-confirmation'];
|
|
$array['message'] = $text['confirm-toggle'];
|
|
break;
|
|
case 'delete':
|
|
$array['title'] = $text['modal_title-confirmation'];
|
|
$array['message'] = $text['confirm-delete'];
|
|
break;
|
|
case 'unassign':
|
|
$array['title'] = $text['modal_title-confirmation'];
|
|
$array['message'] = $text['confirm-unassign'];
|
|
default: //general
|
|
$array['title'] = !empty($array['title']) ? $array['title'] : $text['modal_title-confirmation'];
|
|
}
|
|
//prefix cancel button to action
|
|
$array['actions'] = button::create(['type' => 'button', 'label' => $text['button-cancel'], 'icon' => $settings->get('theme', 'button_icon_cancel'), 'collapse' => 'never', 'onclick' => 'modal_close(); ' . ($array['onclose'] ?? '')]) . $array['actions'];
|
|
}
|
|
$modal .= !empty($array['title']) ? " <span class='modal-title'>" . $array['title'] . "</span>\n" : null;
|
|
$modal .= !empty($array['message']) ? " <span class='modal-message'>" . $array['message'] . "</span>\n" : null;
|
|
$modal .= !empty($array['actions']) ? " <span class='modal-actions'>" . $array['actions'] . "</span>\n" : null;
|
|
$modal .= " </div>\n";
|
|
$modal .= "</div>";
|
|
|
|
return $modal;
|
|
|
|
}
|
|
|
|
}
|