main page content

This commit is contained in:
Aleksey Chichenkov 2018-10-01 10:40:56 +03:00
parent 12c4995428
commit 27e785d1da
11 changed files with 213 additions and 54 deletions

View File

@ -3,4 +3,4 @@
* @group library
* @namespace v2
*/
var v2 = function () {};
var v2 = function v2() {};

View File

@ -1,13 +1,122 @@
/**
* AAAAA
* Генератор для главной страницы документации.
* Что тут да как?
*
* AAAAA
* Новый блок должен состоять из тагов:
* name - где значением будет число. Все блоки сортируются по имени.
* поэтому что бы вставить блок между 01 и 02, нужно написать 01.0
*
* AAAAA
*
* @name sdfasdf
* mainpage - таг который указывает, что этот блок будет использован для документации
* memberof - указывает предка для блока. Но в случае документации это используется,
* что бы эти блоки не попали в глобальное пространство.
*/
/**
* ### Документация по работе с GUI версии 2.9.1
* @name 01
* @mainpage
* @memberof mainpage
* @example
* dsfadfasdf
*/
*
*/
/**
* ### Содержание:
* - #### Виджеты
* - #### Датасорсы
* - #### Сигнал-Слоты
* - #### Грид
* - #### Графики
* - #### {@link ProvidersSystem Система провайдеров}:
* - - #### {@link Trees}
* - - #### {@link Models}
* - - #### {@link Publishers}
* - - #### {@link ModelTypes}
* - - #### {@link GroupTypes}
* - #### Библиотеки:
* - - #### {@link std} - реализация сишной библиотеки на js.
* - - #### {@link v2} - сериализуемые типы, которыми можно обмениваться с ядром.
* - - #### {@link tools} - разного рода хелперы и инструменты.
*
* @name 02
* @mainpage
* @memberof mainpage
*
*/
/**
* ### Система провайдеров.
*
* <br>
*
* Провайдеры это механизм, который осуществляет общий доступ к любой доступной информации, которую можно получить от ядра
*
* Проще говоря, они моделируют объекты, которые существют в ядре и поддерживаются в акутальном состоянии,
*
* до тех пор, пока кто-либо ими пользуются. Как только истекает таймер жизни объекта, он вычищается.
*
* <br>
* Провайдеры запускаются перед стартом системы _**js/main.js**_ и определены в глобальной области видимости: **window.ps**.
*
* Как только происходит хендшейк и логин пользователя, начинает загружаться GUI.
*
* <br>
* #### Как пользоваться провайдерами?
*
* Внутри провайдеров проинициализирован объект {@link Platform} в переменной **ps.pl**.
*
* По-сути он моделирует платформу со стороны сервера и содержит в себе менеджеры, через которые можно связываться с ядром.
*
* <br>
* Доступные менеджеры у платформы:
* - {@link GroupTypes} - Менеджер, который позволяет получить данные по типу компонента, определен как **ps.pl.gtm**
* - {@link ModelTypes} - Менеджер, который позволяет узнать о содержимом модели **ps.pl.mtm**
* - {@link Models} - Менеджер, для доступа к устройствам, определен как **ps.pl.mm**
* - {@link Trees} - Менеджер, для доступа к деревьям, определен как **ps.pl.tm**
*
*
*
* <br><br>
* ### {@link Trees} Деревья:
*
* Для чего нужны деревья?
*
* Например для отображения рабочего стола, каталога моделей, схемы топологии и т.д.
*
*
*
* <br><br>
* ### {@link Publishers}. Паблишеры.
*
* Для чего нужны паблишеры?
*
* В общем случае они предназначены для отображение очень больших списков, которые могут подвесить GUI.
*
* Пример использования паблишера есть в форме результатов обнануржения.
*
*
*
* <br><br>
* ### {@link Models}. Менеджер моделей.
*
* Менеджер моделей предоставляет доступ к устройствами находящимся в системе, которые были отдискаверины или добавлены иным способом.
*
* Пример использования можно найти в Схеме моделей.
*
*
*
* <br><br>
* ### {@link GroupTypes}. Менеджер типов групп.
*
* Позволяет зная cTag, или иными словами тип группы, получить данные связанные с группой.
*
* Этот механизм используется в виджете для отображения атрибутов модели.
*
* А так же для отображения атрибутов компонент.
*
* @name 04
* @mainpage
* @memberof mainpage
*
*/

View File

