summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLester Caine <lester@lsces.co.uk>2026-05-25 16:56:05 +0100
committerLester Caine <lester@lsces.co.uk>2026-05-25 16:56:05 +0100
commit98a222ddbaa5ca0dc7d914d4912af8055d46dbc4 (patch)
treeb90036736e0c371dfddc452074ebaa71a8b7182f
parentc35e539cf4777eead5500d3229c4a84669db8c5e (diff)
downloadliberty-98a222ddbaa5ca0dc7d914d4912af8055d46dbc4.tar.gz
liberty-98a222ddbaa5ca0dc7d914d4912af8055d46dbc4.tar.bz2
liberty-98a222ddbaa5ca0dc7d914d4912af8055d46dbc4.zip
Add generic xref record templates and sub-template rendering to liberty
list_xref.tpl now uses 7-column layout (Type/Link/Key/Value/Date/Updated/ Edit) and delegates row rendering to view_xref_{template}_record.tpl, matching the template name stored in liberty_xref_source. Eight generic record templates added (text, contact, phone, address, date, bank, sig, locate) using hasUpdatePermission()/hasExpungePermission() throughout. edit_xref.php gains expunge/stepXref handling for Delete and Restore actions, with permission checks scoped per action branch. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-rw-r--r--edit_xref.php11
-rw-r--r--templates/list_xref.tpl28
-rw-r--r--templates/view_xref_address_record.tpl28
-rw-r--r--templates/view_xref_bank_record.tpl28
-rw-r--r--templates/view_xref_contact_record.tpl34
-rw-r--r--templates/view_xref_date_record.tpl28
-rw-r--r--templates/view_xref_locate_record.tpl28
-rw-r--r--templates/view_xref_phone_record.tpl28
-rw-r--r--templates/view_xref_sig_record.tpl28
-rw-r--r--templates/view_xref_text_record.tpl34
10 files changed, 251 insertions, 24 deletions
diff --git a/edit_xref.php b/edit_xref.php
index 323b4db..2c14384 100644
--- a/edit_xref.php
+++ b/edit_xref.php
@@ -24,21 +24,28 @@ if( !empty( $_REQUEST['xref_id'] ) ) {
$gContent->loadXref( $_REQUEST['xref_id'] );
}
-$gContent->verifyUpdatePermission();
-
if( !empty( $_REQUEST['fCancel'] ) ) {
header( 'Location: '.$gContent->getDisplayUrl() );
die;
}
if( !empty( $_REQUEST['fSaveXref'] ) ) {
+ $gContent->verifyUpdatePermission();
if( $gContent->storeXref( $_REQUEST ) ) {
header( 'Location: '.$gContent->getDisplayUrl() );
die;
}
$xrefInfo = $_REQUEST;
$xrefInfo['data'] = $_REQUEST['edit'] ?? '';
+} elseif( isset( $_REQUEST['expunge'] ) ) {
+ $gContent->verifyExpungePermission();
+ if( $gContent->stepXref( $_REQUEST ) ) {
+ header( 'Location: '.$gContent->getDisplayUrl() );
+ die;
+ }
+ $xrefInfo = $gContent->mInfo['xref_store']['data'] ?? [];
} else {
+ $gContent->verifyUpdatePermission();
$xrefInfo = $gContent->mInfo['xref_store']['data'] ?? [];
}
diff --git a/templates/list_xref.tpl b/templates/list_xref.tpl
index 2552fb6..572cc34 100644
--- a/templates/list_xref.tpl
+++ b/templates/list_xref.tpl
@@ -5,8 +5,10 @@
<table>
<thead>
<tr>
- <th>{tr}Source{/tr}</th>
- <th>{tr}Data{/tr}</th>
+ <th>{tr}Type{/tr}</th>
+ <th>{tr}Link{/tr}</th>
+ <th>{tr}Key{/tr}</th>
+ <th>{tr}Value{/tr}</th>
{if $source ne 'history'}
<th>{tr}Started{/tr}</th>
{else}
@@ -19,29 +21,11 @@
<tbody>
{section name=xref loop=$gContent->mInfo.$source}
<tr class="{cycle values="even,odd"}">
- <td>{$gContent->mInfo.$source[xref].source_title|escape}</td>
- <td>
- {if $gContent->mInfo.$source[xref].xref}
- <a href="{$smarty.const.CONTACT_PKG_URL}?content_id={$gContent->mInfo.$source[xref].xref}">{$gContent->mInfo.$source[xref].data|escape}</a>
- {else}
- {$gContent->mInfo.$source[xref].data|escape}
- {/if}
- </td>
- {if $source ne 'history'}
- <td>{$gContent->mInfo.$source[xref].start_date|bit_short_date}</td>
- {else}
- <td>{$gContent->mInfo.$source[xref].end_date|bit_short_date}</td>
- {/if}
- <td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td>
- <td>
- {if $gContent->hasUpdatePermission()}
- {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" booticon="fa-pen-to-square" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id}
- {/if}
- </td>
+ {include file="bitpackage:liberty/view_xref_`$gContent->mInfo.$source[xref].template`_record.tpl"}
</tr>
{sectionelse}
<tr class="norecords">
- <td colspan="5">{tr}No {$source_title} records found{/tr}</td>
+ <td colspan="7">{tr}No {$source_title} records found{/tr}</td>
</tr>
{/section}
</tbody>
diff --git a/templates/view_xref_address_record.tpl b/templates/view_xref_address_record.tpl
new file mode 100644
index 0000000..d7efba4
--- /dev/null
+++ b/templates/view_xref_address_record.tpl
@@ -0,0 +1,28 @@
+{strip}
+<td>{$gContent->mInfo.$source[xref].source_title|escape}</td>
+<td>&nbsp;</td>
+<td>{$gContent->mInfo.$source[xref].xkey_ext|escape}, {$gContent->mInfo.$source[xref].xkey|escape}</td>
+<td>{$gContent->mInfo.$source[xref].data|escape}</td>
+<td>
+ {if $source ne 'history'}
+ {$gContent->mInfo.$source[xref].start_date|bit_short_date}
+ {else}
+ {$gContent->mInfo.$source[xref].end_date|bit_short_date}
+ {/if}
+</td>
+<td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td>
+<td>
+ <span class="actionicon">
+ {if $gContent->hasUpdatePermission() && $source ne 'history'}
+ {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id}
+ {/if}
+ {if $gContent->hasExpungePermission()}
+ {if $source eq 'history'}
+ {smartlink ititle="Restore" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=-1}
+ {else}
+ {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-delete" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1}
+ {/if}
+ {/if}
+ </span>
+</td>
+{/strip}
diff --git a/templates/view_xref_bank_record.tpl b/templates/view_xref_bank_record.tpl
new file mode 100644
index 0000000..edea55a
--- /dev/null
+++ b/templates/view_xref_bank_record.tpl
@@ -0,0 +1,28 @@
+{strip}
+<td>{$gContent->mInfo.$source[xref].source_title|escape}</td>
+<td>&nbsp;</td>
+<td>{$gContent->mInfo.$source[xref].xkey|escape} {$gContent->mInfo.$source[xref].xkey_ext|escape}</td>
+<td>{$gContent->mInfo.$source[xref].data|escape}</td>
+<td>
+ {if $source ne 'history'}
+ {$gContent->mInfo.$source[xref].start_date|bit_short_date}
+ {else}
+ {$gContent->mInfo.$source[xref].end_date|bit_short_date}
+ {/if}
+</td>
+<td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td>
+<td>
+ <span class="actionicon">
+ {if $gContent->hasUpdatePermission() && $source ne 'history'}
+ {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id}
+ {/if}
+ {if $gContent->hasExpungePermission()}
+ {if $source eq 'history'}
+ {smartlink ititle="Restore" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=-1}
+ {else}
+ {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-delete" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1}
+ {/if}
+ {/if}
+ </span>
+</td>
+{/strip}
diff --git a/templates/view_xref_contact_record.tpl b/templates/view_xref_contact_record.tpl
new file mode 100644
index 0000000..ec14270
--- /dev/null
+++ b/templates/view_xref_contact_record.tpl
@@ -0,0 +1,34 @@
+{strip}
+<td>{$gContent->mInfo.$source[xref].source_title|escape}</td>
+<td>
+ {if isset($gContent->mInfo.$source[xref].xref) && $gContent->mInfo.$source[xref].xref > 100}
+ {$gContent->mInfo.$source[xref].xref|escape}
+ {else}
+ &nbsp;
+ {/if}
+</td>
+<td>{$gContent->mInfo.$source[xref].xkey|escape} {$gContent->mInfo.$source[xref].xkey_ext|escape}</td>
+<td>{$gContent->mInfo.$source[xref].data|escape}</td>
+<td>
+ {if $source ne 'history'}
+ {$gContent->mInfo.$source[xref].start_date|bit_short_date}
+ {else}
+ {$gContent->mInfo.$source[xref].end_date|bit_short_date}
+ {/if}
+</td>
+<td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td>
+<td>
+ <span class="actionicon">
+ {if $gContent->hasUpdatePermission() && $source ne 'history'}
+ {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id}
+ {/if}
+ {if $gContent->hasExpungePermission()}
+ {if $source eq 'history'}
+ {smartlink ititle="Restore" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=-1}
+ {else}
+ {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-delete" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1}
+ {/if}
+ {/if}
+ </span>
+</td>
+{/strip}
diff --git a/templates/view_xref_date_record.tpl b/templates/view_xref_date_record.tpl
new file mode 100644
index 0000000..edea55a
--- /dev/null
+++ b/templates/view_xref_date_record.tpl
@@ -0,0 +1,28 @@
+{strip}
+<td>{$gContent->mInfo.$source[xref].source_title|escape}</td>
+<td>&nbsp;</td>
+<td>{$gContent->mInfo.$source[xref].xkey|escape} {$gContent->mInfo.$source[xref].xkey_ext|escape}</td>
+<td>{$gContent->mInfo.$source[xref].data|escape}</td>
+<td>
+ {if $source ne 'history'}
+ {$gContent->mInfo.$source[xref].start_date|bit_short_date}
+ {else}
+ {$gContent->mInfo.$source[xref].end_date|bit_short_date}
+ {/if}
+</td>
+<td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td>
+<td>
+ <span class="actionicon">
+ {if $gContent->hasUpdatePermission() && $source ne 'history'}
+ {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id}
+ {/if}
+ {if $gContent->hasExpungePermission()}
+ {if $source eq 'history'}
+ {smartlink ititle="Restore" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=-1}
+ {else}
+ {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-delete" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1}
+ {/if}
+ {/if}
+ </span>
+</td>
+{/strip}
diff --git a/templates/view_xref_locate_record.tpl b/templates/view_xref_locate_record.tpl
new file mode 100644
index 0000000..edea55a
--- /dev/null
+++ b/templates/view_xref_locate_record.tpl
@@ -0,0 +1,28 @@
+{strip}
+<td>{$gContent->mInfo.$source[xref].source_title|escape}</td>
+<td>&nbsp;</td>
+<td>{$gContent->mInfo.$source[xref].xkey|escape} {$gContent->mInfo.$source[xref].xkey_ext|escape}</td>
+<td>{$gContent->mInfo.$source[xref].data|escape}</td>
+<td>
+ {if $source ne 'history'}
+ {$gContent->mInfo.$source[xref].start_date|bit_short_date}
+ {else}
+ {$gContent->mInfo.$source[xref].end_date|bit_short_date}
+ {/if}
+</td>
+<td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td>
+<td>
+ <span class="actionicon">
+ {if $gContent->hasUpdatePermission() && $source ne 'history'}
+ {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id}
+ {/if}
+ {if $gContent->hasExpungePermission()}
+ {if $source eq 'history'}
+ {smartlink ititle="Restore" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=-1}
+ {else}
+ {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-delete" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1}
+ {/if}
+ {/if}
+ </span>
+</td>
+{/strip}
diff --git a/templates/view_xref_phone_record.tpl b/templates/view_xref_phone_record.tpl
new file mode 100644
index 0000000..8fe0d1a
--- /dev/null
+++ b/templates/view_xref_phone_record.tpl
@@ -0,0 +1,28 @@
+{strip}
+<td>{$gContent->mInfo.$source[xref].source_title|escape}</td>
+<td>&nbsp;</td>
+<td>{$gContent->mInfo.$source[xref].xkey|escape}</td>
+<td>{$gContent->mInfo.$source[xref].data|escape}</td>
+<td>
+ {if $source ne 'history'}
+ {$gContent->mInfo.$source[xref].start_date|bit_short_date}
+ {else}
+ {$gContent->mInfo.$source[xref].end_date|bit_short_date}
+ {/if}
+</td>
+<td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td>
+<td>
+ <span class="actionicon">
+ {if $gContent->hasUpdatePermission() && $source ne 'history'}
+ {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id}
+ {/if}
+ {if $gContent->hasExpungePermission()}
+ {if $source eq 'history'}
+ {smartlink ititle="Restore" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=-1}
+ {else}
+ {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-delete" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1}
+ {/if}
+ {/if}
+ </span>
+</td>
+{/strip}
diff --git a/templates/view_xref_sig_record.tpl b/templates/view_xref_sig_record.tpl
new file mode 100644
index 0000000..edea55a
--- /dev/null
+++ b/templates/view_xref_sig_record.tpl
@@ -0,0 +1,28 @@
+{strip}
+<td>{$gContent->mInfo.$source[xref].source_title|escape}</td>
+<td>&nbsp;</td>
+<td>{$gContent->mInfo.$source[xref].xkey|escape} {$gContent->mInfo.$source[xref].xkey_ext|escape}</td>
+<td>{$gContent->mInfo.$source[xref].data|escape}</td>
+<td>
+ {if $source ne 'history'}
+ {$gContent->mInfo.$source[xref].start_date|bit_short_date}
+ {else}
+ {$gContent->mInfo.$source[xref].end_date|bit_short_date}
+ {/if}
+</td>
+<td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td>
+<td>
+ <span class="actionicon">
+ {if $gContent->hasUpdatePermission() && $source ne 'history'}
+ {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id}
+ {/if}
+ {if $gContent->hasExpungePermission()}
+ {if $source eq 'history'}
+ {smartlink ititle="Restore" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=-1}
+ {else}
+ {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-delete" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1}
+ {/if}
+ {/if}
+ </span>
+</td>
+{/strip}
diff --git a/templates/view_xref_text_record.tpl b/templates/view_xref_text_record.tpl
new file mode 100644
index 0000000..ec14270
--- /dev/null
+++ b/templates/view_xref_text_record.tpl
@@ -0,0 +1,34 @@
+{strip}
+<td>{$gContent->mInfo.$source[xref].source_title|escape}</td>
+<td>
+ {if isset($gContent->mInfo.$source[xref].xref) && $gContent->mInfo.$source[xref].xref > 100}
+ {$gContent->mInfo.$source[xref].xref|escape}
+ {else}
+ &nbsp;
+ {/if}
+</td>
+<td>{$gContent->mInfo.$source[xref].xkey|escape} {$gContent->mInfo.$source[xref].xkey_ext|escape}</td>
+<td>{$gContent->mInfo.$source[xref].data|escape}</td>
+<td>
+ {if $source ne 'history'}
+ {$gContent->mInfo.$source[xref].start_date|bit_short_date}
+ {else}
+ {$gContent->mInfo.$source[xref].end_date|bit_short_date}
+ {/if}
+</td>
+<td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td>
+<td>
+ <span class="actionicon">
+ {if $gContent->hasUpdatePermission() && $source ne 'history'}
+ {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id}
+ {/if}
+ {if $gContent->hasExpungePermission()}
+ {if $source eq 'history'}
+ {smartlink ititle="Restore" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=-1}
+ {else}
+ {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" booticon="icon-note-delete" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1}
+ {/if}
+ {/if}
+ </span>
+</td>
+{/strip}