summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/directives/user-header-details/user-header-details-directive.ts
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app/directives/user-header-details/user-header-details-directive.ts')
-rw-r--r--catalog-ui/src/app/directives/user-header-details/user-header-details-directive.ts52
1 files changed, 52 insertions, 0 deletions
diff --git a/catalog-ui/src/app/directives/user-header-details/user-header-details-directive.ts b/catalog-ui/src/app/directives/user-header-details/user-header-details-directive.ts
new file mode 100644
index 0000000000..a1a54b0517
--- /dev/null
+++ b/catalog-ui/src/app/directives/user-header-details/user-header-details-directive.ts
@@ -0,0 +1,52 @@
+'use strict';
+import {User, IUser, IAppConfigurtaion} from "app/models";
+import {IUserResourceClass, IUserResource} from "app/services";
+export interface IUserHeaderDetailsScope extends ng.IScope {
+ name:string;
+ role:string;
+ iconUrl:string;
+ UserResourceClass:IUserResourceClass;
+ user:IUser;
+ sdcConfig:IAppConfigurtaion;
+ initUser:Function;
+}
+
+export class UserHeaderDetailsDirective implements ng.IDirective {
+
+ constructor(private $http:ng.IHttpService, private sdcConfig:IAppConfigurtaion, private UserResourceClass:IUserResourceClass) {
+ }
+
+ scope = {
+ iconUrl: '=?'
+ };
+
+ replace = true;
+ restrict = 'E';
+ template = ():string => {
+ return require('./user-header-details-directive.html');
+ };
+
+ link = (scope:IUserHeaderDetailsScope) => {
+
+ scope.initUser = ():void => {
+ let defaultUserId:string;
+ let user:IUserResource = this.UserResourceClass.getLoggedinUser();
+ if (!user) {
+ defaultUserId = this.$http.defaults.headers.common[this.sdcConfig.cookie.userIdSuffix];
+ user = this.UserResourceClass.get({id: defaultUserId}, ():void => {
+ scope.user = new User(user);
+ });
+ } else {
+ scope.user = new User(user);
+ }
+ };
+ scope.initUser();
+ };
+
+ public static factory = ($http:ng.IHttpService, sdcConfig:IAppConfigurtaion, UserResourceClass:IUserResourceClass)=> {
+ return new UserHeaderDetailsDirective($http, sdcConfig, UserResourceClass);
+ };
+
+}
+
+UserHeaderDetailsDirective.factory.$inject = ['$http', 'sdcConfig', 'Sdc.Services.UserResourceService'];