mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Fix:Item edit modal scrollable and overflowing #574
This commit is contained in:
		
							parent
							
								
									8fbe3c3884
								
							
						
					
					
						commit
						9de4b1069a
					
				| @ -18,7 +18,7 @@ | ||||
|       <div class="material-icons text-5xl text-white text-opacity-50 hover:text-opacity-90 cursor-pointer pointer-events-auto" @click.stop.prevent="goNextBook" @mousedown.prevent>arrow_forward_ios</div> | ||||
|     </div> | ||||
| 
 | ||||
|     <div class="w-full h-full text-sm rounded-b-lg rounded-tr-lg bg-bg shadow-lg border border-black-300 relative"> | ||||
|     <div class="w-full h-full max-h-full text-sm rounded-b-lg rounded-tr-lg bg-bg shadow-lg border border-black-300 relative"> | ||||
|       <component v-if="libraryItem && show" :is="tabName" :library-item="libraryItem" :processing.sync="processing" @close="show = false" @selectTab="selectTab" /> | ||||
|     </div> | ||||
|   </modals-modal> | ||||
|  | ||||
| @ -1,9 +1,11 @@ | ||||
| <template> | ||||
|   <div class="w-full h-full relative"> | ||||
|     <widgets-book-details-edit v-if="mediaType == 'book'" ref="itemDetailsEdit" :library-item="libraryItem" @submit="submitForm" /> | ||||
|     <widgets-podcast-details-edit v-else ref="itemDetailsEdit" :library-item="libraryItem" @submit="submitForm" /> | ||||
|     <div id="formWrapper" class="w-full overflow-y-auto"> | ||||
|       <widgets-book-details-edit v-if="mediaType == 'book'" ref="itemDetailsEdit" :library-item="libraryItem" @submit="submitForm" /> | ||||
|       <widgets-podcast-details-edit v-else ref="itemDetailsEdit" :library-item="libraryItem" @submit="submitForm" /> | ||||
|     </div> | ||||
| 
 | ||||
|     <div class="absolute bottom-0 left-0 w-full py-4 bg-bg" :class="isScrollable ? 'box-shadow-md-up' : 'box-shadow-sm-up border-t border-primary border-opacity-50'"> | ||||
|     <div class="absolute bottom-0 left-0 w-full py-4 bg-bg" :class="isScrollable ? 'box-shadow-md-up' : 'border-t border-white border-opacity-5'"> | ||||
|       <div class="flex items-center px-4"> | ||||
|         <ui-btn v-if="userCanDelete" color="error" type="button" class="h-8" :padding-x="3" small @click.stop.prevent="removeItem">Remove</ui-btn> | ||||
| 
 | ||||
