Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,4 @@ LDAP Tool Box White Pages documentation
vcardexport.rst
updateinfos.rst
tooltips.rst
patterns.rst
20 changes: 20 additions & 0 deletions docs/patterns.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Patterns
========

You can define a pattern to control edition of any attribute.

By default no patterns are defined. You can create one by adding a property in attributes map and a message in the custom lang file by setting the ``pattern_item`` message.

For example to add a pattern on phone item:

* Edit or create ``/etc/service-desk/config.local.inc.php``:

.. code-block:: php

$attributes_map['phone']['pattern'] = "\+33 [0-9] [0-9]{2} [0-9]{2} [0-9]{2} [0-9]{2}";

* Edit or create ``/etc/service-desk/fr.inc.php``:

.. code-block:: php

$messages['pattern_phone'] = "+33 1 23 45 67 89";
5 changes: 3 additions & 2 deletions templates/updateinfos.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
{$type=$attributes_map.{$item}.type}
{$faclass=$attributes_map.{$item}.faclass}
{$multivalued=$attributes_map.{$item}.multivalued}
{$pattern=$attributes_map.{$item}.pattern}
{$required=0}
{if ($attributes_map.{$item}.mandatory|is_array)}
{if in_array('all',$attributes_map.{$item}.mandatory) or in_array('update',$attributes_map.{$item}.mandatory)}
Expand All @@ -60,10 +61,10 @@
<td>
{if $item|in_array:$update_items}
{if !({$entry.$attribute.0})}
{include 'value_editor.tpl' item=$item itemindex=0 value="" type=$type list=$item_list.$item multivalued=$multivalued required=$required truncate_value_after=10000}
{include 'value_editor.tpl' item=$item itemindex=0 value="" type=$type list=$item_list.$item multivalued=$multivalued pattern=$pattern required=$required truncate_value_after=10000}
{else}
{foreach from=$entry.{$attribute} item=$value name=updatevalue}
{include 'value_editor.tpl' item=$item itemindex=$smarty.foreach.updatevalue.index multivalued=$multivalued required=$required value=$value type=$type list=$item_list.$item truncate_value_after=10000}
{include 'value_editor.tpl' item=$item itemindex=$smarty.foreach.updatevalue.index multivalued=$multivalued pattern=$pattern required=$required value=$value type=$type list=$item_list.$item truncate_value_after=10000}
{/foreach}
{/if}
{else}
Expand Down
8 changes: 4 additions & 4 deletions templates/value_editor.tpl
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<div class="value_editor_container {$type} my-1 row">
<div class="value_editor_field col-10">
{if $type eq 'text'}
<input type="text" name="{$item}{$itemindex}" class="form-control {if $required}border border-danger-subtle{/if}" value="{$value}" data-role="value" {if $required}required{/if} />
<input type="text" name="{$item}{$itemindex}" class="form-control {if $required}border border-danger-subtle{/if}" {if $pattern}pattern="{$pattern}"{if $msg_pattern_{$item}} title="{$msg_pattern_{$item}}"{/if}{/if} value="{$value}" data-role="value" {if $required}required{/if} />
{else if $type eq 'mailto'}
<input type="email" name="{$item}{$itemindex}" class="form-control {if $required}border border-danger-subtle{/if}" value="{$value}" data-role="value" {if $required}required{/if} />
<input type="email" name="{$item}{$itemindex}" class="form-control {if $required}border border-danger-subtle{/if}" {if $pattern}pattern="{$pattern}"{if $msg_pattern_{$item}} title="{$msg_pattern_{$item}}"{/if}{/if} value="{$value}" data-role="value" {if $required}required{/if} />
{else if $type eq 'tel'}
<input type="tel" name="{$item}{$itemindex}" class="form-control {if $required}border border-danger-subtle{/if}" value="{$value}" data-role="value" {if $required}required{/if} />
<input type="tel" name="{$item}{$itemindex}" class="form-control {if $required}border border-danger-subtle{/if}" {if $pattern}pattern="{$pattern}"{if $msg_pattern_{$item}} title="{$msg_pattern_{$item}}"{/if}{/if} value="{$value}" data-role="value" {if $required}required{/if} />
{else if $type eq 'boolean'}
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch" name="{$item}{$itemindex}" {if $value eq 'TRUE'} checked{/if} value="TRUE" data-role="value" />
Expand All @@ -30,7 +30,7 @@
<div class="z-3 position-absolute list-group dn_link_suggestions"></div>
</div>
{else}
<input type="text" name={$item} class="form-control {if $required}border border-danger-subtle{/if}" value="{$value}" data-role="value" {if $required}required{/if} />
<input type="text" name={$item} class="form-control {if $required}border border-danger-subtle{/if}" {if $pattern}pattern="{$pattern}"{if $msg_pattern_{$item}} title="{$msg_pattern_{$item}}"{/if}{/if} value="{$value}" data-role="value" {if $required}required{/if} />
{/if}
</div>
<div class="value_editor_button col-2">
Expand Down