From 0f2198cb43341ca6f5820ac43f3ea1a7ad54325e Mon Sep 17 00:00:00 2001 From: Richard Park Date: Thu, 22 Aug 2019 01:28:25 +0900 Subject: [PATCH] file drag & drop is added --- package-lock.json | 21 + package.json | 2 + src/@fuse/scss/partials/_page-layouts.scss | 1224 ++++++++--------- .../media/component/detail.component.html | 139 +- .../media/component/detail.component.scss | 18 + .../media/component/detail.component.ts | 45 +- .../pages/medias/media/medias-media.module.ts | 4 + .../file-manager/cloud-2044823_960_720.png | Bin 0 -> 66977 bytes .../audio-player/audio-player.module.ts | 25 + src/modules/audio-player/component/index.ts | 1 + src/modules/audio-player/service/index.ts | 1 + 11 files changed, 802 insertions(+), 678 deletions(-) create mode 100644 src/assets/images/file-manager/cloud-2044823_960_720.png create mode 100644 src/modules/audio-player/audio-player.module.ts create mode 100644 src/modules/audio-player/component/index.ts create mode 100644 src/modules/audio-player/service/index.ts diff --git a/package-lock.json b/package-lock.json index b7ff70a..3adb8e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5710,6 +5710,14 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "id3-parser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/id3-parser/-/id3-parser-2.0.0.tgz", + "integrity": "sha512-bkGeAtUX70rC9sq2mjzIrkmPZjUsGuqCjZKGFJnugKXqYVDuJgfWDa8MehUZaCqlkoCaXkYevYeaRxkHOJsv9w==", + "requires": { + "promise-a-plus": "^0.7.0" + } + }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", @@ -8198,6 +8206,14 @@ "resolved": "https://registry.npmjs.org/ngx-cookie-service/-/ngx-cookie-service-2.2.0.tgz", "integrity": "sha512-2kaC1itlEMxiMAPJ320hOpcwU9vhvjbKQCZ1Go6bGhYjJtqG7eYvhNP7mM9IhFz1/afG2tBryJPySWmFUGhRpA==" }, + "ngx-file-drop": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/ngx-file-drop/-/ngx-file-drop-8.0.7.tgz", + "integrity": "sha512-o+PrT+H1TM0GdobMdfwlBD6hMM8nkhiLe9yhPxjBoHhnLPxxQ4uaKF9lv9TxSNzYLbEW/S2qTifj1CrsQEy0gg==", + "requires": { + "tslib": "^1.9.0" + } + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -9110,6 +9126,11 @@ "asap": "~2.0.3" } }, + "promise-a-plus": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/promise-a-plus/-/promise-a-plus-0.7.0.tgz", + "integrity": "sha512-cWbWdSKaHiNGWP3aUSAq5nkZFYL1A6glTMgGc/LpFZ6DEJ5FRXzu7T2k4mmi+cD/R5EJ9DHHzWezXnO1IMPb5w==" + }, "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", diff --git a/package.json b/package.json index c352986..cb6246d 100644 --- a/package.json +++ b/package.json @@ -37,10 +37,12 @@ "chart.js": "^2.8.0", "d3": "^5.9.7", "hammerjs": "^2.0.8", + "id3-parser": "^2.0.0", "lodash": "^4.17.15", "moment": "^2.24.0", "ng2-charts": "^2.3.0", "ngx-cookie-service": "^2.2.0", + "ngx-file-drop": "^8.0.7", "perfect-scrollbar": "^1.4.0", "prismjs": "^1.17.1", "rxjs": "^6.5.2", diff --git a/src/@fuse/scss/partials/_page-layouts.scss b/src/@fuse/scss/partials/_page-layouts.scss index 830cda3..32e5664 100644 --- a/src/@fuse/scss/partials/_page-layouts.scss +++ b/src/@fuse/scss/partials/_page-layouts.scss @@ -2,79 +2,66 @@ // @ Theming // ----------------------------------------------------------------------------------------------------- @mixin page-layouts-theme($theme) { + $background: map-get($theme, background); + $foreground: map-get($theme, foreground); - $background: map-get($theme, background); - $foreground: map-get($theme, foreground); + .page-layout { + // Carded layout + &.carded { + // Fullwidth + &.fullwidth { + > .center { + > .content-card { + background: map-get($background, card); + border-radius: 8px 8px 0 0; - .page-layout { - - // Carded layout - &.carded { - - // Fullwidth - &.fullwidth { - - > .center { - - > .content-card { - background: map-get($background, card); - border-radius: 8px 8px 0 0; - - > .toolbar { - border-bottom-color: map-get($foreground, divider); - } - } - } - } - - // Left / Right sidebar - &.left-sidebar, - &.right-sidebar { - - > .center { - - > .content-card { - background: map-get($background, card); - border-radius: 8px 8px 0 0; - - > .toolbar { - border-bottom-color: map-get($foreground, divider); - } - } - } + > .toolbar { + border-bottom-color: map-get($foreground, divider); } + } } + } - // Simple layout - &.simple { + // Left / Right sidebar + &.left-sidebar, + &.right-sidebar { + > .center { + > .content-card { + background: map-get($background, card); + border-radius: 8px 8px 0 0; - // Left / Right sidebar - &.left-sidebar, - &.right-sidebar { - - > .center { - - > .content { - background: map-get($background, card); - } - } - - // Inner sidebar - &.inner-sidebar { - - > .content { - - > .center { - - > .content { - background: map-get($background, card); - } - } - } - } + > .toolbar { + border-bottom-color: map-get($foreground, divider); } + } } + } } + + // Simple layout + &.simple { + // Left / Right sidebar + &.left-sidebar, + &.right-sidebar { + > .center { + > .content { + background: map-get($background, card); + } + } + + // Inner sidebar + &.inner-sidebar { + > .content { + > .center { + > .content { + background: map-get($background, card); + } + } + } + } + } + } + } } // ----------------------------------------------------------------------------------------------------- @@ -85,610 +72,569 @@ $carded-toolbar-height: 64px !default; $header-height: 120px !default; // Calculate toolbar-less carded header height -$carded-header-height-without-toolbar: $carded-header-height - $carded-toolbar-height; +$carded-header-height-without-toolbar: $carded-header-height - + $carded-toolbar-height; .page-layout { - position: relative; - overflow: hidden; - - // Carded layout - &.carded { - display: flex; - flex-direction: column; - flex: 1 0 auto; - width: 100%; - min-width: 100%; - - // Top bg - > .top-bg { - position: absolute; - z-index: 1; - top: 0; - right: 0; - left: 0; - height: $carded-header-height; - } - - // Fullwidth - &.fullwidth { - - // Center - > .center { - display: flex; - flex-direction: column; - flex: 1 0 auto; - position: relative; - z-index: 2; - padding: 0 32px; - width: 100%; - min-width: 0; - max-width: 100%; - height: 100%; - max-height: 100%; - - > .header { - height: $carded-header-height-without-toolbar !important; - min-height: $carded-header-height-without-toolbar !important; - max-height: $carded-header-height-without-toolbar !important; - } - - > .content-card { - display: flex; - flex-direction: column; - flex: 1 0 auto; - overflow: hidden; - @include mat-elevation(1); - - > .toolbar { - display: flex; - justify-content: flex-start; - align-items: center; - border-bottom: 1px solid; - height: $carded-toolbar-height; - min-height: $carded-toolbar-height; - max-height: $carded-toolbar-height; - } - - > .content { - flex: 1 0 auto; - } - } - } - - // Tabbed - &.tabbed { - - > .center { - width: 100%; - min-width: 0; - - > .header { - flex: 1 1 auto; - } - - > .content-card { - - > .content { - display: flex; - - > .mat-tab-group { - overflow: hidden; - width: 100%; - - .mat-tab-header { - - .mat-tab-label { - height: 64px; - } - } - - .mat-tab-body { - overflow: hidden; - - .mat-tab-body-content { - overflow: hidden; - - .tab-content { - position: relative; - width: 100%; - height: 100%; - } - } - } - } - } - } - } - } - - // Inner scroll - &.inner-scroll { - flex: 1 1 auto; - - > .center { - flex: 1 1 auto; - - > .content-card { - flex: 1 1 auto; - - > .content { - flex: 1 1 auto; - overflow: auto; - -webkit-overflow-scrolling: touch; - } - } - } - - // Tabbed - &.tabbed { - - > .center { - - > .content-card { - - > .content { - - > .mat-tab-group { - - .mat-tab-body { - - .mat-tab-body-content { - - .tab-content { - overflow: auto; - -webkit-overflow-scrolling: touch; - } - } - } - } - } - } - } - } - } - } - - // Left / Right sidebar - &.left-sidebar, - &.right-sidebar { - flex-direction: row; - - // Sidebar - > .sidebar { - display: flex; - flex-direction: column; - flex: 1 1 auto; - width: 240px; - min-width: 240px; - max-width: 240px; - height: auto; - overflow: hidden; - @include mat-elevation(7); - - &.locked-open { - background: none; - box-shadow: none; - - + .center { - z-index: 1001; - } - - &.left-positioned { - - + .center { - margin-left: 0; - } - } - - &.right-positioned { - - + .center { - margin-right: 0; - } - } - } - - .header { - height: $carded-header-height; - min-height: $carded-header-height; - max-height: $carded-header-height; - } - - .content { - background: transparent; - flex: 1 1 auto; - } - } - - // Center - > .center { - display: flex; - flex-direction: column; - flex: 1 1 auto; - position: relative; - z-index: 3; - margin-left: 32px; - margin-right: 32px; - width: 100%; - min-width: 0; - - > .header { - display: flex; - height: $carded-header-height-without-toolbar; - min-height: $carded-header-height-without-toolbar; - max-height: $carded-header-height-without-toolbar; - } - - > .content-card { - display: flex; - flex-direction: column; - flex: 1 1 auto; - overflow: hidden; - @include mat-elevation(1); - - > .toolbar { - display: flex; - justify-content: flex-start; - align-items: center; - flex: 1 1 auto; - border-bottom: 1px solid; - height: $carded-toolbar-height; - min-height: $carded-toolbar-height; - max-height: $carded-toolbar-height; - - .sidebar-toggle { - margin: 0 8px 0 0 !important; - padding: 0 !important; - border-radius: 0; - } - } - - > .content { - flex: 1 1 auto; - } - } - } - - // Tabbed - &.tabbed { - - > .center { - width: calc(100% - 32px); - min-width: 0; - - @include media-breakpoint('lt-lg') { - width: calc(100% - 64px); - } - - > .header { - flex: 1 1 auto; - } - - > .content-card { - - > .content { - display: flex; - - > .mat-tab-group { - overflow: hidden; - - .mat-tab-header { - - .mat-tab-label { - height: 64px; - } - } - - .mat-tab-body { - overflow: hidden; - - .mat-tab-body-content { - overflow: hidden; - - .tab-content { - position: relative; - width: 100%; - height: 100%; - } - } - } - } - } - } - } - } - - // Inner scroll - &.inner-scroll { - flex: 1 1 auto; - - > .sidebar { - - .content { - overflow: auto; - -webkit-overflow-scrolling: touch; - } - } - - > .center { - flex: 1 1 auto; - - > .content-card { - flex: 1 1 auto; - - > .content { - flex: 1 1 auto; - overflow: auto; - -webkit-overflow-scrolling: touch; - } - } - } - - // Tabbed - &.tabbed { - - > .center { - - > .content-card { - - > .content { - - > .mat-tab-group { - - .mat-tab-body { - - .mat-tab-body-content { - - .tab-content { - overflow: auto; - -webkit-overflow-scrolling: touch; - } - } - } - } - } - } - } - } - } - } - - // Right sidebar specific - &.right-sidebar { - - > .sidebar { - order: 2; - } - - > .center { - order: 1; - } - } + position: relative; + overflow: hidden; + + // Carded layout + &.carded { + display: flex; + flex-direction: column; + flex: 1 0 auto; + width: 100%; + min-width: 100%; + + // Top bg + > .top-bg { + position: absolute; + z-index: 1; + top: 0; + right: 0; + left: 0; + height: $carded-header-height; } - // Simple layout - &.simple { + // Fullwidth + &.fullwidth { + // Center + > .center { display: flex; flex-direction: column; flex: 1 0 auto; + position: relative; + z-index: 2; + padding: 0 32px; width: 100%; - min-width: 100%; + min-width: 0; + max-width: 100%; + height: 100%; + max-height: 100%; - // Fullwidth - &.fullwidth { + > .header { + height: $carded-header-height-without-toolbar !important; + min-height: $carded-header-height-without-toolbar !important; + max-height: $carded-header-height-without-toolbar !important; + } + + > .content-card { + display: flex; + flex-direction: column; + flex: 1 0 auto; + overflow: hidden; + @include mat-elevation(1); + + > .toolbar { + display: flex; + justify-content: flex-start; + align-items: center; + border-bottom: 1px solid; + height: $carded-toolbar-height; + min-height: $carded-toolbar-height; + max-height: $carded-toolbar-height; + } + + > .content { + flex: 1 0 auto; + } + } + } + + // Tabbed + &.tabbed { + > .center { + width: 100%; + min-width: 0; + + > .header { + flex: 1 1 auto; + } + + > .content-card { + > .content { + display: flex; + + > .mat-tab-group { + overflow: hidden; + width: 100%; + + .mat-tab-header { + .mat-tab-label { + height: 64px; + } + } + + .mat-tab-body { + overflow: hidden; + + .mat-tab-body-content { + overflow: hidden; + + .tab-content { + position: relative; + width: 100%; + height: 100%; + } + } + } + } + } + } + } + } + + // Inner scroll + &.inner-scroll { + flex: 1 1 auto; + + > .center { + flex: 1 1 auto; + + > .content-card { + flex: 1 1 auto; > .content { - flex: 1 1 auto; - min-width: 0; - } - } - - &.fullwidth, - &.inner-sidebar { - - > .header { - height: $header-height; - min-height: $header-height; - max-height: $header-height; - } - } - - // Left / Right sidebar - &.left-sidebar, - &.right-sidebar { - flex-direction: row; - - // Sidebar - > .sidebar { - width: 240px; - min-width: 240px; - max-width: 240px; - overflow: hidden; - @include mat-elevation(7); - - &.locked-open { - background: none; - box-shadow: none; - - + .center { - z-index: 1001; - } - - &.left-positioned { - - + .center { - margin-left: 0; - } - } - - &.right-positioned { - - + .center { - margin-right: 0; - } - } - } - - .content { - flex: 1 1 auto; - } - } - - // Center - > .center { - position: relative; - display: flex; - flex-direction: column; - flex: 1 1 auto; - z-index: 3; - min-width: 0; - width: 100%; - @include mat-elevation(1); - - > .header { - height: $header-height; - min-height: $header-height; - max-height: $header-height; - } - - > .content { - flex: 1 0 auto; - } - } - - // Inner scroll - &.inner-scroll { - flex: 1 1 auto; - - > .sidebar { - - .content { - overflow: auto; - -webkit-overflow-scrolling: touch; - } - } - - > .center { - flex: 1 1 auto; - overflow: auto; - -webkit-overflow-scrolling: touch; - } - } - - // Inner sidebar - &.inner-sidebar { - flex-direction: column; - overflow: hidden; - height: 100%; - - > .content { - display: flex; - min-height: 0; - - > .sidebar { - - &.locked-open { - background: none; - box-shadow: none; - } - - .content { - overflow: auto; - -webkit-overflow-scrolling: touch; - } - } - - > .center { - flex: 1 1 auto; - overflow: auto; - -webkit-overflow-scrolling: touch; - - > .content { - border-radius: 8px; - @include mat-elevation(1); - } - } - } - } - } - - // Right sidebar specific - &.right-sidebar { - - > .sidebar { - order: 2; - } - - > .center { - order: 1; - } - - // Inner sidebar - &.inner-sidebar { - - > .content { - - > .sidebar { - order: 2; - } - - > .center { - order: 1; - } - } + flex: 1 1 auto; + overflow: auto; + -webkit-overflow-scrolling: touch; } + } } // Tabbed &.tabbed { - min-height: 100%; - - > .header { - height: $header-height; - min-height: $header-height; - max-height: $header-height; + > .center { + > .content-card { + > .content { + > .mat-tab-group { + .mat-tab-body { + .mat-tab-body-content { + .tab-content { + overflow: auto; + -webkit-overflow-scrolling: touch; + } + } + } + } + } } + } + } + } + } + + // Left / Right sidebar + &.left-sidebar, + &.right-sidebar { + flex-direction: row; + + // Sidebar + > .sidebar { + display: flex; + flex-direction: column; + flex: 1 1 auto; + width: 240px; + min-width: 240px; + max-width: 240px; + height: auto; + overflow: hidden; + @include mat-elevation(7); + + &.locked-open { + background: none; + box-shadow: none; + + + .center { + z-index: 1001; + } + + &.left-positioned { + + .center { + margin-left: 0; + } + } + + &.right-positioned { + + .center { + margin-right: 0; + } + } + } + + .header { + height: $carded-header-height; + min-height: $carded-header-height; + max-height: $carded-header-height; + } + + .content { + background: transparent; + flex: 1 1 auto; + } + } + + // Center + > .center { + display: flex; + flex-direction: column; + flex: 1 1 auto; + position: relative; + z-index: 3; + margin-left: 32px; + margin-right: 32px; + width: 100%; + min-width: 0; + + > .header { + display: flex; + height: $carded-header-height-without-toolbar; + min-height: $carded-header-height-without-toolbar; + max-height: $carded-header-height-without-toolbar; + } + + > .content-card { + display: flex; + flex-direction: column; + flex: 1 1 auto; + overflow: hidden; + @include mat-elevation(1); + + > .toolbar { + display: flex; + justify-content: flex-start; + align-items: center; + flex: 1 1 auto; + border-bottom: 1px solid; + height: $carded-toolbar-height; + min-height: $carded-toolbar-height; + max-height: $carded-toolbar-height; + + .sidebar-toggle { + margin: 0 8px 0 0 !important; + padding: 0 !important; + border-radius: 0; + } + } + + > .content { + flex: 1 1 auto; + } + } + } + + // Tabbed + &.tabbed { + > .center { + width: calc(100% - 32px); + min-width: 0; + + @include media-breakpoint('lt-lg') { + width: calc(100% - 64px); + } + + > .header { + flex: 1 1 auto; + } + + > .content-card { + > .content { + display: flex; + + > .mat-tab-group { + overflow: hidden; + + .mat-tab-header { + .mat-tab-label { + height: 64px; + } + } + + .mat-tab-body { + overflow: hidden; + + .mat-tab-body-content { + overflow: hidden; + + .tab-content { + position: relative; + width: 100%; + height: 100%; + } + } + } + } + } + } + } + } + + // Inner scroll + &.inner-scroll { + flex: 1 1 auto; + + > .sidebar { + .content { + overflow: auto; + -webkit-overflow-scrolling: touch; + } + } + + > .center { + flex: 1 1 auto; + + > .content-card { + flex: 1 1 auto; > .content { + flex: 1 1 auto; + overflow: auto; + -webkit-overflow-scrolling: touch; + } + } + } + // Tabbed + &.tabbed { + > .center { + > .content-card { + > .content { > .mat-tab-group { - - .mat-tab-labels { - padding: 0 24px; + .mat-tab-body { + .mat-tab-body-content { + .tab-content { + overflow: auto; + -webkit-overflow-scrolling: touch; + } } + } } + } } + } } + } } - // Blank layout - &.blank { + // Right sidebar specific + &.right-sidebar { + > .sidebar { + order: 2; + } + + > .center { + order: 1; + } + } + } + + // Simple layout + &.simple { + display: flex; + flex-direction: column; + flex: 1 0 auto; + width: 100%; + min-width: 100%; + + // Fullwidth + &.fullwidth { + > .content { + flex: 1 1 auto; + min-width: 0; + } + } + + &.fullwidth, + &.inner-sidebar { + > .header { + height: $header-height; + min-height: $header-height; + max-height: $header-height; + } + } + + // Left / Right sidebar + &.left-sidebar, + &.right-sidebar { + flex-direction: row; + + // Sidebar + > .sidebar { + width: 240px; + min-width: 240px; + max-width: 240px; + overflow: hidden; + @include mat-elevation(7); + + &.locked-open { + background: none; + box-shadow: none; + + + .center { + z-index: 1001; + } + + &.left-positioned { + + .center { + margin-left: 0; + } + } + + &.right-positioned { + + .center { + margin-right: 0; + } + } + } + + .content { + flex: 1 1 auto; + } + } + + // Center + > .center { + position: relative; + display: flex; + flex-direction: column; + flex: 1 1 auto; + z-index: 3; + min-width: 0; width: 100%; - min-height: 100%; - } + @include mat-elevation(1); - @include media-breakpoint('xs') { - - // Smaller margins - &.carded { - - &.fullwidth { - - > .center { - padding: 0 16px; - } - } - - &.left-sidebar, - &.right-sidebar { - - > .center { - margin: 0 16px; - } - } + > .header { + height: $header-height; + min-height: $header-height; + max-height: $header-height; } - // End - Smaller margins + + > .content { + flex: 1 0 auto; + } + } + + // Inner scroll + &.inner-scroll { + flex: 1 1 auto; + + > .sidebar { + .content { + overflow: auto; + -webkit-overflow-scrolling: touch; + } + } + + > .center { + flex: 1 1 auto; + overflow: auto; + -webkit-overflow-scrolling: touch; + } + } + + // Inner sidebar + &.inner-sidebar { + flex-direction: column; + overflow: hidden; + height: 100%; + + > .content { + display: flex; + min-height: 0; + + > .sidebar { + &.locked-open { + background: none; + box-shadow: none; + } + + .content { + overflow: auto; + -webkit-overflow-scrolling: touch; + } + } + + > .center { + flex: 1 1 auto; + overflow: auto; + -webkit-overflow-scrolling: touch; + + > .content { + border-radius: 8px; + @include mat-elevation(1); + } + } + } + } } + + // Right sidebar specific + &.right-sidebar { + > .sidebar { + order: 2; + } + + > .center { + order: 1; + } + + // Inner sidebar + &.inner-sidebar { + > .content { + > .sidebar { + order: 2; + } + + > .center { + order: 1; + } + } + } + } + + // Tabbed + &.tabbed { + min-height: 100%; + + > .header { + height: $header-height; + min-height: $header-height; + max-height: $header-height; + } + + > .content { + > .mat-tab-group { + .mat-tab-labels { + padding: 0 24px; + } + } + } + } + } + + // Blank layout + &.blank { + width: 100%; + min-height: 100%; + } + + @include media-breakpoint('xs') { + // Smaller margins + &.carded { + &.fullwidth { + > .center { + padding: 0 16px; + } + } + + &.left-sidebar, + &.right-sidebar { + > .center { + margin: 0 16px; + } + } + } + // End - Smaller margins + } } - - diff --git a/src/app/pages/medias/media/component/detail.component.html b/src/app/pages/medias/media/component/detail.component.html index fc07b2e..84ec30e 100644 --- a/src/app/pages/medias/media/component/detail.component.html +++ b/src/app/pages/medias/media/component/detail.component.html @@ -21,10 +21,13 @@ arrow_back - +
+ +
-
- - -
- --> + + +
+
+
+
+
{{ id3Tag?.title }}
+
{{ id3Tag?.subtitle }}
+
+ +
+ +
+ + + +
+
+ + + - - - - + > + --> + + - + --> - Tags - + - -
-
+
--> +
+
- -
- -
-
+
+ - -
-
- - + +
+
+ +
diff --git a/src/app/pages/medias/media/component/detail.component.scss b/src/app/pages/medias/media/component/detail.component.scss index ded7d59..f1daae9 100644 --- a/src/app/pages/medias/media/component/detail.component.scss +++ b/src/app/pages/medias/media/component/detail.component.scss @@ -60,3 +60,21 @@ } } } + +.uploadfilecontainer { + background-image: url('/assets/images/file-manager/cloud-2044823_960_720.png'); + background-repeat: no-repeat; + background-size: 80px; + background-position: center; + // height: 200px; + // width: 80%; + // margin: 20px auto; + border: 2px dashed #1c8adb; + border-radius: 10px; +} + +.uploadfilecontainer:hover { + cursor: pointer; + background-color: #9ecbec !important; + opacity: 0.8; +} diff --git a/src/app/pages/medias/media/component/detail.component.ts b/src/app/pages/medias/media/component/detail.component.ts index c268b38..628ec30 100644 --- a/src/app/pages/medias/media/component/detail.component.ts +++ b/src/app/pages/medias/media/component/detail.component.ts @@ -1,4 +1,11 @@ -import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; +import { + Component, + OnDestroy, + OnInit, + ViewEncapsulation, + ViewChild, + ElementRef +} from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; import { Location } from '@angular/common'; import { MatSnackBar } from '@angular/material/snack-bar'; @@ -8,6 +15,11 @@ import { takeUntil } from 'rxjs/operators'; import { fuseAnimations } from 'src/@fuse/animations'; import { FuseUtils } from 'src/@fuse/utils'; +import universalParse from 'id3-parser/lib/universal'; +import { IID3Tag } from 'id3-parser/lib/interface'; + +import { NgxFileDropEntry, FileSystemFileEntry } from 'ngx-file-drop'; + @Component({ selector: 'app-pages-medias-media-detail', templateUrl: './detail.component.html', @@ -19,6 +31,10 @@ export class DetailComponent implements OnInit, OnDestroy { media: any; pageType: string; mediaForm: FormGroup; + id3Tag: IID3Tag | null; + + @ViewChild('testImage', { static: true }) + testImage: ElementRef; // Private private _unsubscribeAll: Subject; @@ -58,4 +74,31 @@ export class DetailComponent implements OnInit, OnDestroy { // ----------------------------------------------------------------------------------------------------- // @ Public methods // ----------------------------------------------------------------------------------------------------- + onMediaAdded(ev: any): void { + universalParse(ev.target.files[0]).then(tags => { + this.id3Tag = tags; + const b64encoded = + `data:${tags.image.mime};base64,` + + btoa(String.fromCharCode.apply(null, tags.image.data)); + console.log(b64encoded); + this.testImage.nativeElement.src = b64encoded; + }); + } + + onFileDropped(files: NgxFileDropEntry[]) { + console.log(files[0].fileEntry); + + const fileEntry = files[0].fileEntry as FileSystemFileEntry; + + fileEntry.file((file: File) => { + universalParse(file).then(tags => { + this.id3Tag = tags; + const b64encoded = + `data:${tags.image.mime};base64,` + + btoa(String.fromCharCode.apply(null, tags.image.data)); + + this.testImage.nativeElement.src = b64encoded; + }); + }); + } } diff --git a/src/app/pages/medias/media/medias-media.module.ts b/src/app/pages/medias/media/medias-media.module.ts index 0ff2f0d..0bcf180 100644 --- a/src/app/pages/medias/media/medias-media.module.ts +++ b/src/app/pages/medias/media/medias-media.module.ts @@ -15,6 +15,8 @@ import { MatTableModule } from '@angular/material/table'; import { MatTabsModule } from '@angular/material/tabs'; import { MatCheckboxModule } from '@angular/material/checkbox'; +import { NgxFileDropModule } from 'ngx-file-drop'; + import { FuseSharedModule } from 'src/@fuse/shared.module'; import { FuseWidgetModule } from 'src/@fuse/components/widget/widget.module'; @@ -39,6 +41,8 @@ import { COMPONENTS } from './component'; MatTabsModule, MatCheckboxModule, + NgxFileDropModule, + FuseSharedModule, FuseWidgetModule, diff --git a/src/assets/images/file-manager/cloud-2044823_960_720.png b/src/assets/images/file-manager/cloud-2044823_960_720.png new file mode 100644 index 0000000000000000000000000000000000000000..c3ea3f0e6a49cddda94a3433cc5886c798a8b49b GIT binary patch literal 66977 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 { + return { + ngModule: AudioPlayerRootModule, + providers: [SERVICES] + }; + } +} diff --git a/src/modules/audio-player/component/index.ts b/src/modules/audio-player/component/index.ts new file mode 100644 index 0000000..c2ef00c --- /dev/null +++ b/src/modules/audio-player/component/index.ts @@ -0,0 +1 @@ +export const COMPONENTS = []; diff --git a/src/modules/audio-player/service/index.ts b/src/modules/audio-player/service/index.ts new file mode 100644 index 0000000..cda3e9a --- /dev/null +++ b/src/modules/audio-player/service/index.ts @@ -0,0 +1 @@ +export const SERVICES = [];