| @ -224,8 +226,8 @@ export default { | ||||
| </script> | ||||
| 
 | ||||
| <style scoped> | ||||
| .details-form-wrapper { | ||||
|   height: calc(100% - 70px); | ||||
|   max-height: calc(100% - 70px); | ||||
| #formWrapper { | ||||
|   height: calc(100% - 80px); | ||||
|   max-height: calc(100% - 80px); | ||||
| } | ||||
| </style> | ||||
| @ -1,66 +1,64 @@ | ||||
| <template> | ||||
|   <div class="w-full h-full relative"> | ||||
|     <form class="w-full h-full" @submit.prevent="submitForm"> | ||||
|       <div id="formWrapper" class="px-4 py-6 details-form-wrapper w-full overflow-hidden overflow-y-auto"> | ||||
|         <div class="flex -mx-1"> | ||||
|           <div class="w-1/2 px-1"> | ||||
|             <ui-text-input-with-label ref="titleInput" v-model="details.title" label="Title" /> | ||||
|           </div> | ||||
|           <div class="flex-grow px-1"> | ||||
|             <ui-text-input-with-label ref="subtitleInput" v-model="details.subtitle" label="Subtitle" /> | ||||
|           </div> | ||||
|     <form class="w-full h-full px-4 py-6" @submit.prevent="submitForm"> | ||||
|       <div class="flex -mx-1"> | ||||
|         <div class="w-1/2 px-1"> | ||||
|           <ui-text-input-with-label ref="titleInput" v-model="details.title" label="Title" /> | ||||
|         </div> | ||||
| 
 | ||||
|         <div class="flex mt-2 -mx-1"> | ||||
|           <div class="w-3/4 px-1"> | ||||
|             <!-- Authors filter only contains authors in this library, use query input to query all authors --> | ||||
|             <ui-multi-select-query-input ref="authorsSelect" v-model="details.authors" label="Authors" endpoint="authors/search" /> | ||||
|           </div> | ||||
|           <div class="flex-grow px-1"> | ||||
|             <ui-text-input-with-label ref="publishYearInput" v-model="details.publishedYear" type="number" label="Publish Year" /> | ||||
|           </div> | ||||
|         <div class="flex-grow px-1"> | ||||
|           <ui-text-input-with-label ref="subtitleInput" v-model="details.subtitle" label="Subtitle" /> | ||||
|         </div> | ||||
|       </div> | ||||
| 
 | ||||
|         <div class="flex mt-2 -mx-1"> | ||||
|           <div class="flex-grow px-1"> | ||||
|             <ui-multi-select-query-input ref="seriesSelect" v-model="seriesItems" text-key="displayName" label="Series" readonly show-edit @edit="editSeriesItem" @add="addNewSeries" /> | ||||
|           </div> | ||||
|       <div class="flex mt-2 -mx-1"> | ||||
|         <div class="w-3/4 px-1"> | ||||
|           <!-- Authors filter only contains authors in this library, use query input to query all authors --> | ||||
|           <ui-multi-select-query-input ref="authorsSelect" v-model="details.authors" label="Authors" endpoint="authors/search" /> | ||||
|         </div> | ||||
| 
 | ||||
|         <ui-textarea-with-label ref="descriptionInput" v-model="details.description" :rows="3" label="Description" class="mt-2" /> | ||||
| 
 | ||||
|         <div class="flex mt-2 -mx-1"> | ||||
|           <div class="w-1/2 px-1"> | ||||
|             <ui-multi-select ref="genresSelect" v-model="details.genres" label="Genres" :items="genres" /> | ||||
|           </div> | ||||
|           <div class="flex-grow px-1"> | ||||
|             <ui-multi-select ref="tagsSelect" v-model="newTags" label="Tags" :items="tags" /> | ||||
|           </div> | ||||
|         <div class="flex-grow px-1"> | ||||
|           <ui-text-input-with-label ref="publishYearInput" v-model="details.publishedYear" type="number" label="Publish Year" /> | ||||
|         </div> | ||||
|       </div> | ||||
| 
 | ||||
|         <div class="flex mt-2 -mx-1"> | ||||
|           <div class="w-1/2 px-1"> | ||||
|             <ui-multi-select ref="narratorsSelect" v-model="details.narrators" label="Narrators" :items="narrators" /> | ||||
|           </div> | ||||
|           <div class="w-1/4 px-1"> | ||||
|             <ui-text-input-with-label ref="isbnInput" v-model="details.isbn" label="ISBN" /> | ||||
|           </div> | ||||
|           <div class="w-1/4 px-1"> | ||||
|             <ui-text-input-with-label ref="asinInput" v-model="details.asin" label="ASIN" /> | ||||
|           </div> | ||||
|       <div class="flex mt-2 -mx-1"> | ||||
|         <div class="flex-grow px-1"> | ||||
|           <ui-multi-select-query-input ref="seriesSelect" v-model="seriesItems" text-key="displayName" label="Series" readonly show-edit @edit="editSeriesItem" @add="addNewSeries" /> | ||||
|         </div> | ||||
|       </div> | ||||
| 
 | ||||
|         <div class="flex mt-2 -mx-1"> | ||||
|           <div class="w-1/2 px-1"> | ||||
|             <ui-text-input-with-label ref="publisherInput" v-model="details.publisher" label="Publisher" /> | ||||
|           </div> | ||||
|           <div class="w-1/4 px-1"> | ||||
|             <ui-text-input-with-label ref="languageInput" v-model="details.language" label="Language" /> | ||||
|           </div> | ||||
|           <div class="flex-grow px-1 pt-6"> | ||||
|             <div class="flex justify-center"> | ||||
|               <ui-checkbox v-model="details.explicit" label="Explicit" checkbox-bg="primary" border-color="gray-600" label-class="pl-2 text-base font-semibold" /> | ||||
|             </div> | ||||
|       <ui-textarea-with-label ref="descriptionInput" v-model="details.description" :rows="3" label="Description" class="mt-2" /> | ||||
| 
 | ||||
|       <div class="flex mt-2 -mx-1"> | ||||
|         <div class="w-1/2 px-1"> | ||||
|           <ui-multi-select ref="genresSelect" v-model="details.genres" label="Genres" :items="genres" /> | ||||
|         </div> | ||||
|         <div class="flex-grow px-1"> | ||||
|           <ui-multi-select ref="tagsSelect" v-model="newTags" label="Tags" :items="tags" /> | ||||
|         </div> | ||||
|       </div> | ||||
| 
 | ||||
|       <div class="flex mt-2 -mx-1"> | ||||
|         <div class="w-1/2 px-1"> | ||||
|           <ui-multi-select ref="narratorsSelect" v-model="details.narrators" label="Narrators" :items="narrators" /> | ||||
|         </div> | ||||
|         <div class="w-1/4 px-1"> | ||||
|           <ui-text-input-with-label ref="isbnInput" v-model="details.isbn" label="ISBN" /> | ||||
|         </div> | ||||
|         <div class="w-1/4 px-1"> | ||||
|           <ui-text-input-with-label ref="asinInput" v-model="details.asin" label="ASIN" /> | ||||
|         </div> | ||||
|       </div> | ||||
| 
 | ||||
|       <div class="flex mt-2 -mx-1"> | ||||
|         <div class="w-1/2 px-1"> | ||||
|           <ui-text-input-with-label ref="publisherInput" v-model="details.publisher" label="Publisher" /> | ||||
|         </div> | ||||
|         <div class="w-1/4 px-1"> | ||||
|           <ui-text-input-with-label ref="languageInput" v-model="details.language" label="Language" /> | ||||
|         </div> | ||||
|         <div class="flex-grow px-1 pt-6"> | ||||
|           <div class="flex justify-center"> | ||||
|             <ui-checkbox v-model="details.explicit" label="Explicit" checkbox-bg="primary" border-color="gray-600" label-class="pl-2 text-base font-semibold" /> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|  | ||||
| @ -1,50 +1,48 @@ | ||||
| <template> | ||||
|   <div class="w-full h-full relative"> | ||||
|     <form class="w-full h-full" @submit.prevent="submitForm"> | ||||
|       <div id="formWrapper" class="px-4 py-6 details-form-wrapper w-full overflow-hidden overflow-y-auto"> | ||||
|         <div class="flex -mx-1"> | ||||
|           <div class="w-1/2 px-1"> | ||||
|             <ui-text-input-with-label ref="titleInput" v-model="details.title" label="Title" /> | ||||
|           </div> | ||||
|           <div class="flex-grow px-1"> | ||||
|             <ui-text-input-with-label ref="authorInput" v-model="details.author" label="Author" /> | ||||
|           </div> | ||||
|     <form class="w-full h-full px-4 py-6" @submit.prevent="submitForm"> | ||||
|       <div class="flex -mx-1"> | ||||
|         <div class="w-1/2 px-1"> | ||||
|           <ui-text-input-with-label ref="titleInput" v-model="details.title" label="Title" /> | ||||
|         </div> | ||||
| 
 | ||||
|         <ui-text-input-with-label ref="feedUrlInput" v-model="details.feedUrl" label="RSS Feed URL" class="mt-2" /> | ||||
| 
 | ||||
|         <ui-textarea-with-label ref="descriptionInput" v-model="details.description" :rows="3" label="Description" class="mt-2" /> | ||||
| 
 | ||||
|         <div class="flex mt-2 -mx-1"> | ||||
|           <div class="w-1/2 px-1"> | ||||
|             <ui-multi-select ref="genresSelect" v-model="details.genres" label="Genres" :items="genres" /> | ||||
|           </div> | ||||
|           <div class="flex-grow px-1"> | ||||
|             <ui-multi-select ref="tagsSelect" v-model="newTags" label="Tags" :items="tags" /> | ||||
|           </div> | ||||
|         <div class="flex-grow px-1"> | ||||
|           <ui-text-input-with-label ref="authorInput" v-model="details.author" label="Author" /> | ||||
|         </div> | ||||
|       </div> | ||||
| 
 | ||||
|         <div class="flex mt-2 -mx-1"> | ||||
|           <div class="w-1/4 px-1"> | ||||
|             <ui-text-input-with-label ref="releaseDateInput" v-model="details.releaseDate" label="Release Date" /> | ||||
|           </div> | ||||
|           <div class="w-1/4 px-1"> | ||||
|             <ui-text-input-with-label ref="itunesIdInput" v-model="details.itunesId" label="iTunes ID" /> | ||||
|           </div> | ||||
|           <div class="w-1/4 px-1"> | ||||
|             <ui-text-input-with-label ref="languageInput" v-model="details.language" label="Language" /> | ||||
|           </div> | ||||
|           <div class="flex-grow px-1 pt-6"> | ||||
|             <div class="flex justify-center"> | ||||
|               <ui-checkbox v-model="details.explicit" label="Explicit" checkbox-bg="primary" border-color="gray-600" label-class="pl-2 text-base font-semibold" /> | ||||
|             </div> | ||||
|           </div> | ||||
|       <ui-text-input-with-label ref="feedUrlInput" v-model="details.feedUrl" label="RSS Feed URL" class="mt-2" /> | ||||
| 
 | ||||
|       <ui-textarea-with-label ref="descriptionInput" v-model="details.description" :rows="3" label="Description" class="mt-2" /> | ||||
| 
 | ||||
|       <div class="flex mt-2 -mx-1"> | ||||
|         <div class="w-1/2 px-1"> | ||||
|           <ui-multi-select ref="genresSelect" v-model="details.genres" label="Genres" :items="genres" /> | ||||
|         </div> | ||||
|         <div class="flex-grow px-1"> | ||||
|           <ui-multi-select ref="tagsSelect" v-model="newTags" label="Tags" :items="tags" /> | ||||
|         </div> | ||||
|       </div> | ||||
| 
 | ||||
|       <div class="flex mt-2 -mx-1"> | ||||
|         <div class="w-1/4 px-1"> | ||||
|           <ui-text-input-with-label ref="releaseDateInput" v-model="details.releaseDate" label="Release Date" /> | ||||
|         </div> | ||||
|         <div class="w-1/4 px-1"> | ||||
|           <ui-text-input-with-label ref="itunesIdInput" v-model="details.itunesId" label="iTunes ID" /> | ||||
|         </div> | ||||
|         <div class="w-1/4 px-1"> | ||||
|           <ui-text-input-with-label ref="languageInput" v-model="details.language" label="Language" /> | ||||
|         </div> | ||||
|         <div class="flex-grow px-1 pt-6"> | ||||
|           <ui-checkbox v-model="autoDownloadEpisodes" label="Auto Download New Episodes" checkbox-bg="primary" border-color="gray-600" label-class="pl-2 text-base font-semibold" /> | ||||
|           <div class="flex justify-center"> | ||||
|             <ui-checkbox v-model="details.explicit" label="Explicit" checkbox-bg="primary" border-color="gray-600" label-class="pl-2 text-base font-semibold" /> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
| 
 | ||||
|       <div class="flex-grow px-1 pt-6"> | ||||
|         <ui-checkbox v-model="autoDownloadEpisodes" label="Auto Download New Episodes" checkbox-bg="primary" border-color="gray-600" label-class="pl-2 text-base font-semibold" /> | ||||
|       </div> | ||||
|     </form> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user