DocumentLock
class DocumentLock extends UIAjaxComponent
Class DocumentLock
This class represent a generic document locking component. It can be used by default object instantiation or via xui tag in templates. The display of this component is a uniformed
XUI Tag structure:
<xui:document_lock document_index_id="[integer]" /> Constants
| SYSTEM_TEMPLATE_UI_FOLDER |
|
| CONTAINER_LINK_MODE_REPLACE |
Link modes. Should the ajax respone replace the original content, or should it be appended/prepended |
| CONTAINER_LINK_MODE_APPEND |
|
| CONTAINER_LINK_MODE_PREPEND |
|
| UPDATE_INTERVAL |
Value for periodical update via ajax |
| STATE_LOCKED |
States for document. Used to determine the current nad previous locking state. |
| STATE_FREE |
|
Properties
| Link | $xf_link | from UIComponent | |
| string | $link_id | from UIComponent | |
| array | $GPvars | from UIComponent | |
| Controller | $mod | from UIComponent | |
| protected array | $local_template_marker | from UIComponent | |
| protected bool | $_overwrite_param_array | from UIComponent | |
| protected bool|array|ModelCollection | $marker_content | from UIComponent | |
| string | $mod_object_manager | from UIComponent | |
| protected bool | $_orig_marker_content | from UIComponent | |
| protected array | $_allowed_params_filter | from UIComponent | |
| string | $unique_dom_id | from UIComponent | |
| protected string | $uid | from UIComponent | |
| string read-only | $_content | When used in template this property will contain the XML/HTML within the XUI Nodes |
from UIComponent |
| XUILinkHelper | $link | from UIAjaxComponent | |
| protected string | $js_class | from UIAjaxComponent | |
| protected array | $js_options | from UIAjaxComponent | |
| protected array | $css_classes | from UIAjaxComponent | |
| protected array | $xui_payload | from UIAjaxComponent | |
| protected array | $xuiLinkedContainers | from UIAjaxComponent | |
| protected bool | $deferredLoading | from UIAjaxComponent | |
| protected bool | $deferredLoadingMessage | from UIAjaxComponent | |
| protected int | $document_index_id |
Methods
Link a container that will also be reloaded, if an ajax link has the current container as target.
Adds a custom css class to the root element of this component.
Add an UIAjaxComponent object and register it under a certain name.
Adds a parameter to url parameter list.
Enables the periodical update via ajax.
Returns a placeholder which is used to display while this component is loading the content.
Returns a dependent object in order to interact with it
Return the user id of the user that locks the document.
Generates a unique dom id, dependent on the provided UID, as well as the current context.
Return new template view If using within module xui the tpl file should be named [class_name].tpl e.g. xui_core_table.tpl within the module's template folder
Class initialization
Returns whether the target document index is locked or not.
No description
Process and prepare xui for rendering.
Default render method. wraps the content provided by render_xui_content in a unique div and generates a JS object for the GUI
Rendering method for this xui component.
Set true to load the content deferred. Displays a placeholder while loading the content. Optional you can pass a message which will replace the default loading message.
Set Variable / Option for an array
Sets the id of the target document index.
sets marker_content to passed data -> restore original content with reset_marker_content()
Sets options. This options will be used in the JS element of this XUI class.
Used to inject params. Only allowed params will be used (see $allowed_params_filter)
Sets the url parameter that is used for component loading.
Details
in
UIComponent at line 64
__construct(string $link_id = null)
UIComponent constructor.
in
UIComponent at line 328
string
__toString()
No description
in
UIAjaxComponent at line 158
void
addLinkedContainer(UIAjaxComponent $linkedContainer, $linkMode = self::CONTAINER_LINK_MODE_REPLACE)
Link a container that will also be reloaded, if an ajax link has the current container as target.
in
UIAjaxComponent at line 196
add_css_class($css_class)
Adds a custom css class to the root element of this component.
in
UIAjaxComponent at line 134
add_dependency(string $dep_name, UIAjaxComponent $dep_obj, bool $reloadOnUpdate = false)
Add an UIAjaxComponent object and register it under a certain name.
this component will use that name to retrieve the object in order to interact with it.
If reloadOnUpdate is set, the dependent container will be reloaded after the update of the current container. !Beware: The reload url of the dependency container will be the one set in its data attribute and not a possible "new url" used to update the current container. If you want to reload multiple containers at once when the current container is an ajax link target, use $this->addLinkedContainer()
in
UIAjaxComponent at line 94
add_url_parameter(mixed $key, mixed $value)
Adds a parameter to url parameter list.
in
UIAjaxComponent at line 218
enable_periodical_update(int $interval)
Enables the periodical update via ajax.
The ajax calls will be execute after an interval of seconds passed by parameter one.
in
UIComponent at line 187
mixed
get($var)
Get Variable / Option
in
UIAjaxComponent at line 456
false|mixed
getCurrentAjaxLink(array $params)
No description
in
UIAjaxComponent at line 255
XUILinkHelper
getLinkHelper()
No description
in
UIAjaxComponent at line 267
protected string
getPlaceholderContent()
Returns a placeholder which is used to display while this component is loading the content.
in
UIAjaxComponent at line 150
mixed
get_dependency($dep_name)
Returns a dependent object in order to interact with it
at line 126
int
get_locking_user_id()
Return the user id of the user that locks the document.
This method returns the correct result after this xui was processed. Returns user_id if the document index is in EDIT mode and locked by the first visitor, otherwise it will return zero.
in
UIComponent at line 204
string
get_unique_dom_id()
Generates a unique dom id, dependent on the provided UID, as well as the current context.
in
UIComponent at line 294
Template|null
get_view(string|bool $section = false)
Return new template view If using within module xui the tpl file should be named [class_name].tpl e.g. xui_core_table.tpl within the module's template folder
at line 76
init()
Class initialization
This class uses an periodical update via ajax. This update allows to maintain the entries in the document lock table. This means, the current users watching at, updates their entries to keep them alive, otherwise the entries will be detected as exceeded and deleted.
The default update value is 15 seconds.
at line 138
bool
is_locked()
Returns whether the target document index is locked or not.
This method returns the correct result after this xui was processed. Returns TRUE if the document index is in EDIT mode and one or more users is actual watching at, FALSE in VIEW mode or if there nobody is watching at.
in
UIComponent at line 223
string
parse_template(string $template_content, array|bool $marker_array = false)
No description
in
UIComponent at line 239
string|null
parse_template_cb_wrapper(mixed $matches)
No description
in
UIComponent at line 265
mixed|string
parse_xtag($xml_source)
No description
in
UIAjaxComponent at line 430
false|string
printAjaxLink(array $params)
No description
in
UIAjaxComponent at line 443
false|mixed
printCurrentAjaxLink(array $params)
No description
in
UIAjaxComponent at line 225
process()
dummy process method - may be overwritten
at line 150
protected
process_xui()
Process and prepare xui for rendering.
This method also maintains the document lock table by adding, updating and deleting users. The lock and view sequence of users is sorted by the visit timestamp. The first visitor is the user, that locks the document in EDIT mode and other users queued as viewers. Is the first user leaving, the next queued user locks the document.
in
UIAjaxComponent at line 281
render()
Default render method. wraps the content provided by render_xui_content in a unique div and generates a JS object for the GUI
in
UIComponent at line 273
mixed
render_xtag_element()
No description
at line 236
protected string|Template
render_xui()
Rendering method for this xui component.
Displays the actual lock and view info for the target document index. The type of the note is based on the mode (EDIT|VIEW). If there is no message set in the process method, this component displays nothing.
in
UIComponent at line 175
void
reset_marker_content()
restores original content of marker_content
in
UIComponent at line 108
void
set(mixed $var, mixed $value = false)
deprecated
deprecated
Set Variable / Option
in
UIAjaxComponent at line 115
void
setDeferredLoading(bool $bool, string $message = '')
Set true to load the content deferred. Displays a placeholder while loading the content. Optional you can pass a message which will replace the default loading message.
in
UIAjaxComponent at line 102
UIAjaxComponent
setLoadURL(string $url)
No description
in
UIComponent at line 124
void
set_array(mixed $member_array, mixed $vars)
Set Variable / Option for an array
at line 113
set_document_index(DocumentIndex $document_index_model)
Sets the id of the target document index.
This document index is the target document which can be viewed or locked by users.
at line 101
set_document_index_id(int $id)
Sets the id of the target document index.
This document index is the target document which can be viewed or locked by users.
in
UIComponent at line 167
void
set_marker_content(mixed $marker_content = false)
sets marker_content to passed data -> restore original content with reset_marker_content()
in
UIComponent at line 90
set_mod(mixed $mod)
Set link to owning module
in
UIAjaxComponent at line 207
set_option(string $key, mixed $val)
Sets options. This options will be used in the JS element of this XUI class.
in
UIComponent at line 137
void
set_render_params(mixed $input_params = array())
Used to inject params. Only allowed params will be used (see $allowed_params_filter)
in
UIAjaxComponent at line 177
set_uid($uid)
No description
in
UIAjaxComponent at line 83
UIAjaxComponent
set_url_parameters(array $parameters)
Sets the url parameter that is used for component loading.