entcore 4.6.0-dev.0 → 4.6.0-dev.202210281154

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/bundle/ng-app.js +92 -92
  2. package/bundle/ng-app.js.map +1 -1
  3. package/dist/ng-app.js +456 -0
  4. package/dist/ng-app.js.map +1 -0
  5. package/{src → dist}/template/attachments.html +0 -0
  6. package/{src → dist}/template/calendar-default-display-options-template.html +0 -0
  7. package/{src → dist}/template/calendar.html +0 -0
  8. package/{src → dist}/template/carousel.html +0 -0
  9. package/{src → dist}/template/cgu-lightbox.html +0 -0
  10. package/{src → dist}/template/compression.html +0 -0
  11. package/{src → dist}/template/embedder.html +0 -0
  12. package/{src → dist}/template/file-picker-list/list.html +0 -0
  13. package/{src → dist}/template/file-picker-list/pick.html +0 -0
  14. package/{src → dist}/template/image-editor/blur.html +0 -0
  15. package/{src → dist}/template/image-editor/crop.html +0 -0
  16. package/{src → dist}/template/image-editor/main.html +0 -0
  17. package/{src → dist}/template/image-editor/properties.html +0 -0
  18. package/{src → dist}/template/image-editor/resize.html +0 -0
  19. package/{src → dist}/template/image-editor/rotate.html +0 -0
  20. package/{src → dist}/template/linker.html +0 -0
  21. package/{src → dist}/template/media-library/browse.html +35 -8
  22. package/{src → dist}/template/media-library/icons.html +0 -0
  23. package/{src → dist}/template/media-library/list.html +0 -0
  24. package/{src → dist}/template/media-library/loading.html +0 -0
  25. package/{src → dist}/template/media-library/main.html +0 -0
  26. package/dist/template/media-library/record.html +1 -0
  27. package/{src → dist}/template/media-library/upload.html +0 -0
  28. package/dist/template/media-library/virtual-media-library/virtual-media-content.html +56 -0
  29. package/dist/template/media-library/virtual-media-library/virtual-media-folder.html +7 -0
  30. package/{src → dist}/template/multi-combo.html +0 -0
  31. package/{src → dist}/template/recorder.html +0 -0
  32. package/{src → dist}/template/share-panel-table-mobile.html +0 -0
  33. package/{src → dist}/template/share-panel-table.html +0 -0
  34. package/{src → dist}/template/share-panel.html +0 -0
  35. package/{src → dist}/template/video/browse.html +0 -0
  36. package/{src → dist}/template/video/integration.html +0 -0
  37. package/{src → dist}/template/video/main.html +0 -0
  38. package/{src → dist}/template/video/onboarding.html +0 -0
  39. package/{src → dist}/template/video/record.html +0 -0
  40. package/{src → dist}/template/video/upload.html +0 -0
  41. package/{src → dist}/template/widgets.html +0 -0
  42. package/{src → dist}/template/wizard.html +0 -0
  43. package/gulpfile.js +51 -28
  44. package/package.json +28 -24
  45. package/types/src/ts/directives/index.d.ts +1 -0
  46. package/types/src/ts/directives/virtual-folder/index.d.ts +4 -0
  47. package/types/src/ts/directives/virtual-folder/virtual-media-library-button.directive.d.ts +2 -0
  48. package/types/src/ts/directives/virtual-folder/virtual-media-library-document-view.directive.d.ts +2 -0
  49. package/types/src/ts/directives/virtual-folder/virtual-media-library.directive.d.ts +2 -0
  50. package/types/src/ts/entcore.d.ts +2 -0
  51. package/types/src/ts/video/VideoController.d.ts +6 -0
  52. package/types/src/ts/video/index.d.ts +4 -0
  53. package/CHANGELOG.md +0 -185
  54. package/CONTRIBUTING.md +0 -53
  55. package/Jenkinsfile +0 -27
  56. package/bower.json +0 -30
  57. package/browsers.json +0 -40
  58. package/build.sh +0 -70
  59. package/docker-compose.yml +0 -16
  60. package/karma-base.conf.json +0 -49
  61. package/karma-compatibility.conf.js +0 -25
  62. package/karma.conf.js +0 -5
  63. package/src/template/media-library/record.html +0 -1
  64. package/src/ts/deps.d.ts +0 -52
  65. package/src/ts/editor/matchers.d.ts +0 -6
  66. package/src/ts/libs/angular/angular.js +0 -11
  67. package/src/ts/libs/angular/angular.js.map +0 -1
  68. package/src/ts/libs/underscore/underscore.js +0 -8
  69. package/src/ts/libs/underscore/underscore.js.map +0 -1
  70. package/tsconfig.spec.json +0 -11
  71. package/wdio.conf.js +0 -44
  72. package/webpack-dev.config.js +0 -25
  73. package/webpack.config.js +0 -31
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -31,13 +31,24 @@
31
31
  <div class="row reduce-block-four search-image">
