Skip to content

Commit 31f5bbf

Browse files
authored
Merge pull request #563 from Neriderc/fullscreen-menu
Allow menu in full screen mode
2 parents 00de40f + d66e726 commit 31f5bbf

File tree

6 files changed

+147
-117
lines changed

6 files changed

+147
-117
lines changed

.github/workflows/code_quality.yml

Lines changed: 0 additions & 29 deletions
This file was deleted.

resources/css/gvexport.css

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,11 @@ span.NAME {
310310
right: 10px;
311311
text-align: center;
312312
}
313+
#render_menu_container {
314+
position: absolute;
315+
top: 0;
316+
left: 10px;
317+
}
313318

314319
.fullscreen {
315320
font-size: 2.8em;
@@ -322,6 +327,10 @@ span.NAME {
322327
.search_icon {
323328
font-size: 1.8em;
324329
}
330+
331+
.menu-fullscreen {
332+
font-size: 1.8em;
333+
}
325334
@media screen and (max-device-width:480px) {
326335
.fullscreen {
327336
font-size: 2em;

resources/javascript/MainPage/UI.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,5 +1034,16 @@ const UI = {
10341034
this.classList.remove('over');
10351035
return false;
10361036
}
1037+
},
1038+
1039+
mainOptions: {
1040+
showOptionsFullscreen() {
1041+
let menu = document.getElementsByClassName('sidebar').item(0);
1042+
if (menu.hidden) {
1043+
UI.showSidebar();
1044+
} else {
1045+
UI.hideSidebar();
1046+
}
1047+
}
10371048
}
10381049
};

resources/javascript/gvexport.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,9 +222,11 @@ function handleFullscreenExit()
222222
{
223223
Form.showHide(document.getElementById("fullscreenButton"), true);
224224
Form.showHide(document.getElementById("fullscreenClose"), false);
225+
Form.showHide(document.getElementById("fullscreenShowMenu"), false);
225226
} else {
226227
Form.showHide(document.getElementById("fullscreenButton"), false);
227228
Form.showHide(document.getElementById("fullscreenClose"), true);
229+
Form.showHide(document.getElementById("fullscreenShowMenu"), true);
228230
}
229231
}
230232

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
<?php
2+
3+
use vendor\WebtreesModules\gvexport\GVExport;
4+
use vendor\WebtreesModules\gvexport\MainPage;
5+
use Fisharebest\Webtrees\I18N;
6+
7+
/**
8+
* @var Tree $tree the webtrees tree instance of the current tree
9+
* @var Individual $individual the webtrees individual object instance of the XREF in the URL
10+
* @var array $settings wider array of settings and options
11+
* @var array $vars array of saved settings
12+
* @var array $otypes output file type options
13+
* @var bool $cartempty are there any individuals (INDI records) in the clippings cart?
14+
* @var GVExport $module instance of this module
15+
* @var bool $admin whether this is for the admin page (remove functions that aren't settings)
16+
* @var bool $usegraphviz whether graphviz is enabled or available
17+
*/
18+
19+
?>
20+
<form action="<?= $module->chartUrl($individual) ?>" method="post" class="sidebar d-print-none" id="gvexport">
21+
<div class="pull-right btn-hover">
22+
<a class="hide-form btn btn-secondary pointer"><i class="fa-solid fa-xmark"></i></a>
23+
</div>
24+
25+
<div class="sidebar__formfields col">
26+
27+
<?= csrf_field() ?>
28+
29+
<input type="hidden" id="time_token" name="vars[time_token]" value="">
30+
<div id="saved_diagrams_panel" <?php if (!$vars["show_diagram_panel"]) echo 'style="display: none"'; ?>>
31+
<div class="d-flex">
32+
<h3><?= I18N::translate('Saved diagrams') ?></h3>
33+
</div>
34+
35+
<div class="row no-right-margin form-group">
36+
<?= MainPage::addLabel('simple_settings_list', 'List of diagrams'); ?>
37+
<div class="col-sm-8 options-panel-background">
38+
<select id="simple_settings_list" class="form-select">
39+
<option value="-">-</option>
40+
</select>
41+
</div>
42+
</div>
43+
</div>
44+
<div class="d-flex">
45+
<h3><?= I18N::translate('People to be included') ?></h3>
46+
</div>
47+
48+
<?php
49+
// Include the "People to be included" section of the settings
50+
echo view($module->name() . '::MainPage/PeopleToInclude',
51+
[
52+
'vars' => $vars,
53+
'tree' => $tree,
54+
'cartempty' => $cartempty,
55+
'module' => $module,
56+
'settings' => $settings,
57+
'admin' => false
58+
]); ?>
59+
60+
<h3><?= I18N::translate('Appearance') ?></h3>
61+
62+
<?php
63+
// Include the "Appearance" section of the settings
64+
echo view($module->name() . '::MainPage/Appearance',
65+
[
66+
'vars' => $vars,
67+
'tree' => $tree,
68+
'module' => $module,
69+
'settings' => $settings,
70+
'usegraphviz' => $usegraphviz,
71+
'individual' => $individual,
72+
'admin' => false
73+
]); ?>
74+
75+
<h3><?= I18N::translate('General settings') ?></h3>
76+
<?php
77+
// Include the "General Settings" section of the settings
78+
echo view($module->name() . '::MainPage/GeneralSettings',
79+
[
80+
'vars' => $vars,
81+
'module' => $module,
82+
'settings' => $settings,
83+
'usegraphviz' => $usegraphviz,
84+
'otypes' => $otypes,
85+
'admin' => false
86+
]); ?>
87+
<?php if ($vars["show_debug_panel"]) { ?>
88+
<h3><?= I18N::translate('Debug') ?></h3>
89+
<?php
90+
// Include the "General Settings" section of the settings
91+
echo view($module->name() . '::MainPage/DebugPanel',
92+
[
93+
'vars' => $vars,
94+
'admin' => false
95+
]); ?>
96+
<?php } ?>
97+
</div>
98+
99+
<div class="sidebar__buttons">
100+
<button type="submit" class="btn btn-primary update-browser-rendering" id="update-browser" <?php if ($vars["auto_update"]) { echo 'style="display: none"'; } ?>><?= I18N::translate('Update') ?></button>
101+
<button type="submit" class="btn btn-secondary main-action" name="download"><?= I18N::translate('Download') ?></button>
102+
<a href="<?= $module->chartUrl($individual, ['reset' => '1']) ?>" class="btn btn-outline-secondary"><?= I18N::translate('Reset') ?></a>
103+
<button id="help-about" class="btn btn-outline-secondary" name="help"><?= I18N::translate('Help') ?></button>
104+
</div>
105+
106+
<input type="hidden" id="browser" name="browser" value="false">
107+
<input type="hidden" id="people-advanced-hidden" name="vars[show_adv_people]" value="<?= $vars["show_adv_people"] ? 'show' : '' ?>">
108+
<input type="hidden" id="appearance-advanced-hidden" name="vars[show_adv_appear]" value="<?= $vars["show_adv_appear"] ? 'show' : '' ?>">
109+
<input type="hidden" id="files-advanced-hidden" name="vars[show_adv_files]" value="<?= $vars["show_adv_files"] ? 'show' : '' ?>">
110+
<div id="toast-container"></div>
111+
</form>

resources/views/page.phtml

Lines changed: 14 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -43,107 +43,30 @@ $usegraphviz = $vars['graphviz_bin'] != "";
4343
<?= $title ?>
4444
</h2>
4545

46-
<form action="<?= $module->chartUrl($individual) ?>" method="post" class="sidebar d-print-none" id="gvexport">
47-
<div class="pull-right btn-hover">
48-
<a class="hide-form btn btn-secondary pointer"><i class="fa-solid fa-xmark"></i></a>
49-
</div>
50-
51-
<div class="sidebar__formfields col">
52-
53-
<?= csrf_field() ?>
54-
55-
<input type="hidden" id="time_token" name="vars[time_token]" value="">
56-
<div id="saved_diagrams_panel" <?php if (!$vars["show_diagram_panel"]) echo 'style="display: none"'; ?>>
57-
<div class="d-flex">
58-
<h3><?= I18N::translate('Saved diagrams') ?></h3>
59-
</div>
46+
<div class="sidebar_toggle" hidden>
47+
<a class="btn btn-outline-secondary pointer"><?= I18N::translate('Show options') ?></a>
48+
</div>
6049

61-
<div class="row no-right-margin form-group">
62-
<?= MainPage::addLabel('simple_settings_list', 'List of diagrams'); ?>
63-
<div class="col-sm-8 options-panel-background">
64-
<select id="simple_settings_list" class="form-select">
65-
<option value="-">-</option>
66-
</select>
67-
</div>
68-
</div>
69-
</div>
70-
<div class="d-flex">
71-
<h3><?= I18N::translate('People to be included') ?></h3>
72-
</div>
50+
<?= view($module->name() . '::MainPage/Help', []); ?>
7351

52+
<div id="render-container">
53+
<div id="rendering" hidden style="background-color: <?= $vars["background_col"] ?>;"></div>
54+
<div id="render_menu_container">
7455
<?php
75-
// Include the "People to be included" section of the settings
76-
echo view($module->name() . '::MainPage/PeopleToInclude',
56+
// Include the options sidebar menu
57+
echo view($module->name() . '::MainPage/Sidebar',
7758
[
7859
'vars' => $vars,
7960
'tree' => $tree,
8061
'cartempty' => $cartempty,
8162
'module' => $module,
8263
'settings' => $settings,
83-
'admin' => false
84-
]); ?>
85-
86-
<h3><?= I18N::translate('Appearance') ?></h3>
87-
88-
<?php
89-
// Include the "Appearance" section of the settings
90-
echo view($module->name() . '::MainPage/Appearance',
91-
[
92-
'vars' => $vars,
93-
'tree' => $tree,
94-
'module' => $module,
95-
'settings' => $settings,
96-
'usegraphviz' => $usegraphviz,
64+
'admin' => false,
9765
'individual' => $individual,
98-
'admin' => false
99-
]); ?>
100-
101-
<h3><?= I18N::translate('General settings') ?></h3>
102-
<?php
103-
// Include the "General Settings" section of the settings
104-
echo view($module->name() . '::MainPage/GeneralSettings',
105-
[
106-
'vars' => $vars,
107-
'module' => $module,
108-
'settings' => $settings,
109-
'usegraphviz' => $usegraphviz,
11066
'otypes' => $otypes,
111-
'admin' => false
67+
'usegraphviz' => $usegraphviz,
11268
]); ?>
113-
<?php if ($vars["show_debug_panel"]) { ?>
114-
<h3><?= I18N::translate('Debug') ?></h3>
115-
<?php
116-
// Include the "General Settings" section of the settings
117-
echo view($module->name() . '::MainPage/DebugPanel',
118-
[
119-
'vars' => $vars,
120-
'admin' => false
121-
]); ?>
122-
<?php } ?>
12369
</div>
124-
125-
<div class="sidebar__buttons">
126-
<button type="submit" class="btn btn-primary update-browser-rendering" id="update-browser" <?php if ($vars["auto_update"]) { echo 'style="display: none"'; } ?>><?= I18N::translate('Update') ?></button>
127-
<button type="submit" class="btn btn-secondary main-action" name="download"><?= I18N::translate('Download') ?></button>
128-
<a href="<?= $module->chartUrl($individual, ['reset' => '1']) ?>" class="btn btn-outline-secondary"><?= I18N::translate('Reset') ?></a>
129-
<button id="help-about" class="btn btn-outline-secondary" name="help"><?= I18N::translate('Help') ?></button>
130-
</div>
131-
132-
<input type="hidden" id="browser" name="browser" value="false">
133-
<input type="hidden" id="people-advanced-hidden" name="vars[show_adv_people]" value="<?= $vars["show_adv_people"] ? 'show' : '' ?>">
134-
<input type="hidden" id="appearance-advanced-hidden" name="vars[show_adv_appear]" value="<?= $vars["show_adv_appear"] ? 'show' : '' ?>">
135-
<input type="hidden" id="files-advanced-hidden" name="vars[show_adv_files]" value="<?= $vars["show_adv_files"] ? 'show' : '' ?>">
136-
<div id="toast-container"></div>
137-
</form>
138-
139-
<div class="sidebar_toggle" hidden>
140-
<a class="btn btn-outline-secondary pointer"><?= I18N::translate('Show options') ?></a>
141-
</div>
142-
143-
<?= view($module->name() . '::MainPage/Help', []); ?>
144-
145-
<div id="render-container">
146-
<div id="rendering" hidden style="background-color: <?= $vars["background_col"] ?>;"></div>
14770
<div id="render_button_container">
14871
<div>
14972
<a title="<?= I18N::translate('Fullscreen') ?>" onclick="toggleFullscreen()" class="fullscreen pointer" id="fullscreenButton">⛶</a>
@@ -153,6 +76,9 @@ $usegraphviz = $vars['graphviz_bin'] != "";
15376
<a title="<?= I18N::translate('Search diagram') ?>" onclick="" class="search_icon pointer" id="searchButton"><?= view('icons/search'); ?></a>
15477
<div id="diagram_search_box_container" style="display: none"><?= view('components/select-individual', ['name' => 'diagram_search_box', 'id' => 'diagram_search_box', 'tree' => $tree, 'individual' => "", 'required'=>false]); ?></div>
15578
</div>
79+
<div>
80+
<a title="<?= I18N::translate('Show menu') ?>" onclick="UI.mainOptions.showOptionsFullscreen()" class="menu-fullscreen pointer" id="fullscreenShowMenu" style="display: none;"><i class="fa-solid fa-wrench"></i></a>
81+
</div>
15682
</div>
15783
<div id="context_menu" style="display: none">
15884
<span id="menu-info">

0 commit comments

Comments
 (0)