/** @jsx React.DOM */ /* global conjur, React, ReactBootstrap, _ */ (function(conjur, React, ReactBootstrap, _) { 'use strict'; var TabbedArea = ReactBootstrap.TabbedArea, TabPane = ReactBootstrap.TabPane, Tab = conjur.views.mixins.Tab, AuditBox = window.AuditBox, Breadcrumbs = conjur.views.Breadcrumbs, RoleLink = conjur.views.RoleLink, HostLink = conjur.views.HostLink; var abstractRole = function(expected) { return function(role) { var tokens = role.split(':'), kind = tokens[1], abstractKinds = ['@', 'layer'], isAbstract = abstractKinds.indexOf(kind) !== -1; return isAbstract === expected; }; }; this.Layer = React.createClass({ mixins: [Tab], render: function() { var data = this.props.data; var hosts = data.layer.hosts.map(function(host) { return (
  • ); }); var admins = data.admins.filter(abstractRole(false)).map(function(role) { return (
  • ); }); var users = data.users.filter(abstractRole(false)).map(function(role) { return (
  • ); }); // TODO: controls to add/remove admins/users/hosts var overviewTab = (
    Owner
    Created by
    ); var adminsTab = ( ); var usersTab = ( ); var hostsTab = ( ); var auditTab = (
    ); var permissionsTab = this.permissionsTab(data.layer.roleid), membershipsTab = this.membershipsTab(data.layer.roleid), annotationsTab = this.annotationsTab(), ownedTab = this.ownedTab(); var tabs = _.compact([ overviewTab, adminsTab, usersTab, hostsTab, ownedTab, membershipsTab, permissionsTab, annotationsTab, auditTab ]); var elems = [ {url: '/ui/layers', text: 'Layers'}, {url: '', text: this.props.data.layer.id}, {url: '', text: '(owned by ' + this.props.data.layer.ownerid + ')'} ]; return (

    Layer {data.layer.id}

    {tabs}
    ); } }); }).bind(conjur.views) ( conjur, React, ReactBootstrap, _ );