32
32
  <input type="search" ng-model="display.search" i18n-placeholder="search" ng-change="updateSearch()" class="six cell" />
33
33
  <div class="cell six">
34
- <button type="button" class="right-magnet" ng-disabled="display.loading || selectedDocuments().length === 0" ng-click="selectDocuments()">
34
+ <!-- default nav -->
35
+ <button ng-if="display.listFrom" type="button" class="right-magnet" ng-disabled="display.loading || selectedDocuments().length === 0" ng-click="selectDocuments()">
35
36
  <i18n>library.browse.add</i18n>
36
37
  </button>
38
+
39
+ <!-- virtual document add button -->
40
+ <virtual-media-library-button
41
+ ng-if="!display.listFrom"
42
+ documents="documents"
43
+ folders="folders"
44
+ selected-virtual-folder="selectedVirtualFolder"
45
+ on-click="selectDocuments()">
46
+ </virtual-media-library-button>
37
47
  </div>
38
48
  </div>
39
49
 
40
50
  <div class="row browse">
51
+ <!-- nav folder -->
41
52
  <nav class="four cell vertical zero-mobile">
42
53
  <ul class="height-minus300">
43
54
  <li workflow="workspace.create">
@@ -75,22 +86,38 @@
75
86
  <i18n>workspace.publicDocuments</i18n>
76
87
  </a>
77
88
  </li>
89
+
90
+ <!-- virtual folder -->
91
+ <virtual-media-library
92
+ selected-virtual-folder="selectedVirtualFolder"
93
+ on-click="resetRegularDisplay()">
94
+ </virtual-media-library>
78
95
  </ul>
79
96
  </nav>
80
97
 
81
- <!--VIEW MODE-->
82
- <div class="cell right-magnet">
83
- <div class="choice-view">
84
- <i class="show-icons" ng-class="{ selected: isViewMode('icons') }" ng-click="changeViewMode('icons')"></i>
85
- <i class="show-list" ng-class="{ selected: isViewMode('list') }" ng-click="changeViewMode('list')"></i>
86
- </div>
98
+ <!--VIEW MODE-->
99
+ <div ng-if="display.listFrom" class="cell right-magnet">
100
+ <div class="choice-view">
101
+ <i class="show-icons" ng-class="{ selected: isViewMode('icons') }" ng-click="changeViewMode('icons')"></i>
102
+ <i class="show-list" ng-class="{ selected: isViewMode('list') }" ng-click="changeViewMode('list')"></i>
87
103
  </div>
104
+ </div>
88
105
 
89
- <div class="cell eight height-five twelve-mobile browse-list height-minus300 overflowx-hd" on-bottom-scroll="documentList.increment()">
106
+ <!-- documents view by icons or list -->
107
+ <div ng-if="display.listFrom" class="cell eight height-five twelve-mobile browse-list height-minus300 overflowx-hd" on-bottom-scroll="documentList.increment()">
90
108
  <div class="reduce-block-eight" ng-if="!documents.length && !folders.length" style="text-align: center; margin-top: 40px">
91
109
  <i18n>library.browse.notfound</i18n>
92
110
  </div>
93
111
  <container ng-hide="!documents.length && !folders.length" template="documents-view" guard-ignore-template></container>
94
112
  </div>
113
+
114
+ <!-- virtual folder document view -->
115
+ <virtual-media-library-document-view class="cell eight height-five twelve-mobile browse-list height-minus300 overflowx-hd"
116
+ ng-if="!display.listFrom"
117
+ search="display.search"
118
+ selected-virtual-folder="selectedVirtualFolder">
119
+ </virtual-media-library-document-view>
120
+
121
+
95
122
  </div>
96
123
  <div class="row"></div>
