Feature/new window right click (#2027)
* right click menu for open in a new window * open video in new window when right click * router link added to channel images for easier selection in the context of a context menu * fix security bug user can visit other website via freetube * simplify context menu entry condition * createWindow in open new window adapted with the merged function * Change the open new window selector for the origin of the page no matter the name of the website * Keypress reintegrate into the code for accesibility * Keypress reintegrate into the code for accesibility * Fix style for sidenav subscription links Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
This commit is contained in:
		
							parent
							
								
									e90b9f4706
								
							
						
					
					
						commit
						420a91a072
					
				|  | @ -27,6 +27,13 @@ function runApp() { | ||||||
|         click: () => { |         click: () => { | ||||||
|           browserWindow.webContents.send('showVideoStatistics') |           browserWindow.webContents.send('showVideoStatistics') | ||||||
|         } |         } | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         label: 'Open in a New Window', | ||||||
|  |         visible: parameters.linkURL.includes((new URL(browserWindow.webContents.getURL())).origin), | ||||||
|  |         click: () => { | ||||||
|  |           createWindow({ replaceMainWindow: false, windowStartupUrl: parameters.linkURL, showWindowNow: true }) | ||||||
|  |         } | ||||||
|       } |       } | ||||||
|     ] |     ] | ||||||
|   }) |   }) | ||||||
|  |  | ||||||
|  | @ -89,6 +89,11 @@ | ||||||
|   transform: translateY(-50%); |   transform: translateY(-50%); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | .channelLink { | ||||||
|  |   color: inherit; | ||||||
|  |   text-decoration: inherit; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| .channelThumbnail { | .channelThumbnail { | ||||||
|   border-radius: 50%; |   border-radius: 50%; | ||||||
|   width: 35px; |   width: 35px; | ||||||
|  |  | ||||||
|  | @ -77,7 +77,6 @@ export default Vue.extend({ | ||||||
|     navigate: function (route) { |     navigate: function (route) { | ||||||
|       this.$router.push('/' + route) |       this.$router.push('/' + route) | ||||||
|     }, |     }, | ||||||
| 
 |  | ||||||
|     goToChannel: function (id) { |     goToChannel: function (id) { | ||||||
|       this.$router.push({ path: `/channel/${id}` }) |       this.$router.push({ path: `/channel/${id}` }) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -224,23 +224,28 @@ | ||||||
|           :title="channel.name" |           :title="channel.name" | ||||||
|           role="button" |           role="button" | ||||||
|           tabindex="0" |           tabindex="0" | ||||||
|           @click="goToChannel(channel.id)" |  | ||||||
|           @keypress="goToChannel(channel.id)" |           @keypress="goToChannel(channel.id)" | ||||||
|  |           @click="goToChannel(channel.id)" | ||||||
|         > |         > | ||||||
|           <div |           <router-link | ||||||
|             class="thumbnailContainer" |             :to="`/channel/${channel.id}`" | ||||||
|  |             class="channelLink" | ||||||
|           > |           > | ||||||
|             <img |             <div | ||||||
|               class="channelThumbnail" |               class="thumbnailContainer" | ||||||
|               :src="channel.thumbnail" |  | ||||||
|             > |             > | ||||||
|           </div> |               <img | ||||||
|           <p |                 class="channelThumbnail" | ||||||
|             v-if="isOpen" |                 :src="channel.thumbnail" | ||||||
|             class="navLabel" |               > | ||||||
|           > |             </div> | ||||||
|             {{ channel.name }} |             <p | ||||||
|           </p> |               v-if="isOpen" | ||||||
|  |               class="navLabel" | ||||||
|  |             > | ||||||
|  |               {{ channel.name }} | ||||||
|  |             </p> | ||||||
|  |           </router-link> | ||||||
|         </div> |         </div> | ||||||
|       </div> |       </div> | ||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|  | @ -86,3 +86,7 @@ | ||||||
|     :deep(.iconDropdown) |     :deep(.iconDropdown) | ||||||
|       left: calc(50% - 20px) |       left: calc(50% - 20px) | ||||||
|       right: auto |       right: auto | ||||||
|  | 
 | ||||||
|  | .channelLink | ||||||
|  |   color: inherit | ||||||
|  |   text-decoration: inherit | ||||||
|  |  | ||||||
|  | @ -13,19 +13,28 @@ | ||||||
|           class="profileRow" |           class="profileRow" | ||||||
|         > |         > | ||||||
|           <div> |           <div> | ||||||
|             <img |             <router-link | ||||||
|               :src="channelThumbnail" |               :to="`/channel/${channelId}`" | ||||||
|               class="channelThumbnail" |  | ||||||
|               @click="goToChannel" |  | ||||||
|             > |             > | ||||||
|  |               <img | ||||||
|  |                 :src="channelThumbnail" | ||||||
|  |                 class="channelThumbnail" | ||||||
|  |                 @click="goToChannel" | ||||||
|  |               > | ||||||
|  |             </router-link> | ||||||
|           </div> |           </div> | ||||||
|           <div> |           <div> | ||||||
|             <div |             <router-link | ||||||
|               class="channelName" |               :to="`/channel/${channelId}`" | ||||||
|               @click="goToChannel" |               class="channelLink" | ||||||
|             > |             > | ||||||
|               {{ channelName }} |               <div | ||||||
|             </div> |                 class="channelName" | ||||||
|  |                 @click="goToChannel" | ||||||
|  |               > | ||||||
|  |                 {{ channelName }} | ||||||
|  |               </div> | ||||||
|  |             </router-link> | ||||||
|             <ft-button |             <ft-button | ||||||
|               v-if="!hideUnsubscribeButton" |               v-if="!hideUnsubscribeButton" | ||||||
|               :label="subscribedText" |               :label="subscribedText" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue