Skip to content
Snippets Groups Projects
Commit 4d631e21 authored by Johannes Goderbauer's avatar Johannes Goderbauer
Browse files

[Projekt: Entwicklung - Neon][TicketNr.: 1051571][Dokumentation der...

[Projekt: Entwicklung - Neon][TicketNr.: 1051571][Dokumentation der System-Module ("system."), Konstanten und Funktionen]
parent e1865d53
No related branches found
No related tags found
No related merge requests found
......@@ -9,10 +9,27 @@ import("Attribute_lib");
import("system.entities");
import("system.util");
//TODO: comment lib
/**
* Procides static methods for en- or decoding attributeFilter names
* AttributeFilter names are shared over several processes and contain therefore various information
* The infomration needs to be encoded to be able to transfer it over the different processes
*
* @class
*
*/
function AttributeSearchNameCoder(){}
/**
* encodes several parameters into one string that can be used as AttributeFilter-name
*
* @param {String} pUid <p/> attribute uid of the attribute that has to be encoded
* @param {String} pAttributeType <p/> attribute type of the attribute that has to be encoded
* <br /> while you may able to specify any string, only values of $AttributeTypes.*** are useful
*
* @return {String} <p/> an encoded string of the given parametervalues
* <br/> this is basically a serialized object which is base64 encoded
* @static
*/
AttributeSearchNameCoder.encode = function (pUid, pAttributeType)
{
var res = {
......@@ -24,6 +41,15 @@ AttributeSearchNameCoder.encode = function (pUid, pAttributeType)
return res
};
/**
* decodes a string that was encoded with AttributeSearchNameCoder.encode
*
*
* @param {String} pEncodedString <p/> string that shall be decoded; the origin of the name has to be a filter-object
*
* @return {Object} <p/> an object that contains all keys and values that have been encoded with AttributeSearchNameCoder.encode
* @static
*/
AttributeSearchNameCoder.decode = function (pEncodedString)
{
var res = pEncodedString.substr(pEncodedString.lastIndexOf(".") + 1);
......@@ -32,8 +58,31 @@ AttributeSearchNameCoder.decode = function (pEncodedString)
return res
};
/**
* Provides static methods for hanlding AttriubteFilterExtensions
* The methods are used to fill the processes that need to be specified within a FilterExtension of a RecrodContainer
*
* @class
*
*/
function AttributeFilterExtensionMaker() {}
/**
* fetches attributes that are filterable and transforms them into filter fields
*
* @param {String} pObjectType <p/> contextId of the context whoes attributes are used for providing the filter fields
*
* @return {String} <p/> field-definitions (array of objects) that are ready to use for a filterExtensionSet in a stringified form
* <br/> The object within the array contains the following properties:
* <ul>
* <li>name - internal name for an attribut filter field; has several data encoded</li>
* <li>title - string of a human readable name for the end user (translated)</li>
* <li>contentType - string of the neon-contentType (e.g. TEXT)</li>
* <li>hasDropDownValues - boolean if possible values have to be calculated or not</li>
* </ul>
* @static
*/
AttributeFilterExtensionMaker.getFilterFields = function(pObjectType)
{
var res = [];
......@@ -70,6 +119,12 @@ AttributeFilterExtensionMaker.getFilterFields = function(pObjectType)
return res;
};
/**
* fetches attributes that are filterable and transforms them into filter fields for the current context
*
* @see AttributeFilterExtensionMaker.getFilterFields for more details
* @static
*/
AttributeFilterExtensionMaker.makeFilterFields = function()
{
var objectType = ContextUtils.getCurrentContextId();
......@@ -77,6 +132,19 @@ AttributeFilterExtensionMaker.makeFilterFields = function()
return res;
};
/**
* Returns possible values to choose from within a attributeFilterExtension. <br/>
* Depending on the attribute-type and the attribute(id) itself, different values will be returned. <br/>
* For some attirbute types there are returned static possible values, e.g. a Boolean-attribute has always the values "Yes [true] and No [false]
*
* @param {String} pFilter <p/> stringified form of the filter-object that contains the filter-name
* <br/>The filter-name contains various data of the attribute as encoded string
*
* @return {Array} <p/> list of the values of an attribute if the attribute has chooseable values or an empty array if not
* <br/>This is a 2D-Array where each element is an array that contains the ID and the title:
* <br/> [[id1, title1], [idN, titleN]]
* @static
*/
AttributeFilterExtensionMaker.getFilterValues = function(pFilter)
{
var filter = JSON.parse(pFilter);
......@@ -92,6 +160,13 @@ AttributeFilterExtensionMaker.getFilterValues = function(pFilter)
return res;
};
/**
* fetches pssible chooseable attribute values for a current filter
* This process is useful for a process within the filter extension for attributes
*
* @see AttributeFilterExtensionMaker.getFilterValues for more details
* @static
*/
AttributeFilterExtensionMaker.makeFilterValues = function()
{
var filter = vars.getString("$local.filter");
......@@ -99,6 +174,22 @@ AttributeFilterExtensionMaker.makeFilterValues = function()
return res;
};
/**
* Builds a Sql-condition that may be used in a filter extension set and allows to filter for attributes within a db-table
*
* @param {String} pObjectType <p/> contextId of the objects thats records
* @param {String} pFilterName <p/> name of the filter that was prior encoded and contains various information
* @param {String} pCondition <p/> a SQL-condition like it is given in the "$local.condition"-variable in filter extension sets
* @param {String} pRawValue <p/> the raw input value that the user has entered for a filter operation
* @param {String} pOperatorName <p/> the operator of the condition (equals, smaller, greater, etc.) as a resolved name; e.g. "IS NOT NULL"
* @param {String} pIdTableName <p/> name of the db-table where the data shall be filtered
* @param {String} pIdColumnName <p/> name of the primarykey-column of the table that was given via pIdTablename
* @param {String} pColumnPlaceholder <p/> name of the placeholder where the columnname should be like it is given in the
* "$local.columnPlaceholder"-variable in filter extension sets
*
* @return {SqlBuilder} <p/> a SqlBuilder-condition that contains a sub-select and may be used for filtering data
* @static
*/
AttributeFilterExtensionMaker.getFilterCondition = function(pObjectType, pFilterName, pCondition, pRawValue, pOperatorName, pIdTableName,
pIdColumnName, pColumnPlaceholder)
{
......@@ -147,6 +238,12 @@ AttributeFilterExtensionMaker.getFilterCondition = function(pObjectType, pFilter
return resSql;
};
/**
* Builds a Sql-condition for a attribute filter extension set. This allows to filter for attributes within a db-table
*
* @see AttributeFilterExtensionMaker.getFilterCondition for more details
* @static
*/
AttributeFilterExtensionMaker.makeFilterConditionSql = function()
{
var objectType = ContextUtils.getCurrentContextId();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment