diff --git a/docfiles/libraries/tools/reference.js b/docfiles/libraries/tools/reference.js new file mode 100644 index 0000000..4786faa --- /dev/null +++ b/docfiles/libraries/tools/reference.js @@ -0,0 +1,81 @@ +/** + * + * @class reference + * @memberof tools + * @param _reset {function} + * @param _copy {function} + * @param _value {function} + */ +function reference(_reset, _copy, _value) { + +} + +reference.prototype = { + /** + * + * @public + * @function init + * @memberof tools.reference + */ + init: function () {}, + + /** + * + * @public + * @function deinit + * @memberof tools.reference + */ + deinit: function () {}, + + /** + * + * @public + * @function check + * @memberof tools.reference + */ + check: function () {}, + + /** + * + * @public + * @function copy + * @memberof tools.reference + * @returns {tools.reference} + */ + copy: function () {}, + + /** + * + * @public + * @function id + * @memberof tools.reference + * @returns {number} + */ + id: function () {}, + + /** + * + * @public + * @function reset + * @memberof tools.reference + */ + reset: function () {}, + + /** + * + * @public + * @function value + * @memberof tools.reference + * @returns {Object} + */ + value: function () {}, + + /** + * + * @public + * @function * + * @memberof tools.reference + * @returns {Object} + */ + "*": function () {}, +}; diff --git a/docfiles/providers/errors.js b/docfiles/providers/errors.js new file mode 100644 index 0000000..93f990c --- /dev/null +++ b/docfiles/providers/errors.js @@ -0,0 +1,81 @@ +/** + * + * @namespace Errors + */ +var Errors = function () { + +}; + +/** + * Описание объекта ошибки. + * + * Важно понимать, что такой объект существует только в документации, + * + * для того что бы описать результат отмены промиса. + * + * @example + * // Подключаем бибилиотеку инструментов + * var tools = require("providers/tools/lib"); + * + * // Создаем промис + * var my_promise = new tools.promise(); + * + * my_promise.native.then(function(successData){ + * // Удачный сценарий в данном случае не рассматривается. + * },function(_err){ + * console.log(JSON.stringify(_err, true, 4));* + * }); + * + * // Производим сброс промиса. + * // Вот таким должно быть описание для ошибки. + * // При этом, поле sub может быть как null так и undefined + * // Но если к возникновению этой ошибки причасен другой промис или событие внутри провайдеров, то + * // в переменную sub надо его передать. + * my_promise.reject({ + * err: 0, + * message: "my_error", + * sub: null + * }) + * + * // Вывод в данном случае будет вот такой + * // { + * // "err": 0, + * // "message": "my_error", + * // "sub": null + * // } + * + * @class PromiseReject + * @memberof Errors + */ +Errors.PromiseReject = { + /** + * Код ошибки + * + * @public + * @name err + * @type {number} + * @memberof Errors.PromiseReject + */ + err: 0, + + /** + * Краткое описание, почему произошла ошибка + * @public + * @name message + * @type {string} + * @memberof Errors.PromiseReject + */ + message: "", + + /** + * Ссылка на ошибку, которая стала причиной текущей ошибки. + * + * Если этот параметр есть, то эта ошибка является проксирующей + * + * @public + * @name sub + * @type {Errors.PromiseReject} + * @memberof Errors.PromiseReject + */ + sub: new Errors.PromiseReject() +}; \ No newline at end of file diff --git a/docfiles/providers/managers/trees/globalAttributeTree/attributes/manager.js b/docfiles/providers/managers/trees/globalAttributeTree/attributes/manager.js index d745d99..dbfed0b 100644 --- a/docfiles/providers/managers/trees/globalAttributeTree/attributes/manager.js +++ b/docfiles/providers/managers/trees/globalAttributeTree/attributes/manager.js @@ -1,3 +1,5 @@ +/** @typedef {Trees.GlobalAttributeTree.Node.Attributes} NodeAttributes */ + /** * Интерфейс позволяющей пользователю работать с атрибутами ноды * diff --git a/docfiles/providers/managers/trees/globalTree/node.js b/docfiles/providers/managers/trees/globalTree/node.js index a57b5fb..052db9b 100644 --- a/docfiles/providers/managers/trees/globalTree/node.js +++ b/docfiles/providers/managers/trees/globalTree/node.js @@ -1,7 +1,44 @@ /** - * Нода дерева - * Представляет интефрейс для доступа к данным глобальной ноды в ядре - * Позволяет узнать потомков ноды + * Интерфейс доступа к содержимому глобальной ноды + * + * Здесь создаются менеджер по работе с вложенными нодами и менеджер типов ноды + * + *
+ * Связанные объекты: + * + * - {@link Trees.GlobalTree} - Здесь можно найти примеры, как работать с глобальным деревом + * - {@link Trees.GlobalTree.Node.Children} - Здесь можно найти примеры, как работать с вложенными нодами + * - {@link Trees.GlobalTree.Node.NodeTypes} - Здесь можно найти примеры, как работать с типами ноды + * + * + * @example + * // Пример: Как получить ноду дерева? + * + * // Пример взят для дерева тополгии + * var tree = null; + * var node = null; + * + * // Осуществляем запрос к менеджеру деревьев, на получение провайдера дерева + * ps.pl.tm.get(new v2.string("st")).then(function(ref){ + * // ref - это ссылка на объект + * // метод value возвращает целевой объект. В данном случае дерево Trees.SchemeTree + * tree = ref.value(); + * + * // Доступ к ноде осуществляется похожим образом, но теперь вместо строки нужно указать v2.integer + * // Так как возвратится нативный проимс, мы можем вернуть его и обработать в следующем then + * return tree.get(v2.integer.from_number(0)) + * }, function(err){ + * // в случае неудачи придет ошибка. + * // обычно в ошибке содержится три переменные err - код ошибки, message - краткое описание, sub - если к этому + * // привела другая ошибка внутри системы. + * }).then(function(ref){ + * // Вот мы и получили ноду. + * node = ref.value(); + * }, function(err){ + * // Отобразим ошибку + * console.warn(err); + * }) + * * * @class Node * @memberof Trees.GlobalTree diff --git a/docfiles/providers/managers/trees/globalTree/tree.js b/docfiles/providers/managers/trees/globalTree/tree.js index 9ba1c4a..738c529 100644 --- a/docfiles/providers/managers/trees/globalTree/tree.js +++ b/docfiles/providers/managers/trees/globalTree/tree.js @@ -1,20 +1,93 @@ /** - * Глобальное дерево, от которого отнаследованы все остальные. - * Копирует идеологию ядра. - * Ноды этого дерева имеют доступ только к списку своих потомков. + * Абстрактное дерево, от него наследуются все существующие деревья + * + * Ноды это дерева имеют доступ к списку нод, вложенных в них + * + *
+ * Связанные объекты: + * + * - {@link Trees} - Здесь можно найти примеры, как работать с менеджером деревьев + * - {@link Trees.GlobalTree.Node} - Здесь можно найти примеры, как работать с содержимым глобальной ноды + * + * @example + * // Пример 1: Как получить глобальное дерево? + * + * // Пример взят для дерева тополгии + * var tree = null; + * ps.pl.tm.get(new v2.string("st")).then(function(ref){ + * // ref - это ссылка на объект + * // метод value возвращает целевой объект. В данном случае дерево {@type Trees.GlobalTree} + * tree = ref.value(); + * }, function(err){ + * // в случае неудачи придет ошибка. + * // обычно в ошибке содержится три переменные err - код ошибки, message - краткое описание, sub - если к этому + * // привела другая ошибка внутри системы. + * }) + * + * @example + * // Пример 2: Как получить ноду дерева? + * + * // Пример взят для дерева тополгии + * var tree = null; + * var node = null; + * + * // Осуществляем запрос к менеджеру деревьев, на получение провайдера дерева + * ps.pl.tm.get(new v2.string("st")).then(function(ref){ + * // ref - это ссылка на объект + * // метод value возвращает целевой объект. В данном случае дерево Trees.SchemeTree + * tree = ref.value(); + * + * // Доступ к ноде осуществляется похожим образом, но теперь вместо строки нужно указать v2.integer + * // Так как возвратится нативный проимс, мы можем вернуть его и обработать в следующем then + * return tree.get(v2.integer.from_number(0)) + * }, function(err){ + * // в случае неудачи придет ошибка. + * // обычно в ошибке содержится три переменные err - код ошибки, message - краткое описание, sub - если к этому + * // привела другая ошибка внутри системы. + * }).then(function(ref){ + * // Вот мы и получили ноду. + * node = ref.value(); + * }, function(err){ + * // Отобразим ошибку + * console.warn(err); + * }) * * @group manager * @class GlobalTree + * @extends manager * @memberof Trees */ function GlobalTree() { /** - * Возвращает ссылку на ноду. В качестве идентификатора надо указать идентификатор ноды. - * Работает через промис. + * Интерфейс доступа к ноде + * + * Ответ должен быть обработан в промисе, + * + * при успехе вернется {@link tools.reference} -> {@link Trees.GlobalTree.Node} + * + * при отмене вернется ошибка {@link Errors.PromiseReject} + * + * @example + * // Пример: + * + * // Допустим мы хотим получить корневую ноду. + * // Так сложилось, что корневая нода, всегда нулевая + * var nodeId = v2.integer.from_number(0); + * + * // Допустим что мы где-то уже получили дерево. + * var promise = tree.get(nodeId); + * + * promise.then(function(ref){ + * // Вот мы и получили ноду. + * node = ref.value(); + * }, function(err){ + * // Отобразим ошибку + * console.warn(err); + * }) * * @public * @function get - * @param {v2.integer} nodeId Уникальный идентификатор ноды в дереве + * @param {v2.integer} nodeId Идентификатор ноды в дереве * @returns {tools.promise} * @memberof Trees.GlobalTree */ @@ -23,13 +96,30 @@ function GlobalTree() { }; /** - * Позволяет удалить динамический атрибут ноды. - * Возвращает булевое значение об операции + * Осуществляет уаление ноды из дерева. + * + * @example + * // Пример: + * + * // Допустим, что мы знаем, что в дереве существует нода с таким идентификатором + * var nodeId = v2.integer.from_number(1); + * var tree = null; + * ps.pl.tm.get(new v2.string("st")).then(function(ref){ + * // ref - это ссылка на объект + * // метод value возвращает целевой объект. В данном случае дерево {@type Trees.GlobalTree} + * tree = ref.value(); + * + * // Произведет удаление ноды 1 из дерева + * // Ответ придет по подписке на существование нод в дереве. + * tree.remove(nodeId); + * }, function(err){ + * console.log(err) + * }) + * * * @public * @function remove - * @param {v2.string} nodeId Уникальный идентификатор ноды в дереве - * @returns {boolean} + * @param {v2.integer} nodeId Идентификатор ноды в дереве * @memberof Trees.GlobalTree */ this.remove = function(nodeId) { @@ -39,6 +129,7 @@ function GlobalTree() { /** * Возвращает адрес дерева в системе * + * * @public * @function sys_addr * @returns {v2.address} diff --git a/docfiles/providers/managers/trees/manager.js b/docfiles/providers/managers/trees/manager.js index 8552904..fc65518 100644 --- a/docfiles/providers/managers/trees/manager.js +++ b/docfiles/providers/managers/trees/manager.js @@ -1,8 +1,45 @@ /** * Менеджер деревьев. + * * Представляет собой интерфейс для доступа ко всем деревьям + * * Позволяет по тегу дерева получить на него ссылку. - * На текущий момент содержит в себе: + * + * Деревья представляют собой следующую иерархию наследования + * + *
+ * + * {@link Trees.GlobalTree} - любое дерево (обладает возможностью открывать свою иерархию) + * > {@link Trees.SchemeTree} - дерево топологии "st" + * + * > {@link Trees.GlobalAttributeTree} - любое дерево, которое обладает атрибутами (используется как дефолтное) + * > > {@link Trees.DesktopTree} - дерево рабочего стола "dsk" + * + * > > {@link Trees.UserAttributeTree} - дерево пользовательских параметров "uat" + * + * > > {@link Trees.RemoteModulesTree} - дерево сборщиков данных "rmt" + * + * + *
+ * Список доступных тегов деревьев: + * - "cmp" - Компоненты + * - "cst" - Вложенность компонентов + * - "dsk" - Рабочий стол + * - "ect" - Дерево событий + * - "flt" - Фильтры + * - "edg" - Линки + * - "cedg" - Вложенность линков + * - "prf" - Профили + * - "rmt" - Сборщики данных + * - "st" - Схема объектов + * - "uat" - Пользовательские данные + * + *
+ * Связанные объекты: + * + * - {@link Trees.GlobalTree} - Здесь можно найти примеры, как работать с нодами дерева + * - {@link Trees.GlobalTree.Node} - Здесь можно найти примеры, как работать с содержимым глобальной ноды + * - {@link Trees.GlobalAttributeTree.Node} - Здесь можно найти примеры, как работать с содержимым аттрибутной ноды * * @example * // Работа с деревом @@ -10,7 +47,7 @@ * // доступ к конкретному дереву осуществляется по тагу дерева например ("st", "rmt", "uat") * // где st - дерево топологии, rmt - дерево сборщиков данных, uat - дерево в котором хранится информация о * // данных пользователя - * ps.pl.tm(new v2.string("rmt")).then(function(ref){ + * ps.pl.tm.get(new v2.string("rmt")).then(function(ref){ * // ref - это ссылка на объект * // метод value возвращает целевой объект. В данном случае дерево {@type Trees.GlobalTree} * var tree = ref.value(); @@ -25,20 +62,36 @@ */ function Trees() { /** - * Вернет ссылку на дерево. В качестве идентификатора следует указать тег дерева. + * Доступ к дереву + * + * В качестве идентификатора следует указать тег дерева. + * + * при успехе вернется {@link tools.reference} -> {@link Trees.GlobalTree} + * + * при отмене вернется ошибка {@link Errors.PromiseReject} + * + * @example + * // Пример использования: + * // Результатом будет нативный промис. + * var promise = ps.pl.tm.get(new v2.string("rmt")); * * @public * @function get * @param {v2.string} treeTag Тег дерева. Например: "rmt", "uat" - * @returns {tools.promise} + * @returns {tools.promise(Trees.GlobalTree)} * @memberof Trees */ + this.get = function (treeTag) { }; /** * Возвращает булевое значение о существовании дерева * + * @example + * // Пример: + * var exist = ps.pl.tm.is_exist(new v2.string("rmt")); + * * @public * @function is_tree_exist * @param {v2.string} treeTag Тег дерева. Например: "rmt", "uat" @@ -48,4 +101,4 @@ function Trees() { this.is_tree_exist = function (treeTag) { } -} +} \ No newline at end of file diff --git a/docfiles/providers/managers/trees/schemeTree/tree.js b/docfiles/providers/managers/trees/schemeTree/tree.js index d4ca797..8076dd1 100644 --- a/docfiles/providers/managers/trees/schemeTree/tree.js +++ b/docfiles/providers/managers/trees/schemeTree/tree.js @@ -1,4 +1,42 @@ /** + * Дерево представляющее топологию. + * + * Тег дерева "st" + * + * В Trees оно добавлено в фабрику, и создается из нее. + * + * ВАЖНО! У этого дерева нет атрибутов. Поэтому получить атрибут невозможно. + * + * Однако у нод этого дерева, есть возможно получить статические денные Адрес модели и является ли она Контейнером + * + * @example + * // Работа с деревом + * // Доступ к менеджеру деревьев находится в переменной ps.pl.tm (провайдеры -> мастер платформа -> менеджер деревьев) + * // доступ к конкретному дереву осуществляется по тагу дерева например ("st", "rmt", "uat") + * // где st - дерево топологии, rmt - дерево сборщиков данных, uat - дерево в котором хранится информация о + * // данных пользователя + * + * var tree = null; + * var node = null; + * + * ps.pl.tm.get(new v2.string("st")).then(function(ref){ + * // ref - это ссылка на объект + * // метод value возвращает целевой объект. В данном случае дерево {@type Trees.GlobalTree} + * tree = ref.value(); + * return tree.get(v2.integer.from_number(0)) + * }, function(err){ + * // в случае неудачи придет ошибка. + * // обычно в ошибке содержится три переменные err - код ошибки, message - краткое описание, sub - если к этому + * // привела другая ошибка внутри системы. + * }).then(function(ref){ + * // Вот мы и получили ноду. + * node = ref.value(); + * }, function(err){ + * // Отобразим ошибку + * console.warn(err); + * }) + * + * * @group manager * @class SchemeTree * @extends Trees.GlobalTree diff --git a/templates/initi/static/scripts/parse_complex_type.js b/templates/initi/static/scripts/parse_complex_type.js index f1e2fd0..e92afe7 100644 --- a/templates/initi/static/scripts/parse_complex_type.js +++ b/templates/initi/static/scripts/parse_complex_type.js @@ -87,11 +87,12 @@ var replace_type_def = function(_ln){ return link; } +// старый кусок говна :D var replace_enters_to_br = function(_str){ - var out = _str; - while(out.match("\n")) out = out.replace("\n", "
"); + // var out = _str; + // while(out.match("\n")) out = out.replace("\n", "
"); - return out; + return _str; }; module.exports = { diff --git a/templates/initi/static/styles/full-method.css b/templates/initi/static/styles/full-method.css index 2467a59..b150820 100644 --- a/templates/initi/static/styles/full-method.css +++ b/templates/initi/static/styles/full-method.css @@ -58,6 +58,19 @@ .full-method > div.short > .param .type .name {} .full-method > div.short > .param .type .right-quad-bracket {} +.params-example { + padding-left: 10px; + padding-top: 10px; + box-sizing: border-box; + font-size: 14px !important; + padding-bottom: 10px; +} + +.params-example > pre { + margin-top: 5px; + margin-bottom: 0; +} + .params-desc { padding-left: 10px; padding-top: 10px; @@ -71,4 +84,18 @@ .params-desc > .parameter { margin-bottom: 5px; +} + +.description blockquote { + -webkit-margin-before: 0; + -webkit-margin-after: 0; +} + +.description blockquote p { + -webkit-margin-before: 0; + -webkit-margin-after: 0; +} + +.description blockquote br { + height: 0; } \ No newline at end of file diff --git a/templates/initi/static/styles/min-method.css b/templates/initi/static/styles/min-method.css index d331c55..7e3e324 100644 --- a/templates/initi/static/styles/min-method.css +++ b/templates/initi/static/styles/min-method.css @@ -67,6 +67,11 @@ min-width: initial; } +.full-method > .description > p { + margin-top: 0; + margin-bottom: 0; +} + .parameter > .description > p { margin-top: 0; margin-bottom: 0; diff --git a/templates/initi/tmpl/examples.tmpl b/templates/initi/tmpl/examples.tmpl index 04d975e..8f5b27a 100644 --- a/templates/initi/tmpl/examples.tmpl +++ b/templates/initi/tmpl/examples.tmpl @@ -3,11 +3,12 @@ var self = this; data.forEach(function(example) { + var result = self.htmlsafe(example.code); if (example.caption) { ?>

-
+
\ No newline at end of file diff --git a/templates/initi/tmpl/full_method/main.tmpl b/templates/initi/tmpl/full_method/main.tmpl index eb5b0fc..027ff3b 100644 --- a/templates/initi/tmpl/full_method/main.tmpl +++ b/templates/initi/tmpl/full_method/main.tmpl @@ -21,6 +21,13 @@ var ryba = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eius + +
+
Examples:
+ +
+ +
Params