Skip to content

Commit 49ba1f5

Browse files
sadminsadmin
sadmin
authored and
sadmin
committed
2 parents b2de9d6 + 3f470b7 commit 49ba1f5

File tree

2 files changed

+174
-47
lines changed

2 files changed

+174
-47
lines changed

README.md

+174-47
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,190 @@
11
# SimpleExtJSApp
2-
Simple ExtJS Application for DSM 7.0 :<br><br>
3-
This part includes a test.cgi, which is verifying the authentication of the current user under DSM. <br>
4-
The CGI must be called via an Ajax request to the "/webman/3rdparty/simpleextjsapp/test.cgi" URL <br>
2+
The aim of this sample application is to demonstrate the usage of the DSM framework based on ExtJS<br><br>
3+
This part includes :
4+
- A test.cgi : it will verify the authentication of the current user under DSM before executing itself (inspired from the DSM Developper's Guide)
5+
- A tar of the API docs : to document the usage of each UI component under DSM (in the docs folder)
56

6-
The package part can be generated in the spksrc repo in the simpleextjsapp branch. <br>
7+
This repo doesn't include :
8+
- The SPK package for SimpleExtJSApp (for that check at the SimpleExtJSApp source in the useful links part)
79

8-
Application: <br>
10+
Notes :
11+
- The CGI must be called via an Ajax request to the "/webman/3rdparty/simpleextjsapp/test.cgi" URL <br>
12+
- Once the SPK is installed on the NAS, the test.cgi will be located in "/usr/syno/synoman/webman/3rdparty/simpleextjsapp/test.cgi"
13+
- The package part can be generated via SPKSRC
914

10-
![synoextjs](https://user-images.githubusercontent.com/57635141/116126847-69e12e80-a6c7-11eb-8fb2-ba0f1bb5953f.png)
15+
Demo Application: <br>
1116

12-
Integrated docs: <br>
17+
![GUI1](https://user-images.githubusercontent.com/57635141/116535086-a38e8100-a8e3-11eb-9fb2-883a69d384ce.png) <br>
18+
![GUI2](https://user-images.githubusercontent.com/57635141/116535121-ad17e900-a8e3-11eb-9293-7ed15f171059.png) <br>
19+
20+
Integrated API docs: <br>
1321
![docs](https://user-images.githubusercontent.com/57635141/116140367-871df900-a6d7-11eb-9ba5-602bd9f5e5ba.png)
1422

1523
This page is to be considered as a work in progress with more information to come : ) <br>
1624

17-
# Synology DSM 7.0
18-
The Synology DSM 7.0 client part is based on ExtJS 3.4 library <br><br>
25+
# Synology DSM info
26+
The Synology DSM client part is based on ExtJS 3.4 library <br><br>
27+
28+
Below is the location of each part of the DSM client framework :<br>
29+
30+
| DSM client part | Location on NAS |
31+
|----------|:-------------:|
32+
| Synology JS lib | /usr/syno/synoman/synoSDSjslib/sds.js |
33+
| Synology ExtJS UX widgets | /usr/syno/synoman/scripts/ext-3.4/ux/ux-all.js |
34+
| ExtJS 3.4 | /usr/syno/synoman/scripts/ext-3.4/ext-all.js |
1935

20-
Synology JS lib location : /usr/syno/synoman/synoSDSjslib/sds.js <br>
21-
ExtJS 3.4 location : /usr/syno/synoman/scripts/ext-3.4/ext-all.js <br>
22-
Synology ExtJS additional UX widgets : /usr/syno/synoman/scripts/ext-3.4/ux/ux-all.js <br>
2336

24-
# ExtJS 3.4 framework docs
37+
# ExtJS 3.4 framework info
2538
Available at : http://cdn.sencha.com/ext/gpl/3.4.1.1/release-notes.html<br>
2639

40+
# Useful links
41+
42+
Usage of ExtJS in DSM : https://github.com/SynoCommunity/spksrc/tree/master/spk/debian-chroot/src <br>
43+
Usage of ExtJS + API in DSM : https://github.com/Rutorai/syno-library/wiki <br>
44+
Example for writing API : https://github.com/Rutorai/syno-library/tree/develop/package/ <br>
45+
SimpleExtJSApp source : https://github.com/DigitalBox98/spksrc/tree/simpleextjsapp/spk/simpleextjsapp/src/app <br>
46+
47+
# How the documentation is generated :
48+
49+
The original/commented files are inside the docs/synoextjsdocs-source.tar.gz file.
50+
JSduck is required to generate the documentation
51+
52+
To generate the documentation, the steps are quite simple :
53+
- tar -xvf synoextjsdocs-source.tar.gz file
54+
- cd SynoExtJSDocs
55+
- jsduck syno/ --output docs
56+
57+
# How the documentation is enriched :
58+
59+
The steps to enrich the API documentation is as below :
60+
- If possible, before enriching the documentation, the SimpleExtJSApp application will be updated to contain the additional GUI component
61+
- Add comments for the desired DSM component in the corresponding source file in the "syno" directory
62+
- Identify if this component extends from ExtJS 3.4 component
63+
- If so, copy the corresponding ExtJS 3.4 source file from the "ext-3.4.1/src/" directory to the "syno/scripts/ext-3.4/src/" directory by applying the same directory structure
64+
- Follow the next steps described in "how the documentation is generated"
65+
66+
That's it ! <br>
67+
68+
Below is an example of comments added which will be used during the documentation generation : <br>
69+
70+
```javascript
71+
/**
72+
* @class SYNO.ux.Button
73+
* @extends Ext.Button
74+
* Simple Button class
75+
* @xtype syno_button
76+
*
77+
*/
78+
```
79+
2780
# Documentation in progress :
2881

29-
- done : SYNO.ux.Button (xtype: "syno_button") <br>
30-
- done : SYNO.ux.Checkbox (xtype: "syno_checkbox") <br>
31-
- done : SYNO.ux.DisplayField (xtype: "syno_displayfield") <br>
32-
- SYNO.ColorField (xtype: "syno_colorfield") <br>
33-
- SYNO.ux.ComboBox (xtype: "syno_combobox") <br>
34-
- SYNO.ux.CoverPanel (xtype: "syno_coverpanel") <br>
35-
- SYNO.ux.GridPanel (xtype: "syno_gridpanel") <br>
36-
- SYNO.ux.DateField (xtype: "syno_datefield") <br>
37-
- SYNO.ux.DateTimeField (xtype: "syno_datetimefield") <br>
38-
- SYNO.ux.TimePickerField (xtype: "syno_timepickerfield") <br>
39-
- SYNO.ux.DateTimePicker (xtype: "syno_datetimepickerfield") <br>
40-
41-
- SYNO.ux.EditorGridPanel (xtype: "syno_editorgrid") <br>
42-
- SYNO.ux.FieldSet (xtype: "syno_fieldset") <br>
43-
- SYNO.ux.FileButton (xtype: "syno_filebutton") <br>
44-
- SYNO.ux.FormPanel (xtype: "syno_formpanel") <br>
45-
- SYNO.ux.Menu (xtype: "syno_menu") <br>
46-
- SYNO.ux.ModuleList (xtype: "syno_modulelist") <br>
47-
- SYNO.ux.NumberField (xtype: "syno_numberfield") <br>
48-
- SYNO.ux.PagingToolbar (xtype: "syno_paging") <br>
49-
- SYNO.ux.Panel (xtype: "syno_panel") <br>
50-
- SYNO.ux.RadioGroup (xtype: "syno_radio") <br>
51-
- SYNO.ux.Radio (xtype: "syno_radio") <br>
52-
- SYNO.ux.SingleSlider (xtype: "syno_singleslider") <br>
53-
- SYNO.ux.SplitButton (xtype: "syno_splitbutton") <br>
54-
- SYNO.ux.StateButtonGroup (xtype: "syno_statebuttongroup") <br>
55-
- SYNO.ux.Switch (xtype: "syno_switch") <br>
56-
- SYNO.ux.TabPanel (xtype: "syno_tabpanel") <br>
57-
- SYNO.ux.TextArea (xtype: "syno_textarea") <br>
58-
- SYNO.ux.TextField (xtype: "syno_textfield") <br>
59-
- SYNO.ux.MacTextField (xtype: "syno_mactextfield") <br>
60-
- SYNO.ux.SearchField (xtype: "syno_searchfield") <br>
61-
- SYNO.ux.TimeField (xtype: "syno_timefield") <br>
62-
- SYNO.ux.Toolbar (xtype: "syno_toolbar") <br>
82+
- UX part :<br><br>
83+
84+
| Widget | Documentation |
85+
|----------|:-------------:|
86+
| SYNO.ux.AriaComponent | |
87+
| SYNO.ux.BackNextBtnGroup (xtype: "syno_backnextbtngroup") | |
88+
| SYNO.ux.Button (xtype: "syno_button") | :ok: |
89+
| SYNO.ux.Checkbox (xtype: "syno_checkbox") | :ok: |
90+
| SYNO.ux.ColorField (xtype: "syno_colorfield") | |
91+
| SYNO.ux.ComboBox (xtype: "syno_combobox") | |
92+
| SYNO.ux.CompositeField (xtype: "syno_compositefield") | |
93+
| SYNO.ux.CoverPanel (xtype: "syno_coverpanel")| |
94+
| SYNO.ux.DDGridPanel (xtype: "syno_dd_gridpanel") | |
95+
| SYNO.ux.DataViewAnimation | |
96+
| SYNO.ux.DataViewMask | |
97+
| SYNO.ux.DateField (xtype: "syno_datefield") | |
98+
| SYNO.ux.DateMenu | |
99+
| SYNO.ux.DatePicker | |
100+
| SYNO.ux.DateTime.SubMenu (xtype: "syno_datetime_submenu") | |
101+
| SYNO.ux.DateTimeField (xtype: "syno_datetimefield") | |
102+
| SYNO.ux.DateTimeMenu | |
103+
| SYNO.ux.DateTimePicker (xtype: "syno_datetimepickerfield") | |
104+
| SYNO.ux.DisplayField (xtype: "syno_displayfield") | :ok: |
105+
| SYNO.ux.EditorGridPanel (xtype: "syno_editorgrid") | |
106+
| SYNO.ux.EnableColumn | |
107+
| SYNO.ux.ExpandableListView | |
108+
| SYNO.ux.FieldSet (xtype: "syno_fieldset") | |
109+
| SYNO.ux.FileButton (xtype: "syno_filebutton") | |
110+
| SYNO.ux.FixColGrid (xtype: "syno_fixedcolumn_grid") | |
111+
| SYNO.ux.FleXcroll.ComboBox | |
112+
| SYNO.ux.FleXcroll.DataView (xtype: "syno_flexcroll_dataview") | |
113+
| SYNO.ux.FleXcroll.grid.BufferView | |
114+
| SYNO.ux.FleXcroll.grid.GridView | |
115+
| SYNO.ux.FleXcroll.grid.HorizontalGridView | |
116+
| SYNO.ux.FleXcroll.grid.TreeView | |
117+
| SYNO.ux.FloatLayout | |
118+
| SYNO.ux.FormPanel (xtype: "syno_formpanel") | |
119+
| SYNO.ux.GridPanel (xtype: "syno_gridpanel") | |
120+
| SYNO.ux.GroupingView | |
121+
| SYNO.ux.HistoryRecorder | |
122+
| SYNO.ux.HorizontalGridPanel (xtype: "syno_h_gridpanel") | |
123+
| SYNO.ux.InvalidQuickTip (xtype: "syno_invalidquicktip") | |
124+
| SYNO.ux.InverseFieldSet (xtype: "syno_inversefieldset") | |
125+
| SYNO.ux.MacTextField (xtype: "syno_mactextfield") | |
126+
| SYNO.ux.Menu (xtype: "syno_menu") | |
127+
| SYNO.ux.ModuleList (xtype: "syno_modulelist") | |
128+
| SYNO.ux.NumberField (xtype: "syno_numberfield") | |
129+
| SYNO.ux.OperatableListView | |
130+
| SYNO.ux.PageLessToolbar (xtype: "syno_pageless") | |
131+
| SYNO.ux.PagingToolbar (xtype: "syno_paging") | |
132+
| SYNO.ux.PagingToolbar (xtype: "syno_paging") | |
133+
| SYNO.ux.Panel (xtype: "syno_panel") | |
134+
| SYNO.ux.Radio (xtype: "syno_radio") | |
135+
| SYNO.ux.RadioGroup (xtype: "syno_radio") | |
136+
| SYNO.ux.ScheduleField (xtype: "syno_schedulefield") | |
137+
| SYNO.ux.ScheduleSelector | |
138+
| SYNO.ux.ScheduleTable | |
139+
| SYNO.ux.ScheduleTableField | |
140+
| SYNO.ux.SearchField (xtype: "syno_searchfield") | |
141+
| SYNO.ux.SingleSlider (xtype: "syno_singleslider") | |
142+
| SYNO.ux.SliderField (xtype: "syno_sliderfield") | |
143+
| SYNO.ux.SplitButton (xtype: "syno_splitbutton") | |
144+
| SYNO.ux.SplitButton (xtype: "syno_splitbutton") | |
145+
| SYNO.ux.StateButtonGroup (xtype: "syno_statebuttongroup")| |
146+
| SYNO.ux.StateButtonGroup | |
147+
| SYNO.ux.StatusProxy | |
148+
| SYNO.ux.SuperBoxSelect (xtype: "syno_superboxselect") | |
149+
| SYNO.ux.SuperBoxSelectItem | |
150+
| SYNO.ux.Switch (xtype: "syno_switch") | |
151+
| SYNO.ux.SwitchColumn (xtype: "syno_swtichcolumn") | |
152+
| SYNO.ux.TabPanel (xtype: "syno_tabpanel") | |
153+
| SYNO.ux.TextArea (xtype: "syno_textarea") | |
154+
| SYNO.ux.TextField (xtype: "syno_textfield") | |
155+
| SYNO.ux.TextFilter (xtype: "syno_textfilter") | |
156+
| SYNO.ux.TimeField (xtype: "syno_timefield") | |
157+
| SYNO.ux.TimePickerField (xtype: "syno_timepickerfield") | |
158+
| SYNO.ux.Toolbar (xtype: "syno_toolbar") | |
159+
| SYNO.ux.TreePanel | |
160+
| SYNO.ux.TriModeCheckbox | |
161+
| SYNO.ux.WhiteQuickTip | |
162+
| SYNO.ux.WhiteTipIcon | |
163+
| SYNO.ux._ButtonARIA | |
164+
| SYNO.ux._CheckboxARIA | |
165+
| SYNO.ux._ComboboxARIA | |
166+
| SYNO.ux._ComponentARIA | |
167+
| SYNO.ux._DataViewARIA | |
168+
| SYNO.ux._GridPanelARIA | |
169+
| SYNO.ux._MenuARIA | |
170+
| SYNO.ux._SliderARIA | |
171+
| SYNO.ux._TabPanelARIA | |
172+
| SYNO.ux._TreePanelARIA | |
173+
| SYNO.ux.data.TreeReader | |
174+
| SYNO.ux.grid.GridView.SplitDragZone | |
175+
| SYNO.ux.plugin.GroupHeaderGrid | |
176+
| SYNO.ux.plugin.StyledGrid | |
177+
178+
179+
- SDS part : <br><br>
180+
181+
| Component | Documentation |
182+
|----------|:-------------:|
183+
| SYNO.SDS.AbstractWindow | |
184+
| SYNO.SDS.BaseWindow | |
185+
| SYNO.SDS.Window | |
186+
| SYNO.SDS.ModalWindow | |
187+
| SYNO.SDS.AppWindow | |
188+
| SYNO.SDS.AppInstance | |
63189

190+
<br>

docs/synoextjsdocs-source.tar.gz

12.7 MB
Binary file not shown.

0 commit comments

Comments
 (0)