Skip to content

Commit

Permalink
notifica interazione su form. closes #275
Browse files Browse the repository at this point in the history
  • Loading branch information
madbob committed May 26, 2024
1 parent b3541b6 commit b252d0d
Show file tree
Hide file tree
Showing 10 changed files with 88 additions and 5 deletions.
13 changes: 13 additions & 0 deletions code/app/Helpers/Components.php
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,19 @@ function formatMainFormButtons($component, $params)
}

$params['buttons'] = $buttons;

if (isset($params['appendNodes']) == false) {
$params['appendNodes'] = [];
}

$params['appendNodes'][] = sprintf('<div class="fixed-bottom bg-danger p-2 bottom-helper" hidden>
<div class="row justify-content-end align-items-center">
<div class="col-auto text-white">%s</div>
<div class="col-auto">
<button class="btn btn-success" type="submit">%s</button>
</div>
</div>
</div>', _i('Ricorda di cliccare il tasto "Salva" quando hai finito!'), _i('Salva'));
}

unset($params['attributes']['other_buttons'], $params['attributes']['nodelete'], $params['attributes']['nosave']);
Expand Down
2 changes: 1 addition & 1 deletion code/public/js/gasdotto.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion code/public/js/gasdotto.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion code/public/mix-manifest.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"/js/gasdotto.js": "/js/gasdotto.js?id=984c70fc3722a1d3deb0b60b236b2662",
"/js/gasdotto.js": "/js/gasdotto.js?id=41cdd2ba6c344b1c60f8e34ed31144bf",
"/css/gasdotto.css": "/css/gasdotto.css?id=944fde138a68e0877df0d9da8e03d933"
}
1 change: 1 addition & 0 deletions code/resources/assets/js/bookings.js
Original file line number Diff line number Diff line change
Expand Up @@ -516,6 +516,7 @@ class Bookings
if (Object.entries(data.bookings).length == 0) {
$('.booking-product-price span', form).text(utils.priceRound(0));
$('.booking-modifier, .booking-total', container).textVal(utils.priceRound(0));
$('.all-bookings-total', form).text(utils.priceRound(0));
}
else {
var action = $('input:hidden[name=action]', form).val();
Expand Down
64 changes: 64 additions & 0 deletions code/resources/assets/js/forms.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
class Forms {
static init(container)
{
if (container.hasClass('main-form')) {
this.listenChanges(container);
}
else {
container.find('.main-form').each((index, form) => {
this.listenChanges($(form));
});
}
}

static getInputValue(item)
{
let value = item.val();

if (item.is(':checkbox') || item.is(':radio')) {
value = item.prop('checked') ? 'true' : 'false';
}

return value;
}

static listenChanges(form)
{
form.find('input, select').each((index, item) => {
let it = $(item);
let value = this.getInputValue(it);
it.attr('data-original-value', value);
});

form.on('change', 'input, select', (e) => {
let changed = false;

form.find('input, select').each((index, item) => {
let it = $(item);
let value = this.getInputValue(it);
let original = it.attr('data-original-value');

if (value != original) {
changed = true;
this.appendSaveAlert(form);
}
});

if (changed == false) {
this.removeSaveAlert(form);
}
});
}

static appendSaveAlert(form)
{
form.find('.bottom-helper').last().prop('hidden', false);
}

static removeSaveAlert(form)
{
form.find('.bottom-helper').last().prop('hidden', true);
}
}

export default Forms;
2 changes: 2 additions & 0 deletions code/resources/assets/js/gasdotto.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ require('./translate');
require('./password');
import utils from "./utils";
import Lists from "./lists";
import Forms from "./forms";
import Widgets from "./widgets";
import Triggers from "./triggers";
import Filters from "./filters";
Expand Down Expand Up @@ -141,6 +142,7 @@ function generalInit(container) {
utils.init(container);
Modifiers.init(container);
Products.init(container);
Forms.init(container);
Lists.init(container);
Widgets.init(container);
Bookings.init(container);
Expand Down
1 change: 1 addition & 0 deletions code/resources/assets/js/password.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ $(document).ready(function() {

input.val(password);
input.popover('dispose');
input.change();
}
else {
alert('Le password sono diverse!');
Expand Down
2 changes: 2 additions & 0 deletions code/resources/assets/js/popovers.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ $(document).ready(function() {
input.val(street + ', ' + city + ', ' + cap);
}

input.change();
input.popover('dispose');
});

Expand Down Expand Up @@ -165,6 +166,7 @@ $(document).ready(function() {
var from = ret.find('input[name=from]').val().trim().replace(',', '');
var to = ret.find('input[name=to]').val().trim().replace(',', '');
input.val(day + ' - ' + cycle + ' - ' + from + ' - ' + to).change();
input.change();
input.popover('dispose');
});

Expand Down
4 changes: 2 additions & 2 deletions code/resources/views/booking/edit.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -263,10 +263,10 @@
<div class="fixed-bottom bg-success p-2 booking-bottom-helper">
<div class="row justify-content-end align-items-center">
<div class="col-auto text-white">
Totale: <span class="all-bookings-total">{{ printablePrice($grand_total) }}</span> {{ $currency_symbol }}
{{ _i('Totale:') }} <span class="all-bookings-total">{{ printablePrice($grand_total) }}</span> {{ $currency_symbol }}
</div>
<div class="col-auto">
<button class="btn btn-success" type="submit">Salva</button>
<button class="btn btn-success" type="submit">{{ _i('Salva') }}</button>
</div>
</div>
</div>
Expand Down

0 comments on commit b252d0d

Please sign in to comment.