Skip to content

Commit

Permalink
Merge pull request #65 from cmason3/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
cmason3 authored Feb 3, 2025
2 parents ca724d2 + 6acaea3 commit 4c6000b
Show file tree
Hide file tree
Showing 5 changed files with 125 additions and 31 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
## CHANGELOG

### [25.4.0] - Feb 3, 2025
- Add the ability to hide the `Global.yml` pane via a toggle switch
- If you delete a DataSet or Template with the dropdown open it will now close automatically.

### [25.3.2] - Jan 28, 2025
- Allow `/` and `.` to be used in template names
- Updated code to call `JinjaFx()._jinjafx()` instead of `JinjaFx().jinjafx()`
Expand Down Expand Up @@ -396,6 +400,7 @@
- Initial release


[25.4.0]: https://github.com/cmason3/jinjafx_server/compare/25.3.2...25.4.0
[25.3.2]: https://github.com/cmason3/jinjafx_server/compare/25.3.1...25.3.2
[25.3.1]: https://github.com/cmason3/jinjafx_server/compare/25.3.0...25.3.1
[25.3.0]: https://github.com/cmason3/jinjafx_server/compare/25.2.2...25.3.0
Expand Down
5 changes: 4 additions & 1 deletion jinjafx_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import re, argparse, hashlib, traceback, glob, hmac, uuid, struct, binascii, gzip, requests, ctypes, subprocess
import cmarkgfm, emoji

__version__ = '25.3.2'
__version__ = '25.4.0'

llock = threading.RLock()
rlock = threading.RLock()
Expand Down Expand Up @@ -767,6 +767,9 @@ def authenticate_dt(rdt, r):

dt_yml += 'revision: ' + str(dt_revision) + '\n'
dt_yml += 'dataset: "' + dt['dataset'] + '"\n'

if 'show_global' in dt:
dt_yml += 'show_global: ' + dt['show_global'] + '\n'