@ -9,15 +9,15 @@
*
* <br>
*
* {@link Trees.GlobalTree} - любое дерево (обладает возможностью открывать свою иерархию)
* > {@link Trees.SchemeTree} - дерево топологии "st"
* {@link Trees.GlobalTree GlobalTree} - любое дерево (обладает возможностью открывать свою иерархию)
* > {@link Trees.SchemeTree SchemeTree} - дерево топологии "st"
*
* > {@link Trees.GlobalAttributeTree} - любое дерево, которое обладает атрибутами (используется как дефолтное)
* > > {@link Trees.DesktopTree} - дерево рабочего стола "dsk"
* > {@link Trees.GlobalAttributeTree GlobalAttributeTree} - любое дерево, которое обладает атрибутами (используется как дефолтное)
* > > {@link Trees.DesktopTree DesktopTree} - дерево рабочего стола "dsk"
*
* > > {@link Trees.UserAttributeTree} - дерево пользовательских параметров "uat"
* > > {@link Trees.UserAttributeTree UserAttributeTree} - дерево пользовательских параметров "uat"
*
* > > {@link Trees.RemoteModulesTree} - дерево сборщиков данных "rmt"
* > > {@link Trees.RemoteModulesTree RemoteModulesTree} - дерево сборщиков данных "rmt"
*
*
* <br>
@ -37,9 +37,9 @@
* <br>
* Связанные объекты:
*
* - {@link Trees.GlobalTree} - Здесь можно найти примеры, как работать с нодами дерева
* - {@link Trees.GlobalTree.Node} - Здесь можно найти примеры, как работать с содержимым глобальной ноды
* - {@link Trees.GlobalAttributeTree.Node} - Здесь можно найти примеры, как работать с содержимым аттрибутной ноды
* - {@link Trees.GlobalTree GlobalTree} - Здесь можно найти примеры, как работать с нодами дерева
* - {@link Trees.GlobalTree.Node GlobalTreeNode} - Здесь можно найти примеры, как работать с содержимым глобальной ноды
* - {@link Trees.GlobalAttributeTree.Node GlobalAttributesNode} - Здесь можно найти примеры, как работать с содержимым аттрибутной ноды
*
* @example
* // Работа с деревом
@ -49,7 +49,7 @@
* // данных пользователя
* ps.pl.tm.get(new v2.string("rmt")).then(function(ref){
* // ref - это ссылка на объект
* // метод value возвращает целевой объект. В данном случае дерево {@type Trees.GlobalTree}
* // метод value возвращает целевой объект. В данном случае дерево {@link Trees.RemoteModulesTree RemoteModulesTree}
* var tree = ref.value();
* }, function(err){
* // в случае неудачи придет ошибка.

View File

@ -550,10 +550,6 @@ function buildMemberNavNamespace(items, itemHeading, itemsSeen, linktoFn) {
function buildNav(members) {
var nav = '<h2><a href="index.html">GUI 2.9.1-develop</a></h2>';
// var seen = {};
// nav += buildMemberNavNamespace(members.namespaces, 'Managers', seen, linkto);
// nav += buildMemberNavNamespace(members.classes, 'Classes', seen, linkto);
nav += render_explorer(members.namespaces, members.classes);
return nav;
@ -561,6 +557,10 @@ function buildNav(members) {
var render_explorer = function (_nss, _clss) {
var nav = "";
// nav += render_menu_item("Widgets", "widgets", _nss, _clss, true);
// nav += render_menu_item("Datasources", "datasources", _nss, _clss, true);
// nav += render_menu_item("SignalSlot", "sigslot", _nss, _clss, true);
// nav += render_menu_item("Grid", "grid", _nss, _clss, true);
nav += render_menu_item("Providers Interface", "providers_interface", _nss, _clss, true);
nav += render_menu_item("Providers Managers", "manager", _nss, _clss, true);
nav += render_menu_item("Libraries", "library", _nss, _clss, true);
@ -583,8 +583,6 @@ var render_menu_item = function (_title, _type, _nss, _clss, _check_tags) {
var members = find_first_members(ns.name, _clss);
// console.log(JSON.stringify(ns, true, 3))
nav += "<li class='dropdown'>";
if (members.length > 0) {
@ -614,7 +612,6 @@ var render_menu_item = function (_title, _type, _nss, _clss, _check_tags) {
var check_tags = function (_tags, _key) {
for (var a = 0; a < _tags.length; a++) {
var info = _tags[a];
// console.log("TAGS",_key, _tags);
if (info.title == "group" && info.text == _key) return true;
}
return false;
@ -639,16 +636,8 @@ var find_first_members = function (_parent, _clss) {
}
}
// var cls_hierarchy = cls
var member_success = found && hierarchy.length - b < 2;
// console.log("_parent", _parent);
// console.log("cls", JSON.stringify(cls, true, 3));
// console.log("found", found);
// console.log("hierarchy.length - b", hierarchy.length - b);
if(!member_success) continue;
members.push(cls);
@ -733,7 +722,7 @@ exports.publish = function(taffyData, opts, tutorials) {
}
if(doclet.tags && find_tag_by_id(doclet.tags, "mainpage")){
console.log(doclet);
// console.log(doclet);
mainpage_content.push(doclet);
}

View File

@ -0,0 +1,49 @@
.mainpage {
margin-bottom: 10px;
}
div.mainpage > div.desc {
font-size: 15px;
}
div.desc p {
margin: 0;
padding: 0;
}
div.part > div.desc {
font-size: 15px;
box-sizing: border-box;
padding: 5px;
/*padding-bottom: 0px;*/
}
div.part > pre {
margin: 0px;
margin-left: 10px;
margin-top: 5px;
margin-bottom: 5px;
}
div.mainpage > div.part {
background: #f3f3f3;
}
div.mainpage ul, h3, h4, h5 {
margin: 0;
}
div.mainpage h5{
font-size: initial;
font-weight: initial;
letter-spacing: initial;
}
div.mainpage li {
list-style: none;
}
div.mainpage ul {
box-sizing: border-box;
padding-left: 25px;
}

View File

@ -1,5 +1,7 @@
/* JSDoc prettify.js theme */
code a > span.com {
}
/* plain text */
.pln {
color: #000000;

View File

@ -3,6 +3,11 @@
/* Pretty printing styles. Used with prettify.js. */
/* SPAN elements with the classes below are added by prettyprint. */
/* plain text */
code a > span.com {
color: #0095dd;
text-decoration: underline;
}
.pln {
color: #4d4d4c; }

View File

@ -18,7 +18,7 @@
isGlobalPage = (doc.kind === 'globalobj');
}
?>
<?js if (doc.kind === 'mainpage' || (doc.kind === 'package')) { ?>
<?js if (doc.kind === 'mainpage' /* || (doc.kind === 'package') */) { ?>
<?js= self.partial('mainpage.tmpl', doc) ?>
<?js } else if (doc.kind === 'source') { ?>
<?js= self.partial('source.tmpl', doc) ?>
@ -41,7 +41,7 @@
<?js } ?>
<?js } else if (doc.kind === 'module' && doc.modules) { ?>
<?js doc.modules.forEach(function(module) { ?>
<?js if (module.classdesc) { console.log("module.classdesc", module.classdesc)?>
<?js if (module.classdesc) { //console.log("module.classdesc", module.classdesc)?>
<div class="class-description"><?js= module.classdesc ?></div>
<?js } ?>

View File

@ -15,6 +15,7 @@
<link type="text/css" rel="stylesheet" href="styles/dd-menu.css">
<link type="text/css" rel="stylesheet" href="styles/explorer.css">
<link type="text/css" rel="stylesheet" href="styles/members.css">
<link type="text/css" rel="stylesheet" href="styles/mainpage.css">
</head>
<body>

View File

@ -1,10 +1,12 @@
<?js
var data = obj;
var self = this;
console.log(self.content)
?>
<style>
div#main section {
display: none;
}
</style>
<?js= self.partial('mainpage/each.tmpl', self.content) ?>
@ -12,8 +14,3 @@ console.log(self.content)
<h3><?js= data.name ?> <?js= data.version ?></h3>
<?js } ?>
<?js if (data.readme) { ?>
<section>
<article><?js= data.readme ?></article>
</section>
<?js } ?>

View File

@ -4,14 +4,21 @@ var self = this;
//console.log(part);
?>
<div class="mainpage">
<?js if(part.description) { ?>
<div class="part bdotted">
<div class="desc"><?js= self.replace_enters_to_br(part.description) ?></div>
<?js if(part.description) { ?>
<div class="description part bdotted"><?js= self.replace_enters_to_br(part.description) ?></div>
<?js } ?>
<?js part.examples && part.examples.forEach(function(_example){ ?>
<pre class="prettyprint"><code><?js= self.htmlsafe(_example.code) ?></code></pre>
<?js }); ?>
</div>
<?js } ?>
<?js if (part.examples && part.examples.length) { ?>
<div class="params-desc params-example bdotted part">
<div class="title">Examples: </div>
<?js= self.partial('examples.tmpl', part.examples) ?>
</div>
<?js } ?>
<?js if (false && part.examples && part.examples.length) { ?>
<div class="params-desc params-example bdotted part">
<div class="title">Examples: </div>
<?js= self.partial('examples.tmpl', part.examples) ?>
</div>
<?js } ?>
</div>