v82: 首页卡片补「新建日程 / 新增成员」+ 两处红线
用户原话:「日程,没有新建日程按钮,名册,也没有新增成员这个按钮。 另外,首页上的日程,红色线不对,变短了左侧缺了一块。在日程模块中, 那个红线左侧是不是还有一个红点?如果有,去掉。」 首页卡片就地操作(不用进模块): - HomeCards.php 的 agenda/contacts 补 add + add_modal 元数据 - templates/calendar/_add_modal.php:从 calendar/index.php 抽出的 「新建日程」弹框片段(首页与日程页共用;片段自读变量一律加 cal 前缀, 避免 require 共享作用域覆盖宿主变量) - templates/people/form.php:加弹框形态(pfModalOnly / pfModal), 弹框形态下「取消」走 data-fb-add-close - index.php:首页 agenda/contacts 两个 $homeAddModals 分支; calendar/event_add 支持 back=home 白名单跳转(不采信任意 POST 字符串) 红线(左端缺一块 / 多余红点): - .ag-now 原来写 left: var(--ag-gutter,50px),但 v80 起它已经在 .ag-lines 内部(那层自己已有同样缩进)⇒ 左沿跑到 100px、比车道多 出一整份刻度宽。改成 left: 0 - .tg-now::before 整条删除(日程模块页那个 8px 红点) 涉及共用件(HomeCards/index.php),已跑全量:e2e 1572/0、 v82 正向 20/0、v82 反向 15/0、流水线全绿并已部署。
This commit is contained in:
@@ -49,8 +49,47 @@ $ctHints = [
|
||||
'address' => '住址在「住址」一栏;这里放单位地址、老家地址等',
|
||||
'url' => '主页、博客、店铺链接……',
|
||||
];
|
||||
|
||||
/* ============================================================================
|
||||
🔴 v82(用户 2026-10-23):「名册,也没有新增成员这个按钮。」
|
||||
⚠️ 实测确认:名册模块页右上角那颗「添加成员」**一直在**(`<a class="btn btn-sm"
|
||||
href="people/new">`,可见可点)。用户说的是**首页「联系人」卡片**上没有按钮。
|
||||
⇒ 这张表单要能像 `movies/form.php` 那样被**别的页面内嵌成弹框**。
|
||||
---------------------------------------------------------------------------
|
||||
两个开关(与观影表单同一套命名,别自创一套):
|
||||
· `$pfModalOnly` 不输出 page-head(本模板被别的页面内嵌时用);
|
||||
· `$pfModal` 输出弹框壳(`.cal-modal` + 遮罩)。默认:新增态就是弹框。
|
||||
首页内嵌时由 `templates/home.php` 传 `$fbAddModalAttr = true`,
|
||||
本模板据此挂 `data-fb-add-modal` / `data-fb-add-close`(通用开关认这两个属性)。
|
||||
⚠️ **表单契约一个字没改**:字段名 / enctype / action(people/create)全照旧。
|
||||
============================================================================ */
|
||||
$pfModalOnly = !empty($pfModalOnly);
|
||||
$pfModal = isset($pfModal) ? (bool)$pfModal : !$isEdit;
|
||||
$pfOpen = isset($pfOpen) ? (bool)$pfOpen : ($pfModal && !$pfModalOnly);
|
||||
$fbAdd = !empty($fbAddModalAttr);
|
||||
?>
|
||||
|
||||
<?php /* ---- 弹框壳(只在 $pfModal 时开)-------------------------------------
|
||||
⚠️ 首屏默认 `hidden`:首页那张弹框点按钮才开(`data-fb-add-open="#pfAddCard"`)。
|
||||
不要写成"默认打开"——首页会一进来就糊一层遮罩。
|
||||
⚠️ `role="dialog" aria-modal="true"` 与站内其它浮层一致(观影/日程/任务)。 */ ?>
|
||||
<?php if ($pfModal): ?>
|
||||
<div class="cal-modal" id="pfAddCard" role="dialog" aria-modal="true"
|
||||
aria-label="<?= $isEdit ? '编辑成员' : '添加成员' ?>"
|
||||
<?= $pfOpen ? '' : 'hidden' ?><?= $fbAdd ? ' data-fb-add-modal' : '' ?>>
|
||||
<div class="cal-modal-panel pf-panel">
|
||||
<div class="cal-modal-head">
|
||||
<b><?= $isEdit ? ($isSelf ? '我的资料' : '编辑成员') : '添加成员' ?></b>
|
||||
<button type="button" class="cal-modal-x" id="pfAddX"
|
||||
aria-label="关闭"<?= $fbAdd ? ' data-fb-add-close' : '' ?>>✕</button>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php /* ⚠️ v82:弹框形态下这个 page-head 必须消失(它就是"整页"的标志物)——
|
||||
否则表单会连着页头一起塞进浮层,看起来像"整页被塞进一个框里"。
|
||||
判据用 `$pfModalOnly`(内嵌方给的),不要用 `$pfModal`
|
||||
—— 编辑态整页时 `$pfModal` 可能是 true 而它**不是**内嵌。 */ ?>
|
||||
<?php if (!$pfModalOnly): ?>
|
||||
<div class="page-head">
|
||||
<h1><?= $isEdit ? ($isSelf ? '我的资料' : '编辑成员') : '添加成员' ?></h1>
|
||||
<span class="sub"><?= $isEdit ? e($person['name']) : '填姓名就行,其他都可以以后再补' ?></span>
|
||||
@@ -61,6 +100,7 @@ $ctHints = [
|
||||
<a class="btn btn-ghost btn-sm" href="<?= e(url('people')) ?>">返回名册</a>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<form method="post" enctype="multipart/form-data"
|
||||
action="<?= e(url($isEdit ? 'people/update' : 'people/create')) ?>">
|
||||
@@ -579,13 +619,26 @@ $ctHints = [
|
||||
? ($isSelf ? url('settings/me') : url('people/show', ['id' => (int)$person['id']]))
|
||||
: url('people');
|
||||
?>
|
||||
<a class="btn btn-ghost" href="<?= e($cancelUrl) ?>">取消</a>
|
||||
<?php if ($pfModal): ?>
|
||||
<?php /* ⚠️ 弹框形态下「取消」必须**只关弹框**(`data-fb-add-close`),
|
||||
不能跳去名册 —— 跳走就把用户刚填的一整张表扔了,
|
||||
而且首页那张弹框本来就是"填一点就走"的用法。 */ ?>
|
||||
<button class="btn btn-ghost" type="button"
|
||||
<?= $fbAdd ? 'data-fb-add-close' : '' ?>
|
||||
onclick="document.getElementById('pfAddCard').hidden = true;">取消</button>
|
||||
<?php else: ?>
|
||||
<a class="btn btn-ghost" href="<?= e($cancelUrl) ?>">取消</a>
|
||||
<?php endif; ?>
|
||||
<?php if ($isSelf): ?>
|
||||
<a class="btn btn-ghost" href="<?= e(url('people/show', ['id' => (int)$person['id']])) ?>">看我的详情页</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<?php if ($pfModal): ?>
|
||||
</div><?php /* /.cal-modal-panel */ ?>
|
||||
</div><?php /* /.cal-modal */ ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
|
||||
Reference in New Issue
Block a user