Path Lines of Code app/controllers/Api.scala 177 app/controllers/AtomController.scala 49 app/controllers/Healthcheck.scala 18 app/controllers/JsonRequestParsing.scala 26 app/controllers/Login.scala 13 app/controllers/PanDomainAuthActions.scala 35 app/controllers/PlutoController.scala 93 app/controllers/Support.scala 17 app/controllers/Transcoder.scala 11 app/controllers/UploadController.scala 103 app/controllers/VideoUIApp.scala 71 app/controllers/Youtube.scala 30 app/controllers/YoutubeTagController.scala 13 app/data/AtomListStore.scala 93 app/data/DataStores.scala 70 app/di.scala 108 app/model/ClientConfig.scala 32 app/model/MediaAtomSummary.scala 18 app/model/WorkflowMediaAtom.scala 8 app/model/YouTubeMessage.scala 18 app/model/commands/ActiveAssetCommand.scala 43 app/model/commands/AddAssetCommand.scala 108 app/model/commands/Command.scala 13 app/model/commands/CommandException.scala 84 app/model/commands/CreateAtomCommand.scala 60 app/model/commands/CreateWorkflowAtomCommand.scala 73 app/model/commands/DeleteAssetCommand.scala 46 app/model/commands/DeleteCommand.scala 37 app/model/commands/PacFileUploadCommand.scala 36 app/model/commands/PublishAtomCommand.scala 248 app/model/commands/UpdateAtomCommand.scala 121 app/model/transcoder/JobStatus.scala 8 app/util/AWS.scala 47 app/util/ActivateAssetRequest.scala 11 app/util/CORSable.scala 19 app/util/CredentialsGenerator.scala 39 app/util/Memoize.scala 12 app/util/NotifyingAtomPublisher.scala 42 app/util/PlutoMessageConsumer.scala 55 app/util/RequestLogging.scala 20 app/util/StepFunctions.scala 81 app/util/ThumbnailGenerator.scala 61 app/util/TrainingMode.scala 12 app/util/Transcoder.scala 19 app/util/UploadBuilder.scala 55 app/util/UploadDecorator.scala 27 app/util/YouTube.scala 33 app/util/YoutubeResponse.scala 4 app/views/VideoUIApp/app.scala.html 39 app/views/VideoUIApp/layout.scala.html 27 app/views/authError.scala.html 13 build.sbt 213 common/src/main/scala/com/gu/media/CapiAccess.scala 66 common/src/main/scala/com/gu/media/Permissions.scala 44 common/src/main/scala/com/gu/media/PlutoDataStore.scala 32 common/src/main/scala/com/gu/media/Settings.scala 19 common/src/main/scala/com/gu/media/aws/AwsAccess.scala 22 common/src/main/scala/com/gu/media/aws/AwsCredentials.scala 35 common/src/main/scala/com/gu/media/aws/AwsV2Util.scala 14 common/src/main/scala/com/gu/media/aws/CredentialsForBothSdkVersions.scala 42 common/src/main/scala/com/gu/media/aws/DynamoAccess.scala 26 common/src/main/scala/com/gu/media/aws/ElasticTranscodeAccess.scala 12 common/src/main/scala/com/gu/media/aws/HMACSettings.scala 10 common/src/main/scala/com/gu/media/aws/KinesisAccess.scala 37 common/src/main/scala/com/gu/media/aws/S3Access.scala 15 common/src/main/scala/com/gu/media/aws/SESSettings.scala 14 common/src/main/scala/com/gu/media/aws/SNSAccess.scala 12 common/src/main/scala/com/gu/media/aws/SQSAccess.scala 7 common/src/main/scala/com/gu/media/aws/UploadAccess.scala 33 common/src/main/scala/com/gu/media/lambda/LambdaBase.scala 38 common/src/main/scala/com/gu/media/lambda/LambdaWithParams.scala 15 common/src/main/scala/com/gu/media/lambda/LambdaYoutubeCredentials.scala 21 common/src/main/scala/com/gu/media/logging/LambdaElkLoggingFormat.scala 28 common/src/main/scala/com/gu/media/logging/Logging.scala 16 common/src/main/scala/com/gu/media/logging/YoutubeRequestLogger.scala 42 common/src/main/scala/com/gu/media/model/AdSettings.scala 22 common/src/main/scala/com/gu/media/model/Asset.scala 16 common/src/main/scala/com/gu/media/model/AssetType.scala 23 common/src/main/scala/com/gu/media/model/AuditMessage.scala 19 common/src/main/scala/com/gu/media/model/Category.scala 33 common/src/main/scala/com/gu/media/model/ChangeRecord.scala 33 common/src/main/scala/com/gu/media/model/ClientAsset.scala 100 common/src/main/scala/com/gu/media/model/ContentChangeDetails.scala 28 common/src/main/scala/com/gu/media/model/Image.scala 29 common/src/main/scala/com/gu/media/model/MediaAtom.scala 247 common/src/main/scala/com/gu/media/model/Metadata.scala 29 common/src/main/scala/com/gu/media/model/Platform.scala 29 common/src/main/scala/com/gu/media/model/PlutoData.scala 20 common/src/main/scala/com/gu/media/model/PlutoIntegrationData.scala 98 common/src/main/scala/com/gu/media/model/PrivacyStatus.scala 23 common/src/main/scala/com/gu/media/model/User.scala 12 common/src/main/scala/com/gu/media/model/VideoAsset.scala 16 common/src/main/scala/com/gu/media/model/VideoUpdateError.scala 9 common/src/main/scala/com/gu/media/pluto/PlutoCommissionDataStore.scala 34 common/src/main/scala/com/gu/media/pluto/PlutoProject.scala 57 common/src/main/scala/com/gu/media/pluto/PlutoProjectDataStore.scala 43 common/src/main/scala/com/gu/media/ses/Mailer.scala 30 common/src/main/scala/com/gu/media/upload/PlutoUploadActions.scala 34 common/src/main/scala/com/gu/media/upload/UploadKeys.scala 22 common/src/main/scala/com/gu/media/upload/model/Upload.scala 31 common/src/main/scala/com/gu/media/upload/model/UploadCredentials.scala 11 common/src/main/scala/com/gu/media/upload/model/UploadMetadata.scala 29 common/src/main/scala/com/gu/media/upload/model/UploadPart.scala 8 common/src/main/scala/com/gu/media/upload/model/UploadProgress.scala 17 common/src/main/scala/com/gu/media/upload/model/UploadRequest.scala 13 common/src/main/scala/com/gu/media/upload/model/UploadStatus.scala 12 common/src/main/scala/com/gu/media/util/HMACClient.scala 41 common/src/main/scala/com/gu/media/util/InputStreamRequestBody.scala 32 common/src/main/scala/com/gu/media/util/JsonConversions.scala 153 common/src/main/scala/com/gu/media/util/JsonDate.scala 23 common/src/main/scala/com/gu/media/util/MAMLogger.scala 14 common/src/main/scala/com/gu/media/util/MediaAtomHelpers.scala 45 common/src/main/scala/com/gu/media/util/MediaAtomImplicits.scala 53 common/src/main/scala/com/gu/media/util/TestFilters.scala 4 common/src/main/scala/com/gu/media/util/ThriftUtil.scala 112 common/src/main/scala/com/gu/media/youtube/MediaAtomYoutubeDescriptionHandler.scala 17 common/src/main/scala/com/gu/media/youtube/YouTubeAccess.scala 90 common/src/main/scala/com/gu/media/youtube/YouTubePartnerApi.scala 202 common/src/main/scala/com/gu/media/youtube/YouTubeProcessingStatus.scala 72 common/src/main/scala/com/gu/media/youtube/YouTubeUploader.scala 105 common/src/main/scala/com/gu/media/youtube/YouTubeVideos.scala 147 common/src/main/scala/com/gu/media/youtube/YoutubeDescription.scala 16 common/src/main/scala/com/gu/media/youtube/YoutubeUrl.scala 11 common/src/main/scala/com/gu/media/youtube/package.scala 198 conf/logback.xml 26 conf/riff-raff.yaml 61 expirer/src/main/scala/com/gu/media/expirer/ExpirerLambda.scala 70 pluto-message-ingestion/environment-config.js 24 pluto-message-ingestion/file-config.js 25 pluto-message-ingestion/hmac-request.js 49 pluto-message-ingestion/index.js 10 pluto-message-ingestion/kinesis-message-processor.js 48 pluto-message-ingestion/logger.js 5 pluto-message-ingestion/pluto-message-processor.js 84 project/StateMachine.scala 32 project/plugins.sbt 9 public/video-ui/src/actions/FormErrorActions/updateFormErrors.js 7 public/video-ui/src/actions/FormErrorActions/updateFormWarnings.js 7 public/video-ui/src/actions/PlutoActions/getCommissions.js 34 public/video-ui/src/actions/PlutoActions/getProjects.js 34 public/video-ui/src/actions/PlutoIdActions/addProject.js 30 public/video-ui/src/actions/SearchActions/updateSearchTerm.js 7 public/video-ui/src/actions/SearchActions/updateShouldUseCreatedDateForSort.js 7 public/video-ui/src/actions/TargetingActions/createTarget.js 30 public/video-ui/src/actions/TargetingActions/deleteTarget.js 41 public/video-ui/src/actions/TargetingActions/getTargets.js 30 public/video-ui/src/actions/TargetingActions/updateTarget.js 36 public/video-ui/src/actions/UploadActions/getUploads.js 28 public/video-ui/src/actions/UploadActions/s3Upload.js 54 public/video-ui/src/actions/VideoActions/createAsset.js 47 public/video-ui/src/actions/VideoActions/createVideo.js 38 public/video-ui/src/actions/VideoActions/deleteAsset.js 36 public/video-ui/src/actions/VideoActions/deleteVideo.js 21 public/video-ui/src/actions/VideoActions/getPublishedVideo.js 35 public/video-ui/src/actions/VideoActions/getVideo.js 48 public/video-ui/src/actions/VideoActions/getVideos.js 36 public/video-ui/src/actions/VideoActions/publishVideo.js 30 public/video-ui/src/actions/VideoActions/revertAsset.js 33 public/video-ui/src/actions/VideoActions/saveVideo.js 62 public/video-ui/src/actions/VideoActions/updateVideo.js 7 public/video-ui/src/actions/VideoActions/updateVideoEditState.js 7 public/video-ui/src/actions/VideoActions/videoPageCreate.js 50 public/video-ui/src/actions/VideoActions/videoPageUpdate.jsx 47 public/video-ui/src/actions/VideoActions/videoUsages.js 39 public/video-ui/src/actions/WorkflowActions/getPriorities.jsx 23 public/video-ui/src/actions/WorkflowActions/getSections.jsx 30 public/video-ui/src/actions/WorkflowActions/getStatus.js 51 public/video-ui/src/actions/WorkflowActions/getStatuses.jsx 30 public/video-ui/src/actions/WorkflowActions/localUpdateWorkflowData.js 7 public/video-ui/src/actions/WorkflowActions/trackInWorkflow.js 30 public/video-ui/src/actions/WorkflowActions/updateWorkflowData.js 35 public/video-ui/src/actions/YoutubeActions/getCategories.js 36 public/video-ui/src/actions/YoutubeActions/getChannels.js 30 public/video-ui/src/app.jsx 42 public/video-ui/src/components/CapiSearch/CapiSearch.jsx 67 public/video-ui/src/components/CapiSearch/CapiUnavailable.jsx 13 public/video-ui/src/components/ContentChangeDetails/index.jsx 40 public/video-ui/src/components/DeleteButton.jsx 51 public/video-ui/src/components/DurationReset/index.jsx 36 public/video-ui/src/components/EditSaveCancel/index.jsx 54 public/video-ui/src/components/Flags/index.jsx 89 public/video-ui/src/components/FormFields/CheckBox.jsx 34 public/video-ui/src/components/FormFields/DatePicker.jsx 150 public/video-ui/src/components/FormFields/DraggableTagList.tsx 133 public/video-ui/src/components/FormFields/DurationInput.jsx 106 public/video-ui/src/components/FormFields/PureTagPicker.jsx 65 public/video-ui/src/components/FormFields/RichTextEditor.tsx 57 public/video-ui/src/components/FormFields/RichTextField.tsx 134 public/video-ui/src/components/FormFields/SelectBox.jsx 88 public/video-ui/src/components/FormFields/TagPicker.jsx 351 public/video-ui/src/components/FormFields/TextAreaInput.jsx 53 public/video-ui/src/components/FormFields/TextInput.jsx 53 public/video-ui/src/components/FormFields/TextInputTagPicker.jsx 188 public/video-ui/src/components/FormFields/richtext/config.ts 28 public/video-ui/src/components/FormFields/richtext/createSchema.ts 63 public/video-ui/src/components/FormFields/richtext/menu.ts 76 public/video-ui/src/components/FormFields/richtext/setup.ts 53 public/video-ui/src/components/FormFields/richtext/utils/command-helpers.ts 114 public/video-ui/src/components/FormFields/richtext/utils/keymap.ts 68 public/video-ui/src/components/FormFields/richtext/utils/linkValidator.ts 81 public/video-ui/src/components/FormFields/richtext/utils/listsHelpers.ts 38 public/video-ui/src/components/FormFields/richtext/utils/richTextHelpers.ts 23 public/video-ui/src/components/GridImage/GridImage.jsx 30 public/video-ui/src/components/Header.jsx 230 public/video-ui/src/components/Icon.jsx 106 public/video-ui/src/components/ManagedForm/ManagedField.jsx 147 public/video-ui/src/components/ManagedForm/ManagedForm.jsx 61 public/video-ui/src/components/ManagedForm/ManagedSection.jsx 36 public/video-ui/src/components/ManagedForm/index.js 3 public/video-ui/src/components/PACUpload/PACUpload.jsx 97 public/video-ui/src/components/Pluto/PlutoProjectLink.jsx 21 public/video-ui/src/components/Pluto/PlutoProjectPicker.jsx 83 public/video-ui/src/components/Presence.jsx 93 public/video-ui/src/components/ReactApp.jsx 128 public/video-ui/src/components/ScheduleRecap/ScheduleRecap.jsx 34 public/video-ui/src/components/ScheduledLaunch/ScheduledLaunch.jsx 316 public/video-ui/src/components/Tags/TagFieldValue.jsx 32 public/video-ui/src/components/Targeting/Targeting.jsx 132 public/video-ui/src/components/VideoData/VideoData.jsx 151 public/video-ui/src/components/VideoImages/VideoImages.jsx 95 public/video-ui/src/components/VideoItem/index.jsx 112 public/video-ui/src/components/VideoPreview/VideoPreview.jsx 42 public/video-ui/src/components/VideoPublishBar/VideoPublishBar.jsx 95 public/video-ui/src/components/VideoPublishState/VideoPublishState.jsx 17 public/video-ui/src/components/VideoSearch/VideoSearch.jsx 29 public/video-ui/src/components/VideoSelectBar/VideoSelectBar.jsx 46 public/video-ui/src/components/VideoUpload/AddAssetFromURL.jsx 49 public/video-ui/src/components/VideoUpload/AddSelfHostedAsset.jsx 54 public/video-ui/src/components/VideoUpload/VideoAsset.jsx 138 public/video-ui/src/components/VideoUpload/VideoTrail.jsx 69 public/video-ui/src/components/VideoUpload/YoutubeUpload.jsx 58 public/video-ui/src/components/VideoUsages/VideoUsages.jsx 93 public/video-ui/src/components/Videos/AdvancedActions.jsx 61 public/video-ui/src/components/Videos/ComposerPageCreate.jsx 72 public/video-ui/src/components/Workflow/Workflow.jsx 80 public/video-ui/src/components/Workflow/WorkflowForm.jsx 60 public/video-ui/src/components/Workflow/WorkflowLink.jsx 21 public/video-ui/src/components/YoutubeFurniture/index.jsx 165 public/video-ui/src/components/utils/GridImageSelect.jsx 73 public/video-ui/src/components/utils/Modal.jsx 26 public/video-ui/src/components/utils/SaveButton.jsx 45 public/video-ui/src/components/utils/VideoEmbed.jsx 25 public/video-ui/src/components/utils/YouTubeEmbed.jsx 19 public/video-ui/src/constants/ErrorMessages.ts 5 public/video-ui/src/constants/FieldNotification.ts 12 public/video-ui/src/constants/TagTypes.ts 23 public/video-ui/src/constants/UserActions.ts 8 public/video-ui/src/constants/appUpdatedFields.ts 1 public/video-ui/src/constants/blankUsageData.js 15 public/video-ui/src/constants/blankVideoData.js 29 public/video-ui/src/constants/dates.ts 4 public/video-ui/src/constants/datesProperties.ts 8 public/video-ui/src/constants/defaultWorkflowStatusData.ts 5 public/video-ui/src/constants/fieldsWithHtml.ts 1 public/video-ui/src/constants/formNames.ts 6 public/video-ui/src/constants/frontPageSize.ts 1 public/video-ui/src/constants/imageFields.ts 1 public/video-ui/src/constants/keyCodes.ts 9 public/video-ui/src/constants/privacyStates.js 10 public/video-ui/src/constants/queryParams.js 1 public/video-ui/src/constants/requiredForComposer.ts 11 public/video-ui/src/constants/saveStateVals.ts 6 public/video-ui/src/constants/videoCategories.ts 12 public/video-ui/src/constants/videoEditValidation.ts 14 public/video-ui/src/constants/youTubeKeywords.ts 5 public/video-ui/src/logger.js 8 public/video-ui/src/pages/Help/index.jsx 58 public/video-ui/src/pages/Search/index.tsx 173 public/video-ui/src/pages/Training/index.jsx 22 public/video-ui/src/pages/Upload/index.jsx 123 public/video-ui/src/pages/Video/index.jsx 404 public/video-ui/src/pages/Video/tabs/Furniture.jsx 75 public/video-ui/src/pages/Video/tabs/Management.jsx 37 public/video-ui/src/pages/Video/tabs/Pluto.jsx 50 public/video-ui/src/pages/Video/tabs/Targeting.jsx 28 public/video-ui/src/pages/Video/tabs/Usage.jsx 34 public/video-ui/src/pages/Video/tabs/Workflow.jsx 53 public/video-ui/src/pages/Video/tabs/YoutubeFurniture.jsx 61 public/video-ui/src/reducers/checkedFormFieldsReducer.js 18 public/video-ui/src/reducers/composerPageReducer.js 15 public/video-ui/src/reducers/configReducer.js 8 public/video-ui/src/reducers/editStateReducer.js 8 public/video-ui/src/reducers/errorReducer.js 10 public/video-ui/src/reducers/formFieldsWarningReducer.js 8 public/video-ui/src/reducers/pathReducer.js 8 public/video-ui/src/reducers/plutoReducer.js 14 public/video-ui/src/reducers/plutoVideosReducer.js 10 public/video-ui/src/reducers/publishedVideoReducer.js 15 public/video-ui/src/reducers/rootReducer.js 47 public/video-ui/src/reducers/s3UploadReducer.js 20 public/video-ui/src/reducers/saveStateReducer.js 74 public/video-ui/src/reducers/searchTermReducer.js 8 public/video-ui/src/reducers/shouldUseCreatedDateForSortReducer.js 10 public/video-ui/src/reducers/targetingReducer.js 39 public/video-ui/src/reducers/uploadsReducer.js 21 public/video-ui/src/reducers/usageReducer.js 42 public/video-ui/src/reducers/videoReducer.js 37 public/video-ui/src/reducers/videosReducer.js 23 public/video-ui/src/reducers/workflowReducer.js 30 public/video-ui/src/reducers/youtubeReducer.js 17 public/video-ui/src/routes.jsx 22 public/video-ui/src/services/KeywordsApi.ts 10 public/video-ui/src/services/PlutoApi.js 19 public/video-ui/src/services/TargetingApi.js 52 public/video-ui/src/services/UploadsApi.js 107 public/video-ui/src/services/VideosApi.ts 318 public/video-ui/src/services/WorkflowApi.js 187 public/video-ui/src/services/YoutubeApi.js 16 public/video-ui/src/services/capi.ts 72 public/video-ui/src/services/pandaReqwest.js 64 public/video-ui/src/util/canonicalVideoPageExists.ts 3 public/video-ui/src/util/channelAllowed.ts 17 public/video-ui/src/util/cleanVideoData.js 18 public/video-ui/src/util/configureStore.js 19 public/video-ui/src/util/dateHelpers.ts 5 public/video-ui/src/util/durationHelpers.js 11 public/video-ui/src/util/errorDetails.ts 13 public/video-ui/src/util/getComposerData.js 53 public/video-ui/src/util/getGridMediaId.ts 5 public/video-ui/src/util/getProductionOffice.ts 26 public/video-ui/src/util/getTagDisplayNames.js 30 public/video-ui/src/util/getTextFromHtml.ts 4 public/video-ui/src/util/getVideoBlock.ts 34 public/video-ui/src/util/getYouTubeTagCharCount.js 15 public/video-ui/src/util/hasUnpublishedChanges.ts 16 public/video-ui/src/util/imageHelpers.ts 24 public/video-ui/src/util/isVideoPublished.ts 13 public/video-ui/src/util/parseGridMetadata.js 66 public/video-ui/src/util/removeStringTagDuplicates.js 29 public/video-ui/src/util/removeTagDuplicates.js 3 public/video-ui/src/util/storeAccessor.js 7 public/video-ui/src/util/storeMiddleware.js 29 public/video-ui/src/util/tagParsers.js 32 public/video-ui/src/util/validateField.js 54 public/video-ui/src/util/video.js 115 public/video-ui/styles/abstracts/_mixins.scss 24 public/video-ui/styles/abstracts/_variables.scss 58 public/video-ui/styles/base/_base.scss 19 public/video-ui/styles/base/_fonts.scss 34 public/video-ui/styles/base/_helpers.scss 47 public/video-ui/styles/base/_typography.scss 40 public/video-ui/styles/components/_advanced.scss 17 public/video-ui/styles/components/_asset-list.scss 59 public/video-ui/styles/components/_bar.scss 65 public/video-ui/styles/components/_buttons.scss 79 public/video-ui/styles/components/_detail.scss 21 public/video-ui/styles/components/_details-list.scss 35 public/video-ui/styles/components/_expiry-date.scss 15 public/video-ui/styles/components/_forms.scss 343 public/video-ui/styles/components/_grid-embedder.scss 24 public/video-ui/styles/components/_header.scss 46 public/video-ui/styles/components/_keywords.scss 47 public/video-ui/styles/components/_modal.scss 31 public/video-ui/styles/components/_presence.scss 60 public/video-ui/styles/components/_prosemirror.scss 79 public/video-ui/styles/components/_scheduledLaunch.scss 25 public/video-ui/styles/components/_section-header.scss 12 public/video-ui/styles/components/_tables.scss 20 public/video-ui/styles/components/_targeting.scss 7 public/video-ui/styles/components/_usage.scss 24 public/video-ui/styles/layout/_common.scss 52 public/video-ui/styles/layout/_flex.scss 11 public/video-ui/styles/layout/_grid.scss 81 public/video-ui/styles/layout/_icons.scss 125 public/video-ui/styles/layout/_tabs.scss 44 public/video-ui/styles/layout/_topbar.scss 94 public/video-ui/styles/layout/_upload.scss 47 public/video-ui/styles/layout/_video.scss 139 public/video-ui/styles/main.scss 41 scheduler/src/main/scala/com.gu.media.scheduler/SchedulerLambda.scala 52 scripts/hmac/hmac-request.js 46 scripts/hmac/make-hmac-request.js 87 scripts/purge-uploads-table.js 53 uploader/src/main/resources/cfn-template.yaml 238 uploader/src/main/resources/lambda-template.yaml 30 uploader/src/main/resources/logback.xml 11 uploader/src/main/scala/com/gu/media/upload/AddAssetToAtom.scala 55 uploader/src/main/scala/com/gu/media/upload/AddUploadDataToCache.scala 13 uploader/src/main/scala/com/gu/media/upload/CompleteMultipartCopy.scala 33 uploader/src/main/scala/com/gu/media/upload/GetChunkFromS3.scala 28 uploader/src/main/scala/com/gu/media/upload/GetTranscodingProgress.scala 36 uploader/src/main/scala/com/gu/media/upload/MultipartCopyChunkInS3.scala 49 uploader/src/main/scala/com/gu/media/upload/SendToPluto.scala 17 uploader/src/main/scala/com/gu/media/upload/SendToTranscoder.scala 46 uploader/src/main/scala/com/gu/media/upload/UploadChunkToYouTube.scala 34 version.sbt 1 vite.config.js 27