File without changes
File without changes
File without changes
@@ -0,0 +1 @@
1
+ <recorder ng-model="record" on-upload="insertRecord" protected></recorder>
File without changes
@@ -0,0 +1,56 @@
1
+ <div class="icons-view" style="overflow: auto" ng-if="vm.selectedVirtualFolder">
2
+
3
+ <!-- empty state message -->
4
+ <div class="reduce-block-eight" ng-if="!vm.folders.length && !vm.documents.length" style="text-align: center; margin-top: 40px">
5
+ <i18n>library.browse.notfound</i18n>
6
+ </div>
7
+
8
+ <!-- folder part area -->
9
+ <div class="element reduce-block-six" ng-repeat="folder in vm.folders | orderBy: orderFieldFolder">
10
+ <explorer ng-model="folder.selected" on-open="vm.mediaServiceLibrary.openedTree.openFolder(folder)">
11
+ <div class="img container">
12
+ <i class="folder-large"></i>
13
+ </div>
14
+ <legend>
15
+ <a class="medium-text">[[folder.name]]</a>
16
+ </legend>
17
+ </explorer>
18
+ </div>
19
+
20
+ <!-- documents part area -->
21
+ <div class="element reduce-block-six" ng-repeat="document in vm.documents">
22
+ <explorer ng-model="document.selected"
23
+ ng-click="vm.updateSelection(document)" on-open="selectDocument(document)"
24
+ ng-switch="vm.getRole(document)">
25
+
26
+ <!-- img content -->
27
+ <div class="img container" ng-switch-when="img">
28
+ <div class="clip">
29
+ <img image-lazy-load="vm.getThumbUrl(document)"/>
30
+ <div class="absolute" ng-if="display.loading && display.loading.indexOf(document) !== -1">
31
+ <img skin-src="/img/illustrations/loading.gif" />
32
+ </div>
33
+ </div>
34
+ </div>
35
+
36
+ <!-- container video -->
37
+ <div class="img container video" ng-switch-when="video"
38
+ ng-style="{'background-image': videoThumbUrl(document)}">
39
+ <svg class="icon-video" width="48" height="48">
40
+ <use xlink:href="/workspace/public/img/illustrations.svg#icon-play"></use>
41
+ </svg>
42
+ </div>
43
+
44
+ <!-- default file -->
45
+ <div class="img container" ng-switch-default>
46
+ <i class="[[vm.getRole(document)]]-large"></i>
47
+ </div>
48
+
49
+ <!-- legend content -->
50
+ <legend>
51
+ <a class="medium-text">[[document.name]]</a>
52
+ <a><strong class="small-text">[[document.ownerName]]</strong></a>
53
+ </legend>
54
+ </explorer>
55
+ </div>
56
+ </div>
@@ -0,0 +1,7 @@
1
+ <nav class="vertical mobile-navigation" ng-if="vm.folderServiceTree.trees.length > 0">
2
+ <ul style="border-left: none;">
3
+ <li data-ng-repeat="folder in vm.folderServiceTree.trees">
4
+ <folder-tree-inner folder="folder" tree-props="vm.folderServiceTree"></folder-tree-inner>
5
+ </li>
6
+ </ul>
7
+ </nav>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/gulpfile.js CHANGED
@@ -12,25 +12,28 @@ if (argv.springboard) {
12
12
  springboardPath = argv.springboard;
13
13
  console.log('Using springboard at ' + springboardPath);
14
14
  }
15
- gulp.task('clean:types', function (cb) {
15
+
16
+ function cleanTypes(cb) {
16
17
  rimraf('./types/src', cb);
17
- });
18
- gulp.task("do-build", ["clean:types"], function () {
18
+ }
19
+
20
+ function doBuild() {
19
21
  return gulp.src('./')
20
22
  .pipe(webpack(require('./webpack.config.js')))
21
23
  .on('error', function handleError() {
22
24
  this.emit('end');
23
25
  })
24
26
  .pipe(gulp.dest('./'));
25
- });
26
- gulp.task("build", ["do-build"], function () {
27
+ }
28
+
29
+ function build() {
27
30
  return gulp.src('./bundle/ng-app.js')
28
31
  .pipe(gap.prependText('window.springboardBuildDate="'+new Date().toISOString()+'";\n'))
29
32
  .pipe(gap.prependText('window.infrafrontVersion="'+pjson.version+'";\n'))
30
33
  .pipe(gulp.dest("./bundle/"));
31
- });
34
+ }
32
35
 
33
- gulp.task("build-dev", ["clean:types"], () => {
36
+ function buildDev() {
34
37
  webpack.plugins = [];
35
38
  return gulp.src('./')
36
39
  .pipe(webpack(require('./webpack-dev.config.js')))
@@ -38,11 +41,10 @@ gulp.task("build-dev", ["clean:types"], () => {
38
41
  this.emit('end');
39
42
  })
40
43
  .pipe(gulp.dest('./'));
41
- });
44
+ }
42
45
 
