chg: [UI] Open modal without onclick

pull/8231/head
Jakub Onderka 2022-03-20 09:36:21 +01:00
parent ec0fae0c94
commit f6d1015f95
5 changed files with 30 additions and 35 deletions

View File

@ -27,26 +27,20 @@ $divider = $this->element('/genericElements/SideMenu/side_menu_divider');
echo $this->element('/genericElements/SideMenu/side_menu_link', array(
'element_id' => 'dashboardImport',
'text' => __('Import Config JSON'),
'onClick' => array(
'function' => 'openGenericModal',
'params' => array($baseurl . '/dashboards/import')
),
'url' => $baseurl . '/dashboards/import',
'link_class' => 'modal-open',
));
echo $this->element('/genericElements/SideMenu/side_menu_link', array(
'element_id' => 'dashboardExport',
'text' => __('Export Config JSON'),
'onClick' => array(
'function' => 'openGenericModal',
'params' => array($baseurl . '/dashboards/export')
),
'url' => $baseurl . '/dashboards/export',
'link_class' => 'modal-open',
));
echo $this->element('/genericElements/SideMenu/side_menu_link', array(
'element_id' => 'dashboardSave',
'text' => __('Save Dashboard Config'),
'onClick' => array(
'function' => 'openGenericModal',
'params' => array($baseurl . '/dashboards/saveTemplate')
),
'url' => $baseurl . '/dashboards/saveTemplate',
'link_class' => 'modal-open',
));
echo $this->element('/genericElements/SideMenu/side_menu_link', array(
'element_id' => 'dashboardTemplateIndex',
@ -55,7 +49,7 @@ $divider = $this->element('/genericElements/SideMenu/side_menu_divider');
));
break;
case 'event':
$eventId = intval($event['Event']['id']);
$eventId = (int)$event['Event']['id'];
echo '<div id="hiddenSideMenuData" class="hidden" data-event-id="' . $eventId . '"></div>';
if (in_array($menuItem, array('editEvent', 'addAttribute', 'addObject', 'addAttachment', 'addIOC', 'addThreatConnect', 'populateFromTemplate', 'merge'))) {
// we can safely assume that mayModify is true if coming from these actions, as they require it in the controller and the user has already passed that check

View File

@ -29,6 +29,9 @@ if (empty($url)) {
if (!empty($title)) {
$a .= ' title="' . h($title) . '"';
}
if (!empty($link_class)) {
$a .= ' class="' . h($link_class) . '"';
}
if (!empty($onClick)) {
$params = '';
foreach ($onClick['params'] as $param) {

View File

@ -3,12 +3,12 @@
$event = Hash::extract($data, $field['event_path']);
if ($event['protected']) {
echo sprintf(
'<span class="fas fa-lock"></span> %s %s %s <br />',
'<span class="fas fa-lock"></span> %s %s %s <br>',
__('Event is in protected mode. (Limited distribution)'),
!$field['owner'] ? '' : sprintf(
'<br /><a href="#" onClick="%s" title="%s"><i class="fas fa-unlock"></i> %s</a>',
'<br><a href="%s" class="modal-open" title="%s"><i class="fas fa-unlock"></i> %s</a>',
sprintf(
"openGenericModal('%s/events/unprotect/%s');",
'%s/events/unprotect/%s',
$baseurl,
h($event['id'])
),
@ -16,11 +16,10 @@
empty($field['text']) ? __('Switch to unprotected mode') : h($field['text'])
),
!$field['owner'] ? '' : sprintf(
'<br /><a href="#" onClick="%s"><i class="fas fa-key"></i>%s</a>',
'<br><a href="%s" class="modal-open"><i class="fas fa-key"></i> %s</a>',
sprintf(
"openGenericModal('%s/CryptographicKeys/add/%s/%s');",
"%s/CryptographicKeys/add/Event/%s",
$baseurl,
h('Event'),
h($event['id'])
),
empty($field['text']) ? __('Add signing key') : h($field['text'])
@ -33,7 +32,7 @@
$foundInstanceKey = true;
}
echo sprintf(
'%s<span class="bold">%s</span> (%s) <a href="#" onClick="%s" title="%s"><i class="fas fa-search"></i></a> %s<br />',
'%s<span class="bold">%s</span> (%s) <a href="%s" class="modal-open" title="%s"><i class="fas fa-search"></i></a> %s<br>',
!$isInstanceKey ? '' : sprintf(
'<i class="fas fa-home blue" title="%s"></i>&nbsp;',
__('This is the instance signing key. When synchronising the instance, this will be the key used to validate the event.')
@ -41,13 +40,13 @@
h($key['type']),
empty($key['fingerprint']) ? '#' . h($key['id']) : h($key['fingerprint']),
sprintf(
"openGenericModal('%s/cryptographicKeys/view/%s');",
"%s/cryptographicKeys/view/%s",
$baseurl,
h($key['id'])
),
__('Inspect key'),
!$field['owner'] ? '' : sprintf(
'<a href="#" onClick="openGenericModal(\'%s/cryptographicKeys/delete/%s\')" title="%s"><i class="fas fa-trash"></i></a>',
'<a href="%s/cryptographicKeys/delete/%s" class="modal-open" title="%s"><i class="fas fa-trash"></i></a>',
$baseurl,
h($key['id']),
__('Detach key from the event. This key will no longer be used to sign and validate this event.')
@ -64,12 +63,12 @@
}
} else {
echo sprintf(
'<span class="fas fa-unlock"></span> <span>%s</span> %s<br />',
'<span class="fas fa-unlock"></span> <span>%s</span> %s<br>',
__('Event is in unprotected mode.'),
!$field['owner'] ? '' : sprintf(
'<br /><a href="#" onClick="%s" title="%s"><i class="fas fa-lock"></i> %s</a>',
'<br><a href="%s" class="modal-open" title="%s"><i class="fas fa-lock"></i> %s</a>',
sprintf(
"openGenericModal('%s/events/protect/%s');",
"%s/events/protect/%s",
$baseurl,
h($event['id'])
),
@ -78,4 +77,3 @@
)
);
}
//echo ;

View File

@ -116,14 +116,8 @@ echo $this->element('genericElements/IndexTable/scaffold', [
'type' => 'simple',
'text' => __('Add role'),
'fa-icon' => 'plus',
'class' => 'btn btn-primary',
'onClick' => 'openGenericModal',
'onClickParams' => [
sprintf(
'%s/admin/roles/add',
$baseurl
)
],
'class' => 'btn-primary modal-open',
'url' => "$baseurl/admin/roles/add",
'requirement' => $isSiteAdmin,
]
]

View File

@ -4766,7 +4766,7 @@ $(document.body).on('click', '.quickSelect', function() {
selection.addRange(range);
});
// Any link with data-paginator attribute will be treat as AJAX paginator
// Any link with data-paginator attribute will be treated as AJAX paginator
$(document.body).on('click', 'a[data-paginator]', function (e) {
e.preventDefault();
var paginatorTarget = $(this).attr('data-paginator');
@ -4782,6 +4782,12 @@ $(document.body).on('click', 'a[data-paginator]', function (e) {
});
});
// Any link with modal-open class will be treated as generic modal
$(document.body).on('click', 'a.modal-open', function (e) {
e.preventDefault();
openGenericModal($(this).attr('href'));
});
function queryEventLock(event_id, timestamp) {
if (!document.hidden) {
$.ajax({