nodebb-plugin-onekite-calendar 2.0.50 → 2.0.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/public/client.js +13 -30
package/package.json
CHANGED
package/plugin.json
CHANGED
package/public/client.js
CHANGED
|
@@ -84,12 +84,12 @@ define('forum/calendar-onekite', ['alerts', 'bootbox', 'hooks'], function (alert
|
|
|
84
84
|
|
|
85
85
|
/* Mobile FAB date range picker (single calendar) */
|
|
86
86
|
.onekite-range-picker { user-select: none; }
|
|
87
|
-
.onekite-range-header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:
|
|
87
|
+
.onekite-range-header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:4px; }
|
|
88
88
|
.onekite-range-header .btn { padding:.25rem .5rem; }
|
|
89
89
|
.onekite-range-month { font-weight:600; }
|
|
90
90
|
.onekite-range-weekdays, .onekite-range-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
|
|
91
|
-
.onekite-range-weekdays div { text-align:center; font-size:.8rem; opacity:.7; padding:
|
|
92
|
-
.onekite-range-day { border:1px solid var(--bs-border-color, rgba(0,0,0,.18)); border-radius:10px; padding:
|
|
91
|
+
.onekite-range-weekdays div { text-align:center; font-size:.8rem; opacity:.7; padding:1px 0; }
|
|
92
|
+
.onekite-range-day { border:1px solid var(--bs-border-color, rgba(0,0,0,.18)); border-radius:10px; padding:6px 0; text-align:center; cursor:pointer; background:var(--bs-body-bg,#fff); color:var(--bs-body-color,#212529); }
|
|
93
93
|
.onekite-range-day.is-empty { border-color:transparent; background:transparent; cursor:default; }
|
|
94
94
|
.onekite-range-day.is-disabled { opacity:.35; cursor:not-allowed; }
|
|
95
95
|
.onekite-range-day.is-start, .onekite-range-day.is-end {
|
|
@@ -111,7 +111,11 @@ define('forum/calendar-onekite', ['alerts', 'bootbox', 'hooks'], function (alert
|
|
|
111
111
|
.onekite-range-day.is-inrange { background: rgba(255,255,255,.08); }
|
|
112
112
|
.onekite-range-day.is-start, .onekite-range-day.is-end { background: rgba(255,255,255,.14); color: var(--bs-body-color,#f8f9fa); border-color: var(--bs-border-color, rgba(255,255,255,.22)); }
|
|
113
113
|
}
|
|
114
|
-
.onekite-range-summary { margin-top:
|
|
114
|
+
.onekite-range-summary { margin-top:6px; font-size:.9rem; }
|
|
115
|
+
|
|
116
|
+
/* Compact spacing inside the FAB creation wizard */
|
|
117
|
+
.onekite-wiz-type .text-muted { margin-bottom: .25rem !important; }
|
|
118
|
+
.onekite-wiz-type .btn { padding: .35rem .75rem; }
|
|
115
119
|
|
|
116
120
|
`;
|
|
117
121
|
document.head.appendChild(style);
|
|
@@ -2284,8 +2288,7 @@ async function openCreateWizardModal(opts) {
|
|
|
2284
2288
|
end: null, // inclusive
|
|
2285
2289
|
};
|
|
2286
2290
|
|
|
2287
|
-
//
|
|
2288
|
-
let didAutoScrollToType = false;
|
|
2291
|
+
// No auto-scroll: keep the modal stable and compact.
|
|
2289
2292
|
|
|
2290
2293
|
// Pre-fill from an existing FullCalendar selection (end is exclusive)
|
|
2291
2294
|
try {
|
|
@@ -2329,12 +2332,11 @@ async function openCreateWizardModal(opts) {
|
|
|
2329
2332
|
</div>
|
|
2330
2333
|
<div class="onekite-range-grid" id="onekite-wiz-grid"></div>
|
|
2331
2334
|
<div class="onekite-range-summary" id="onekite-wiz-summary"></div>
|
|
2332
|
-
<div class="form-text mt-2">Sélectionne une date de début puis une date de fin (incluse). Les dates passées sont désactivées.</div>
|
|
2333
2335
|
|
|
2334
|
-
<hr class="my-
|
|
2336
|
+
<hr class="my-2" />
|
|
2335
2337
|
` : `
|
|
2336
2338
|
<div class="onekite-range-summary" id="onekite-wiz-summary-static"><strong>${escapeHtml(summaryText())}</strong></div>
|
|
2337
|
-
<hr class="my-
|
|
2339
|
+
<hr class="my-2" />
|
|
2338
2340
|
`;
|
|
2339
2341
|
|
|
2340
2342
|
const html = `
|
|
@@ -2342,13 +2344,12 @@ async function openCreateWizardModal(opts) {
|
|
|
2342
2344
|
${datePickerHtml}
|
|
2343
2345
|
|
|
2344
2346
|
<div id="onekite-wiz-type" class="onekite-wiz-type">
|
|
2345
|
-
<div class="text-muted mb-
|
|
2347
|
+
<div class="text-muted mb-1">Que veux-tu créer sur cette/ces date(s) ?</div>
|
|
2346
2348
|
<div class="d-flex flex-wrap gap-2 justify-content-center">
|
|
2347
2349
|
${canCreateReservation ? '<button type="button" class="btn btn-onekite-location" id="onekite-wiz-btn-location">Location</button>' : ''}
|
|
2348
2350
|
${canCreateOuting ? '<button type="button" class="btn btn-onekite-outing" id="onekite-wiz-btn-outing">Prévision de sortie</button>' : ''}
|
|
2349
2351
|
${canCreateSpecial ? '<button type="button" class="btn btn-onekite-special" id="onekite-wiz-btn-special">Évènement</button>' : ''}
|
|
2350
2352
|
</div>
|
|
2351
|
-
<div class="form-text mt-2">Astuce : une fois les dates choisies, tu peux directement sélectionner le type ci-dessus.</div>
|
|
2352
2353
|
</div>
|
|
2353
2354
|
</div>
|
|
2354
2355
|
`;
|
|
@@ -2449,12 +2450,6 @@ async function openCreateWizardModal(opts) {
|
|
|
2449
2450
|
state.end = null;
|
|
2450
2451
|
// If cursor month is before selected month, keep cursor
|
|
2451
2452
|
render();
|
|
2452
|
-
// Bonus UX: once a start date is chosen, bring the type buttons
|
|
2453
|
-
// into view so the user can continue immediately (only once).
|
|
2454
|
-
if (!didAutoScrollToType) {
|
|
2455
|
-
didAutoScrollToType = true;
|
|
2456
|
-
try { document.getElementById('onekite-wiz-type')?.scrollIntoView({ behavior: 'smooth', block: 'start' }); } catch (e) {}
|
|
2457
|
-
}
|
|
2458
2453
|
return;
|
|
2459
2454
|
}
|
|
2460
2455
|
// Second click: set end (inclusive)
|
|
@@ -2466,10 +2461,6 @@ async function openCreateWizardModal(opts) {
|
|
|
2466
2461
|
}
|
|
2467
2462
|
state.end = clicked;
|
|
2468
2463
|
render();
|
|
2469
|
-
if (!didAutoScrollToType) {
|
|
2470
|
-
didAutoScrollToType = true;
|
|
2471
|
-
try { document.getElementById('onekite-wiz-type')?.scrollIntoView({ behavior: 'smooth', block: 'start' }); } catch (e) {}
|
|
2472
|
-
}
|
|
2473
2464
|
});
|
|
2474
2465
|
}
|
|
2475
2466
|
|
|
@@ -2575,15 +2566,7 @@ async function openCreateWizardModal(opts) {
|
|
|
2575
2566
|
|
|
2576
2567
|
render();
|
|
2577
2568
|
|
|
2578
|
-
//
|
|
2579
|
-
// gently scroll to the type selector.
|
|
2580
|
-
try {
|
|
2581
|
-
if (state.start) {
|
|
2582
|
-
setTimeout(() => {
|
|
2583
|
-
try { document.getElementById('onekite-wiz-type')?.scrollIntoView({ behavior: 'smooth', block: 'start' }); } catch (e) {}
|
|
2584
|
-
}, 150);
|
|
2585
|
-
}
|
|
2586
|
-
} catch (e) {}
|
|
2569
|
+
// No auto-scroll: keep the wizard compact and stable.
|
|
2587
2570
|
} catch (e) {}
|
|
2588
2571
|
});
|
|
2589
2572
|
}
|