43
- gulp.task('update', ['build-dev'], () => {
46
+ function update(cb) {
44
47
  GlobManager.js().then(f => {
45
- //console.log("founded js: ",f.length,f.join(","))
46
48
  f.forEach((file) => {
47
49
  const split = file.split('/');
48
50
  const fileName = split[split.length - 1];
@@ -61,25 +63,42 @@ gulp.task('update', ['build-dev'], () => {
61
63
  .pipe(gulp.dest(split.slice(0, split.length - 1).join('/')));
62
64
  });
63
65
  });
64
- })
66
+ cb();
67
+ }
65
68
 
66
- gulp.task("watch", ["clean:types"], () => {
67
- gulp.watch('**/*.ts', () => gulp.start('update'));
68
- gulp.watch('**/*.html', () => {
69
- const apps = [];
70
- GlobManager.html().then(f => {
71
- f.forEach((file) => {
72
- const app = file.split('/public/template/entcore')[0];
73
- if (apps.indexOf(app) === -1) {
74
- apps.push(app);
75
- console.log('copy to ' + app + '/public/template/entcore')
76
- gulp.src('./src/template/**/*')
77
- .pipe(gulp.dest(app + '/public/template/entcore'));
78
- }
79
- });
80
- })
81
- });
82
- });
69
+ function copyHtml(cb) {
70
+ const apps = [];
71
+ GlobManager.html().then(f => {
72
+ f.forEach((file) => {
73
+ const app = file.split('/public/template/entcore')[0];
74
+ if (apps.indexOf(app) === -1) {
75
+ apps.push(app);
76
+ console.log('copy to ' + app + '/public/template/entcore')
77
+ gulp.src('./src/template/**/*')
78
+ .pipe(gulp.dest(app + '/public/template/entcore'));
79
+ }
80
+ });
81
+ })
82
+ cb();
83
+ }
84
+
85
+ gulp.task('clean:types', cleanTypes);
86
+ gulp.task("do-build", doBuild);
87
+ gulp.task("build", build);
88
+ gulp.task("build-dev", buildDev);
89
+ gulp.task('update', update);
90
+ gulp.task('copy-html', copyHtml);
91
+
92
+ function watchTs() {
93
+ return gulp.watch('./src/ts/**/*.ts', gulp.series('clean:types','build-dev','update'));
94
+ }
95
+
96
+ function watchHtml() {
97
+ return gulp.watch('./src/template/**/*.html', gulp.series('clean:types', 'copy-html'));
98
+ }
99
+
100
+ gulp.task('watch-ts', watchTs);
101
+ gulp.task('watch-html', watchHtml);
83
102
 
84
103
  const GlobManager = {
85
104
  _js: null,
@@ -116,3 +135,7 @@ const GlobManager = {
116
135
  return GlobManager._html;
117
136
  }
118
137
  }
138
+
139
+ // Exports Tasks
140
+ exports.watch = gulp.parallel('watch-ts', 'watch-html');
141
+ exports.build = gulp.series('clean:types','do-build', 'build');
package/package.json CHANGED
@@ -1,7 +1,24 @@
1
1
  {
2
2
  "name": "entcore",
3
- "version": "4.6.0-dev.0",
3
+ "version": "4.6.0-dev.202210281154",
4
4
  "description": "",
5
+ "scripts": {
6
+ "dev:watch": "npx gulp watch --springboard=../${SPRINGBOARD} 2>/dev/null",
7
+ "release:build": "node_modules/gulp/bin/gulp.js build ${EXTRAS}",
8
+ "test": "karma start",
9
+ "test:compatibility": "karma start karma-compatibility.conf.js",
10
+ "test:end-to-end": "npx wdio"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "https://github.com/opendigitaleducation/infra-front.git"
15
+ },
16
+ "author": "",
17
+ "license": "AGPL-3.0",
18
+ "bugs": {
19
+ "url": "https://github.com/opendigitaleducation/infra-front/issues"
20
+ },
21
+ "homepage": "https://github.com/opendigitaleducation/infra-front",
5
22
  "main": "gulpfile.js",
6
23
  "types": "./types/src/ts/entcore.d.ts",
7
24
  "dependencies": {
@@ -14,9 +31,9 @@
14
31
  "conventional-changelog": "3.0.6",
15
32
  "core-js": "^2.4.1",
16
33
  "entcore-toolkit": "^1.0.0",
17
- "gulp": "^3.9.1",
18
- "gulp-rename": "^1.2.2",
19
- "gulp-watch": "^4.3.5",
34
+ "gulp": "^4.0.2",
35
+ "gulp-rename": "^2.0.0",
36
+ "gulp-watch": "^5.0.1",
20
37
  "humane-js": "^3.2.2",
21
38
  "jquery": "^3.5.1",
22
39
  "meow": "8.0.0",
@@ -35,12 +52,16 @@
35
52
  "webpack-stream": "^3.2.0"
36
53
  },
37
54
  "devDependencies": {
38
- "@types/ua-parser-js": "^0.7.35",
55
+ "@types/angular": "1.7.4",
39
56
  "@types/core-js": "0.9.46",
40
57
  "@types/jasmine": "2.8.8",
41
58
  "@types/jquery": "^3.3.32",
42
59
  "@types/pixi.js": "4.5.7",
60
+ "@types/ua-parser-js": "^0.7.35",
43
61
  "@types/webdriverio": "4.13.0",
62
+ "@wdio/browserstack-service": "^7.20.7",
63
+ "@wdio/jasmine-framework": "^7.20.7",
64
+ "@wdio/selenium-standalone-service": "^7.20.7",
44
65
  "angular-mocks": "1.3.20",
45
66
  "gulp-append-prepend": "^1.0.6",
46
67
  "jasmine": "2.8.0",
@@ -53,24 +74,7 @@
53
74
  "mathjax": "2.7.5",
54
75
  "rimraf": "2.6.2",
55
76
  "ts-node": "7.0.1",
56
- "wdio-browserstack-service": "0.1.18",
57
- "wdio-jasmine-framework": "0.3.8",
58
- "wdio-selenium-standalone-service": "0.0.11",
59
- "webdriverio": "4.14.1"
60
- },
61
- "scripts": {
62
- "test": "karma start",
63
- "test:compatibility": "karma start karma-compatibility.conf.js",
64
- "test:end-to-end": "npx wdio"
65
- },
66
- "repository": {
67
- "type": "git",
68
- "url": "https://github.com/opendigitaleducation/infra-front.git"
69
- },
70
- "author": "",
71
- "license": "AGPL-3.0",
72
- "bugs": {
73
- "url": "https://github.com/opendigitaleducation/infra-front/issues"
77
+ "webdriverio": "7.20.7"
74
78
  },
75
- "homepage": "https://github.com/opendigitaleducation/infra-front"
79
+ "files": ["bundle", "types", "dist"]
76
80
  }
@@ -65,3 +65,4 @@ export * from "./libraryPrompt";
65
65
  export * from "./dragndrop";
66
66
  export * from "./structureTree";
67
67
  export * from "./toast";
68
+ export * from "./virtual-folder";
@@ -0,0 +1,4 @@
1
+ export * from "./virtual-media-library-document-view.directive";
2
+ export * from "./virtual-media-library.directive";
3
+ export * from "./virtual-media-library-button.directive";
4
+ export * from "./virtual-media-library.model";
@@ -0,0 +1,2 @@
1
+ import { Directive } from "../../ng-start";
2
+ export declare const virtualMediaLibraryButton: Directive;
@@ -0,0 +1,2 @@
1
+ import { Directive } from "../../ng-start";
2
+ export declare const virtualMediaLibraryDocumentView: Directive;
@@ -0,0 +1,2 @@
1
+ import { Directive } from "../../ng-start";
2
+ export declare const virtualMediaLibrary: Directive;
@@ -22,7 +22,9 @@ export * from './toasts';
22
22
  export * from "./embedder";
23
23
  export * from "./stringutils/index";
24
24
  export * from "./tracking";
25
+ export * from "./video";
25
26
  export { Embedder } from "./embedder";
26
27
  export { DatepickerDelegate } from "./ng-app";
27
28
  export { FolderTreeProps } from "./directives/folderTree";
29
+ export { IVirtualMediaLibraryScope } from "./directives/virtual-folder";
28
30
  export { FolderPickerProps, FolderPickerSource, FolderPickerSourceBlob, FolderPickerSourceFile } from "./directives/folderPicker";
@@ -0,0 +1,6 @@
1
+ import { IObjectGuardDelegate } from "../navigationGuard";
2
+ export declare class VideoRecordGuardModel implements IObjectGuardDelegate {
3
+ hasRecorded: boolean;
4
+ guardObjectIsDirty(): boolean;
5
+ guardObjectReset(): void;
6
+ }
@@ -0,0 +1,4 @@
1
+ export * from './VideoController';
2
+ export * from './VideoEventTrackerService';
3
+ export * from './VideoRecorder';
4
+ export * from './VideoUploadService';