mirror of
https://github.com/Tzahi12345/YoutubeDL-Material.git
synced 2026-03-20 03:30:55 +03:00
Moved personal settings from about dialog to profile dialog
Profile dialog can now be opened without logging in/without multi-user mode Fixed issue where about dialog could be accessed from anywhere Misc internationalization improvements
This commit is contained in:
@@ -17,11 +17,11 @@
|
||||
</mat-menu>
|
||||
<button [matMenuTriggerFor]="menuSettings" mat-icon-button><mat-icon>more_vert</mat-icon></button>
|
||||
<mat-menu #menuSettings="matMenu">
|
||||
<button class="top-menu-button" (click)="openProfileDialog()" *ngIf="postsService.isLoggedIn" mat-menu-item>
|
||||
<button class="top-menu-button" (click)="openProfileDialog()" mat-menu-item>
|
||||
<mat-icon>person</mat-icon>
|
||||
<span i18n="Profile menu label">Profile</span>
|
||||
</button>
|
||||
<button class="top-menu-button" (click)="openArchivesDialog()" mat-menu-item>
|
||||
<button *ngIf="!postsService.config.Advanced.multi_user_mode || postsService.isLoggedIn" class="top-menu-button" (click)="openArchivesDialog()" mat-menu-item>
|
||||
<mat-icon>topic</mat-icon>
|
||||
<span i18n="Archives menu label">Archives</span>
|
||||
</button>
|
||||
|
||||
@@ -35,36 +35,6 @@
|
||||
<p>
|
||||
<ng-container i18n="About bug prefix">Found a bug or have a suggestion?</ng-container> <a [href]="issuesLink" target="_blank"><ng-container i18n="About bug click here">Click here</ng-container></a> <ng-container i18n="About bug suffix">to create an issue!</ng-container>
|
||||
</p>
|
||||
<mat-divider></mat-divider>
|
||||
<div style="margin-top: 10px;">
|
||||
<h5>Personal settings:</h5>
|
||||
<mat-form-field>
|
||||
<mat-label i18n="Sidepanel mode">Sidepanel mode</mat-label>
|
||||
<mat-select [(ngModel)]="sidepanel_mode" (selectionChange)="sidePanelModeChanged($event.value)">
|
||||
<mat-option value="over">
|
||||
Over
|
||||
</mat-option>
|
||||
<mat-option value="side">
|
||||
Side
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<br/>
|
||||
<mat-form-field>
|
||||
<mat-label i18n="File card size">File card size</mat-label>
|
||||
<mat-select [(ngModel)]="card_size" (selectionChange)="cardSizeOptionChanged($event.value)">
|
||||
<mat-option value="large">
|
||||
Large
|
||||
</mat-option>
|
||||
<mat-option value="medium">
|
||||
Medium
|
||||
</mat-option>
|
||||
<mat-option value="small">
|
||||
Small
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
</mat-dialog-content>
|
||||
|
||||
|
||||
@@ -16,8 +16,6 @@ export class AboutDialogComponent implements OnInit {
|
||||
checking_for_updates = true;
|
||||
|
||||
current_version_tag = CURRENT_VERSION;
|
||||
sidepanel_mode = this.postsService.sidepanel_mode;
|
||||
card_size = this.postsService.card_size;
|
||||
|
||||
constructor(public postsService: PostsService) { }
|
||||
|
||||
@@ -31,15 +29,4 @@ export class AboutDialogComponent implements OnInit {
|
||||
this.latestGithubRelease = res;
|
||||
});
|
||||
}
|
||||
|
||||
sidePanelModeChanged(new_mode) {
|
||||
localStorage.setItem('sidepanel_mode', new_mode);
|
||||
this.postsService.sidepanel_mode = new_mode;
|
||||
}
|
||||
|
||||
cardSizeOptionChanged(new_size) {
|
||||
localStorage.setItem('card_size', new_size);
|
||||
this.postsService.card_size = new_size;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -13,19 +13,52 @@
|
||||
</div>
|
||||
<div style="margin-top: 20px;">
|
||||
</div>
|
||||
<mat-divider style="margin-bottom: 20px"></mat-divider>
|
||||
</div>
|
||||
|
||||
<div *ngIf="!postsService.isLoggedIn || !postsService.user">
|
||||
<h5><mat-icon>warn</mat-icon><ng-container i18n="Not logged in notification">You are not logged in.</ng-container></h5>
|
||||
<button (click)="loginClicked()" mat-raised-button color="primary"><ng-container i18n="Login">Login</ng-container></button>
|
||||
</div>
|
||||
<mat-form-field color="accent">
|
||||
<mat-label><ng-container i18n="Language select label">Language</ng-container></mat-label>
|
||||
<mat-select (selectionChange)="localeSelectChanged($event.value)" [(value)]="initialLocale">
|
||||
<mat-option *ngFor="let locale of supported_locales" [value]="locale">
|
||||
<ng-container *ngIf="all_locales[locale]">
|
||||
{{all_locales[locale]['nativeName']}}
|
||||
</ng-container>
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<br/>
|
||||
<mat-form-field>
|
||||
<mat-label i18n="Sidepanel mode">Sidepanel mode</mat-label>
|
||||
<mat-select [(ngModel)]="sidepanel_mode" (selectionChange)="sidePanelModeChanged($event.value)">
|
||||
<mat-option i18n="Over" value="over">
|
||||
Over
|
||||
</mat-option>
|
||||
<mat-option i18n="Side" value="side">
|
||||
Side
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<br/>
|
||||
<mat-form-field>
|
||||
<mat-label i18n="File card size">File card size</mat-label>
|
||||
<mat-select [(ngModel)]="card_size" (selectionChange)="cardSizeOptionChanged($event.value)">
|
||||
<mat-option i18n="Large" value="large">
|
||||
Large
|
||||
</mat-option>
|
||||
<mat-option i18n="Medium" value="medium">
|
||||
Medium
|
||||
</mat-option>
|
||||
<mat-option i18n="Small" value="small">
|
||||
Small
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</mat-dialog-content>
|
||||
|
||||
<mat-dialog-actions>
|
||||
<div style="width: 100%">
|
||||
<div style="position: relative">
|
||||
<button mat-stroked-button mat-dialog-close color="primary"><ng-container i18n="Close">Close</ng-container></button>
|
||||
<button style="position: absolute; right: 0px;" (click)="logoutClicked()" mat-stroked-button color="warn"><ng-container i18n="Logout">Logout</ng-container></button>
|
||||
<button *ngIf="postsService.isLoggedIn" style="position: absolute; right: 0px;" (click)="logoutClicked()" mat-stroked-button color="warn"><ng-container i18n="Logout">Logout</ng-container></button>
|
||||
</div>
|
||||
</div>
|
||||
</mat-dialog-actions>
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core';
|
||||
import { PostsService } from 'app/posts.services';
|
||||
import { Router } from '@angular/router';
|
||||
import { MatDialogRef } from '@angular/material/dialog';
|
||||
import { isoLangs } from './locales_list';
|
||||
|
||||
@Component({
|
||||
selector: 'app-user-profile-dialog',
|
||||
@@ -10,9 +11,24 @@ import { MatDialogRef } from '@angular/material/dialog';
|
||||
})
|
||||
export class UserProfileDialogComponent implements OnInit {
|
||||
|
||||
all_locales = isoLangs;
|
||||
supported_locales = ['en', 'es', 'de', 'fr', 'nl', 'pt', 'it', 'ca', 'cs', 'nb', 'ru', 'zh', 'ko', 'id', 'en-GB'];
|
||||
initialLocale = localStorage.getItem('locale');
|
||||
sidepanel_mode = this.postsService.sidepanel_mode;
|
||||
card_size = this.postsService.card_size;
|
||||
|
||||
constructor(public postsService: PostsService, private router: Router, public dialogRef: MatDialogRef<UserProfileDialogComponent>) { }
|
||||
|
||||
ngOnInit(): void {
|
||||
this.postsService.getSupportedLocales().subscribe(res => {
|
||||
if (res && res['supported_locales']) {
|
||||
this.supported_locales = ['en', 'en-GB']; // required
|
||||
this.supported_locales = this.supported_locales.concat(res['supported_locales']);
|
||||
}
|
||||
}, err => {
|
||||
console.error(`Failed to retrieve list of supported languages! You may need to run: 'node src/postbuild.mjs'. Error below:`);
|
||||
console.error(err);
|
||||
});
|
||||
}
|
||||
|
||||
loginClicked() {
|
||||
@@ -25,4 +41,19 @@ export class UserProfileDialogComponent implements OnInit {
|
||||
this.dialogRef.close();
|
||||
}
|
||||
|
||||
localeSelectChanged(new_val: string): void {
|
||||
localStorage.setItem('locale', new_val);
|
||||
this.postsService.openSnackBar($localize`Language successfully changed! Reload to update the page.`)
|
||||
}
|
||||
|
||||
sidePanelModeChanged(new_mode) {
|
||||
localStorage.setItem('sidepanel_mode', new_mode);
|
||||
this.postsService.sidepanel_mode = new_mode;
|
||||
}
|
||||
|
||||
cardSizeOptionChanged(new_size) {
|
||||
localStorage.setItem('card_size', new_size);
|
||||
this.postsService.card_size = new_size;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ import {
|
||||
Subscription,
|
||||
RestartDownloadResponse
|
||||
} from '../api-types';
|
||||
import { isoLangs } from './settings/locales_list';
|
||||
import { isoLangs } from './dialogs/user-profile-dialog/locales_list';
|
||||
import { Title } from '@angular/platform-browser';
|
||||
import { MatDrawerMode } from '@angular/material/sidenav';
|
||||
|
||||
|
||||
@@ -78,23 +78,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<mat-divider></mat-divider>
|
||||
<div *ngIf="new_config" class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12 mt-3">
|
||||
<mat-form-field color="accent">
|
||||
<mat-label><ng-container i18n="Language select label">Language</ng-container></mat-label>
|
||||
<mat-select (selectionChange)="localeSelectChanged($event.value)" [(value)]="initialLocale">
|
||||
<mat-option *ngFor="let locale of supported_locales" [value]="locale">
|
||||
<ng-container *ngIf="all_locales[locale]">
|
||||
{{all_locales[locale]['nativeName']}}
|
||||
</ng-container>
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
</mat-tab>
|
||||
<!-- Downloader -->
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { Component, OnInit, EventEmitter } from '@angular/core';
|
||||
import { PostsService } from 'app/posts.services';
|
||||
import { isoLangs } from './locales_list';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import {DomSanitizer} from '@angular/platform-browser';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
@@ -22,10 +21,6 @@ import { GenerateRssUrlComponent } from 'app/dialogs/generate-rss-url/generate-r
|
||||
styleUrls: ['./settings.component.scss']
|
||||
})
|
||||
export class SettingsComponent implements OnInit {
|
||||
all_locales = isoLangs;
|
||||
supported_locales = ['en', 'es', 'de', 'fr', 'nl', 'pt', 'it', 'ca', 'cs', 'nb', 'ru', 'zh', 'ko', 'id', 'en-GB'];
|
||||
initialLocale = localStorage.getItem('locale');
|
||||
|
||||
initial_config = null;
|
||||
new_config = null
|
||||
loading_config = false;
|
||||
@@ -83,16 +78,6 @@ export class SettingsComponent implements OnInit {
|
||||
|
||||
const tab = this.route.snapshot.paramMap.get('tab');
|
||||
this.tabIndex = tab && this.TAB_TO_INDEX[tab] ? this.TAB_TO_INDEX[tab] : 0;
|
||||
|
||||
this.postsService.getSupportedLocales().subscribe(res => {
|
||||
if (res && res['supported_locales']) {
|
||||
this.supported_locales = ['en', 'en-GB']; // required
|
||||
this.supported_locales = this.supported_locales.concat(res['supported_locales']);
|
||||
}
|
||||
}, err => {
|
||||
console.error(`Failed to retrieve list of supported languages! You may need to run: 'node src/postbuild.mjs'. Error below:`);
|
||||
console.error(err);
|
||||
});
|
||||
}
|
||||
|
||||
getConfig(): void {
|
||||
@@ -207,11 +192,6 @@ export class SettingsComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
localeSelectChanged(new_val: string): void {
|
||||
localStorage.setItem('locale', new_val);
|
||||
this.postsService.openSnackBar($localize`Language successfully changed! Reload to update the page.`)
|
||||
}
|
||||
|
||||
generateBookmarklet(): void {
|
||||
this.bookmarksite('YTDL-Material', this.generated_bookmarklet_code);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user