Browse Source

Version control Repository settings:

- in Admin service added getRepositorySettingsInfo();
- disabled 'Create version'/'Create entities version' buttons if active Read-only flag;
pull/7483/head
Artem Babak 4 years ago
parent
commit
505404903a
  1. 14
      ui-ngx/src/app/core/http/admin.service.ts
  2. 4
      ui-ngx/src/app/modules/home/components/vc/complex-version-create.component.ts
  3. 4
      ui-ngx/src/app/modules/home/components/vc/entity-versions-table.component.html
  4. 5
      ui-ngx/src/app/modules/home/components/vc/entity-versions-table.component.ts
  5. 6
      ui-ngx/src/app/modules/home/components/vc/repository-settings.component.html
  6. 3
      ui-ngx/src/app/modules/home/components/vc/repository-settings.component.scss
  7. 6
      ui-ngx/src/app/shared/models/settings.models.ts

14
ui-ngx/src/app/core/http/admin.service.ts

@ -15,8 +15,8 @@
///
import { Injectable } from '@angular/core';
import { defaultHttpOptions, defaultHttpOptionsFromConfig, RequestConfig } from './http-utils';
import { Observable, of } from 'rxjs';
import { defaultHttpOptionsFromConfig, RequestConfig } from './http-utils';
import { Observable } from 'rxjs';
import { HttpClient } from '@angular/common/http';
import {
AdminSettings,
@ -24,12 +24,12 @@ import {
MailServerSettings,
SecuritySettings,
TestSmsRequest,
UpdateMessage, AutoCommitSettings
UpdateMessage,
AutoCommitSettings,
RepositorySettingsInfo
} from '@shared/models/settings.models';
import { EntitiesVersionControlService } from '@core/http/entities-version-control.service';
import { tap } from 'rxjs/operators';
import { AuthUser } from '@shared/models/user.model';
import { Authority } from '@shared/models/authority.enum';
@Injectable({
providedIn: 'root'
@ -97,6 +97,10 @@ export class AdminService {
return this.http.post<void>('/api/admin/repositorySettings/checkAccess', repositorySettings, defaultHttpOptionsFromConfig(config));
}
public getRepositorySettingsInfo(config?: RequestConfig): Observable<RepositorySettingsInfo> {
return this.http.get<RepositorySettingsInfo>('/api/admin/repositorySettings/info', defaultHttpOptionsFromConfig(config));
}
public getAutoCommitSettings(config?: RequestConfig): Observable<AutoCommitSettings> {
return this.http.get<AutoCommitSettings>(`/api/admin/autoCommitSettings`, defaultHttpOptionsFromConfig(config));
}

4
ui-ngx/src/app/modules/home/components/vc/complex-version-create.component.ts

@ -121,10 +121,10 @@ export class ComplexVersionCreateComponent extends PageComponent implements OnIn
}
this.versionCreateResultSubscription = this.versionCreateResult$.subscribe((result) => {
let message;
let message: string;
if (!result.error) {
if (result.done && !result.added && !result.modified && !result.removed) {
message = this.translate.instant('version-control.nothing-to-commit')
message = this.translate.instant('version-control.nothing-to-commit');
} else {
message = this.translate.instant('version-control.version-create-result',
{added: result.added, modified: result.modified, removed: result.removed});

4
ui-ngx/src/app/modules/home/components/vc/entity-versions-table.component.html

@ -34,14 +34,14 @@
<div fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center end">
<button *ngIf="singleEntityMode" mat-stroked-button color="primary"
#createVersionButton
[disabled]="(isLoading$ | async)"
[disabled]="(isLoading$ | async) || (isReadOnly | async)"
(click)="toggleCreateVersion($event, createVersionButton)">
<mat-icon>update</mat-icon>
{{'version-control.create-version' | translate }}
</button>
<button *ngIf="!singleEntityMode" mat-stroked-button color="primary"
#complexCreateVersionButton
[disabled]="(isLoading$ | async)"
[disabled]="(isLoading$ | async) || (isReadOnly | async)"
(click)="toggleComplexCreateVersion($event, complexCreateVersionButton)">
<mat-icon>update</mat-icon>
{{'version-control.create-entities-version' | translate }}

5
ui-ngx/src/app/modules/home/components/vc/entity-versions-table.component.ts

@ -54,6 +54,7 @@ import { EntityVersionDiffComponent } from '@home/components/vc/entity-version-d
import { ComplexVersionCreateComponent } from '@home/components/vc/complex-version-create.component';
import { ComplexVersionLoadComponent } from '@home/components/vc/complex-version-load.component';
import { TbPopoverComponent } from '@shared/components/popover.component';
import { AdminService } from "@core/http/admin.service";
@Component({
selector: 'tb-entity-versions-table',
@ -87,6 +88,8 @@ export class EntityVersionsTableComponent extends PageComponent implements OnIni
viewsInited = false;
isReadOnly: Observable<boolean>;
private componentResize$: ResizeObserver;
@Input()
@ -129,6 +132,7 @@ export class EntityVersionsTableComponent extends PageComponent implements OnIni
constructor(protected store: Store<AppState>,
private entitiesVersionControlService: EntitiesVersionControlService,
private adminService: AdminService,
private popoverService: TbPopoverService,
private renderer: Renderer2,
private cd: ChangeDetectorRef,
@ -150,6 +154,7 @@ export class EntityVersionsTableComponent extends PageComponent implements OnIni
}
});
this.componentResize$.observe(this.elementRef.nativeElement);
this.isReadOnly = this.adminService.getRepositorySettingsInfo().pipe(map(settings => settings.readOnly));
}
ngOnDestroy() {

6
ui-ngx/src/app/modules/home/components/vc/repository-settings.component.html

@ -41,7 +41,7 @@
<mat-label translate>admin.default-branch</mat-label>
<input matInput formControlName="defaultBranch">
</mat-form-field>
<mat-checkbox formControlName="readOnly" style="margin-bottom: 16px;">
<mat-checkbox formControlName="readOnly">
{{ 'admin.repository-read-only' | translate }}
</mat-checkbox>
<fieldset [disabled]="isLoading$ | async" class="fields-group">
@ -61,7 +61,7 @@
autocomplete="new-username"/>
</mat-form-field>
<mat-checkbox *ngIf="showChangePassword" (change)="changePasswordChanged()"
[(ngModel)]="changePassword" [ngModelOptions]="{ standalone: true }" style="padding-bottom: 16px;">
[(ngModel)]="changePassword" [ngModelOptions]="{ standalone: true }">
{{ 'admin.change-password-access-token' | translate }}
</mat-checkbox>
<mat-form-field class="mat-block" *ngIf="changePassword || !showChangePassword">
@ -81,7 +81,7 @@
(fileNameChanged)="repositorySettingsForm.get('privateKeyFileName').patchValue($event)">
</tb-file-input>
<mat-checkbox *ngIf="showChangePrivateKeyPassword" (change)="changePrivateKeyPasswordChanged()"
[(ngModel)]="changePrivateKeyPassword" [ngModelOptions]="{ standalone: true }" style="padding-bottom: 16px;">
[(ngModel)]="changePrivateKeyPassword" [ngModelOptions]="{ standalone: true }">
{{ 'admin.change-passphrase' | translate }}
</mat-checkbox>
<mat-form-field class="mat-block" *ngIf="changePrivateKeyPassword || !showChangePrivateKeyPassword">

3
ui-ngx/src/app/modules/home/components/vc/repository-settings.component.scss

@ -17,6 +17,9 @@
mat-card.repository-settings {
margin: 8px;
}
mat-checkbox {
padding-bottom: 16px;
}
.fields-group {
padding: 0 16px 8px;
margin-bottom: 10px;

6
ui-ngx/src/app/shared/models/settings.models.ts

@ -411,7 +411,6 @@ export const repositoryAuthMethodTranslationMap = new Map<RepositoryAuthMethod,
export interface RepositorySettings {
repositoryUri: string;
defaultBranch: string;
readOnly: boolean;
authMethod: RepositoryAuthMethod;
username: string;
password: string;
@ -420,6 +419,11 @@ export interface RepositorySettings {
privateKeyPassword: string;
}
export interface RepositorySettingsInfo {
configured: boolean;
readOnly: boolean;
}
export interface AutoVersionCreateConfig extends VersionCreateConfig {
branch: string;
}

Loading…
Cancel
Save