Changes for page 1. User Manual

Last modified by Iaroslav Platonov on 2026/06/08 09:26

From version 242.2
edited by Iaroslav Platonov
on 2026/06/08 09:08
Change comment: There is no comment for this version
To version 240.2
edited by Iaroslav Platonov
on 2026/06/07 18:30
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,91 +1,163 @@
1 1  {{html clean="false"}}
2 2  <style>
3 -/* ── Reading progress bar ── */
4 4  #rn-prog { position:fixed;top:0;left:0;height:3px;width:0;background:#005AB4;z-index:9999;pointer-events:none; }
5 5  
6 -/* ── Page content wrapper ── */
7 -.doc-wrap { position:relative; }
5 +/* Layout: relative container, content fills width minus TOC margin */
6 +.doc-wrap {
7 + position:relative;
8 +}
8 8  .doc-content {
9 - margin-right:224px;
10 + margin-right:224px; /* TOC width 200px + 24px gap — never changes */
10 10   border-left:1px solid #E8E8E8;
11 11   border-right:1px solid #E8E8E8;
12 12   padding:0 32px;
13 13  }
14 14  
15 -/* ── Right "On This Page" TOC ── */
16 +/* TOC: absolute by default, fixed via JS when scrolled */
16 16  .doc-toc {
17 - position:absolute;top:0;right:0;width:200px;
18 + position:absolute;
19 + top:0; right:0;
20 + width:200px;
18 18   font-size:12.5px;line-height:1.55;
19 19   padding:20px 0 20px 16px;
20 20  }
21 -.doc-toc.is-fixed { position:fixed;width:200px;overflow-y:auto;z-index:10; }
22 -.toc-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:10px; }
23 -.toc-header strong { font-size:13px;font-weight:700;color:#222; }
24 -.toc-toggle { background:none;border:none;cursor:pointer;color:#555;font-size:14px;padding:0 2px;line-height:1; }
25 -.toc-toggle:hover { color:#222; }
24 +.doc-toc.is-fixed {
25 + position:fixed;
26 + width:200px;
27 + overflow-y:auto;
28 + /* Below XWiki navbar (~1000) and action bars (~100) */
29 + z-index:10;
30 +}
31 +.toc-header {
32 + display:flex;justify-content:space-between;align-items:center;
33 + margin-bottom:10px;
34 +}
35 +.toc-header strong {
36 + font-size:13px;font-weight:700;color:#222222;
37 + text-transform:none;letter-spacing:0;
38 +}
39 +.toc-toggle {
40 + background:none;border:none;cursor:pointer;
41 + color:#555555;font-size:14px;padding:0 2px;line-height:1;
42 +}
43 +.toc-toggle:hover { color:#222222; }
26 26  .doc-toc ul { list-style:none;margin:0;padding:0; }
27 27  .doc-toc li { margin:0; }
28 -.doc-toc a { display:block;padding:3px 0;color:#555;text-decoration:none;border-left:2px solid transparent;transition:color .12s; }
29 -.doc-toc a:hover { color:#222;text-decoration:underline; }
30 -.doc-toc a.toc-on { color:#222;font-weight:700;border-left:2px solid #005AB4;padding-left:5px; }
31 -.tl1 > a { font-weight:600;color:#222; }
46 +.doc-toc a {
47 + display:block;padding:3px 0;
48 + color:#555555;text-decoration:none;
49 + border-left:2px solid transparent;
50 + transition:color .12s;
51 +}
52 +.doc-toc a:hover { color:#222222;text-decoration:underline; }
53 +.doc-toc a.toc-on {
54 + color:#222222;font-weight:700;
55 + border-left:2px solid #005AB4;padding-left:5px;
56 +}
57 +.tl1 > a { font-weight:600; color:#222222; }
32 32  .tl2 > a { padding-left:14px; }
33 33  .tl3 > a { padding-left:26px;font-size:12px; }
34 34  
35 -/* ── Typography ── */
36 -.doc-content h1 { font-size:1.6em;font-weight:700;color:#222;margin:0 0 6px 0;border:none; }
37 -.rn-meta { font-size:.8em;color:#555;margin:0 0 28px 0; }
38 -.doc-content h2 { font-size:1.15em;font-weight:700;color:#222;margin:36px 0 10px 0;display:flex;align-items:baseline;gap:7px;scroll-margin-top:16px; }
39 -.doc-content h3 { font-size:1em;font-weight:700;color:#222;margin:22px 0 8px 0;display:flex;align-items:baseline;gap:6px;scroll-margin-top:16px; }
40 -.doc-content h4 { font-size:.93em;font-weight:700;color:#222;margin:14px 0 6px 0;display:flex;align-items:baseline;gap:5px;scroll-margin-top:16px; }
61 +/* Typography */
62 +.doc-content h1 {
63 + font-size:1.6em;font-weight:700;color:#222222;
64 + margin:0 0 6px 0;border:none;
65 +}
66 +.rn-meta { font-size:.8em;color:#555555;margin:0 0 28px 0; }
67 +.doc-content h2 {
68 + font-size:1.15em;font-weight:700;color:#222222;
69 + margin:36px 0 10px 0;
70 + display:flex;align-items:baseline;gap:7px;
71 + scroll-margin-top:16px;
72 +}
73 +.doc-content h3 {
74 + font-size:1em;font-weight:700;color:#222222;
75 + margin:22px 0 8px 0;
76 + display:flex;align-items:baseline;gap:6px;
77 + scroll-margin-top:16px;
78 +}
79 +.doc-content h4 {
80 + font-size:.93em;font-weight:700;color:#222222;
81 + margin:14px 0 6px 0;
82 + display:flex;align-items:baseline;gap:5px;
83 + scroll-margin-top:16px;
84 +}
41 41  .doc-content p { font-size:.93em;color:#333;line-height:1.75;margin:0 0 12px 0; }
42 -.doc-content strong { color:#222; }
43 -.doc-content code { background:#f5f5f5;border:1px solid #E8E8E8;border-radius:3px;padding:1px 5px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:.82em;color:#222;line-height:1; }
86 +.doc-content strong { color:#222222; }
87 +code { background:#f5f5f5;border:1px solid #E8E8E8;border-radius:3px;padding:1px 5px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:.82em;color:#222222; }
44 44  
45 -/* ── Anchor icon ── */
46 -.anchor-icon { color:#E8E8E8;text-decoration:none;opacity:0;transition:opacity .15s;vertical-align:middle;margin-left:4px;display:inline-flex;align-items:center; }
89 +/* Anchor icon */
90 +.anchor-icon {
91 + color:#E8E8E8;text-decoration:none;opacity:0;
92 + transition:opacity .15s;vertical-align:middle;margin-left:4px;
93 + display:inline-flex;align-items:center;
94 +}
47 47  h2:hover .anchor-icon,h3:hover .anchor-icon,h4:hover .anchor-icon { opacity:1; }
48 48  .anchor-icon:hover { color:#005AB4; }
49 49  
50 -/* ── Callout notes ── */
51 -.note { border-radius:6px;padding:12px 16px;margin:14px 0;border:1px solid transparent; }
52 -.note-info { background:#e1f1f9 !important;border-color:#b3d4ee !important;border-left:4px solid #005AB4 !important; }
53 -.note-warning { background:#fff4ec !important;border-color:#f5cba7 !important;border-left:4px solid #DD5600 !important; }
54 -.note-tip { background:#e5f3df !important;border-color:#b7dba5 !important;border-left:4px solid #73A839 !important; }
55 -.note-hd { font-weight:700;font-size:.85em;display:flex;align-items:center;gap:5px;margin-bottom:5px; }
56 -.note-info .note-hd { color:#003d80 !important; }
57 -.note-warning .note-hd { color:#a03d00 !important; }
58 -.note-tip .note-hd { color:#3d6b1a !important; }
59 -.note-body { font-size:.875em;color:#222 !important;line-height:1.65; }
98 +/* Oracle-style Note box: border only, no fill */
99 +.note {
100 + border:1px solid #E8E8E8;border-radius:6px;
101 + padding:12px 16px;margin:14px 0;
102 +}
103 +.note-hd {
104 + font-weight:700;font-size:.875em;
105 + display:flex;align-items:center;gap:5px;
106 + margin-bottom:6px;
107 +}
108 +.note-body { font-size:.875em;color:#333;line-height:1.65; }
60 60  
61 -/* ── Section index list ── */
62 -.section-index { list-style:disc;padding-left:20px;margin:0 0 20px 0; }
110 +/* Oracle-style section index list */
111 +.section-index {
112 + list-style:disc;padding-left:20px;margin:0 0 20px 0;
113 +}
63 63  .section-index li { margin-bottom:12px; }
64 -.section-index li a { color:#005AB4;font-weight:600;font-size:.93em;text-decoration:underline; }
65 -.section-index li p { margin:3px 0 0 0;font-size:.875em;color:#333;line-height:1.6; }
115 +.section-index li a {
116 + color:#005AB4;font-weight:600;font-size:.93em;
117 + text-decoration:underline;
118 +}
119 +.section-index li p {
120 + margin:3px 0 0 0;font-size:.875em;color:#333;line-height:1.6;
121 +}
66 66  
67 -/* ── Parent topic ── */
68 -.parent-topic { font-size:.82em;color:#555;margin:18px 0 24px 0;border-top:1px solid #E8E8E8;padding-top:10px; }
123 +/* Parent topic */
124 +.parent-topic {
125 + font-size:.82em;color:#555555;margin:18px 0 24px 0;
126 + border-top:1px solid #E8E8E8;padding-top:10px;
127 +}
69 69  .parent-topic a { color:#005AB4; }
70 70  
71 -/* ── Accordion ── */
72 -details.acc { border:1px solid #E8E8E8;border-radius:4px;margin-bottom:5px; }
73 -details.acc summary { display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;list-style:none;background:none;user-select:none; }
130 +/* Accordion — Oracle subsection feel */
131 +details.acc {
132 + border:1px solid #E8E8E8;border-radius:4px;
133 + margin-bottom:5px;
134 +}
135 +details.acc summary {
136 + display:flex;align-items:center;gap:8px;
137 + padding:9px 12px;cursor:pointer;list-style:none;
138 + background:none;user-select:none;
139 +}
74 74  details.acc summary::-webkit-details-marker { display:none; }
75 -details.acc summary::before { content:'▶';font-size:.58em;color:#555;transition:transform .18s;flex-shrink:0; }
141 +details.acc summary::before {
142 + content:'▶';font-size:.58em;color:#555555;
143 + transition:transform .18s;flex-shrink:0;
144 +}
76 76  details.acc[open] summary::before { transform:rotate(90deg); }
77 77  details.acc summary:hover { background:#f5f5f5; }
78 -.acc-num { font-size:.8em;color:#555;min-width:28px;font-weight:600; }
79 -.acc-title { font-size:.9em;font-weight:700;color:#222;flex:1; }
147 +.acc-num { font-size:.8em;color:#555555;min-width:28px;font-weight:600; }
148 +.acc-title { font-size:.9em;font-weight:700;color:#222222;flex:1; }
80 80  .acc-body { padding:10px 14px 12px 14px;font-size:.88em;color:#333;line-height:1.7; }
81 81  
82 -/* ── Images ── */
83 -.fig { margin:12px auto 24px auto;width:fit-content;max-width:100%; }
84 -.fig img { border-radius:4px 4px 0 0;border:1px solid #E8E8E8;display:block;cursor:zoom-in;max-width:100%;box-shadow:0 1px 4px rgba(0,0,0,.10);transition:box-shadow .15s; }
85 -.fig img:hover { box-shadow:0 3px 12px rgba(0,90,180,.18); }
86 -.fig-cap { font-size:.78em;color:#555;margin:0;padding:5px 8px;background:#f5f5f5;border:1px solid #E8E8E8;border-top:none;border-radius:0 0 4px 4px;display:block;width:100%;box-sizing:border-box; }
151 +/* Images */
152 +.fig { margin:12px 0 22px 0; }
153 +.fig img {
154 + border-radius:4px;border:1px solid #E8E8E8;display:block;
155 + cursor:zoom-in;transition:box-shadow .15s;max-width:100%;
156 +}
157 +.fig img:hover { box-shadow:0 2px 10px rgba(0,90,180,.15); }
158 +.fig-cap { font-size:.78em;color:#555555;font-style:italic;margin:4px 0 0 0; }
87 87  
88 -/* ── Lightbox ── */
160 +/* Lightbox */
89 89  #rn-lb { display:none;position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.8);cursor:zoom-out;align-items:center;justify-content:center; }
90 90  #rn-lb.open { display:flex; }
91 91  #rn-lb-wrap { position:relative;cursor:default;max-width:92vw;max-height:90vh; }
... ... @@ -93,18 +93,18 @@
93 93  #rn-lb-x { position:absolute;top:-13px;right:-13px;background:#005AB4;color:#fff;width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center; }
94 94  #rn-lb-cap { position:fixed;bottom:18px;left:50%;transform:translateX(-50%);color:#ddd;font-size:.78em;background:rgba(0,0,0,.55);padding:3px 12px;border-radius:14px;pointer-events:none; }
95 95  
96 -/* ── Back to top ── */
168 +/* Back to top */
97 97  #rn-top { position:fixed;bottom:24px;right:24px;z-index:9997;width:36px;height:36px;border-radius:50%;background:#005AB4;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(8px);transition:opacity .22s,transform .22s;pointer-events:none;box-shadow:0 2px 8px rgba(0,90,180,.3); }
98 98  #rn-top.on { opacity:1;transform:translateY(0);pointer-events:auto; }
99 99  #rn-top:hover { background:#0066cc; }
100 100  
101 -/* ── Toast ── */
102 -.rn-toast { position:fixed;bottom:66px;right:24px;z-index:9999;background:#222;color:#fff;font-size:.74em;padding:4px 11px;border-radius:4px;pointer-events:none;opacity:0;transition:opacity .18s; }
173 +/* Toast */
174 +.rn-toast { position:fixed;bottom:66px;right:24px;z-index:9999;background:#222222;color:#fff;font-size:.74em;padding:4px 11px;border-radius:4px;pointer-events:none;opacity:0;transition:opacity .18s; }
103 103  .rn-toast.on { opacity:1; }
104 104  
105 -/* ── Tables ── */
177 +/* Tables */
106 106  .rn-table { width:100%;border-collapse:collapse;margin:8px 0 18px 0;font-size:.875em; }
107 -.rn-table th { background:#f5f5f5;text-align:left;padding:7px 12px;font-size:.78em;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#555;border-bottom:2px solid #E8E8E8; }
179 +.rn-table th { background:#f5f5f5;text-align:left;padding:7px 12px;font-size:.78em;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#555555;border-bottom:2px solid #E8E8E8; }
108 108  .rn-table td { padding:7px 12px;border-bottom:1px solid #E8E8E8;color:#333;vertical-align:top; }
109 109  .rn-table tr:last-child td { border-bottom:none; }
110 110  .rn-table tr:hover td { background:#f5f5f5; }
... ... @@ -128,6 +128,7 @@
128 128  
129 129  <!-- ── CONTENT ── -->
130 130  <div class="doc-content">
203 +
131 131   <ul class="section-index">
132 132  <li><a href="#s-login">1. System Login</a><p>How to access the CENTO web interface, log in, and switch users.</p></li>
133 133  <li><a href="#s-ui">2. User Interface</a><p>Overview of the main menu, SCADA diagrams, analysis tools, logs, reports, and notifications.</p></li>
... ... @@ -140,20 +140,20 @@
140 140   <p>Users log in to CENTO through a web interface. Supported browsers: Google Chrome, Microsoft Edge, etc.</p>
141 141   <p>Enter the server IP or DNS address — for example <code>http://192.168.80.10/</code> or <code>https://demotest.centosoftware.com/</code>. When working directly on the server, use <code>http://127.0.0.1</code>.</p>
142 142   <div class="fig">
143 - <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/1762985411819-434.png" alt="CENTO login form with username and password fields and a Login button" style="max-width:320px;" onclick="openLightbox(this)"/>
216 + <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/1762985411819-434.png" alt="Figure 1.1. Authorization page" style="max-width:320px;" onclick="openLightbox(this)"/>
144 144   <p class="fig-cap">Figure 1.1. Authorization page</p>
145 145  </div>
146 - <div class="note note-info">
147 - <div class="note-hd"><span>ℹ</span> Note</div>
219 + <div class="note">
220 + <div class="note-hd" style="color:#005AB4"><span>ℹ</span> Note</div>
148 148   <div class="note-body">Enter username and password and click <strong>Login</strong>. If credentials are incorrect, the message <em>User with the entered parameters not found!</em> appears.</div>
149 149  </div>
150 150   <div class="fig">
151 - <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-12-01%20at%2009.20.57.png" alt="CENTO main interface panel showing top navigation bar with Diagrams, Analysis, Reports, Logs, and Settings menus" style="max-width:100%;" onclick="openLightbox(this)"/>
224 + <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-12-01%20at%2009.20.57.png" alt="Figure 1.2. Main panel" style="max-width:100%;" onclick="openLightbox(this)"/>
152 152   <p class="fig-cap">Figure 1.2. Main panel</p>
153 153  </div>
154 154   <p>To switch users, open the drop-down menu in the upper right corner and select <strong>Logout</strong>.</p>
155 155   <div class="fig">
156 - <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/1762985502322-231.png" alt="User drop-down menu in the upper right corner with the Logout option highlighted" style="max-width:280px;" onclick="openLightbox(this)"/>
229 + <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/1762985502322-231.png" alt="Figure 1.3. System logout" style="max-width:280px;" onclick="openLightbox(this)"/>
157 157   <p class="fig-cap">Figure 1.3. System logout</p>
158 158  </div>
159 159   <div class="fig">
... ... @@ -259,8 +259,8 @@
259 259  </div>
260 260  
261 261   <h4 id="s-control">2.2.1 Control<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-control')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h4>
262 - <div class="note note-warning">
263 - <div class="note-hd"><span>⚠</span> Warning</div>
335 + <div class="note">
336 + <div class="note-hd" style="color:#DD5600"><span>⚠</span> Warning</div>
264 264   <div class="note-body">Control actions affect live equipment. Confirm the correct object is selected before executing any command.</div>
265 265  </div>
266 266   <p>Remote switching, setpoint changes, and group commands are executed directly from mimic diagrams. Access is governed by user permissions in the Information Model.</p>
... ... @@ -420,8 +420,8 @@
420 420  
421 421   <h3 id="s-sound">2.8 Sound Alerts<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-sound')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3>
422 422   <p>Audible browser alerts for events matching configured conditions. Enabled per user in personal settings.</p>
423 - <div class="note note-warning">
424 - <div class="note-hd"><span>⚠</span> Warning</div>
496 + <div class="note">
497 + <div class="note-hd" style="color:#DD5600"><span>⚠</span> Warning</div>
425 425   <div class="note-body">Requires the browser tab to remain active. Backgrounded tabs may experience delayed alerts.</div>
426 426  </div>
427 427  
... ... @@ -634,32 +634,6 @@
634 634   window.addEventListener('resize', update, {passive:true});
635 635   }); });
636 636   })();
637 -
638 - /* ── Left panel navigation hints ── */
639 - (function(){
640 - var hints = {
641 - 'Preface': 'Introduction to CENTO Software documentation',
642 - '1. User Manual': 'Web interface guide — login, diagrams, analysis, logs, reports',
643 - '2. Setup Manual': 'System configuration and setup for administrators',
644 - '3. Metering Channels': 'Metering channel configuration and data collection setup',
645 - '4. Structure and Modules Description': 'CENTO system architecture and module overview',
646 - '5. Diagrams Development Manual': 'Creating and configuring SCADA mimic diagrams',
647 - '6. Flexible Reports Guide': 'Building configurable tabular reports from metering data',
648 - '7. Events Setup': 'Configuring event rules, thresholds, and notifications',
649 - '8. Control Setup Manual': 'Setting up remote control and switching operations',
650 - 'Network Diagram (CLOUD)': 'CENTO deployment topology for cloud installations',
651 - 'Network Diagram (On-Prem)': 'CENTO deployment topology for on-premises installations',
652 - 'Server Configuration Example': 'Reference server setup and configuration example',
653 - 'Technical Requirements': 'Hardware and software requirements for CENTO deployment',
654 - 'DEMO server': 'Access the live CENTO demo environment',
655 - 'Release Notes': 'Changelog and version history for the CENTO platform',
656 - };
657 - document.querySelectorAll('#leftPanels a').forEach(function(a){
658 - var text = a.textContent.trim();
659 - var hint = hints[text] || hints[text.replace(/^\d+\.\s*/, '')];
660 - if (hint) a.setAttribute('data-hint', hint);
661 - });
662 - })();
663 663  })();
664 664  </script>
665 665  {{/html}}