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
+
+