Compare commits
32 Commits
Author | SHA1 | Date | |
---|---|---|---|
e63d304953 | |||
3cd90c2d47 | |||
ac59b77ad5 | |||
3efccc4cf3 | |||
8cbcd18f4b | |||
6bb2378790 | |||
e7d0ffe8c0 | |||
ab89600c73 | |||
830e3816a0 | |||
dadac4f13f | |||
1de48a49af | |||
687a1e1cb5 | |||
665a04f5c5 | |||
fdb18d242b | |||
ec173da4ce | |||
bb35cc15d2 | |||
181f52eaea | |||
fc7c8101ed | |||
a347603fe0 | |||
09022c995f | |||
3609943f30 | |||
a1d308ea07 | |||
5579db0eaf | |||
3a3e488b23 | |||
0a82ec0a70 | |||
bc1d89218e | |||
817b9adeac | |||
a7aa42a59b | |||
34f239036d | |||
91f128c2fe | |||
a00ebea692 | |||
c27cdab3fc |
@ -18,8 +18,11 @@ jobs:
|
||||
env:
|
||||
NPMRC: ${{ secrets.NPMRC}}
|
||||
|
||||
- run: npm run lint:check
|
||||
- run: |
|
||||
- name: Lint check
|
||||
run: npm run lint:check
|
||||
|
||||
- name: Licence checker
|
||||
run: |
|
||||
cd client
|
||||
npm ci
|
||||
npm run license-checker
|
@ -168,6 +168,9 @@ jobs:
|
||||
npm i -g @sasjs/cli
|
||||
# jq is used to parse the release JSON
|
||||
apt-get install jq -y
|
||||
# doxygen is used for the SASJS docs
|
||||
apt-get update
|
||||
apt-get install doxygen -y
|
||||
|
||||
- name: Create Empty Release (assets are posted later)
|
||||
run: |
|
||||
@ -240,6 +243,12 @@ jobs:
|
||||
npm run compodoc:build
|
||||
surfer put --token ${{ secrets.TSDOC_TOKEN }} --server webdoc.datacontroller.io documentation/* /
|
||||
|
||||
- name: Release code.datacontroller.io
|
||||
run: |
|
||||
cd sas
|
||||
sasjs doc
|
||||
surfer put --token ${{ secrets.CODE_DATACONTROLLER_IO }} --server code.datacontroller.io sasjsbuild/sasdocs/* /
|
||||
|
||||
- name: Upload assets to release
|
||||
run: |
|
||||
RELEASE_ID=`curl -k 'https://git.datacontroller.io/api/v1/repos/dc/dc/releases/latest?access_token=${{ secrets.RELEASE_TOKEN }}' | jq -r '.id'`
|
||||
|
37
CHANGELOG.md
37
CHANGELOG.md
@ -1,3 +1,40 @@
|
||||
## [6.3.1](https://git.datacontroller.io/dc/dc/compare/v6.3.0...v6.3.1) (2024-01-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* enabling excel uploads to tables with retained keys, also adding more validation to MPE_TABLES updates ([3efccc4](https://git.datacontroller.io/dc/dc/commit/3efccc4cf3752763d049836724f2491c287f65db))
|
||||
|
||||
# [6.3.0](https://git.datacontroller.io/dc/dc/compare/v6.2.8...v6.3.0) (2023-12-04)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* viewer row handle ([dadac4f](https://git.datacontroller.io/dc/dc/commit/dadac4f13f85b5446198b6340cad28844defc94d))
|
||||
|
||||
## [6.2.8](https://git.datacontroller.io/dc/dc/compare/v6.2.7...v6.2.8) (2023-12-04)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* bumping sasjs/core to fix mp_loadformat issue ([a1d308e](https://git.datacontroller.io/dc/dc/commit/a1d308ea078786b27bf7ec940d018fc657d4c398))
|
||||
* new logic for -fc suffix. Closes [#63](https://git.datacontroller.io/dc/dc/issues/63) ([5579db0](https://git.datacontroller.io/dc/dc/commit/5579db0eafc668b1bc310099b7cc3062e0598fc4))
|
||||
|
||||
## [6.2.7](https://git.datacontroller.io/dc/dc/compare/v6.2.6...v6.2.7) (2023-11-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **audit:** updated crypto-js (hashing rows in dynamic cell validation) ([a7aa42a](https://git.datacontroller.io/dc/dc/commit/a7aa42a59b71597399924b8d2d06010c806321f3))
|
||||
* missing dependency and avoiding label length limit issue ([91f128c](https://git.datacontroller.io/dc/dc/commit/91f128c2fead1e4f72267d689e67f49ec9a2ab35))
|
||||
|
||||
## [6.2.6](https://git.datacontroller.io/dc/dc/compare/v6.2.5...v6.2.6) (2023-10-18)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* bumping core to address mm_assigndirectlib issue ([c27cdab](https://git.datacontroller.io/dc/dc/commit/c27cdab3fccbde814a29424d0344173a73ea816c))
|
||||
|
||||
## [6.2.5](https://git.datacontroller.io/dc/dc/compare/v6.2.4...v6.2.5) (2023-10-17)
|
||||
|
||||
|
||||
|
3420
client/package-lock.json
generated
3420
client/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -57,7 +57,7 @@
|
||||
"base64-arraybuffer": "^0.2.0",
|
||||
"buffer": "^5.4.3",
|
||||
"crypto-browserify": "3.12.0",
|
||||
"crypto-js": "^3.3.0",
|
||||
"crypto-js": "^4.2.0",
|
||||
"d3-graphviz": "^5.0.2",
|
||||
"fs-extra": "^7.0.1",
|
||||
"handsontable": "^13.1.0",
|
||||
@ -93,7 +93,7 @@
|
||||
"@compodoc/compodoc": "^1.1.21",
|
||||
"@cypress/webpack-preprocessor": "^5.17.1",
|
||||
"@types/core-js": "^2.5.5",
|
||||
"@types/crypto-js": "^4.0.1",
|
||||
"@types/crypto-js": "^4.2.1",
|
||||
"@types/es6-shim": "^0.31.39",
|
||||
"@types/jasmine": "~3.6.0",
|
||||
"@types/lodash-es": "^4.17.3",
|
||||
|
@ -280,7 +280,7 @@
|
||||
licenceState.value.editor_rows_allowed === 1
|
||||
? 'row'
|
||||
: 'rows'
|
||||
}}, contact support@datacontroller.io</span
|
||||
}}, contact support@datacontroller.io</span
|
||||
>
|
||||
</clr-tooltip-content>
|
||||
</clr-tooltip>
|
||||
@ -417,7 +417,7 @@
|
||||
licenceState.value.editor_rows_allowed === 1
|
||||
? 'row'
|
||||
: 'rows'
|
||||
}}, contact support@datacontroller.io</span
|
||||
}}, contact support@datacontroller.io</span
|
||||
>
|
||||
</clr-tooltip-content>
|
||||
</clr-tooltip>
|
||||
@ -467,7 +467,7 @@
|
||||
: 'rows'
|
||||
}}
|
||||
will be submitted. To remove the restriction, contact
|
||||
support@datacontroller.io</span
|
||||
support@datacontroller.io</span
|
||||
>
|
||||
<div *ngIf="tableTrue" class="clr-offset-md-2 clr-col-md-8">
|
||||
<div class="form-group">
|
||||
@ -528,7 +528,7 @@
|
||||
Due to current licence, only
|
||||
{{ licenceState.value.submit_rows_limit }} rows in a file will
|
||||
be submitted. To remove the restriction, contact
|
||||
support@datacontroller.io
|
||||
support@datacontroller.io
|
||||
</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
|
@ -100,7 +100,7 @@
|
||||
*clrIfOpen
|
||||
>
|
||||
<span *ngIf="tableLocked">
|
||||
To unlock all tables, contact support@datacontroller.io
|
||||
To unlock all tables, contact support@datacontroller.io
|
||||
</span>
|
||||
</clr-tooltip-content>
|
||||
</clr-tooltip>
|
||||
|
@ -72,7 +72,7 @@
|
||||
>
|
||||
To unlock more than
|
||||
{{ licenceState.value.history_rows_allowed }} records, contact
|
||||
support@datacontroller.io
|
||||
support@datacontroller.io
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
@ -2,5 +2,5 @@
|
||||
[ngClass]="classes"
|
||||
[class.unset]="classes !== ''"
|
||||
href="mailto:support@datacontroller.io?subject=Licence"
|
||||
>support@datacontroller.io</a
|
||||
>support@datacontroller.io</a
|
||||
>
|
||||
|
@ -106,7 +106,7 @@
|
||||
*clrIfOpen
|
||||
>
|
||||
<span *ngIf="tableLocked">
|
||||
To unlock all tables, contact support@datacontroller.io
|
||||
To unlock all tables, contact support@datacontroller.io
|
||||
</span>
|
||||
</clr-tooltip-content>
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
class="licence-notice"
|
||||
>To unlock more then {{ licenceState.value.viewbox_limit }}
|
||||
{{ licenceState.value.viewbox_limit === 1 ? 'viewbox' : 'viewboxes' }},
|
||||
contact support@datacontroller.io</span
|
||||
contact support@datacontroller.io</span
|
||||
>
|
||||
</h3>
|
||||
|
||||
|
@ -105,7 +105,7 @@
|
||||
*clrIfOpen
|
||||
>
|
||||
<span *ngIf="tableLocked">
|
||||
To unlock all tables, contact support@datacontroller.io
|
||||
To unlock all tables, contact support@datacontroller.io
|
||||
</span>
|
||||
</clr-tooltip-content>
|
||||
</clr-tooltip>
|
||||
@ -630,6 +630,9 @@
|
||||
[cells]="hotTable.cells"
|
||||
[maxRows]="hotTable.maxRows"
|
||||
[manualColumnResize]="true"
|
||||
[rowHeaders]="hotTable.rowHeaders"
|
||||
[rowHeaderWidth]="hotTable.rowHeaderWidth"
|
||||
[rowHeights]="hotTable.rowHeights"
|
||||
[licenseKey]="hotTable.licenseKey"
|
||||
>
|
||||
</hot-table>
|
||||
|
@ -108,6 +108,11 @@ export class ViewerComponent implements AfterContentInit, AfterViewInit {
|
||||
settings: {},
|
||||
afterGetColHeader: undefined,
|
||||
licenseKey: undefined,
|
||||
rowHeaders: (index: number) => {
|
||||
return ' '
|
||||
},
|
||||
rowHeaderWidth: 15,
|
||||
rowHeights: 20,
|
||||
contextMenu: ['copy_with_column_headers', 'copy_column_headers_only'],
|
||||
copyPaste: {
|
||||
copyColumnHeaders: true,
|
||||
|
28
package-lock.json
generated
28
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "dcfrontend",
|
||||
"version": "6.2.2",
|
||||
"version": "6.2.7",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "dcfrontend",
|
||||
"version": "6.2.2",
|
||||
"version": "6.2.7",
|
||||
"hasInstallScript": true,
|
||||
"devDependencies": {
|
||||
"@saithodev/semantic-release-gitea": "^2.1.0",
|
||||
@ -15,8 +15,7 @@
|
||||
"@semantic-release/git": "^10.0.1",
|
||||
"@semantic-release/npm": "11.0.0",
|
||||
"@semantic-release/release-notes-generator": "^11.0.4",
|
||||
"commit-and-tag-version": "^11.2.2",
|
||||
"prettier": "3.0.0"
|
||||
"commit-and-tag-version": "^11.2.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/code-frame": {
|
||||
@ -6878,21 +6877,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz",
|
||||
"integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin/prettier.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/process-nextick-args": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||
@ -12615,12 +12599,6 @@
|
||||
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
|
||||
"dev": true
|
||||
},
|
||||
"prettier": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz",
|
||||
"integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==",
|
||||
"dev": true
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "dcfrontend",
|
||||
"version": "6.2.5",
|
||||
"version": "6.3.1",
|
||||
"description": "Data Controller",
|
||||
"devDependencies": {
|
||||
"@saithodev/semantic-release-gitea": "^2.1.0",
|
||||
@ -9,8 +9,7 @@
|
||||
"@semantic-release/npm": "11.0.0",
|
||||
"@semantic-release/git": "^10.0.1",
|
||||
"@semantic-release/release-notes-generator": "^11.0.4",
|
||||
"commit-and-tag-version": "^11.2.2",
|
||||
"prettier": "3.0.0"
|
||||
"commit-and-tag-version": "^11.2.2"
|
||||
},
|
||||
"scripts": {
|
||||
"install": "cd client && npm i && cd ../sas && npm i",
|
||||
|
29
sas/package-lock.json
generated
29
sas/package-lock.json
generated
@ -7,7 +7,7 @@
|
||||
"name": "dc-sas",
|
||||
"dependencies": {
|
||||
"@sasjs/cli": "^4.11.1",
|
||||
"@sasjs/core": "^4.48.1"
|
||||
"@sasjs/core": "^4.48.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@coolaj86/urequest": {
|
||||
@ -116,9 +116,9 @@
|
||||
"integrity": "sha512-Grwydm5GxBsYk238PZw41XPjXVVQ9vWcvfZ06L2P0bQbvK0sGn7l69JA7H5MGr3QcaLpiD4Kg70cAh7PgE+JOw=="
|
||||
},
|
||||
"node_modules/@sasjs/core": {
|
||||
"version": "4.48.1",
|
||||
"resolved": "https://registry.npmjs.org/@sasjs/core/-/core-4.48.1.tgz",
|
||||
"integrity": "sha512-oT0lfoVa0ZAEhWveQgHL+gepobgrUhDDAH6fjNreGXlUUf8FmhQvbdS0X5o/dFjq6WgwjzD0FAC5J/ceXCqQhQ=="
|
||||
"version": "4.48.4",
|
||||
"resolved": "https://registry.npmjs.org/@sasjs/core/-/core-4.48.4.tgz",
|
||||
"integrity": "sha512-KTLHRR47I627NKZG0qMW+wGJP4gFGyeEEyBDsVaSnevdvCz01oP/lpLxx4fIESPQ/YzLNEv+RcP8kcxkdSPQow=="
|
||||
},
|
||||
"node_modules/@sasjs/lint": {
|
||||
"version": "2.3.1",
|
||||
@ -229,12 +229,6 @@
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/tough-cookie": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.3.tgz",
|
||||
"integrity": "sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/abab": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
|
||||
@ -1834,9 +1828,9 @@
|
||||
}
|
||||
},
|
||||
"@sasjs/core": {
|
||||
"version": "4.48.1",
|
||||
"resolved": "https://registry.npmjs.org/@sasjs/core/-/core-4.48.1.tgz",
|
||||
"integrity": "sha512-oT0lfoVa0ZAEhWveQgHL+gepobgrUhDDAH6fjNreGXlUUf8FmhQvbdS0X5o/dFjq6WgwjzD0FAC5J/ceXCqQhQ=="
|
||||
"version": "4.48.4",
|
||||
"resolved": "https://registry.npmjs.org/@sasjs/core/-/core-4.48.4.tgz",
|
||||
"integrity": "sha512-KTLHRR47I627NKZG0qMW+wGJP4gFGyeEEyBDsVaSnevdvCz01oP/lpLxx4fIESPQ/YzLNEv+RcP8kcxkdSPQow=="
|
||||
},
|
||||
"@sasjs/lint": {
|
||||
"version": "2.3.1",
|
||||
@ -1933,12 +1927,6 @@
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/tough-cookie": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.3.tgz",
|
||||
"integrity": "sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg==",
|
||||
"peer": true
|
||||
},
|
||||
"abab": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
|
||||
@ -2965,8 +2953,7 @@
|
||||
"ws": {
|
||||
"version": "8.13.0",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
|
||||
"integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
|
||||
"requires": {}
|
||||
"integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA=="
|
||||
},
|
||||
"xml": {
|
||||
"version": "1.0.1",
|
||||
|
@ -28,6 +28,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@sasjs/cli": "^4.11.1",
|
||||
"@sasjs/core": "^4.48.1"
|
||||
"@sasjs/core": "^4.48.4"
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
This site contains the SAS code used in Data Controller for SAS. The pages were generated using [`sasjs doc`](https://cli.sasjs.io/doc).
|
||||
|
||||
You can download Data Controller from [here](https://4gl.uk/dcdeploy).
|
||||
You can download Data Controller from [here](https://git.datacontroller.io/dc/dc/releases).
|
||||
|
||||
The main website is [https://datacontroller.io](https://datacontroller.io) and the user guide is [here](https://docs.datacontroller.io).
|
||||
|
||||
|
@ -146,7 +146,7 @@ select count(*) into: nobs from &syslast;
|
||||
,msg=%str(Issue assigning library &orig_lib)
|
||||
)
|
||||
|
||||
%global txfrom txto processed;
|
||||
%global txfrom txto processed rk;
|
||||
|
||||
data _null_;
|
||||
set &mpelib..MPE_TABLES;
|
||||
@ -154,12 +154,13 @@ data _null_;
|
||||
call symputx('txfrom',var_txfrom);
|
||||
call symputx('txto',var_txto);
|
||||
call symputx('processed',var_processed);
|
||||
if not missing(RK_UNDERLYING) then call symputx('rk',buskey);
|
||||
run;
|
||||
|
||||
%mp_lockfilecheck(libds=&orig_libds)
|
||||
|
||||
data compare;
|
||||
set &libds(drop=&txfrom &txto &processed);
|
||||
set &libds(drop=&txfrom &txto &processed &rk);
|
||||
stop;
|
||||
run;
|
||||
|
||||
|
@ -34,6 +34,7 @@ data work.staging_ds;
|
||||
var_processed=upcase(var_processed);
|
||||
close_vars=upcase(close_vars);
|
||||
audit_libds=upcase(audit_libds);
|
||||
rk_underlying=upcase(rk_underlying);
|
||||
|
||||
/* check for valid loadtype */
|
||||
if LOADTYPE not in ('UPDATE','TXTEMPORAL','FORMAT_CAT','BITEMPORAL','REPLACE')
|
||||
@ -45,8 +46,12 @@ data work.staging_ds;
|
||||
/* force correct BUSKEY and DSN when loading format catalogs */
|
||||
if LOADTYPE='FORMAT_CAT' then do;
|
||||
BUSKEY='TYPE FMTNAME FMTROW';
|
||||
if subpad(dsn,length(dsn)-3,3) ne '-FC' then dsn=cats(dsn,'-FC');
|
||||
DSN=scan(dsn,1,'-')!!'-FC';
|
||||
end;
|
||||
|
||||
/* convert tabs into spaces */
|
||||
buskey=translate(buskey," ","09"x);
|
||||
rk_underlying=translate(rk_underlying," ","09"x);
|
||||
run;
|
||||
|
||||
%mp_abort(iftrue=(&errflag=1)
|
||||
|
Reference in New Issue
Block a user