Files
avives 1f72193a64
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
- Base: wintercms/winter branch 1.2 (full framework)
- Theme vivespos: Canvas 7 + Bootstrap 5 CDN, custom CSS
- Layout: deferred GTM/GA4 tracking, JSON-LD SoftwareApplication
- Partials: hero (offline-first), features, modes (offline/nube toggle),
  screenshots, pricing (3 planes), comparison, FAQ, CTA
- Plugin VivesPOS.Site with ContactForm
- Dockerfile: PHP 8.2 Apache, port 80, healthcheck
- Added winter/wn-pages, blog, sitemap, seo plugins
- Active theme set to vivespos
2026-08-21 19:29:00 -06:00

82 lines
3.6 KiB
PHP

<?php
$modelName = $formConfig->name ?? '';
?>
<?php if ($formContext === 'create'): ?>
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-request-data="new:1"
data-browser-validate
data-hotkey="ctrl+shift+s, cmd+shift+s"
data-load-indicator="<?= e(trans('backend::lang.form.creating_name', ['name' => trans($modelName)])); ?>"
data-request-before-update="$el.trigger('unchange.oc.changeMonitor')"
class="btn btn-primary wn-icon-plus">
<?= e(trans('backend::lang.form.create_and_new')); ?>
</button>
<button
type="button"
data-request="onSave"
data-browser-validate
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.creating_name', ['name' => trans($modelName)])); ?>"
data-request-before-update="$el.trigger('unchange.oc.changeMonitor')"
class="btn btn-primary wn-icon-save">
<?= e(trans('backend::lang.form.create')); ?>
</button>
<button
type="button"
data-request="onSave"
data-browser-validate
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.creating_name', ['name' => trans($modelName)])); ?>"
data-request-before-update="$el.trigger('unchange.oc.changeMonitor')"
class="btn btn-default wn-icon-check">
<?= e(trans('backend::lang.form.create_and_close')); ?>
</button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?> <a href="<?= Backend::url($formConfig->defaultRedirect) ?>"><?= e(trans('backend::lang.form.cancel')); ?></a>
</span>
</div>
<?php elseif ($formContext === 'update'): ?>
<div class="loading-indicator-container">
<button
type="button"
data-request="onSave"
data-browser-validate
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
data-request-before-update="$el.trigger('unchange.oc.changeMonitor')"
data-request-data="redirect:0"
data-hotkey="ctrl+s, cmd+s"
class="btn btn-primary wn-icon-save"
>
<?= e(trans('backend::lang.form.save')); ?>
</button>
<button
type="button"
data-request="onSave"
data-browser-validate
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')); ?>"
data-request-before-update="$el.trigger('unchange.oc.changeMonitor')"
class="btn btn-default wn-icon-check"
>
<?= e(trans('backend::lang.form.save_and_close')); ?>
</button>
<button
type="button"
data-request="onDelete"
data-load-indicator="<?= e(trans('backend::lang.form.deleting_name', ['name' => trans($modelName)])); ?>"
data-request-before-update="$el.trigger('unchange.oc.changeMonitor')"
data-request-confirm="<?= e(trans('backend::lang.form.confirm_delete')); ?>"
class="wn-icon-trash-o btn-icon danger pull-right"
>
</button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?> <a href="<?= Backend::url($formConfig->defaultRedirect) ?>"><?= e(trans('backend::lang.form.cancel')); ?></a>
</span>
</div>
<?php endif ?>