diff --git a/src/View/Helper/BootstrapHelper.php b/src/View/Helper/BootstrapHelper.php
index 22d36d7..6d9275f 100644
--- a/src/View/Helper/BootstrapHelper.php
+++ b/src/View/Helper/BootstrapHelper.php
@@ -1793,7 +1793,7 @@ class BoostrapDropdownMenu extends BootstrapGeneric
}
$params['data-open-form-id'] = mt_rand();
}
-
+
$label = $this->genNode('span', [
'class' => ['ms-2',],
], h($entry['text']));
diff --git a/templates/Instance/home.php b/templates/Instance/home.php
index 96450ea..d80491a 100644
--- a/templates/Instance/home.php
+++ b/templates/Instance/home.php
@@ -1,5 +1,5 @@
user_settings_by_name['ui.bookmarks']['value']) ? json_decode($loggedUser->user_settings_by_name['ui.bookmarks']['value'], true) : []
+$bookmarks = !empty($loggedUser->user_settings_by_name['ui.bookmarks']['value']) ? json_decode($loggedUser->user_settings_by_name['ui.bookmarks']['value'], true) : [];
?>
diff --git a/templates/element/genericElements/ListTopBar/group_table_action.php b/templates/element/genericElements/ListTopBar/group_table_action.php
index a50184c..64d3cb2 100644
--- a/templates/element/genericElements/ListTopBar/group_table_action.php
+++ b/templates/element/genericElements/ListTopBar/group_table_action.php
@@ -4,12 +4,19 @@ if (empty($data['table_setting_id'])) {
}
$tableSettings = !empty($loggedUser->user_settings_by_name['ui.table_setting']['value']) ? json_decode($loggedUser->user_settings_by_name['ui.table_setting']['value'], true) : [];
$tableSettings = !empty($tableSettings[$data['table_setting_id']]) ? $tableSettings[$data['table_setting_id']] : [];
+$compactDisplay = !empty($tableSettings['compact_display']);
$availableColumnsHtml = $this->element('/genericElements/ListTopBar/group_table_action/hiddenColumns', [
'table_data' => $table_data,
'tableSettings' => $tableSettings,
'table_setting_id' => $data['table_setting_id'],
]);
+$compactDisplayHtml = $this->element('/genericElements/ListTopBar/group_table_action/compactDisplay', [
+ 'table_data' => $table_data,
+ 'tableSettings' => $tableSettings,
+ 'table_setting_id' => $data['table_setting_id'],
+ 'compactDisplay' => $compactDisplay
+]);
?>
element('/genericElements/ListTopBar/group_table_
'data-table_setting_id' => $data['table_setting_id'],
],
'menu' => [
- [
- 'text' => __('Group by'),
- 'icon' => 'layer-group',
- 'menu' => [
- [
- 'text' => 'fields to be grouped by',
- ]
- ],
- ],
+ // [
+ // 'text' => __('Group by'),
+ // 'icon' => 'layer-group',
+ // 'menu' => [
+ // [
+ // 'text' => 'fields to be grouped by', TODO:implement
+ // ]
+ // ],
+ // ],
[
'text' => __('Show/hide columns'),
'icon' => 'eye-slash',
@@ -48,9 +55,8 @@ $availableColumnsHtml = $this->element('/genericElements/ListTopBar/group_table_
],
],
[
- 'text' => __('Compact display'),
- 'icon' => 'text-height'
- ],
+ 'html' => $compactDisplayHtml,
+ ]
]
]);
?>
diff --git a/templates/element/genericElements/ListTopBar/group_table_action/compactDisplay.php b/templates/element/genericElements/ListTopBar/group_table_action/compactDisplay.php
new file mode 100644
index 0000000..312ad37
--- /dev/null
+++ b/templates/element/genericElements/ListTopBar/group_table_action/compactDisplay.php
@@ -0,0 +1,46 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/templates/element/genericElements/ListTopBar/group_table_action/hiddenColumns.php b/templates/element/genericElements/ListTopBar/group_table_action/hiddenColumns.php
index a6647a4..5d0ce68 100644
--- a/templates/element/genericElements/ListTopBar/group_table_action/hiddenColumns.php
+++ b/templates/element/genericElements/ListTopBar/group_table_action/hiddenColumns.php
@@ -10,7 +10,7 @@ foreach ($table_data['fields'] as $field) {
$availableColumnsHtml .= sprintf(
'
-
',
@@ -29,72 +29,48 @@ echo $availableColumnsHtml;
?>
\ No newline at end of file
diff --git a/templates/layout/default.php b/templates/layout/default.php
index 1482706..849592e 100644
--- a/templates/layout/default.php
+++ b/templates/layout/default.php
@@ -43,6 +43,7 @@ $sidebarOpen = $loggedUser->user_settings_by_name_with_fallback['ui.sidebar.expa
= $this->Html->script('bootstrap-helper.js') ?>
= $this->Html->script('api-helper.js') ?>
= $this->Html->script('select2.min.js') ?>
+ = $this->Html->script('table-settings.js') ?>
= $this->Html->script('CodeMirror/codemirror.js') ?>
= $this->Html->script('CodeMirror/mode/javascript/javascript') ?>
= $this->Html->script('CodeMirror/addon/hint/show-hint') ?>
diff --git a/webroot/css/main.css b/webroot/css/main.css
index 0403a88..8003ccc 100644
--- a/webroot/css/main.css
+++ b/webroot/css/main.css
@@ -58,6 +58,10 @@
line-height: 1.5;
}
+.cursor-pointer {
+ cursor: pointer;
+}
+
.link-unstyled, .link-unstyled:link, .link-unstyled:hover {
color: inherit;
text-decoration: inherit;
diff --git a/webroot/js/bootstrap-helper.js b/webroot/js/bootstrap-helper.js
index b34ba9b..733f422 100644
--- a/webroot/js/bootstrap-helper.js
+++ b/webroot/js/bootstrap-helper.js
@@ -308,7 +308,6 @@ class Toaster {
return $(this).is($toast)
});
if (hoveredElements.length > 0) {
- console.log('Toast hovered. Not hidding')
evt.preventDefault()
setTimeout(() => {
$toast.toast('hide')
diff --git a/webroot/js/table-settings.js b/webroot/js/table-settings.js
new file mode 100644
index 0000000..95db30a
--- /dev/null
+++ b/webroot/js/table-settings.js
@@ -0,0 +1,34 @@
+// function saveHiddenColumns(table_setting_id, newTableSettings) {
+function mergeAndSaveSettings(table_setting_id, newTableSettings) {
+ const settingName = 'ui.table_setting'
+ const urlGet = `/user-settings/getSettingByName/${settingName}`
+ AJAXApi.quickFetchJSON(urlGet).then(tableSettings => {
+ tableSettings = JSON.parse(tableSettings.value)
+ newTableSettings = mergeNewTableSettingsIntoOld(table_setting_id, tableSettings, newTableSettings)
+ saveTableSetting(settingName, newTableSettings)
+ }).catch((e) => { // setting probably doesn't exist
+ saveTableSetting(settingName, newTableSettings)
+ })
+}
+
+function mergeNewTableSettingsIntoOld(table_setting_id, oldTableSettings, newTableSettings) {
+ // Merge recursively
+ tableSettings = Object.assign({}, oldTableSettings, newTableSettings)
+ tableSettings[table_setting_id] = Object.assign({}, oldTableSettings[table_setting_id], newTableSettings[table_setting_id])
+ return tableSettings
+}
+
+function saveTableSetting(settingName, newTableSettings) {
+ const urlSet = `/user-settings/setSetting/${settingName}`
+ AJAXApi.quickFetchAndPostForm(urlSet, {
+ value: JSON.stringify(newTableSettings)
+ }, {
+ provideFeedback: false
+ }).then(() => {
+ UI.toast({
+ variant: 'success',
+ title: 'Table setting saved',
+ delay: 3000
+ })
+ })
+}
\ No newline at end of file