Sha256: a0cb9c1cc2068f1bbb47f062a138e10e740249f94b5ce417f7b4096e36f7651e

Contents?: true

Size: 1.59 KB

Versions: 4

Compression:

Stored size: 1.59 KB

Contents

app.directive('rsTypeLabel', function($compile) {

  var primitives = [
    'Boolean',
    'CSV',
    'DateTime',
    'Float',
    'Hash',
    'Ids',
    'Integer',
    'Object',
    'String',
    'Struct'
  ];

  var templates = {
    primitive: '<span>{{type.name}}</span>',
    type: '<a ui-sref="root.type({version: apiVersion, type: type.id})">{{type.name | resourceName}}</a>',
    primitiveCollection: '<span>Collection&nbsp;[&nbsp;{{type.member_attribute.type.name}}&nbsp;]</a>',
    typeCollection: '<span>Collection&nbsp;[&nbsp;<a ui-sref="root.type({version: apiVersion, type: type.member_attribute.type.id})">{{type.member_attribute.type.name | resourceName}}</a>&nbsp;]</span>',
    link: '<span>Link&nbsp;[&nbsp;<a ui-sref="root.type({version: apiVersion, type: type.link_to})">{{type.link_to | resourceName}}</a>&nbsp;]</span>'
  };

  return {
    restrict: 'E',
    scope: {
      type: '='
    },
    link: function(scope, element) {
      var template = templates.type;
      if (_.contains(primitives, scope.type.name)) {
        template = templates.primitive;
      }
      else if ( scope.type.member_attribute !== undefined ) {
        if ( _.contains(primitives, scope.type.member_attribute.type.name)){
          template = templates.primitiveCollection;
        }else{
          template = templates.typeCollection;
				}
      }
      else if (scope.type.link_to) {
        template = templates.link;
      }

      element.html(template);
      $compile(element.contents())(scope);
    },
    controller: function($scope, $stateParams) {
      $scope.apiVersion = $stateParams.version;
    }
  };
});

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
praxis-0.16.1 lib/api_browser/app/js/directives/type_label.js
praxis-0.16.0 lib/api_browser/app/js/directives/type_label.js
praxis-0.15.0 lib/api_browser/app/js/directives/type_label.js
praxis-0.14.0 lib/api_browser/app/js/directives/type_label.js