if dt_encrypted:
dt_yml += 'encrypted: 1\n'
Expand Down
4 changes: 2 additions & 2 deletions www/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.18/addon/display/fullscreen.min.css" integrity="sha512-T8xB3MmwpA77VK9lUH3UkdUTnkmpqOxHF8OceOKaHrvpcXMSNX0xtpa9FoLTDAVO1JnB2UiMdVeI2V0HTHjTWA==" crossorigin="anonymous" referrerpolicy="no-referrer">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.18/addon/fold/foldgutter.min.css" integrity="sha512-YwkMTlTHn8dBnwa47IF+cKsS00HPiiVhQ4DpwT1KF2gUftfFR7aefepabSPLAs6zrMyD89M3w0Ow6mQ5XJEUCw==" crossorigin="anonymous" referrerpolicy="no-referrer">
<link rel="stylesheet" href="/bb176715/jinjafx.css">
<link rel="stylesheet" href="/9eb5fb3c/jinjafx_m.css">
<link rel="stylesheet" href="/7a0bef24/jinjafx_m.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/js/bootstrap.bundle.min.js" integrity="sha512-7Pi/otdlbbCR+LnW+F7PwFcSDJOuUJB3OxtEHbg4vSMvzvJjde4Po1v4BR9Gdc9aXNUNFVUY+SK51wWT8WF0Gg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.18/codemirror.min.js" integrity="sha512-6cPYokihlrofMNApz7OXVQNObWjLiKGIBBb7+UB+AuMiRCLKmFKgrwms21sHq3bdFFZWpfHYRJBJvMFMPj1S9g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.18/addon/selection/mark-selection.min.js" integrity="sha512-XaS0JPIY5yDTDaYIMjkoXz+LF/DEVhRn1eq9QOhJPhMuJGGPOKZTulF+LY8/uwd18k00CIaSe4f8fCyp/5U7IQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
Expand All @@ -32,7 +32,7 @@
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-yaml/4.1.0/js-yaml.min.js" integrity="sha512-CSBhVREyzHAjAFfBlIBakjoRUKp5h7VSweP0InR/pAJyptH7peuhCsqAI/snV+TwZmXZqoUklpXp6R6wMnYf5Q==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.13/dayjs.min.js" integrity="sha512-FwNWaxyfy2XlEINoSnZh1JQ5TRRtGow0D6XcmAWmYCRgvqOUTnzCxPc9uF35u5ZEpirk1uhlPVA19tflhvnW1g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.13/plugin/relativeTime.min.js" integrity="sha512-MVzDPmm7QZ8PhEiqJXKz/zw2HJuv61waxb8XXuZMMs9b+an3LoqOqhOEt5Nq3LY1e4Ipbbd/e+AWgERdHlVgaA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="/b4c04dd7/jinjafx_m.js"></script>
<script src="/1e6090c7/jinjafx_m.js"></script>
</head>
<body>
<div id="overlay"></div>
Expand Down
14 changes: 14 additions & 0 deletions www/jinjafx_m.css
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,20 @@ textarea {
border-top-left-radius: 0.3rem !important;
border-bottom-left-radius: 0.3rem !important;
}
.dropdown-item-nofocus {
display: block;
width: 100%;
padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
clear: both;
font-weight: 400;
color: var(--bs-dropdown-link-color);
text-align: inherit;
text-decoration: none;
white-space: nowrap;
background-color: transparent;
border: 0;
border-radius: var(--bs-dropdown-item-border-radius, 0);
}
.code-block {
border: 1px dashed gray;
background-color: lightgray;
Expand Down
128 changes: 100 additions & 28 deletions www/jinjafx_m.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ function getStatusText(code) {
var csv_on = false;
var cDataPos = null;
var xsplit = null;
var global_visible = true;

var jsyaml_schema = {
schema: jsyaml.DEFAULT_SCHEMA.extend(['scalar', 'sequence', 'mapping'].map(function(kind) {
Expand Down Expand Up @@ -193,9 +194,84 @@ function getStatusText(code) {
fe.focus();
}

function toggle_global() {
if (document.getElementById('toggle_global').checked) {
global_visible = true;
split_vars();
}
else {
global_visible = false;
unsplit_vars(false);
}
window.addEventListener('beforeunload', onBeforeUnload);
if (document.getElementById('get_link').value != 'false') {
document.title = 'JinjaFx [unsaved]';
}
dirty = true;
}

function split_vars() {
document.getElementById('xgvars').classList.remove('d-none');
document.getElementById('xlvars').classList.remove('h-100');

xsplit = Split(["#xgvars", "#xlvars"], {
direction: "vertical",
cursor: "row-resize",
sizes: [50, 50],
snapOffset: 0,
minSize: 30,
onDragStart: remove_info
});
window.cmgVars.refresh();
}

function unsplit_vars(copy) {
document.getElementById('xgvars').classList.add('d-none');
document.getElementById('xlvars').classList.add('h-100');

if (xsplit != null) {
xsplit.destroy();
xsplit = null;

if (copy) {
if (window.cmgVars.getValue().match(/\S/)) {
var ds = Object.keys(datasets).sort(default_on_top)[0];
datasets[ds][1].setValue(window.cmgVars.getValue().trimEnd() + "\n\n" + datasets[ds][1].getValue());
}

window.cmgVars.setValue("");
window.cmgVars.getDoc().clearHistory();
}
}
}

function rebuild_datasets() {
document.getElementById('datasets').innerHTML = '';

var cbl = document.createElement('label');
cbl.for = 'toggle_global';
cbl.classList.add('form-check-label');
cbl.innerHTML = 'Global.yml';

var cb = document.createElement('input');
cb.classList.add('form-check-input', 'float-end');
cb.type = 'checkbox';
cb.checked = global_visible ? 'checked' : '';
cb.addEventListener('change', toggle_global, false);
cb.id = 'toggle_global';

var e = document.createElement('div');
e.classList.add('dropdown-item-nofocus', 'form-check', 'form-switch');
e.style.minWidth = '200px';
e.appendChild(cbl);
e.appendChild(cb);

document.getElementById('datasets').appendChild(e);

e = document.createElement('div');
e.classList.add('dropdown-divider');
document.getElementById('datasets').appendChild(e);

Object.keys(datasets).sort(default_on_top).forEach(function(ds) {
var e = document.createElement('button');
e.classList.add('dropdown-item', 'text-decoration-none');
Expand All @@ -206,41 +282,23 @@ function getStatusText(code) {
});

if (Object.keys(datasets).length > 1) {
if (document.getElementById('select_ds').disabled == true) {
document.getElementById('xgvars').classList.remove('d-none');
document.getElementById('xlvars').classList.remove('h-100');

xsplit = Split(["#xgvars", "#xlvars"], {
direction: "vertical",
cursor: "row-resize",
sizes: [50, 50],
snapOffset: 0,
minSize: 30,
onDragStart: remove_info
});
window.cmgVars.refresh();
if (global_visible && (xsplit == null)) {
split_vars();
}
else if (!global_visible) {
if (xsplit != null) {
unsplit_vars(true);
}
}
document.getElementById('select_ds').disabled = false;
document.getElementById('delete_ds').disabled = false;
}
else {
document.getElementById('select_ds').disabled = true;
document.getElementById('delete_ds').disabled = true;
document.getElementById('xgvars').classList.add('d-none');
document.getElementById('xlvars').classList.add('h-100');

if (xsplit != null) {
xsplit.destroy();
xsplit = null;

if (window.cmgVars.getValue().match(/\S/)) {
var ds = Object.keys(datasets).sort(default_on_top)[0];
datasets[ds][1].setValue(window.cmgVars.getValue().trimEnd() + "\n\n" + datasets[ds][1].getValue());
}

window.cmgVars.setValue("");
window.cmgVars.getDoc().clearHistory();
unsplit_vars(true);
}
document.getElementById('select_ds').disabled = true;
document.getElementById('delete_ds').disabled = true;
}
document.getElementById('selected_ds').innerHTML = current_ds;
}
Expand Down Expand Up @@ -360,6 +418,7 @@ function getStatusText(code) {
fe.focus();

if (method == "delete_dataset") {
document.getElementById('datasets').classList.remove('show');
if ((window.cmData.getValue().match(/\S/) || window.cmVars.getValue().match(/\S/)) || ((Object.keys(datasets).length == 2) && window.cmgVars.getValue().match(/\S/))) {
if (confirm("Are You Sure?") === true) {
delete_dataset(current_ds);
Expand All @@ -371,13 +430,15 @@ function getStatusText(code) {
return false;
}
else if (method == "add_dataset") {
document.getElementById('datasets').classList.remove('show');
document.getElementById("ds_name").value = '';
new bootstrap.Modal(document.getElementById('dataset_input'), {
keyboard: true
}).show();
return false;
}
else if (method == "delete_template") {
document.getElementById('templates').classList.remove('show');
if (window.cmTemplate.getValue().match(/\S/)) {
if (confirm("Are You Sure?") === true) {
delete_template(current_t);
Expand All @@ -389,6 +450,7 @@ function getStatusText(code) {
return false;
}
else if (method == "add_template") {
document.getElementById('templates').classList.remove('show');
document.getElementById("t_name").value = '';
new bootstrap.Modal(document.getElementById('template_input'), {
keyboard: true
Expand Down Expand Up @@ -661,6 +723,10 @@ function getStatusText(code) {

dt.dataset = current_ds;

if (Object.keys(datasets).length > 1) {
dt.show_global = global_visible ? '1' : '0';
}

if (Object.keys(templates).length === 1) {
dt.template = e(window.cmTemplate.getValue().replace(/\t/g, " "));
}
Expand Down Expand Up @@ -892,6 +958,8 @@ function getStatusText(code) {
dt_encrypted = false;
}

global_visible = (!dt.hasOwnProperty('show_global') || dt['show_global']) ? true : false;

if (qs.hasOwnProperty('ds')) {
load_datatemplate(dt['dt'], qs, qs['ds']);
}
Expand Down Expand Up @@ -1024,6 +1092,7 @@ function getStatusText(code) {
var obj = jsyaml.load(contents, jsyaml_schema);
if (obj != null) {
pending_dt = obj['dt'];
global_visible = true;
apply_dt(false);
return true;
}
Expand All @@ -1049,6 +1118,7 @@ function getStatusText(code) {
var obj = jsyaml.load(e2.target.result, jsyaml_schema);
if (obj != null) {
pending_dt = obj['dt'];
global_visible = true;
apply_dt(false);
return true;
}
Expand Down Expand Up @@ -1984,10 +2054,12 @@ function getStatusText(code) {

if (dirty) {
if (confirm("Are You Sure?") === true) {
global_visible = true;
apply_dt(false);
}
}
else {
global_visible = true;
apply_dt(false);
}
}
Expand Down

0 comments on commit 4c6000b

Please sign in to comment.