From e4d344226a7f39b21f1c079d715b87007b4b589f Mon Sep 17 00:00:00 2001 From: David Acosta Date: Fri, 3 Mar 2023 14:02:59 -0800 Subject: [PATCH 1/4] Windows signing --- .github/workflows/publish-action.yml | 118 +++++++++++++++------------ build/signWindows.js | 42 ++++++++++ package.json | 4 +- vue.config.js | 4 + 4 files changed, 113 insertions(+), 55 deletions(-) create mode 100644 build/signWindows.js diff --git a/.github/workflows/publish-action.yml b/.github/workflows/publish-action.yml index beaaf4f8..19f2dc28 100644 --- a/.github/workflows/publish-action.yml +++ b/.github/workflows/publish-action.yml @@ -5,59 +5,59 @@ on: types: [created] jobs: - publish_on_linux: - runs-on: ubuntu-latest - strategy: - matrix: - os: [ubuntu-latest] - node-version: [16.x] - steps: - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - - name: Install dependencies - run: yarn install - - name: Install OAuth server dependencies - run: yarn install - working-directory: ./server - - name: Publish - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: npm run publish - - publish_on_mac: - runs-on: macos-latest - strategy: - matrix: - os: [macos-latest] - node-version: [16.x] - steps: - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - - name: Install dependencies - run: yarn install - - name: Install OAuth server dependencies - run: yarn install - working-directory: ./server - - name: Prep key for app notarization - run: | - mkdir -p ~/private_keys/ - echo '${{ secrets.api_key }}' > ~/private_keys/AuthKey_${{ secrets.api_key_id }}.p8 - - name: Publish - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CSC_LINK: ${{ secrets.mac_csc_link }} - CSC_KEY_PASSWORD: ${{ secrets.mac_csc_key_password }} - API_KEY_ID: ${{ secrets.api_key_id }} - API_KEY_ISSUER_ID: ${{ secrets.api_key_issuer_id }} - run: npm run publish +# publish_on_linux: +# runs-on: ubuntu-latest +# strategy: +# matrix: +# os: [ubuntu-latest] +# node-version: [16.x] +# steps: +# - uses: actions/checkout@v3 +# - name: Use Node.js ${{ matrix.node-version }} +# uses: actions/setup-node@v3 +# with: +# node-version: ${{ matrix.node-version }} +# cache: 'npm' +# - name: Install dependencies +# run: yarn install +# - name: Install OAuth server dependencies +# run: yarn install +# working-directory: ./server +# - name: Publish +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# run: npm run publish +# +# publish_on_mac: +# runs-on: macos-latest +# strategy: +# matrix: +# os: [macos-latest] +# node-version: [16.x] +# steps: +# - uses: actions/checkout@v3 +# - name: Use Node.js ${{ matrix.node-version }} +# uses: actions/setup-node@v3 +# with: +# node-version: ${{ matrix.node-version }} +# cache: 'npm' +# - name: Install dependencies +# run: yarn install +# - name: Install OAuth server dependencies +# run: yarn install +# working-directory: ./server +# - name: Prep key for app notarization +# run: | +# mkdir -p ~/private_keys/ +# echo '${{ secrets.api_key }}' > ~/private_keys/AuthKey_${{ secrets.api_key_id }}.p8 +# - name: Publish +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# CSC_LINK: ${{ secrets.mac_csc_link }} +# CSC_KEY_PASSWORD: ${{ secrets.mac_csc_key_password }} +# API_KEY_ID: ${{ secrets.api_key_id }} +# API_KEY_ISSUER_ID: ${{ secrets.api_key_issuer_id }} +# run: npm run publish publish_on_win: runs-on: windows-latest @@ -65,6 +65,8 @@ jobs: matrix: os: [windows-latest] node-version: [16.x] + env: + INSTALL_DIR: C:\Users\runneradmin\CodeSignTool steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} @@ -77,7 +79,17 @@ jobs: - name: Install OAuth server dependencies run: yarn install working-directory: ./server + - name: Download and Unzip eSignerCKA Setup + run: | + Invoke-WebRequest -OutFile CodeSignTool.zip "https://www.ssl.com/download/codesigntool-for-windows" + Expand-Archive -Force CodeSignTool.zip + Remove-Item CodeSignTool.zip - name: Publish env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + WINDOWS_SIGN_USER_NAME: ${{ secrets.WINDOWS_SIGN_USER_NAME }} + WINDOWS_SIGN_USER_PASSWORD: ${{ secrets.WINDOWS_SIGN_USER_PASSWORD }} + WINDOWS_SIGN_CREDENTIAL_ID: ${{ secrets.WINDOWS_SIGN_CREDENTIAL_ID }} + WINDOWS_SIGN_USER_TOTP: ${{ secrets.WINDOWS_SIGN_USER_TOTP }} run: npm run publish + diff --git a/build/signWindows.js b/build/signWindows.js new file mode 100644 index 00000000..b8368a15 --- /dev/null +++ b/build/signWindows.js @@ -0,0 +1,42 @@ +const path = require('path'); +const fs = require('fs'); +const childProcess = require('child_process'); + +const TEMP_DIR = path.join(__dirname, 'release', 'temp'); + +if (!fs.existsSync(TEMP_DIR)) { + fs.mkdirSync(TEMP_DIR, { recursive: true }); +} + +function sign(configuration) { + // credentials from ssl.com + const USER_NAME = process.env.WINDOWS_SIGN_USER_NAME; + const USER_PASSWORD = process.env.WINDOWS_SIGN_USER_PASSWORD; + const CREDENTIAL_ID = process.env.WINDOWS_SIGN_CREDENTIAL_ID; + const USER_TOTP = process.env.WINDOWS_SIGN_USER_TOTP; + const INSTALL_DIR = process.env.INSTALL_DIR; + if (USER_NAME && USER_PASSWORD && USER_TOTP && CREDENTIAL_ID) { + console.log(`Signing ${configuration.path}`); + const { name, dir } = path.parse(configuration.path); + // CodeSignTool can't sign in place without verifying the overwrite with a + // y/m interaction so we are creating a new file in a temp directory and + // then replacing the original file with the signed file. + const tempFile = path.join(TEMP_DIR, name); + const setDir = `cd CodeSignTool/CodeSignTool-v1.2.7-windows`; + const signFile = `"CodeSignTool" sign -input_file_path="${configuration.path}" -output_dir_path="${TEMP_DIR}" -credential_id="${CREDENTIAL_ID}" -username="${USER_NAME}" -password="${USER_PASSWORD}" -totp_secret="${USER_TOTP}"`; + const moveFile = `mv "${tempFile}" "${dir}"`; + childProcess.execSync(`${setDir} && pwd && ls -l`, { stdio: 'inherit' }); + childProcess.execSync(`${setDir} && ${signFile}`, { stdio: 'inherit' }); + childProcess.execSync(`${moveFile}`, { stdio: 'inherit' }); + } else { + console.warn(`sign.js - Can't sign file ${configuration.path}, missing value for: +${USER_NAME ? '' : 'WINDOWS_SIGN_USER_NAME'} +${USER_PASSWORD ? '' : 'WINDOWS_SIGN_USER_PASSWORD'} +${CREDENTIAL_ID ? '' : 'WINDOWS_SIGN_CREDENTIAL_ID'} +${USER_TOTP ? '' : 'WINDOWS_SIGN_USER_TOTP'} +`); + process.exit(1); + } +} + +exports.default = sign; diff --git a/package.json b/package.json index 9f867314..0a449ba3 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "yattie", - "version": "0.5.3", + "version": "0.5.4", "engines": { "npm": ">=8.0.0 <9.0.0", "node": ">=16.0.0 <17.0.0" }, "keywords": [], "author": { - "name": "YATT", + "name": "YATT, Inc", "email": "contact@yatt.ai" }, "license": "GPL-3.0-only", diff --git a/vue.config.js b/vue.config.js index 06f53ad3..966c023b 100644 --- a/vue.config.js +++ b/vue.config.js @@ -71,6 +71,10 @@ module.exports = { }, win: { icon: "icons/icon.ico", + publisherName: "YATT, Inc", + certificateSubjectName: "YATT, Inc", + rfc3161TimeStampServer: "http://ts.ssl.com", + sign: "./build/signWindows.js", target: ["nsis"], publish: [ { From 0e008af2936867a62fd7ae53ad263669a77028d9 Mon Sep 17 00:00:00 2001 From: David Acosta Date: Mon, 6 Mar 2023 14:16:44 -0800 Subject: [PATCH 2/4] Final touches on Windows code signing --- .github/workflows/publish-action.yml | 108 +++++++++++++-------------- build/signWindows.js | 2 - 2 files changed, 53 insertions(+), 57 deletions(-) diff --git a/.github/workflows/publish-action.yml b/.github/workflows/publish-action.yml index 19f2dc28..3ace5aa9 100644 --- a/.github/workflows/publish-action.yml +++ b/.github/workflows/publish-action.yml @@ -5,59 +5,59 @@ on: types: [created] jobs: -# publish_on_linux: -# runs-on: ubuntu-latest -# strategy: -# matrix: -# os: [ubuntu-latest] -# node-version: [16.x] -# steps: -# - uses: actions/checkout@v3 -# - name: Use Node.js ${{ matrix.node-version }} -# uses: actions/setup-node@v3 -# with: -# node-version: ${{ matrix.node-version }} -# cache: 'npm' -# - name: Install dependencies -# run: yarn install -# - name: Install OAuth server dependencies -# run: yarn install -# working-directory: ./server -# - name: Publish -# env: -# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -# run: npm run publish -# -# publish_on_mac: -# runs-on: macos-latest -# strategy: -# matrix: -# os: [macos-latest] -# node-version: [16.x] -# steps: -# - uses: actions/checkout@v3 -# - name: Use Node.js ${{ matrix.node-version }} -# uses: actions/setup-node@v3 -# with: -# node-version: ${{ matrix.node-version }} -# cache: 'npm' -# - name: Install dependencies -# run: yarn install -# - name: Install OAuth server dependencies -# run: yarn install -# working-directory: ./server -# - name: Prep key for app notarization -# run: | -# mkdir -p ~/private_keys/ -# echo '${{ secrets.api_key }}' > ~/private_keys/AuthKey_${{ secrets.api_key_id }}.p8 -# - name: Publish -# env: -# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -# CSC_LINK: ${{ secrets.mac_csc_link }} -# CSC_KEY_PASSWORD: ${{ secrets.mac_csc_key_password }} -# API_KEY_ID: ${{ secrets.api_key_id }} -# API_KEY_ISSUER_ID: ${{ secrets.api_key_issuer_id }} -# run: npm run publish + publish_on_linux: + runs-on: ubuntu-latest + strategy: + matrix: + os: [ubuntu-latest] + node-version: [16.x] + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - name: Install dependencies + run: yarn install + - name: Install OAuth server dependencies + run: yarn install + working-directory: ./server + - name: Publish + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npm run publish + + publish_on_mac: + runs-on: macos-latest + strategy: + matrix: + os: [macos-latest] + node-version: [16.x] + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - name: Install dependencies + run: yarn install + - name: Install OAuth server dependencies + run: yarn install + working-directory: ./server + - name: Prep key for app notarization + run: | + mkdir -p ~/private_keys/ + echo '${{ secrets.api_key }}' > ~/private_keys/AuthKey_${{ secrets.api_key_id }}.p8 + - name: Publish + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CSC_LINK: ${{ secrets.mac_csc_link }} + CSC_KEY_PASSWORD: ${{ secrets.mac_csc_key_password }} + API_KEY_ID: ${{ secrets.api_key_id }} + API_KEY_ISSUER_ID: ${{ secrets.api_key_issuer_id }} + run: npm run publish publish_on_win: runs-on: windows-latest @@ -65,8 +65,6 @@ jobs: matrix: os: [windows-latest] node-version: [16.x] - env: - INSTALL_DIR: C:\Users\runneradmin\CodeSignTool steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} diff --git a/build/signWindows.js b/build/signWindows.js index b8368a15..2c80363f 100644 --- a/build/signWindows.js +++ b/build/signWindows.js @@ -14,7 +14,6 @@ function sign(configuration) { const USER_PASSWORD = process.env.WINDOWS_SIGN_USER_PASSWORD; const CREDENTIAL_ID = process.env.WINDOWS_SIGN_CREDENTIAL_ID; const USER_TOTP = process.env.WINDOWS_SIGN_USER_TOTP; - const INSTALL_DIR = process.env.INSTALL_DIR; if (USER_NAME && USER_PASSWORD && USER_TOTP && CREDENTIAL_ID) { console.log(`Signing ${configuration.path}`); const { name, dir } = path.parse(configuration.path); @@ -25,7 +24,6 @@ function sign(configuration) { const setDir = `cd CodeSignTool/CodeSignTool-v1.2.7-windows`; const signFile = `"CodeSignTool" sign -input_file_path="${configuration.path}" -output_dir_path="${TEMP_DIR}" -credential_id="${CREDENTIAL_ID}" -username="${USER_NAME}" -password="${USER_PASSWORD}" -totp_secret="${USER_TOTP}"`; const moveFile = `mv "${tempFile}" "${dir}"`; - childProcess.execSync(`${setDir} && pwd && ls -l`, { stdio: 'inherit' }); childProcess.execSync(`${setDir} && ${signFile}`, { stdio: 'inherit' }); childProcess.execSync(`${moveFile}`, { stdio: 'inherit' }); } else { From e779f7c1badfc5d491806ed0144e0636c1812724 Mon Sep 17 00:00:00 2001 From: David Acosta Date: Mon, 6 Mar 2023 14:17:31 -0800 Subject: [PATCH 3/4] Fix dark mode --- src/assets/icon/camera-gray.svg | 3 + src/assets/icon/connect-gray.svg | 3 + src/assets/icon/drag-drop.png | Bin 0 -> 705 bytes .../icon/microphone-slash-solid-gray.svg | 10 ++ src/assets/icon/microphone-solid-gray.svg | 10 ++ src/assets/icon/pause-gray.svg | 3 + src/assets/icon/pencil-gray.svg | 4 + src/assets/icon/play-gray.svg | 3 + src/assets/icon/stop-gray.svg | 3 + src/assets/icon/union-gray.svg | 3 + src/assets/icon/video-slash-solid-gray.svg | 10 ++ src/assets/icon/video-solid-gray.svg | 10 ++ src/components/CheckTaskWrapper.vue | 56 +++++++- src/components/ControlPanel.vue | 118 ++++++++++++++++- src/components/TestWrapper.vue | 29 ++++- src/components/TextEditor.vue | 120 ++++++++++++++++++ src/components/TimeCounter.vue | 5 + src/components/TimelineWrapper.vue | 14 +- src/components/VideoWrapper.vue | 19 ++- src/components/WorkspaceWrapper.vue | 3 + .../authentication/SigninWrapper.vue | 42 ++++-- src/components/dialogs/EndSessionDialog.vue | 18 ++- src/components/dialogs/NoteDialog.vue | 15 ++- src/components/dialogs/ResetConfirmDialog.vue | 17 ++- src/components/dialogs/SourcePickerDialog.vue | 35 ++++- src/components/dialogs/SummaryDialog.vue | 21 ++- .../settings/ConfigCheckListTab.vue | 9 +- src/components/settings/ConnectionsTab.vue | 46 +++++-- src/components/settings/GeneralTab.vue | 58 ++++++--- src/components/settings/ReportsTab.vue | 22 +++- src/components/settings/TemplateTab.vue | 17 ++- src/layouts/Default.vue | 11 +- src/locales/en.json | 7 +- src/menu.js | 10 +- src/modules/WindowUtility.js | 20 +-- src/plugins/vuetify.js | 21 ++- src/scss/variables.scss | 38 +++++- src/views/AddSession.vue | 13 +- src/views/AuthenticationView.vue | 1 - src/views/EditSession.vue | 13 +- src/views/EndSessionView.vue | 25 +++- src/views/HomeView.vue | 6 + src/views/MainView.vue | 6 + src/views/NoteEditorView.vue | 32 ++++- src/views/SettingView.vue | 18 ++- src/views/SourcePickerView.vue | 35 ++++- src/views/SummaryEditorView.vue | 31 ++++- 47 files changed, 884 insertions(+), 129 deletions(-) create mode 100644 src/assets/icon/camera-gray.svg create mode 100644 src/assets/icon/connect-gray.svg create mode 100644 src/assets/icon/drag-drop.png create mode 100644 src/assets/icon/microphone-slash-solid-gray.svg create mode 100644 src/assets/icon/microphone-solid-gray.svg create mode 100644 src/assets/icon/pause-gray.svg create mode 100644 src/assets/icon/pencil-gray.svg create mode 100644 src/assets/icon/play-gray.svg create mode 100644 src/assets/icon/stop-gray.svg create mode 100644 src/assets/icon/union-gray.svg create mode 100644 src/assets/icon/video-slash-solid-gray.svg create mode 100644 src/assets/icon/video-solid-gray.svg create mode 100644 src/components/TextEditor.vue diff --git a/src/assets/icon/camera-gray.svg b/src/assets/icon/camera-gray.svg new file mode 100644 index 00000000..05a5d8ce --- /dev/null +++ b/src/assets/icon/camera-gray.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icon/connect-gray.svg b/src/assets/icon/connect-gray.svg new file mode 100644 index 00000000..20a39569 --- /dev/null +++ b/src/assets/icon/connect-gray.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icon/drag-drop.png b/src/assets/icon/drag-drop.png new file mode 100644 index 0000000000000000000000000000000000000000..3f519a71acb904124e37482aa7ddc7bd400c066f GIT binary patch literal 705 zcmV;y0zUnTP)($h!NkKQBg!=h~OiNni&`F^Ap@eQ4|GT zsEc5-(0~g;Q3UZPxKL2HqC&C|MhFPv%B6@97!cz^UHWJ#{054)O{%A>Y7(bExXf^; z`c|K=N8h>wrAn2`(srPhvcXiFee(BNzNJ7_{)*+V$X8XHrus7a*^7sp{|+P>c3N#N zTE3saF8Lo@{szz`Ygm5M#%Q;$&FW{Q2tZ9iW`QZoo?4?Y1U!@fA+SRJW5A^R*R7a0 zE2Im+LE>v8Fb1rr({;wj ze%yj8zul7@&R zd5wS8u>DI{70`UfP&Y86J~z2suwad zsvci+Rv(-Jx>OmvnX+rZ<^lj~fGzsIT*c$dApl(DBNsBcmU$?P79g)mfd6U)ZYkI~ z;^~e0+~FhGh=RQWRuf*sN^d?n9Cw`$+0%kB1%MX;>q4)sKLZPw9Mjc{2YNE0YeKWW nZ$5p79tddtzNSs7Qv9voFY`oTX)^$#00000NkvXXu0mjf4l6uU literal 0 HcmV?d00001 diff --git a/src/assets/icon/microphone-slash-solid-gray.svg b/src/assets/icon/microphone-slash-solid-gray.svg new file mode 100644 index 00000000..833fd947 --- /dev/null +++ b/src/assets/icon/microphone-slash-solid-gray.svg @@ -0,0 +1,10 @@ + + + +Created with Fabric.js 4.6.0 + + + + + + \ No newline at end of file diff --git a/src/assets/icon/microphone-solid-gray.svg b/src/assets/icon/microphone-solid-gray.svg new file mode 100644 index 00000000..2b6fe9b7 --- /dev/null +++ b/src/assets/icon/microphone-solid-gray.svg @@ -0,0 +1,10 @@ + + + +Created with Fabric.js 4.6.0 + + + + + + \ No newline at end of file diff --git a/src/assets/icon/pause-gray.svg b/src/assets/icon/pause-gray.svg new file mode 100644 index 00000000..3d695dc7 --- /dev/null +++ b/src/assets/icon/pause-gray.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icon/pencil-gray.svg b/src/assets/icon/pencil-gray.svg new file mode 100644 index 00000000..1ff8bd61 --- /dev/null +++ b/src/assets/icon/pencil-gray.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icon/play-gray.svg b/src/assets/icon/play-gray.svg new file mode 100644 index 00000000..aacced6a --- /dev/null +++ b/src/assets/icon/play-gray.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icon/stop-gray.svg b/src/assets/icon/stop-gray.svg new file mode 100644 index 00000000..aec9ba30 --- /dev/null +++ b/src/assets/icon/stop-gray.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icon/union-gray.svg b/src/assets/icon/union-gray.svg new file mode 100644 index 00000000..5913bb23 --- /dev/null +++ b/src/assets/icon/union-gray.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icon/video-slash-solid-gray.svg b/src/assets/icon/video-slash-solid-gray.svg new file mode 100644 index 00000000..d46eaab9 --- /dev/null +++ b/src/assets/icon/video-slash-solid-gray.svg @@ -0,0 +1,10 @@ + + + +Created with Fabric.js 4.6.0 + + + + + + \ No newline at end of file diff --git a/src/assets/icon/video-solid-gray.svg b/src/assets/icon/video-solid-gray.svg new file mode 100644 index 00000000..71423a2e --- /dev/null +++ b/src/assets/icon/video-solid-gray.svg @@ -0,0 +1,10 @@ + + + +Created with Fabric.js 4.6.0 + + + + + + \ No newline at end of file diff --git a/src/components/CheckTaskWrapper.vue b/src/components/CheckTaskWrapper.vue index 8cf5e0ed..b320f914 100644 --- a/src/components/CheckTaskWrapper.vue +++ b/src/components/CheckTaskWrapper.vue @@ -1,6 +1,11 @@ {{ $tc("caption.resume_session", 1) }} @@ -114,7 +118,10 @@ v-on="on" @click="newSessionDialog = true" > - mdi-content-save + + mdi-content-save + + mdi-content-save {{ $tc("caption.save_session") }} @@ -131,7 +138,10 @@ v-on="on" @click="resetConfirmDialog = true" > - mdi-close-circle + + mdi-close-circle + + mdi-close-circle {{ $tc("caption.clear_session", 1) }} @@ -156,10 +166,17 @@ @click="pauseSession()" > + {{ $tc("caption.pause_session", 1) }} @@ -177,10 +194,17 @@ @click="resumeSession()" > + {{ $tc("caption.resume_session", 1) }} @@ -198,10 +222,17 @@ @click="endSession()" > + {{ $tc("caption.end_session", 1) }} @@ -220,10 +251,17 @@ @click="startRecordVideo()" > + {{ $tc("caption.start_video_record", 1) }} @@ -242,10 +280,17 @@ @click="stopRecordVideo()" > + {{ $tc("caption.stop_video_record", 1) }} @@ -264,10 +309,17 @@ @click="screenshot()" > + {{ $tc("caption.screenshot", 1) }} @@ -286,10 +338,17 @@ @click="startRecordAudio()" > + {{ $tc("caption.start_audio_record", 1) }} @@ -308,10 +367,19 @@ @click="stopRecordAudio()" > + {{ $tc("caption.stop_audio_record", 1) }} @@ -330,10 +398,17 @@ @click="showNoteDialog" > + {{ $tc("caption.note", 1) }} @@ -351,10 +426,17 @@ @click="mindMap" > + {{ $tc("caption.mind_map", 1) }} @@ -371,10 +453,17 @@ @click="minimize" > + {{ $tc("caption.minimize", 1) }} @@ -391,7 +480,10 @@ v-on="on" v-bind="attrs" > - mdi-dots-vertical + + mdi-dots-vertical + + mdi-dots-vertical @@ -627,6 +719,13 @@ export default { const result = date.toISOString().substr(11, 8); return result; }, + currentTheme() { + if (this.$vuetify.theme.dark) { + return this.$vuetify.theme.themes.dark; + } else { + return this.$vuetify.theme.themes.light; + } + }, summary() { let summary = {}; this.items.map((item) => { @@ -842,7 +941,7 @@ export default { data: { path: "noteEditor", size: { - width: 400, + width: 500, height: 550, }, data: this.config, @@ -984,7 +1083,7 @@ export default { data: { path: "endsession", size: { - width: 350, + width: 450, height: 500, }, data: this.config, @@ -1585,4 +1684,11 @@ export default { .v-btn--disabled img { opacity: 0.5; } +.theme--dark .control-btn-wrapper { + background-color: #374151; +} +.theme--dark .control-btn { + background-color: #4b5563; + border-color: #4b5563; +} diff --git a/src/components/TestWrapper.vue b/src/components/TestWrapper.vue index 6b6b4dd8..c830959f 100644 --- a/src/components/TestWrapper.vue +++ b/src/components/TestWrapper.vue @@ -3,7 +3,12 @@
-
{{ $tc("caption.title", 1) }}
+
+ {{ $tc("caption.title", 1) }} +
-
+
{{ $tc("caption.charter", 1) }}
-
+
{{ $tc("caption.time_limit", 1) }}
@@ -94,7 +104,7 @@ +
+
+ {{ label }} +
+ +
+ + + + + diff --git a/src/components/TimeCounter.vue b/src/components/TimeCounter.vue index d1f61cef..c6eef35b 100644 --- a/src/components/TimeCounter.vue +++ b/src/components/TimeCounter.vue @@ -81,4 +81,9 @@ export default { .time-wrapper .time .time-value.proceed { color: #ff6000; } + +.theme--dark .timecounter-wrapper { + background-color: #374151; + border-top: 1px solid #4b5563; +} diff --git a/src/components/TimelineWrapper.vue b/src/components/TimelineWrapper.vue index 66736283..78a165b5 100644 --- a/src/components/TimelineWrapper.vue +++ b/src/components/TimelineWrapper.vue @@ -2,10 +2,13 @@ -
+
{{ $tc("caption.session_started", 1) }}
-
+
mdi-calendar-minus-outline {{ $store.state.started }} {{ current }} @@ -760,6 +763,13 @@ export default { current() { return dayjs().format("MM-DD-YYYY"); }, + currentTheme() { + if (this.$vuetify.theme.dark) { + return this.$vuetify.theme.themes.dark; + } else { + return this.$vuetify.theme.themes.light; + } + }, }, mounted() { this.itemLists.map((item) => { diff --git a/src/components/VideoWrapper.vue b/src/components/VideoWrapper.vue index 3d688aa3..c994859d 100644 --- a/src/components/VideoWrapper.vue +++ b/src/components/VideoWrapper.vue @@ -26,7 +26,10 @@
-
+
{{ $tc("caption.start", 1) }}
-
-
{{ $tc("caption.end", 1) }}
+
+ {{ $tc("caption.end", 1) }} +
diff --git a/src/components/authentication/SigninWrapper.vue b/src/components/authentication/SigninWrapper.vue index 87bdcc87..a01799eb 100644 --- a/src/components/authentication/SigninWrapper.vue +++ b/src/components/authentication/SigninWrapper.vue @@ -5,7 +5,10 @@ mdi-chevron-left {{ $tc("caption.back", 1) }} - @@ -22,7 +25,9 @@ -
{{ $tc("caption.signin_jira", 1) }}
+
+ {{ $tc("caption.signin_jira", 1) }} +
@@ -132,7 +143,15 @@ export default { }, }; }, - computed: {}, + computed: { + currentTheme() { + if (this.$vuetify.theme.dark) { + return this.$vuetify.theme.themes.dark; + } else { + return this.$vuetify.theme.themes.light; + } + }, + }, mounted() { window.ipc.on("JIRA_LOGIN", (data) => { this.jiraLogin(data); @@ -275,7 +294,6 @@ export default { font-weight: 600; font-size: 16px; line-height: 24px; - color: #111827; text-align: center; } .header .signup-title span { @@ -287,6 +305,9 @@ export default { border-radius: 8px; padding: 32px 40px; } +.theme--dark .content { + background-color: #374151 !important; +} .outline-btn { display: flex; border: 1px solid #d1d5db; @@ -297,12 +318,15 @@ export default { .outline-btn:hover { background-color: #d1d5db; } +.theme--dark .outline-btn { + background-color: #4b5563; + border: 0; +} .outline-btn .btn-text { flex-grow: 1; display: flex; justify-content: center; align-items: center; - color: #111827; font-size: 13px; font-weight: 500; line-height: 16px; diff --git a/src/components/dialogs/EndSessionDialog.vue b/src/components/dialogs/EndSessionDialog.vue index 44dd67a6..b4fb3cde 100644 --- a/src/components/dialogs/EndSessionDialog.vue +++ b/src/components/dialogs/EndSessionDialog.vue @@ -1,7 +1,7 @@