Модуль:Песочница/Abiyoyo/Autosorting/schemas
Документация
local schemas = {}
schemas.config = {}
schemas.workers = {}
schemas.workers._sortByProperty = {}
schemas.workers._sortByProperty.configOptions = {
['func'] = {
['type'] = 'string',
--[[Имя обработчика. В конфиге указать: func = '_sortByProperty']]
},
['property'] = {
['type'] = 'string',
pattern = '^[Pp]%d+$',
mandatory = true,
--[[идентификатор свойства, по которому осуществляется сортировка.
Например: property = 'P17']]
},
['propLabel'] = {
['type'] = 'string',
--[[метка свойства, вставляемая в имя категории.
Например: propLabel = 'страна'. Может быть пустой.]]
},
['ifEmptyPar'] = {
['type'] = {'string', 'number'},
valueIndex = 'ifEmptyVal',
external = true,
--[[имя параметра фрейма, содержащего значение, которое
должно быть пустым. При непустом категория не ставится.]]
},
['ifNotEmptyPar'] = {
['type'] = {'string', 'number'},
valueIndex = 'ifNotEmptyVal',
external = true,
--[[имя параметра фрейма, содержащего значение, которое
НЕ должно быть пустым. При непустом категория не ставится.]]
},
['ifPropContainsID'] = {
['type'] = 'string',
pattern = '^[Pp]%d+$',
--[[строка с идентификатором свойства, значение которого должно
содержать значение, указанное в ifPropContainsVal. Если нет,
категория не ставится]]
},
['ifPropContainsVal'] = {
['type'] = 'string',
--[[строка со значением, (обычно 'Q...'), которое должно содержаться
в свойстве, указанном в ifPropContainsID. Если не найдено,
категория не ставится]]
},
['ifPropNotContainsID'] = {
['type'] = 'string',
pattern = '^[Pp]%d+$',
--[[строка с идентификатором свойства, значение которого НЕ должно
содержать значение, указанное в ifPropNotContainsVal. Если оно
есть, категория не ставится]]
},
['ifPropNotContainsVal'] = {
['type'] = 'string',
--[[строка со значением, (обычно 'Q...'), которое НЕ должно
содержаться в свойстве, указанном в ifPropNotContainsID. Если
такое найдено, категория не ставится]]
},
['ifEmptyProps'] = {
['type'] = 'string',
pattern = '^[Pp]%d+[Pp%d,%s]*',
valueIndex = 'ifEmptyPropsVal',
overrided = true -- 'ifEmptyPropsPar'
--[[идентификаторы свойств, которые должны быть пустыми.
При хотя бы одном непустом свойстве категория не ставится.
Строка, разделённая запятыми.]]
},
['ifEmptyPropsPar'] = {
['type'] = {'string', 'number'},
valueIndex = 'ifEmptyPropsVal',
valuePattern = '^[Pp]%d+[Pp%d,%s]*',
external = true,
-- overrides 'ifEmptyProps'
--[[имя параметра, читаемого из фрейма, содержащего
разделенные запятыми значения, перекрывающие ifEmptyProps]]
},
['ifNotEmptyProps'] = {
['type'] = 'string',
pattern = '^[Pp]%d+[Pp%d,%s]*',
valueIndex = 'ifNotEmptyPropsVal',
overrided = true -- 'ifNotEmptyPropsPar'
--[[идентификаторы свойств, которые НЕ должны быть пустыми.
При хотя бы одном непустом свойстве категория не ставится.
Строка, разделённая запятыми.]]
},
['ifNotEmptyPropsPar'] = {
['type'] = {'string', 'number'},
valueIndex = 'ifNotEmptyPropsVal',
valuePattern = '^[Pp]%d+[Pp%d,%s]*',
external = true,
-- overrides 'ifNotEmptyProps'
--[[имя параметра, читаемого из фрейма, содержащего
разделенные запятыми значения, перекрывающие ifNotEmptyProps]]
},
['propDefPar'] = {
['type'] = {'string', 'number'},
valueIndex = 'propDefVal',
external = true,
--[[имя параметра, читаемого из фрейма, содержащего
дефолтное значение свойства. Например: 'default-country']]
},
['noValueLabel'] = {
['type'] = 'string',
default = '',
--[[метка, вставляемая в имя категории в позиции "значение", если
для свойства нет значения в ВД. Если пуст, то пустая строка]]
},
['noValuePropLabel'] = {
['type'] = 'string',
--[[метка, вставляемая в имя категории в позиции "ключ", если
для свойства нет значения в ВД. Если пуст, то обычная]]
},
['noVaidCatLabel'] = {
['type'] = 'string',
default = '',
--[[метка, вставляемая в имя категории в позиции "значение", если
для свойства нет валидной категории. Если пуст, пустая строка]]
},
['noVaidCatPropLabel'] = {
['type'] = 'string',
--[[метка, вставляемая в имя категории в позиции "ключ", если
для свойства нет валидной категории. Если пуст, то обычная]]
},
['noVaidCatSortByProp'] = {
['type'] = 'boolean',
default = true,
--[[Если true, то при отсутствии валидной категории, к категориям
добавляется ключ сортировки с именем метки. Если false, то нет]]
},
['thenByOnPropVal'] = {
['type'] = 'string',
default = nil,
--[[строка со значением свойства, указанного в property,
при котором будет осуществляться рекурсивный вызов вложенной
сортировки. Если пустой, то без ограничений.]]
},
['thenBy'] = {
['type'] = 'table',
default = nil,
--[[таблица с параметрами для рекурсивного вызова. Параметры
внутри таблицы те же. 'func' внутри указывать не требуется.]]
},
}
schemas.workers._sortByProperty.settingsTransform = {}
return schemas