Skip to content

Commit

Permalink
enabling and disabling from sidebar working
Browse files Browse the repository at this point in the history
  • Loading branch information
cbartondock committed Nov 12, 2021
1 parent c76e369 commit 20591ff
Show file tree
Hide file tree
Showing 6 changed files with 87 additions and 20 deletions.
2 changes: 2 additions & 0 deletions .todo
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ mage"\:\ \"\"\,\n\"defaultIcon\"\:\ \"\"\,/g' {} \;

# Fixes
Remove close steam if open warning and replace with something better
Steam parser only works for steam apps that are in a category


# Features
Add missing artwork filter (2.4)
Expand Down
2 changes: 1 addition & 1 deletion src/models/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ export * from './x-request.model';
export * from './custom-variables.model';
export * from './user-exceptions.model';
export * from './config-presets.model';
export * from './error.model'
export * from './error.model';
40 changes: 35 additions & 5 deletions src/renderer/components/nav.component.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Component, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
import { Component, ChangeDetectionStrategy, ChangeDetectorRef, ApplicationRef, OnDestroy } from '@angular/core';
import { FormBuilder, FormArray, FormGroup, FormControl } from '@angular/forms';
import { ParsersService, LanguageService, UserExceptionsService } from '../services';
import { UserConfiguration } from '../../models';
import { Subscription } from 'rxjs';
Expand All @@ -12,23 +13,48 @@ import { APP } from '../../variables';
],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class NavComponent {
export class NavComponent implements OnDestroy {
private userConfigurations: { saved: UserConfiguration, current: UserConfiguration }[];
private numConfigurations: number = -1;
private isExceptionsUnsaved: boolean = false;
private dummy: boolean = true;
private subscriptions: Subscription = new Subscription();

private navForm: FormGroup;
private navFormItems: FormArray;

constructor(
private parsersService: ParsersService,
private languageService: LanguageService,
private exceptionsService: UserExceptionsService,
private changeRef: ChangeDetectorRef) {}
private changeRef: ChangeDetectorRef,
private appRef: ApplicationRef,
private formBuilder: FormBuilder,
) {}

ngOnInit() {
this.subscriptions.add(this.parsersService.getUserConfigurations().subscribe((userConfigurations) => {
this.userConfigurations = userConfigurations;
this.refreshActiveRoute();
//if(userConfigurations.length != this.numConfigurations) {
this.navForm = this.formBuilder.group({
parserStatuses: this.formBuilder.array(userConfigurations.map((config: {saved: UserConfiguration, current: UserConfiguration}) => {
let singleton={};
singleton[config.saved.parserId] = ! config.saved.disabled;
return this.formBuilder.group(singleton);
}))
});
(this.navForm.get("parserStatuses") as FormArray).controls.forEach((control: FormControl)=>{
control.valueChanges.subscribe((val: {[parserId: string]: boolean}) => {
console.log("Little Change: ", val)
this.parsersService.changeEnabledStatus(Object.keys(val)[0], Object.values(val)[0])
})
})
this.numConfigurations = userConfigurations.length;
this.userConfigurations = userConfigurations;
//}

this.appRef.tick()
this.changeRef.detectChanges();
this.refreshActiveRoute();
}));
this.subscriptions.add(this.exceptionsService.isUnsavedObservable.subscribe((val:boolean)=>{
this.isExceptionsUnsaved = val;
Expand All @@ -48,6 +74,10 @@ export class NavComponent {
return APP.lang.nav.component;
}

getParserControls() {
return (this.navForm.get('parserStatuses') as FormArray).controls;
}

ngOnDestroy() {
this.subscriptions.unsubscribe();
}
Expand Down
7 changes: 5 additions & 2 deletions src/renderer/components/user-exceptions.component.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { Component, ChangeDetectionStrategy, ChangeDetectorRef, AfterViewInit, OnDestroy } from '@angular/core';
import { Component, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy } from '@angular/core';
import { ActivatedRoute, Router, RouterLinkActive } from '@angular/router';
import { FormBuilder, FormArray, FormGroup, FormControl } from '@angular/forms';
import { UserExceptions } from '../../models';
import { UserExceptionsService, LoggerService } from '../services';
import { Subscription, Observable } from "rxjs";
import { Subscription } from "rxjs";
import { APP } from '../../variables';
import * as _ from 'lodash';
@Component({
Expand Down Expand Up @@ -90,6 +90,9 @@ export class ExceptionsComponent implements OnDestroy {
this.userExceptions = data.current ? data.current : data.saved;
if(!this.exceptionsService.isUnsaved) {
this.setForm();
console.log("how many times we doin that.");
console.log("numexceps: ", this.userExceptions.length);
console.log(this.exceptionsForm);
}
if(data.current) {
this.exceptionsService.setIsUnsaved(true);
Expand Down
7 changes: 7 additions & 0 deletions src/renderer/services/parsers.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,13 @@ export class ParsersService {
this.saveUserConfigurations();
}

changeEnabledStatus(parserId: string, enabled: boolean) {
let updateIndex = this.userConfigurations.getValue().map(e=>e.saved.parserId).indexOf(parserId);
let config = _.cloneDeep(this.userConfigurations.getValue()[updateIndex].saved);
config.disabled = !enabled;
this.updateConfiguration(updateIndex, config);
}

updateConfiguration(index: number, config?: UserConfiguration) {
let userConfigurations = this.userConfigurations.getValue();

Expand Down
49 changes: 37 additions & 12 deletions src/renderer/templates/nav.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,40 @@
</nav-link>
</nav-expand>
<nav-link routerLink="/about" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">{{lang.about}}</nav-link>
<nav-expand routerLinkActive="active">
<nav-link class="title" [routerLink]="['/parsers', -1]" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">
<span>{{lang.parsers}}</span>
<span>&nbsp;&nbsp;</span>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 300 300">
<polyline points="30,110 150,210 270,110" style="stroke-width:30;fill:none;" />
</svg>
</nav-link>
<nav-link class="item" [ngClass]="{unsaved: config.current != null, disabled: config.saved.disabled}" *ngFor="let config of userConfigurations; index as i" [routerLink]="['/parsers', i]" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true, dummy: dummy }">
{{config.saved.configTitle || lang.noTitle}}
</nav-link>
</nav-expand>
<div [formGroup]="navForm" *ngIf="!!navForm">
<nav-expand routerLinkActive="active">
<nav-link class="title" [routerLink]="['/parsers', -1]" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">
<span>{{lang.parsers}}</span>
<span>&nbsp;&nbsp;</span>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 300 300">
<polyline points="30,110 150,210 270,110" style="stroke-width:30;fill:none;" />
</svg>
</nav-link>
<div class="item" formArrayName="parserStatuses" *ngFor="let item of navForm.get('parserStatuses').controls;let i=index">
<div [formGroupName]=i>
<div class="inlineGroup">
<nav-link class="item" [ngClass]="{unsaved: userConfigurations[i].current != null, disabled: userConfigurations[i].saved.disabled}" [routerLink]="['/parsers', i]" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true, dummy: dummy }">
{{userConfigurations[i].saved.configTitle || lang.noTitle}}
</nav-link>
<ng-toggle-button class="ngToggleButton" [formControl]="item.controls[userConfigurations[i].saved.parserId]"></ng-toggle-button>
</div>
</div>
</div>
<!-- <nav-link class="item" [ngClass]="{unsaved: config.current != null, disabled: config.saved.disabled}" *ngFor="let config of userConfigurations; index as i" [routerLink]="['/parsers', i]" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true, dummy: dummy }"> -->
<!-- {{config.saved.configTitle || lang.noTitle}} -->
<!-- </nav-link> -->
</nav-expand>
</div>
<!-- <div class="item" [formGroup]="navForm" *ngIf="!!navForm"> -->
<!-- <div formArrayName="parserStatuses" -->
<!-- *ngFor="let item of navForm.get('parserStatuses').controls;let i=index;"> -->
<!-- <div [formGroupName]=i> -->
<!-- <div class="inlineGroup"> -->
<!-- <nav-link class="item" [ngClass]="{unsaved: userConfigurations[i].current != null, disabled: userConfigurations[i].saved.disabled}" [routerLink]="['/parsers', i]" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true, dummy: dummy }"> -->
<!-- {{userConfigurations[i].saved.configTitle || lang.noTitle}} -->
<!-- </nav-link> -->
<!-- <ng-toggle-button class="ngToggleButton" [formControl]="item.controls[userConfigurations[i].saved.parserId]"></ng-toggle-button> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->

0 comments on commit 20591ff

Please sign in to comment.