diff options
| author | 2025-08-08 17:39:38 +0200 | |
|---|---|---|
| committer | 2025-08-08 17:39:38 +0200 | |
| commit | d9197d7e32a97f29829ffd4cf4371b1853e51fa2 (patch) | |
| tree | 83549245e159f9cbdad05868a359afcf278bec79 /app/views/helpers | |
| parent | a3854c2f5978ab40c023c8bdf9b4be96eca3ef22 (diff) | |
New JS attribute: `data-auto-leave-validation` (#7785)
Instead of a repeating pattern like: `<input type="text" value="something" data-leave-validation="something">`, you can now put a `data-auto-leave-validation="1"` attribute on a `<form>` for example, and it will automatically set the `data-leave-validation` attributes inside the form elements.
`data_auto_leave_validation(parent)` from `extra.js` is called on slider open and page load.
---------
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
Diffstat (limited to 'app/views/helpers')
| -rw-r--r-- | app/views/helpers/category/update.phtml | 36 | ||||
| -rw-r--r-- | app/views/helpers/configure/query.phtml | 2 | ||||
| -rw-r--r-- | app/views/helpers/feed/update.phtml | 90 | ||||
| -rw-r--r-- | app/views/helpers/javascript_vars.phtml | 1 |
4 files changed, 49 insertions, 80 deletions
diff --git a/app/views/helpers/category/update.phtml b/app/views/helpers/category/update.phtml index 5b81b6737..3776ffd79 100644 --- a/app/views/helpers/category/update.phtml +++ b/app/views/helpers/category/update.phtml @@ -15,7 +15,7 @@ <a href="<?= _url('index', 'index', 'get', 'c_' . $this->category->id()) ?>"><?= _i('link') ?> <?= _t('gen.action.filter') ?></a> </div> - <form method="post" action="<?= _url('category', 'update', 'id', $this->category->id(), '#', 'slider') ?>" autocomplete="off"> + <form method="post" action="<?= _url('category', 'update', 'id', $this->category->id(), '#', 'slider') ?>" autocomplete="off" data-auto-leave-validation="1"> <input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" /> <fieldset> <legend><?= _t('sub.category.information') ?></legend> @@ -82,12 +82,11 @@ <div class="group-controls"> <label class="checkbox" for="enable_read_when_same_title_in_category"> <input type="checkbox" name="enable_read_when_same_title_in_category" id="enable_read_when_same_title_in_category" value="1"<?= - $this->category->hasAttribute('read_when_same_title_in_category') ? ' checked="checked"' : '' ?> - data-leave-validation="<?= $this->category->hasAttribute('read_when_same_title_in_category') ? 1 : 0 ?>"/> + $this->category->hasAttribute('read_when_same_title_in_category') ? ' checked="checked"' : '' ?> /> <?= _t('conf.reading.read.when_same_title_in_category') ?> <?php $read_when_same_title_in_category = $this->category->hasAttribute('read_when_same_title_in_category') ? $this->category->attributeInt('read_when_same_title_in_category') : 25; ?> <input type="number" id="read_when_same_title_in_category" name="read_when_same_title_in_category" min="0" - value="<?= $read_when_same_title_in_category ?>" data-leave-validation="<?= $read_when_same_title_in_category ?>" /> + value="<?= $read_when_same_title_in_category ?>" /> </label> </div> </div> @@ -161,8 +160,7 @@ <label class="group-name" for="use_default_purge_options"><?= _t('conf.archiving.policy') ?></label> <div class="group-controls"> <label class="checkbox"> - <input type="checkbox" name="use_default_purge_options" id="use_default_purge_options" value="1"<?= $archiving['default'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= $archiving['default'] ? 1 : 0 ?>" /> + <input type="checkbox" name="use_default_purge_options" id="use_default_purge_options" value="1"<?= $archiving['default'] ? ' checked="checked"' : '' ?> /> <?= _t('gen.short.by_default') ?> </label> </div> @@ -170,23 +168,19 @@ <div class="form-group archiving"<?= $archiving['default'] ? ' hidden="hidden"' : '' ?>> <div class="group-controls"> <label class="checkbox" for="enable_keep_max"> - <input type="checkbox" name="enable_keep_max" id="enable_keep_max" value="1"<?= empty($archiving['keep_max']) ? '' : ' checked="checked"' ?> - data-leave-validation="<?= empty($archiving['keep_max']) ? 0 : 1 ?>"/> + <input type="checkbox" name="enable_keep_max" id="enable_keep_max" value="1"<?= empty($archiving['keep_max']) ? '' : ' checked="checked"' ?> /> <?= _t('conf.archiving.keep_max') ?> - <input type="number" id="keep_max" name="keep_max" min="0" value="<?= empty($archiving['keep_max']) ? 200 : $archiving['keep_max'] ?>" - data-leave-validation="<?= empty($archiving['keep_max']) ? 200 : $archiving['keep_max'] ?>"/> + <input type="number" id="keep_max" name="keep_max" min="0" value="<?= empty($archiving['keep_max']) ? 200 : $archiving['keep_max'] ?>" /> </label> </div> </div> <div class="form-group archiving"<?= $archiving['default'] ? ' hidden="hidden"' : '' ?>> <div class="group-controls"> <label class="checkbox" for="enable_keep_period"> - <input type="checkbox" name="enable_keep_period" id="enable_keep_period" value="1"<?= $volatile['enable_keep_period'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= $volatile['enable_keep_period'] ? 1 : 0 ?>"/> + <input type="checkbox" name="enable_keep_period" id="enable_keep_period" value="1"<?= $volatile['enable_keep_period'] ? ' checked="checked"' : '' ?> /> <?= _t('conf.archiving.keep_period') ?> - <input type="number" id="keep_period_count" name="keep_period_count" min="0" value="<?= $volatile['keep_period_count'] ?>" - data-leave-validation="<?= $volatile['keep_period_count'] ?>"/> - <select class="number" name="keep_period_unit" id="keep_period_unit" data-leave-validation="<?= $volatile['keep_period_unit'] ?>"> + <input type="number" id="keep_period_count" name="keep_period_count" min="0" value="<?= $volatile['keep_period_count'] ?>" /> + <select class="number" name="keep_period_unit" id="keep_period_unit"> <option></option> <option value="P1Y" <?= 'P1Y' === $volatile['keep_period_unit'] ? 'selected="selected"' : '' ?>><?= _t('gen.period.years') ?></option> <option value="P1M" <?= 'P1M' === $volatile['keep_period_unit'] ? 'selected="selected"' : '' ?>><?= _t('gen.period.months') ?></option> @@ -201,8 +195,7 @@ <div class="group-name"><?= _t('conf.archiving.exception') ?></div> <div class="group-controls"> <label class="checkbox" for="keep_favourites"> - <input type="checkbox" name="keep_favourites" id="keep_favourites" value="1"<?= $archiving['keep_favourites'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= $archiving['keep_favourites'] ? 1 : 0 ?>"/> + <input type="checkbox" name="keep_favourites" id="keep_favourites" value="1"<?= $archiving['keep_favourites'] ? ' checked="checked"' : '' ?> /> <?= _t('conf.archiving.keep_favourites') ?> </label> </div> @@ -210,8 +203,7 @@ <div class="form-group archiving"<?= $archiving['default'] ? ' hidden="hidden"' : '' ?>> <div class="group-controls"> <label class="checkbox" for="keep_labels"> - <input type="checkbox" name="keep_labels" id="keep_labels" value="1"<?= $archiving['keep_labels'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= $archiving['keep_labels'] ? 1 : 0 ?>"/> + <input type="checkbox" name="keep_labels" id="keep_labels" value="1"<?= $archiving['keep_labels'] ? ' checked="checked"' : '' ?> /> <?= _t('conf.archiving.keep_labels') ?> </label> </div> @@ -219,8 +211,7 @@ <div class="form-group archiving"<?= $archiving['default'] ? ' hidden="hidden"' : '' ?>> <div class="group-controls"> <label class="checkbox" for="keep_unreads"> - <input type="checkbox" name="keep_unreads" id="keep_unreads" value="1"<?= $archiving['keep_unreads'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= $archiving['keep_unreads'] ? 1 : 0 ?>"/> + <input type="checkbox" name="keep_unreads" id="keep_unreads" value="1"<?= $archiving['keep_unreads'] ? ' checked="checked"' : '' ?> /> <?= _t('conf.archiving.keep_unreads') ?> </label> </div> @@ -228,8 +219,7 @@ <div class="form-group archiving"<?= $archiving['default'] ? ' hidden="hidden"' : '' ?>> <div class="group-controls"> <label for="keep_min"><?= _t('sub.feed.keep_min') ?> - <input type="number" id="keep_min" name="keep_min" min="0" value="<?= $archiving['keep_min'] ?>" - data-leave-validation="<?= $archiving['keep_min'] ?>"> + <input type="number" id="keep_min" name="keep_min" min="0" value="<?= $archiving['keep_min'] ?>" /> </label> </div> </div> diff --git a/app/views/helpers/configure/query.phtml b/app/views/helpers/configure/query.phtml index b078e1ed1..9336772bb 100644 --- a/app/views/helpers/configure/query.phtml +++ b/app/views/helpers/configure/query.phtml @@ -11,7 +11,7 @@ <a href="<?= $this->query->getUrl() ?>"><?= _i('link') ?> <?= _t('gen.action.filter') ?></a> </div> - <form method="post" action="<?= _url('configure', 'query', 'id', $this->queryId, '#', 'slider') ?>" autocomplete="off"> + <form method="post" action="<?= _url('configure', 'query', 'id', $this->queryId, '#', 'slider') ?>" autocomplete="off" data-auto-leave-validation="1"> <input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" /> <div class="form-group"> diff --git a/app/views/helpers/feed/update.phtml b/app/views/helpers/feed/update.phtml index 430f8608b..dee1de67e 100644 --- a/app/views/helpers/feed/update.phtml +++ b/app/views/helpers/feed/update.phtml @@ -35,7 +35,7 @@ } } ?> - <form method="post" action="<?= $url ?>" autocomplete="off" enctype="multipart/form-data"> + <form method="post" action="<?= $url ?>" autocomplete="off" enctype="multipart/form-data" data-auto-leave-validation="1"> <input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" /> <fieldset> <legend><?= _t('sub.feed.information') ?></legend> @@ -313,7 +313,6 @@ <label class="group-name" for="keep_max_n_unread"><?= _t('conf.reading.read.keep_max_n_unread') ?></label> <div class="group-controls"> <input type="number" name="keep_max_n_unread" id="keep_max_n_unread" class="w50" min="1" max="10000000" - data-leave-validation="<?= $this->feed->attributeInt('keep_max_n_unread') ?>" value="<?= $this->feed->attributeInt('keep_max_n_unread') ?>" placeholder="<?= _t('gen.short.by_default') ?>" /> </div> @@ -383,8 +382,7 @@ <div class="group-name"><?= _t('conf.archiving.policy') ?></div> <div class="group-controls"> <label class="checkbox"> - <input type="checkbox" name="use_default_purge_options" id="use_default_purge_options" value="1"<?= $archiving['default'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= $archiving['default'] ? 1 : 0 ?>" /> + <input type="checkbox" name="use_default_purge_options" id="use_default_purge_options" value="1"<?= $archiving['default'] ? ' checked="checked"' : '' ?> /> <?= _t('gen.short.by_default') ?> </label> </div> @@ -392,23 +390,19 @@ <div class="form-group archiving"<?= $archiving['default'] ? ' hidden="hidden"' : '' ?>> <div class="group-controls"> <label class="checkbox" for="enable_keep_max"> - <input type="checkbox" name="enable_keep_max" id="enable_keep_max" value="1"<?= empty($archiving['keep_max']) ? '' : ' checked="checked"' ?> - data-leave-validation="<?= empty($archiving['keep_max']) ? 0 : 1 ?>"/> + <input type="checkbox" name="enable_keep_max" id="enable_keep_max" value="1"<?= empty($archiving['keep_max']) ? '' : ' checked="checked"' ?> /> <?= _t('conf.archiving.keep_max') ?> - <input type="number" id="keep_max" name="keep_max" min="0" value="<?= empty($archiving['keep_max']) ? 200 : $archiving['keep_max'] ?>" - data-leave-validation="<?= empty($archiving['keep_max']) ? 200 : $archiving['keep_max'] ?>"/> + <input type="number" id="keep_max" name="keep_max" min="0" value="<?= empty($archiving['keep_max']) ? 200 : $archiving['keep_max'] ?>" /> </label> </div> </div> <div class="form-group archiving"<?= $archiving['default'] ? ' hidden="hidden"' : '' ?>> <div class="group-controls"> <label class="checkbox" for="enable_keep_period"> - <input type="checkbox" name="enable_keep_period" id="enable_keep_period" value="1"<?= $volatile['enable_keep_period'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= $volatile['enable_keep_period'] ? 1 : 0 ?>"/> + <input type="checkbox" name="enable_keep_period" id="enable_keep_period" value="1"<?= $volatile['enable_keep_period'] ? ' checked="checked"' : '' ?> /> <?= _t('conf.archiving.keep_period') ?> - <input type="number" id="keep_period_count" name="keep_period_count" min="0" value="<?= $volatile['keep_period_count'] ?>" - data-leave-validation="<?= $volatile['keep_period_count'] ?>"/> - <select class="number" name="keep_period_unit" id="keep_period_unit" data-leave-validation="<?= $volatile['keep_period_unit'] ?>"> + <input type="number" id="keep_period_count" name="keep_period_count" min="0" value="<?= $volatile['keep_period_count'] ?>" /> + <select class="number" name="keep_period_unit" id="keep_period_unit"> <option></option> <option value="P1Y" <?= 'P1Y' === $volatile['keep_period_unit'] ? 'selected="selected"' : '' ?>><?= _t('gen.period.years') ?></option> <option value="P1M" <?= 'P1M' === $volatile['keep_period_unit'] ? 'selected="selected"' : '' ?>><?= _t('gen.period.months') ?></option> @@ -423,8 +417,7 @@ <div class="group-name"><?= _t('conf.archiving.exception') ?></div> <div class="group-controls"> <label class="checkbox" for="keep_favourites"> - <input type="checkbox" name="keep_favourites" id="keep_favourites" value="1"<?= $archiving['keep_favourites'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= $archiving['keep_favourites'] ? 1 : 0 ?>"/> + <input type="checkbox" name="keep_favourites" id="keep_favourites" value="1"<?= $archiving['keep_favourites'] ? ' checked="checked"' : '' ?> /> <?= _t('conf.archiving.keep_favourites') ?> </label> </div> @@ -432,8 +425,7 @@ <div class="form-group archiving"<?= $archiving['default'] ? ' hidden="hidden"' : '' ?>> <div class="group-controls"> <label class="checkbox" for="keep_labels"> - <input type="checkbox" name="keep_labels" id="keep_labels" value="1"<?= $archiving['keep_labels'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= $archiving['keep_labels'] ? 1 : 0 ?>"/> + <input type="checkbox" name="keep_labels" id="keep_labels" value="1"<?= $archiving['keep_labels'] ? ' checked="checked"' : '' ?> /> <?= _t('conf.archiving.keep_labels') ?> </label> </div> @@ -441,8 +433,7 @@ <div class="form-group archiving"<?= $archiving['default'] ? ' hidden="hidden"' : '' ?>> <div class="group-controls"> <label class="checkbox" for="keep_unreads"> - <input type="checkbox" name="keep_unreads" id="keep_unreads" value="1"<?= $archiving['keep_unreads'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= $archiving['keep_unreads'] ?>"/> + <input type="checkbox" name="keep_unreads" id="keep_unreads" value="1"<?= $archiving['keep_unreads'] ? ' checked="checked"' : '' ?> /> <?= _t('conf.archiving.keep_unreads') ?> </label> </div> @@ -450,8 +441,7 @@ <div class="form-group archiving"<?= $archiving['default'] ? ' hidden="hidden"' : '' ?>> <div class="group-controls"> <label for="keep_min"><?= _t('sub.feed.keep_min') ?> - <input type="number" id="keep_min" name="keep_min" min="0" value="<?= $archiving['keep_min'] ?>" - data-leave-validation="<?= $archiving['keep_min'] ?>"> + <input type="number" id="keep_min" name="keep_min" min="0" value="<?= $archiving['keep_min'] ?>" /> </label> </div> </div> @@ -494,8 +484,7 @@ <label class="group-name" for="xPathItem"><small><?= _t('sub.feed.kind.html_xpath.xpath') ?></small><br /> <?= _t('sub.feed.kind.html_xpath.item') ?></label> <div class="group-controls"> - <textarea class="valid-xpath w100" name="xPathItem" id="xPathItem" rows="2" cols="64" spellcheck="false" - data-leave-validation="<?= $xpath['item'] ?? '' ?>"><?= $xpath['item'] ?? '' ?></textarea> + <textarea class="valid-xpath w100" name="xPathItem" id="xPathItem" rows="2" cols="64" spellcheck="false"><?= $xpath['item'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.html_xpath.item.help') ?></p> </div> </div> @@ -503,8 +492,7 @@ <label class="group-name" for="xPathItemTitle"><small><?= _t('sub.feed.kind.html_xpath.relative') ?></small><br /> <?= _t('sub.feed.kind.html_xpath.item_title') ?></label> <div class="group-controls"> - <textarea class="valid-xpath w100" name="xPathItemTitle" id="xPathItemTitle" rows="2" cols="64" spellcheck="false" - data-leave-validation="<?= $xpath['itemTitle'] ?? '' ?>"><?= $xpath['itemTitle'] ?? '' ?></textarea> + <textarea class="valid-xpath w100" name="xPathItemTitle" id="xPathItemTitle" rows="2" cols="64" spellcheck="false"><?= $xpath['itemTitle'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.html_xpath.item_title.help') ?></p> </div> </div> @@ -512,8 +500,7 @@ <label class="group-name" for="xPathItemContent"><small><?= _t('sub.feed.kind.html_xpath.relative') ?></small><br /> <?= _t('sub.feed.kind.html_xpath.item_content') ?></label> <div class="group-controls"> - <textarea class="valid-xpath w100" name="xPathItemContent" id="xPathItemContent" rows="2" cols="64" spellcheck="false" - data-leave-validation="<?= $xpath['itemContent'] ?? '' ?>"><?= $xpath['itemContent'] ?? '' ?></textarea> + <textarea class="valid-xpath w100" name="xPathItemContent" id="xPathItemContent" rows="2" cols="64" spellcheck="false"><?= $xpath['itemContent'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.html_xpath.item_content.help') ?></p> </div> </div> @@ -521,8 +508,7 @@ <label class="group-name" for="xPathItemUri"><small><?= _t('sub.feed.kind.html_xpath.relative') ?></small><br /> <?= _t('sub.feed.kind.html_xpath.item_uri') ?></label> <div class="group-controls"> - <textarea class="valid-xpath w100" name="xPathItemUri" id="xPathItemUri" rows="2" cols="64" spellcheck="false" - data-leave-validation="<?= $xpath['itemUri'] ?? '' ?>"><?= $xpath['itemUri'] ?? '' ?></textarea> + <textarea class="valid-xpath w100" name="xPathItemUri" id="xPathItemUri" rows="2" cols="64" spellcheck="false"><?= $xpath['itemUri'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.html_xpath.item_uri.help') ?></p> </div> </div> @@ -530,8 +516,7 @@ <label class="group-name" for="xPathItemThumbnail"><small><?= _t('sub.feed.kind.html_xpath.relative') ?></small><br /> <?= _t('sub.feed.kind.html_xpath.item_thumbnail') ?></label> <div class="group-controls"> - <textarea class="valid-xpath w100" name="xPathItemThumbnail" id="xPathItemThumbnail" rows="2" cols="64" spellcheck="false" - data-leave-validation="<?= $xpath['itemThumbnail'] ?? '' ?>"><?= $xpath['itemThumbnail'] ?? '' ?></textarea> + <textarea class="valid-xpath w100" name="xPathItemThumbnail" id="xPathItemThumbnail" rows="2" cols="64" spellcheck="false"><?= $xpath['itemThumbnail'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.html_xpath.item_thumbnail.help') ?></p> </div> </div> @@ -539,8 +524,7 @@ <label class="group-name" for="xPathItemAuthor"><small><?= _t('sub.feed.kind.html_xpath.relative') ?></small><br /> <?= _t('sub.feed.kind.html_xpath.item_author') ?></label> <div class="group-controls"> - <textarea class="valid-xpath w100" name="xPathItemAuthor" id="xPathItemAuthor" rows="2" cols="64" spellcheck="false" - data-leave-validation="<?= $xpath['itemAuthor'] ?? '' ?>"><?= $xpath['itemAuthor'] ?? '' ?></textarea> + <textarea class="valid-xpath w100" name="xPathItemAuthor" id="xPathItemAuthor" rows="2" cols="64" spellcheck="false"><?= $xpath['itemAuthor'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.html_xpath.item_author.help') ?></p> </div> </div> @@ -548,8 +532,7 @@ <label class="group-name" for="xPathItemTimestamp"><small><?= _t('sub.feed.kind.html_xpath.relative') ?></small><br /> <?= _t('sub.feed.kind.html_xpath.item_timestamp') ?></label> <div class="group-controls"> - <textarea class="valid-xpath w100" name="xPathItemTimestamp" id="xPathItemTimestamp" rows="2" cols="64" spellcheck="false" - data-leave-validation="<?= $xpath['itemTimestamp'] ?? '' ?>"><?= $xpath['itemTimestamp'] ?? '' ?></textarea> + <textarea class="valid-xpath w100" name="xPathItemTimestamp" id="xPathItemTimestamp" rows="2" cols="64" spellcheck="false"><?= $xpath['itemTimestamp'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.html_xpath.item_timestamp.help') ?></p> </div> </div> @@ -557,8 +540,7 @@ <label class="group-name" for="xPathItemTimeFormat"> <?= _t('sub.feed.kind.html_xpath.item_timeFormat') ?></label> <div class="group-controls"> - <textarea class="w100" name="xPathItemTimeFormat" id="xPathItemTimeFormat" rows="2" cols="64" spellcheck="false" - data-leave-validation="<?= $xpath['itemTimeFormat'] ?? '' ?>"><?= $xpath['itemTimeFormat'] ?? '' ?></textarea> + <textarea class="w100" name="xPathItemTimeFormat" id="xPathItemTimeFormat" rows="2" cols="64" spellcheck="false"><?= $xpath['itemTimeFormat'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.html_xpath.item_timeFormat.help') ?></p> </div> </div> @@ -566,16 +548,14 @@ <label class="group-name" for="xPathItemCategories"><small><?= _t('sub.feed.kind.html_xpath.relative') ?></small><br /> <?= _t('sub.feed.kind.html_xpath.item_categories') ?></label> <div class="group-controls"> - <textarea class="valid-xpath w100" name="xPathItemCategories" id="xPathItemCategories" rows="2" cols="64" spellcheck="false" - data-leave-validation="<?= $xpath['itemCategories'] ?? '' ?>"><?= $xpath['itemCategories'] ?? '' ?></textarea> + <textarea class="valid-xpath w100" name="xPathItemCategories" id="xPathItemCategories" rows="2" cols="64" spellcheck="false"><?= $xpath['itemCategories'] ?? '' ?></textarea> </div> </div> <div class="form-group"> <label class="group-name" for="xPathItemUid"><small><?= _t('sub.feed.kind.html_xpath.relative') ?></small><br /> <?= _t('sub.feed.kind.html_xpath.item_uid') ?></label> <div class="group-controls"> - <textarea class="valid-xpath w100" name="xPathItemUid" id="xPathItemUid" rows="2" cols="64" spellcheck="false" - data-leave-validation="<?= $xpath['itemUid'] ?? '' ?>"><?= $xpath['itemUid'] ?? '' ?></textarea> + <textarea class="valid-xpath w100" name="xPathItemUid" id="xPathItemUid" rows="2" cols="64" spellcheck="false"><?= $xpath['itemUid'] ?? '' ?></textarea> </div> </div> </fieldset> @@ -589,7 +569,7 @@ <div class="form-group" id="xPathToJsonGroup"> <label class="group-name" for="xPathToJson"><?= _t('sub.feed.kind.html_json.xpath') ?></label> <div class="group-controls"> - <textarea class="valid-xpath w100" name="xPathToJson" id="xPathToJson" rows="2" cols="64" spellcheck="false" data-leave-validation="<?= $xPathToJson ?>"><?= $xPathToJson ?? '' ?></textarea> + <textarea class="valid-xpath w100" name="xPathToJson" id="xPathToJson" rows="2" cols="64" spellcheck="false"><?= $xPathToJson ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.html_json.xpath.help') ?></p> </div> </div> @@ -599,7 +579,7 @@ <label class="group-name" for="jsonItem"><small><?= _t('sub.feed.kind.json_dotnotation.json') ?></small><br /> <?= _t('sub.feed.kind.json_dotnotation.item') ?></label> <div class="group-controls"> - <textarea class="valid-json w100" name="jsonItem" id="jsonItem" rows="2" cols="64" spellcheck="false" data-leave-validation="<?= $jsonSettings['item'] ?? '' ?>"><?= $jsonSettings['item'] ?? '' ?></textarea> + <textarea class="valid-json w100" name="jsonItem" id="jsonItem" rows="2" cols="64" spellcheck="false"><?= $jsonSettings['item'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotnotation.item.help') ?></p> </div> </div> @@ -607,14 +587,14 @@ <label class="group-name" for="jsonItemTitle"><small><?= _t('sub.feed.kind.json_dotnotation.relative') ?></small><br /> <?= _t('sub.feed.kind.json_dotnotation.item_title') ?></label> <div class="group-controls"> - <textarea class="valid-json w100" name="jsonItemTitle" id="jsonItemTitle" rows="2" cols="64" spellcheck="false" data-leave-validation="<?= $jsonSettings['itemTitle'] ?? '' ?>"><?= $jsonSettings['itemTitle'] ?? '' ?></textarea> + <textarea class="valid-json w100" name="jsonItemTitle" id="jsonItemTitle" rows="2" cols="64" spellcheck="false"><?= $jsonSettings['itemTitle'] ?? '' ?></textarea> </div> </div> <div class="form-group"> <label class="group-name" for="jsonItemContent"><small><?= _t('sub.feed.kind.json_dotnotation.relative') ?></small><br /> <?= _t('sub.feed.kind.json_dotnotation.item_content') ?></label> <div class="group-controls"> - <textarea class="valid-json w100" name="jsonItemContent" id="jsonItemContent" rows="2" cols="64" spellcheck="false" data-leave-validation="<?= $jsonSettings['itemContent'] ?? '' ?>"><?= $jsonSettings['itemContent'] ?? '' ?></textarea> + <textarea class="valid-json w100" name="jsonItemContent" id="jsonItemContent" rows="2" cols="64" spellcheck="false"><?= $jsonSettings['itemContent'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotnotation.item_content.help') ?></p> </div> </div> @@ -622,7 +602,7 @@ <label class="group-name" for="jsonItemUri"><small><?= _t('sub.feed.kind.json_dotnotation.relative') ?></small><br /> <?= _t('sub.feed.kind.json_dotnotation.item_uri') ?></label> <div class="group-controls"> - <textarea class="valid-json w100" name="jsonItemUri" id="jsonItemUri" rows="2" cols="64" spellcheck="false" data-leave-validation="<?= $jsonSettings['itemUri'] ?? '' ?>"><?= $jsonSettings['itemUri'] ?? '' ?></textarea> + <textarea class="valid-json w100" name="jsonItemUri" id="jsonItemUri" rows="2" cols="64" spellcheck="false"><?= $jsonSettings['itemUri'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotnotation.item_uri.help') ?></p> </div> </div> @@ -630,7 +610,7 @@ <label class="group-name" for="jsonItemThumbnail"><small><?= _t('sub.feed.kind.json_dotnotation.relative') ?></small><br /> <?= _t('sub.feed.kind.json_dotnotation.item_thumbnail') ?></label> <div class="group-controls"> - <textarea class="valid-json w100" name="jsonItemThumbnail" id="jsonItemThumbnail" rows="2" cols="64" spellcheck="false" data-leave-validation="<?= $jsonSettings['itemThumbnail'] ?? '' ?>"><?= $jsonSettings['itemThumbnail'] ?? '' ?></textarea> + <textarea class="valid-json w100" name="jsonItemThumbnail" id="jsonItemThumbnail" rows="2" cols="64" spellcheck="false"><?= $jsonSettings['itemThumbnail'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotnotation.item_thumbnail.help') ?></p> </div> </div> @@ -638,14 +618,14 @@ <label class="group-name" for="jsonItemAuthor"><small><?= _t('sub.feed.kind.json_dotnotation.relative') ?></small><br /> <?= _t('sub.feed.kind.json_dotnotation.item_author') ?></label> <div class="group-controls"> - <textarea class="valid-json w100" name="jsonItemAuthor" id="jsonItemAuthor" rows="2" cols="64" spellcheck="false" data-leave-validation="<?= $jsonSettings['itemAuthor'] ?? '' ?>"><?= $jsonSettings['itemAuthor'] ?? '' ?></textarea> + <textarea class="valid-json w100" name="jsonItemAuthor" id="jsonItemAuthor" rows="2" cols="64" spellcheck="false"><?= $jsonSettings['itemAuthor'] ?? '' ?></textarea> </div> </div> <div class="form-group"> <label class="group-name" for="jsonItemTimestamp"><small><?= _t('sub.feed.kind.json_dotnotation.relative') ?></small><br /> <?= _t('sub.feed.kind.json_dotnotation.item_timestamp') ?></label> <div class="group-controls"> - <textarea class="valid-json w100" name="jsonItemTimestamp" id="jsonItemTimestamp" rows="2" cols="64" spellcheck="false" data-leave-validation="<?= $jsonSettings['itemTimestamp'] ?? '' ?>"><?= $jsonSettings['itemTimestamp'] ?? '' ?></textarea> + <textarea class="valid-json w100" name="jsonItemTimestamp" id="jsonItemTimestamp" rows="2" cols="64" spellcheck="false"><?= $jsonSettings['itemTimestamp'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotnotation.item_timestamp.help') ?></p> </div> </div> @@ -653,7 +633,7 @@ <label class="group-name" for="jsonItemTimeFormat"> <?= _t('sub.feed.kind.json_dotnotation.item_timeFormat') ?></label> <div class="group-controls"> - <textarea class="w100" name="jsonItemTimeFormat" id="jsonItemTimeFormat" rows="2" cols="64" spellcheck="false" data-leave-validation="<?= $jsonSettings['itemTimeFormat'] ?? '' ?>"><?= $jsonSettings['itemTimeFormat'] ?? '' ?></textarea> + <textarea class="w100" name="jsonItemTimeFormat" id="jsonItemTimeFormat" rows="2" cols="64" spellcheck="false"><?= $jsonSettings['itemTimeFormat'] ?? '' ?></textarea> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.kind.json_dotnotation.item_timeFormat.help') ?></p> </div> </div> @@ -661,14 +641,14 @@ <label class="group-name" for="jsonItemCategories"><small><?= _t('sub.feed.kind.json_dotnotation.relative') ?></small><br /> <?= _t('sub.feed.kind.json_dotnotation.item_categories') ?></label> <div class="group-controls"> - <textarea class="valid-json w100" name="jsonItemCategories" id="jsonItemCategories" rows="2" cols="64" spellcheck="false" data-leave-validation="<?= $jsonSettings['itemCategories'] ?? '' ?>"><?= $jsonSettings['itemCategories'] ?? '' ?></textarea> + <textarea class="valid-json w100" name="jsonItemCategories" id="jsonItemCategories" rows="2" cols="64" spellcheck="false"><?= $jsonSettings['itemCategories'] ?? '' ?></textarea> </div> </div> <div class="form-group"> <label class="group-name" for="jsonItemUid"><small><?= _t('sub.feed.kind.json_dotnotation.relative') ?></small><br /> <?= _t('sub.feed.kind.json_dotnotation.item_uid') ?></label> <div class="group-controls"> - <textarea class="valid-json w100" name="jsonItemUid" id="jsonItemUid" rows="2" cols="64" spellcheck="false" data-leave-validation="<?= $jsonSettings['itemUid'] ?? '' ?>"><?= $jsonSettings['itemUid'] ?? '' ?></textarea> + <textarea class="valid-json w100" name="jsonItemUid" id="jsonItemUid" rows="2" cols="64" spellcheck="false"><?= $jsonSettings['itemUid'] ?? '' ?></textarea> </div> </div> @@ -686,8 +666,7 @@ <label class="group-name" for="path_entries"><?= _t('sub.feed.css_path') ?></label> <div class="group-controls"> <div class="stick w100"> - <input type="text" name="path_entries" id="path_entries" class="w100" value="<?= $this->feed->pathEntries() ?>" - data-leave-validation="<?= $this->feed->pathEntries() ?>" placeholder="<?= _t('gen.short.blank_to_disable') ?>" /> + <input type="text" name="path_entries" id="path_entries" class="w100" value="<?= $this->feed->pathEntries() ?>" placeholder="<?= _t('gen.short.blank_to_disable') ?>" /> <a id="popup-preview-selector" class="btn" href="<?= _url('feed', 'contentSelectorPreview', 'id', $this->feed->id(), 'selector', 'selector-token', 'selector_filter', 'selector-filter-token', '#', 'slider') ?>"><?= _i('look') ?></a> </div> @@ -720,8 +699,7 @@ <label class="group-name" for="path_entries_filter"><?= _t('sub.feed.css_path_filter') ?></label> <div class="group-controls"> <div class="w100"> - <input type="text" name="path_entries_filter" id="path_entries_filter" class="w100" value="<?= $path_entries_filter ?>" - data-leave-validation="<?= $path_entries_filter ?>" placeholder="<?= _t('gen.short.blank_to_disable') ?>" /> + <input type="text" name="path_entries_filter" id="path_entries_filter" class="w100" value="<?= $path_entries_filter ?>" placeholder="<?= _t('gen.short.blank_to_disable') ?>" /> </div> <p class="help"><?= _i('help') ?> <?= _t('sub.feed.css_path_filter.help') ?></p> </div> diff --git a/app/views/helpers/javascript_vars.phtml b/app/views/helpers/javascript_vars.phtml index 65846b001..831c67f89 100644 --- a/app/views/helpers/javascript_vars.phtml +++ b/app/views/helpers/javascript_vars.phtml @@ -68,6 +68,7 @@ echo json_encode([ ], 'i18n' => [ 'confirmation_default' => _t('gen.js.confirm_action'), + 'confirm_exit_slider' => _t('gen.js.confirm_exit_slider'), 'notif_title_articles' => _t('gen.js.feedback.title_new_articles'), 'notif_body_new_articles' => _t('gen.js.feedback.body_new_articles'), 'notif_body_unread_articles' => _t('gen.js.feedback.body_unread_articles'), |
