Changeset 35321 for main/trunk
- Timestamp:
- 2021-08-25T12:37:35+12:00 (3 years ago)
- Location:
- main/trunk/model-interfaces-dev/atea
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/model-interfaces-dev/atea/js/asr/TranscribeModule.js
r35301 r35321 206 206 // contentType: false, 207 207 // processData: false, 208 // timeout: 60000 // TODO: Consider if we need a longer timeout.208 // timeout: 60000 209 209 // }); 210 210 // } -
main/trunk/model-interfaces-dev/atea/js/asr/asr-controller.js
r35305 r35321 215 215 showCharDisplay: false, 216 216 enableTextEditing: false, 217 displayMode: "words", 217 218 /** @type {{id: String, url: String} | null} Gets the ID of the transcription for which the audio is currently loaded */ 218 219 currentlyLoadedAudio: null, … … 271 272 272 273 return chars; 274 }, 275 onEditorWordInput(event, word) { 276 console.log(event); 277 console.log(word); 273 278 } 274 279 }, … … 380 385 if (metadata.char == ' ') 381 386 { 382 lastWord += "\u00A0";383 387 words.push({ word: lastWord, startTime: currStartTime, endTime: metadata.start_time, shouldHighlight: false }); 384 388 … … 404 408 405 409 return words; 406 // console.log(this);407 // console.log(this.$refs);408 // let charsPerLine = Math.floor(this.$refs.wordListContainer.clientWidth / MONOSPACE_CHAR_SIZE);409 410 // return getWidthNormalisedLines(transcription.transcription, charsPerLine);411 410 } 412 411 -
main/trunk/model-interfaces-dev/atea/style/asr.scss
r35305 r35321 11 11 } 12 12 13 @mixin transition-set { 14 -webkit-transition-duration: var(--transition-duration); 15 -moz-transition-duration: var(--transition-duration); 16 transition-duration: var(--transition-duration); 17 } 18 13 19 /* === Start theme application === */ 14 20 … … 27 33 /* === End theme application === */ 28 34 29 .transform-slideout { 30 -webkit-transition-duration: 0.4s; 31 -moz-transition-duration: 0.4s; 32 transition-duration: 0.4s; 33 34 transform: translate(100%, 0); 35 .transform-rotate180 { 36 --transition-duration: 0.4s; 37 @include transition-set; 38 39 transform: rotate(180deg); 40 } 41 42 .transform-slideout-up { 43 --transition-duration: 0.4s; 44 @include transition-set; 45 46 z-index: -1; 47 transform: translate(0, -100%); 35 48 opacity: 0; 36 49 } … … 86 99 87 100 .transcription__list { 88 padding: 0;89 101 list-style-type: none; 102 margin-block: 0 0; 103 padding-inline: 0 0; 90 104 } 91 105 … … 99 113 } 100 114 101 .transcription__word-list { 102 display: flex; 103 104 padding-top: 1em; 105 106 & .transcription__list { 107 margin-left: 2em; 108 } 109 } 110 111 .transcription__word-list__controls { 115 .transcription__details-container { 112 116 display: flex; 113 117 flex-direction: column; 114 align-items: center; 118 119 padding-top: 1em; 120 121 & .transcription__details__word-list { 122 list-style-type: none; 123 margin-block: 0 0; 124 padding-inline: 0 0; 125 } 126 } 127 128 .transcription__details__controls { 129 display: grid; 130 grid-template-columns: auto auto auto 1fr; 131 gap: 0 1em; 132 align-items: center; 133 } 134 135 .transcription__word-highlight-applied { 136 background-color: rgba(255, 255, 0, 0.4); 115 137 } 116 138 117 139 .transcription__word-highlight { 118 background-color: rgba(255, 255, 0, 0.4); 140 &:hover { 141 @extend .transcription__word-highlight-applied; 142 } 119 143 } 120 144 … … 122 146 font: var(--monospace-font); 123 147 display: inline-block; 124 margin-bottom: 1em; 125 126 &:hover { 127 @extend .transcription__word-highlight; 128 } 148 margin-top: 1em; 129 149 } 130 150 131 151 .transcription__word { 152 @extend .transcription__word-highlight; 153 132 154 font: var(--monospace-font); 133 155 display: inline; 134 156 background: transparent; 135 157 width: auto; 136 border: none; 158 border: 1px solid black; 159 padding: 0; 137 160 138 161 &:disabled { 139 162 color: black; 163 border: none; 140 164 } 141 165 } -
main/trunk/model-interfaces-dev/atea/style/material.scss
r35305 r35321 137 137 align-items: center; 138 138 139 //line-height: 1.5em;140 139 border-radius: var(--border-radius); 141 140 background: #DDD; … … 274 273 .body0 { 275 274 font-size: 18px; 275 line-height: 24px; 276 276 } 277 277 -
main/trunk/model-interfaces-dev/atea/transform/pages/asr.xsl
r35305 r35321 83 83 <li v-for="[id, failure] in failures"> 84 84 <xsl:attribute name="v-bind:class"> 85 <xsl:text disable-output-escaping="yes">{ 'transform-slideout ': failure.isDeleted }</xsl:text>85 <xsl:text disable-output-escaping="yes">{ 'transform-slideout-up': failure.isDeleted }</xsl:text> 86 86 </xsl:attribute> 87 87 … … 101 101 <li v-for="[id, transcription] in transcriptions"> 102 102 <xsl:attribute name="v-bind:class"> 103 <xsl:text disable-output-escaping="yes">{ 'transform-slideout ': transcription.isDeleted }</xsl:text>103 <xsl:text disable-output-escaping="yes">{ 'transform-slideout-up': transcription.isDeleted }</xsl:text> 104 104 </xsl:attribute> 105 105 … … 119 119 </div> 120 120 121 <div class="transcription__ word-list" v-if="transcription.isExpanded">122 <div class="transcription__ word-list__controls">121 <div class="transcription__details-container" v-if="transcription.isExpanded"> 122 <div class="transcription__details__controls"> 123 123 <button class="btn-fab" v-on:click="playAudioFile(id, -1)" type="button"> 124 124 <span class="material-icons">play_arrow</span> 125 125 </button> 126 126 127 <input type="checkbox" v-model="showCharDisplay" title="Show characters" /> 127 <label for="displayMode">Display Mode:</label> 128 <select id="displayMode" v-model="displayMode"> 129 <option value="words">Words</option> 130 <option value="chars">Characters</option> 131 <option value="editor">Editor</option> 132 </select> 128 133 129 <input type="checkbox" v-model="enableTextEditing" title="Enable text editing" /> 134 <!-- <input type="checkbox" v-model="showCharDisplay" title="Show characters" /> 135 136 <input type="checkbox" v-model="enableTextEditing" title="Enable text editing" /> --> 130 137 </div> 131 138 132 <ul class="transcription__list"> 133 <li v-if="!showCharDisplay"> 134 <div v-for="word in transcription.words" class="transcription__word-container" 135 v-on:click="playAudioFile(id, word.startTime)"> 139 <ul class="transcription__details__word-list"> 140 <li v-if="displayMode == 'words'" v-for="word in transcription.words" class="transcription__word-container" 141 v-on:click="playAudioFile(id, word.startTime)"> 136 142 <xsl:attribute name="v-bind:class"> 137 <xsl:text disable-output-escaping="yes">{ 'transcription__word-highlight ': word.shouldHighlight }</xsl:text>143 <xsl:text disable-output-escaping="yes">{ 'transcription__word-highlight-applied': word.shouldHighlight }</xsl:text> 138 144 </xsl:attribute> 139 145 140 <input type="text" v-bind:size="word.word.length - 1" v-model="word.word" class="transcription__word" 141 v-bind:disabled="!enableTextEditing" /> 142 </div> 146 <span class="transcription__word-highlight">{{ word.word }}</span> 147 <span> </span> <!-- nbsp --> 143 148 </li> 144 <li v-if=" showCharDisplay">145 <span v-for="char in getChars(id)" class="transcription__word-container"146 v-on:click="playAudioFile(id, char.startTime)">149 <li v-if="displayMode == 'chars'" class="transcription__word-container" v-on:click="playAudioFile(id, char.startTime)" 150 v-for="char in getChars(id)"> 151 <span class="transcription__word-highlight"> 147 152 {{ char.char }} 148 153 </span> 154 </li> 155 <li v-if="displayMode == 'editor'" v-for="word in transcription.words" class="transcription__word-container"> 156 <!-- <span class="transcription__word" v-on:input="onEditorWordInput($event, word.word)" contenteditable="true" v-text="word.word" /> --> 157 <input type="text" v-bind:size="word.word.length == 1 ? 1 : word.word.length - 1" v-model="word.word" 158 class="transcription__word" v-on:input="onEditorWordInput($event, word.word)" /> 159 <span> </span> <!-- nbsp --> 149 160 </li> 150 161 </ul> … … 154 165 155 166 <button type="button" class="theme-flat" v-on:click="transcription.isExpanded = !transcription.isExpanded"> 156 <span class="material-icons" v-if="!transcription.isExpanded">expand_more</span> 157 <span class="material-icons" v-if="transcription.isExpanded">expand_less</span> 167 <span class="material-icons"> 168 <xsl:attribute name="v-bind:class"> 169 <xsl:text disable-output-escaping="yes">{ 'transform-rotate180': transcription.isExpanded }</xsl:text> 170 </xsl:attribute> 171 172 expand_more 173 </span> 158 174 <span>Playback and Edit</span> 159 175 </button>
Note:
See TracChangeset
for help on using the changeset viewer.