Skip to content

Commit 50c940b

Browse files
V1.0.0 (#1)
# Release 1.0.0 ## New features - Prepared for PersistentData features (not used so far) ## Improvements - Requires userlevel "Service" to provide UI ## Bugfix - Download of first preselected file did not work after app reboot
1 parent d3ce7ae commit 50c940b

11 files changed

Lines changed: 1480 additions & 340 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
# Changelog
22
All notable changes to this project will be documented in this file.
33

4-
## Release 0.1.0
5-
- Initial commit
4+
## Release 1.0.0
65

76
### New features
8-
- ...
7+
- Prepared for PersistentData features (not used so far)
98

109
### Improvements
11-
- ...
10+
- Requires userlevel "Service" to provide UI
1211

1312
### Bugfix
14-
- ...
13+
- Download of first preselected file did not work after app reboot
14+
15+
## Release 0.1.0
16+
- Initial commit

CSK_Module_FileManager/pages/pages/CSK_Module_FileManager/CSK_Module_FileManager.html

Lines changed: 121 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -2,95 +2,134 @@
22
<layout-column id="ColumnLayout1" style="align-items:stretch">
33
<stacked-view id="SV_Login">
44
<stacked-pane id="SP_LoginOK" value="true">
5-
<layout-column id="Column_PersistentData"
6-
class="myCustomFrame_CSK_Module_FileManager"
7-
style="align-items: stretch">
8-
<layout-row id="RowLayout4"
9-
style="justify-content: space-between; align-items: center">
10-
<layout-column id="ColumnLayout5" style="align-items: stretch">
11-
<davinci-value-display id="VD_ParameterName" value="Parameter name:"
12-
title="Name of the parameters within the CSK_PersistentData module to be uses for this module.">
13-
</davinci-value-display>
14-
</layout-column>
15-
<layout-column id="ColumnLayout6" style="align-items: stretch">
16-
<davinci-text-field id="TF_ParameterName" type="text"
17-
title="Name of the parameters within the CSK_PersistentData module to be uses for this module.">
18-
<crown-edpws-binding property="value"
19-
name="CSK_FileManager/OnNewParameterName" update-on-resume>
20-
</crown-edpws-binding>
21-
<crown-binding event="change" name="CSK_FileManager/setParameterName"
22-
path="param/args/name" auto-commit>
23-
</crown-binding>
24-
<crown-edpws-binding property="disabled"
25-
name="CSK_FileManager/OnPersistentDataModuleAvailable"
26-
update-on-resume converter="function(value) {return !value;}">
27-
</crown-edpws-binding>
28-
</davinci-text-field>
29-
</layout-column>
30-
</layout-row>
31-
<layout-row id="RowLayout2"
32-
style="justify-content: space-between; align-items: center">
33-
<davinci-value-display id="VD_LoadConfig"
34-
value="Load config on app start:"
35-
title="Load configured parameters from CSK_PersistentData on app start.">
36-
</davinci-value-display>
37-
<davinci-checkbox id="CB_LoadConfig"
38-
title="Load configured parameters from CSK_PersistentData on app start.">
39-
<span></span>
40-
<crown-edpws-binding property="checked"
41-
name="CSK_FileManager/OnNewStatusLoadParameterOnReboot"
42-
update-on-resume>
5+
<layout-row id="RowLayout5">
6+
<layout-column id="ColumnLayout7" style="align-items: stretch">
7+
<layout-row id="RowLayout2"
8+
class="myCustomFrame_CSK_Module_FileManager">
9+
<layout-column id="ColumnLayout2" style="align-items: stretch">
10+
<layout-row id="RowLayout4" style="justify-content: flex-end">
11+
<davinci-value-display id="VD_FreeUsedSpace">
12+
<crown-edpws-binding property="value"
13+
name="CSK_FileManager/OnNewStatusDiskInfo" update-on-resume>
14+
</crown-edpws-binding>
15+
</davinci-value-display>
16+
</layout-row>
17+
<davinci-drop-down id="DD_FileSource" label="File source:">
18+
<crown-edpws-binding property="data"
19+
name="CSK_FileManager/OnNewStatusAvailableSources"
20+
update-on-resume converter="convertToList">
21+
</crown-edpws-binding>
22+
<crown-edpws-binding property="value"
23+
name="CSK_FileManager/OnNewStatusSelectedSource" update-on-resume>
24+
</crown-edpws-binding>
25+
<crown-binding event="change" name="CSK_FileManager/selectFileSource"
26+
path="param/args/source" auto-commit>
27+
</crown-binding>
28+
</davinci-drop-down>
29+
<davinci-drop-down id="DD_FileList" label="Select file:"
30+
title="Info: Empty folders are not listed.">
31+
<crown-edpws-binding property="data"
32+
name="CSK_FileManager/OnNewStatusFileList" update-on-resume
33+
converter="convertToList">
34+
</crown-edpws-binding>
35+
<crown-edpws-binding property="value"
36+
name="CSK_FileManager/OnNewStatusSelectedFile" update-on-resume>
37+
</crown-edpws-binding>
38+
<crown-binding event="change" name="CSK_FileManager/selectFile"
39+
path="param/args/filename" auto-commit>
40+
</crown-binding>
41+
</davinci-drop-down>
42+
<davinci-button id="Button_Delete" type="accent"
43+
icon-position="append" title="Delete selected file.">
44+
<span>Delete file</span>
45+
<crown-binding event="submit" name="CSK_FileManager/deleteFile"
46+
auto-commit>
47+
</crown-binding>
48+
</davinci-button>
49+
<appspace-file-download-button id="FileDownloadButton1" type="primary"
50+
icon-position="append" downloaded-filename="file.tmp"
51+
title="Download selected file to PC.">
52+
<span>Download file</span>
53+
<crown-on property="file-path"
54+
crown-event="CSK_FileManager/OnNewStatusFileToDownload">
55+
</crown-on>
56+
<crown-on property="downloaded-filename"
57+
crown-event="CSK_FileManager/OnNewStatusDownloadFilename">
58+
</crown-on>
59+
</appspace-file-download-button>
60+
</layout-column>
61+
</layout-row>
62+
<layout-row id="RowLayout3"
63+
class="myCustomFrame_CSK_Module_FileManager">
64+
<layout-column id="ColumnLayout3" style="align-items: stretch">
65+
<davinci-text-field id="TF_Path" type="text" label="Path:"
66+
title="Set path for creating / deleting / uploading files.">
67+
<crown-on property="value"
68+
crown-event="CSK_FileManager/OnNewStatusPath">
69+
</crown-on>
70+
<crown-binding event="change" name="CSK_FileManager/setPath"
71+
path="param/args/path" auto-commit>
72+
</crown-binding>
73+
</davinci-text-field>
74+
<davinci-button id="Button_Create" type="primary"
75+
icon-position="append"
76+
title="Create folder like preset in 'Path'.">
77+
<span>Create folder</span>
78+
<crown-binding event="submit" name="CSK_FileManager/createFolder"
79+
auto-commit>
80+
</crown-binding>
81+
</davinci-button>
82+
<davinci-button id="Button_DeleteFolder" type="accent"
83+
icon-position="append"
84+
title="Delete folder including all subfolders / subfiles.">
85+
<span>Delete folder</span>
86+
<crown-binding event="submit" name="CSK_FileManager/deleteFolder"
87+
auto-commit>
88+
</crown-binding>
89+
</davinci-button>
90+
<appspace-file-upload-button id="FileUploadButton"
91+
button-type="primary"
92+
title="Make sure that the target path already exists.">
93+
<span>Upload file</span>
94+
<crown-on property="path"
95+
crown-event="CSK_FileManager/OnNewStatusPath">
96+
</crown-on>
97+
<crown-set event="finished"
98+
crown-function="CSK_FileManager/fileUploadFinished"
99+
protocol="crownMSGPACK" crown-path="status">
100+
</crown-set>
101+
</appspace-file-upload-button>
102+
</layout-column>
103+
</layout-row>
104+
<stacked-view id="SV_InfoMsg">
105+
<stacked-pane id="SP_infos" value="true">
106+
<curie-callout id="DC_InfoMsg">
107+
<crown-edpws-binding property="value"
108+
name="CSK_FileManager/OnNewStatusCalloutText" update-on-resume>
109+
</crown-edpws-binding>
110+
<crown-edpws-binding property="type"
111+
name="CSK_FileManager/OnNewStatusCalloutType" update-on-resume>
112+
</crown-edpws-binding>
113+
</curie-callout>
114+
</stacked-pane>
115+
<stacked-pane id="SP_empty" value="false"></stacked-pane>
116+
<crown-edpws-binding property="value"
117+
name="CSK_FileManager/OnNewStatusShowCallout" update-on-resume
118+
converter="function(value) {return value.toString();}">
43119
</crown-edpws-binding>
44-
<crown-edpws-binding property="disabled"
45-
name="CSK_FileManager/OnPersistentDataModuleAvailable"
46-
update-on-resume converter="function(value) {return !value;}">
47-
</crown-edpws-binding>
48-
<crown-binding event="change" name="CSK_FileManager/setLoadOnReboot"
49-
path="param/args/status" auto-commit>
50-
</crown-binding>
51-
</davinci-checkbox>
52-
</layout-row>
53-
<layout-row id="RowLayout3">
54-
<layout-column id="ColumnLayout3" style="align-items: stretch">
55-
<davinci-button id="B_LoadConfig" type="primary"
56-
icon-position="append"
57-
title="Load configured parameters from CSK_PersistentData module.">
58-
<span>Load Config</span>
59-
<crown-binding event="submit" name="CSK_FileManager/loadParameters"
60-
auto-commit>
61-
</crown-binding>
62-
<crown-edpws-binding property="disabled"
63-
name="CSK_FileManager/OnPersistentDataModuleAvailable"
64-
update-on-resume converter="function(value) {return !value;}">
65-
</crown-edpws-binding>
66-
</davinci-button>
67-
</layout-column>
68-
<layout-column id="ColumnLayout4" style="align-items: stretch">
69-
<davinci-button id="B_SaveConfig" type="primary"
70-
icon-position="append"
71-
title="Save current configured parameters of this module within CSK_PersistentData module.">
72-
<span>Save Config</span>
73-
<crown-binding event="submit" name="CSK_FileManager/sendParameters"
74-
auto-commit>
75-
</crown-binding>
76-
<crown-edpws-binding property="disabled"
77-
name="CSK_FileManager/OnPersistentDataModuleAvailable"
78-
update-on-resume converter="function(value) {return !value;}">
79-
</crown-edpws-binding>
80-
</davinci-button>
81-
</layout-column>
82-
</layout-row>
83-
</layout-column>
120+
</stacked-view>
121+
</layout-column>
122+
</layout-row>
84123
</stacked-pane>
85124
<stacked-pane id="SP_LoginNotOK" value="false">
86125
<davinci-callout id="Callout1" type="info">
87126
<span>
88-
Please log in via CSK_UserManagement module (at least via user level "Operator")
127+
Please log in via CSK_UserManagement module (at least via user level &quot;Service&quot;)
89128
</span>
90129
</davinci-callout>
91130
</stacked-pane>
92131
<crown-edpws-binding property="value"
93-
name="CSK_FileManager/OnUserLevelOperatorActive" update-on-resume
132+
name="CSK_FileManager/OnUserLevelServiceActive" update-on-resume
94133
converter="function(value) {return value.toString();}">
95134
</crown-edpws-binding>
96135
</stacked-view>
@@ -100,7 +139,8 @@
100139
</crown-binding>
101140
</stacked-view>
102141
</layout-column>
103-
<layout-column id="ColumnLayout2" style="flex-grow:3">
142+
<layout-column id="ColumnLayout4"
143+
style="align-items: stretch; flex-grow: 2">
104144
</layout-column>
105145

106146
</layout-row>

CSK_Module_FileManager/project.mf.xml

Lines changed: 72 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,8 @@
66
</crown>
77
<crown name="CSK_FileManager">
88
<trait>released</trait>
9-
<desc>Please fill in information regarding: What is the idea of this module and its features? +
10-
How to use this module in general.... like: +
11-
{empty} +
12-
Typically the features of this module are used like this (check also main script of this module): +
13-
**1) Setup** +
14-
ToDo +
15-
{empty} +
16-
**2) Something else...** +
17-
</desc>
9+
<desc>Module to provide device file management functionalities like creating / removing folders, downloading / uploading files. +
10+
Please check the UI of this module. +</desc>
1811
<serves>
1912
<event name="OnNewStatusLoadParameterOnReboot">
2013
<desc>Notify status if parameters should be loaded on app/device boot up.</desc>
@@ -47,6 +40,50 @@ ToDo +
4740
<desc>Status of Admin userlevel. Used internally in combination with the CSK_UserManagement module if available.</desc>
4841
<param desc="Status" multiplicity="1" name="status" type="bool"/>
4942
</event>
43+
<event name="OnNewStatusFileList">
44+
<desc>Notify list of available files.</desc>
45+
<param desc="List of files." multiplicity="1" name="list" type="string"/>
46+
</event>
47+
<event name="OnNewStatusSelectedFile">
48+
<desc>Notify name of file selected within list of files.</desc>
49+
<param desc="Name of file." multiplicity="1" name="filename" type="string"/>
50+
</event>
51+
<event name="OnNewStatusAvailableSources">
52+
<desc>Notify available file sources.</desc>
53+
<param desc="List of sources." multiplicity="1" name="sources" type="string"/>
54+
</event>
55+
<event name="OnNewStatusSelectedSource">
56+
<desc>Notify selected file source.</desc>
57+
<param desc="Source" multiplicity="1" name="source" type="string"/>
58+
</event>
59+
<event name="OnNewStatusDownloadFilename">
60+
<desc>Notify name for file to download.</desc>
61+
<param desc="Name of file." multiplicity="1" name="filename" type="string"/>
62+
</event>
63+
<event name="OnNewStatusFileToDownload">
64+
<desc>Notify full path to file to download.</desc>
65+
<param desc="Path" multiplicity="1" name="path" type="string"/>
66+
</event>
67+
<event name="OnNewStatusPath">
68+
<desc>Notify path to e.g. store uploaded file to, create new / remove folder.</desc>
69+
<param desc="Path" multiplicity="1" name="path" type="string"/>
70+
</event>
71+
<event name="OnNewStatusCalloutText">
72+
<desc>Notify text for UI callout.</desc>
73+
<param desc="Text" multiplicity="1" name="text" type="string"/>
74+
</event>
75+
<event name="OnNewStatusCalloutType">
76+
<desc>Notify type of UI callout.</desc>
77+
<param desc="Type" multiplicity="1" name="type" type="string"/>
78+
</event>
79+
<event name="OnNewStatusShowCallout">
80+
<desc>Notify status if UI callout should be shown.</desc>
81+
<param desc="Status" multiplicity="1" name="status" type="bool"/>
82+
</event>
83+
<event name="OnNewStatusDiskInfo">
84+
<desc>Notify free / used space of the selected file source.</desc>
85+
<param desc="Info" multiplicity="1" name="info" type="string"/>
86+
</event>
5087
<function name="setParameterName">
5188
<desc>Function to set the name of the parameters if saved/loaded via the CSK_PersistentData module.</desc>
5289
<param desc="Name of the parameter." multiplicity="1" name="name" type="string"/>
@@ -65,10 +102,35 @@ ToDo +
65102
<desc>Function to register "OnResume" of the module UI (only as helper function).</desc>
66103
<return desc="Empty string (only needed to simplify binding)." multiplicity="1" name="empty" type="string"/>
67104
</function>
105+
<function name="selectFile">
106+
<desc>Function to select file out of list of files.</desc>
107+
<param desc="Full name of selected file (incl. path to it)." multiplicity="1" name="filename" type="string"/>
108+
</function>
109+
<function name="selectFileSource">
110+
<desc>Function to select source of files.</desc>
111+
<param desc="Source of files (e.g. '/public', '/ram')." multiplicity="1" name="source" type="string"/>
112+
</function>
113+
<function name="setPath">
114+
<desc>Function to set path to e.g. store uploaded file to, create new / remove folder.</desc>
115+
<param desc="Path" multiplicity="1" name="path" type="string"/>
116+
</function>
117+
<function name="fileUploadFinished">
118+
<desc>Function to react on file upload (used to give feedback for upload process).</desc>
119+
<param desc="Status" multiplicity="1" name="status" type="bool"/>
120+
</function>
121+
<function name="deleteFile">
122+
<desc>Function to delete selected file (see 'selectFile').</desc>
123+
</function>
124+
<function name="createFolder">
125+
<desc>Function to create new folder at set location (see 'setPath').</desc>
126+
</function>
127+
<function name="deleteFolder">
128+
<desc>Function to delete set folder (see 'setPath').</desc>
129+
</function>
68130
</serves>
69131
</crown>
70132
<meta key="author">SICK AG</meta>
71-
<meta key="version">0.1.0</meta>
133+
<meta key="version">1.0.0</meta>
72134
<meta key="priority">low</meta>
73135
<meta key="copy-protected">false</meta>
74136
<meta key="read-protected">false</meta>

CSK_Module_FileManager/scripts/CSK_Module_FileManager.lua

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
--SOFTWARE.
2222

2323
---@diagnostic disable: undefined-global, redundant-parameter, missing-parameter
24-
-- CreationTemplateVersion: 3.6.0
2524
--**************************************************************************
2625
--**********************Start Global Scope *********************************
2726
--**************************************************************************

0 commit comments

Comments
 (0)