Merge latest codes.

This commit is contained in:
kunw 2017-03-21 12:09:27 +08:00
commit cef202cb54
8 changed files with 39 additions and 8 deletions

View File

@ -65,8 +65,12 @@ func TestMain(t *testing.T) {
w := httptest.NewRecorder()
beego.BeeApp.Handlers.ServeHTTP(w, r)
assert.Equal(int(200), w.Code, "'/' httpStatusCode should be 200")
<<<<<<< HEAD
<<<<<<< HEAD
assert.Equal(true, strings.Contains(fmt.Sprintf("%s", w.Body), "<title>page_title_index</title>"), "http respond should have '<title>page_title_index</title>'")
=======
assert.Equal(true, strings.Contains(fmt.Sprintf("%s", w.Body), "<title>Harbor</title>"), "http respond should have '<title>Harbor</title>'")
>>>>>>> upstream/dev
=======
assert.Equal(true, strings.Contains(fmt.Sprintf("%s", w.Body), "<title>Harbor</title>"), "http respond should have '<title>Harbor</title>'")
>>>>>>> upstream/dev

View File

@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8">
<title>Clarity Seed App</title>
<title>Harbor</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico?v=2">

View File

@ -7,6 +7,7 @@ import { CookieService } from 'angular2-cookie/core';
import { CookieKeyOfAdmiral, HarborQueryParamKey } from './shared/shared.const';
import { maintainUrlQueryParmas } from './shared/shared.utils';
export const systemInfoEndpoint = "/api/systeminfo";
/**
* Declare service to handle the bootstrap options
@ -49,6 +50,7 @@ export class AppConfigService {
//Catch the error
console.error("Failed to load bootstrap options with error: ", error);
});
}
public getConfig(): AppConfig {

View File

@ -1,4 +1,5 @@
import { Component, EventEmitter, Output, ViewChild, AfterViewChecked } from '@angular/core';
import { Response } from '@angular/http';
import { NgForm } from '@angular/forms';
@ -29,6 +30,7 @@ export class CreateProjectComponent implements AfterViewChecked {
createProjectOpened: boolean;
hasChanged: boolean;
@Output() create = new EventEmitter<boolean>();

View File

@ -1,4 +1,4 @@
<clr-datagrid (clrDgRefresh)="refresh($event)">
<clr-datagrid (clrDgRefresh)="refresh($event)" >
<clr-dg-column>{{'PROJECT.NAME' | translate}}</clr-dg-column>
<clr-dg-column>{{'PROJECT.PUBLIC_OR_PRIVATE' | translate}}</clr-dg-column>
<clr-dg-column>{{'PROJECT.REPO_COUNT'| translate}}</clr-dg-column>
@ -19,5 +19,5 @@
<clr-dg-footer>
{{totalRecordCount || (projects ? projects.length : 0)}} {{'PROJECT.ITEMS' | translate}}
<clr-dg-pagination [clrDgPageSize]="pageOffset" [clrDgTotalItems]="totalPage"></clr-dg-pagination>
</clr-dg-footer>
</clr-datagrid>
</clr-dg-footer>
</clr-datagrid>

View File

@ -30,4 +30,28 @@
<clr-dg-footer>{{ (members ? members.length : 0) }} {{'MEMBER.ITEMS' | translate}}</clr-dg-footer>
</clr-datagrid>
</div>
</div>
<div class="col-lg-12 col-md-12 datagrid-margin-top">
<clr-datagrid>
<clr-dg-column>{{'MEMBER.NAME' | translate}}</clr-dg-column>
<clr-dg-column>{{'MEMBER.ROLE' | translate}}</clr-dg-column>
<clr-dg-column style="width: 12px;" class="datagrid-column-ext"></clr-dg-column>
<clr-dg-row *ngFor="let u of members">
<clr-dg-cell>{{u.username}}</clr-dg-cell>
<clr-dg-cell>
{{roleInfo[u.role_id] | translate}}
</clr-dg-cell>
<clr-dg-cell>
<harbor-action-overflow [hidden]="u.user_id === currentUser.user_id" class="habor-action-pos">
<a href="javascript:void(0)" class="dropdown-item" (click)="changeRole(u.user_id, 1)">{{'MEMBER.PROJECT_ADMIN' | translate}}</a>
<a href="javascript:void(0)" class="dropdown-item" (click)="changeRole(u.user_id, 2)">{{'MEMBER.DEVELOPER' | translate}}</a>
<a href="javascript:void(0)" class="dropdown-item" (click)="changeRole(u.user_id, 3)">{{'MEMBER.GUEST' | translate}}</a>
<div class="dropdown-divider"></div>
<a href="javascript:void(0)" class="dropdown-item" (click)="deleteMember(u.user_id)">{{'MEMBER.DELETE' | translate}}</a>
</harbor-action-overflow>
</clr-dg-cell>
</clr-dg-row>
<clr-dg-footer>{{ (members ? members.length : 0) }} {{'MEMBER.ITEMS' | translate}}</clr-dg-footer>
</clr-datagrid>
</div>
</div>

View File

@ -6,11 +6,13 @@ import {
CanActivateChild,
NavigationExtras
} from '@angular/router';
import { SessionService } from '../../shared/session.service';
import { CommonRoutes, AdmiralQueryParamKey } from '../../shared/shared.const';
import { AppConfigService } from '../../app-config.service';
import { maintainUrlQueryParmas } from '../../shared/shared.utils';
@Injectable()
export class AuthCheckGuard implements CanActivate, CanActivateChild {
constructor(
@ -48,6 +50,7 @@ export class AuthCheckGuard implements CanActivate, CanActivateChild {
this.router.navigateByUrl(keyRemovedUrl);
return resolve(false);
}
}

View File

@ -268,11 +268,7 @@
"DELETION_TITLE_TAG": "Confirm Tag Deletion",
"DELETION_SUMMARY_TAG": "Do you want to delete tag {{param}}?",
"DELETION_TITLE_TAG_DENIED": "Signed Tag can't be deleted",
<<<<<<< HEAD:src/ui_ng/src/ng/i18n/lang/en-lang.json
"DELETION_SUMMARY_TAG_DENIED": "The tag must be removed from Notary before they can be deleted.",
=======
"DELETION_SUMMARY_TAG_DENIED": "The tag must be removed from the Notary before it can be deleted.",
>>>>>>> upstream/dev:src/ui_ng/src/i18n/lang/en-lang.json
"FILTER_FOR_REPOSITORIES": "Filter for repositories",
"TAG": "Tag",
"SIGNED": "Signed",