nitweb: show namespace in frontend
authorAlexandre Terrasa <alexandre@moz-code.org>
Thu, 25 Aug 2016 19:02:28 +0000 (15:02 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Wed, 31 Aug 2016 13:32:12 +0000 (09:32 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

share/nitweb/directives/entity/defcard.html
share/nitweb/directives/entity/namespace.html
share/nitweb/javascripts/entities.js
share/nitweb/views/doc.html

index 5a024fe..ddbef3b 100644 (file)
@@ -1,24 +1,13 @@
-<div class='card card-xl' ng-class='{active: focus.full_name == definition.full_name}'>
+<div class='card card-xl' ng-class='{active: isActive()}'>
        <div class='card-body'>
-               <h5 class='text-muted'>
+               <h5>
                        <span ng-if='definition.is_intro'>
-                               <span class='glyphicon glyphicon-plus' /> Introduction</span>
+                               <span class='text-muted glyphicon glyphicon-plus' title='introduction' />
+                               <entity-namespace namespace='definition.namespace' />
                        </span>
                        <span ng-if='!definition.is_intro'>
-                               <span class='glyphicon glyphicon-asterisk' /> Redefinition</span>
-                       </span>
-                       <span ng-if='definition.mclass'>
-                               of <entity-link mentity='definition.mclass' />
-                       </span>
-                       <span ng-if='definition.mproperty'>
-                               of <entity-link mentity='definition.mproperty' />
-                       </span>
-                       <span ng-if='definition.mclassdef'>
-                               in <entity-link mentity='definition.mmodule' />
-                               :: <entity-link mentity='definition.mclassdef' />
-                       </span>
-                       <span ng-if='!definition.mclassdef'>
-                               in <entity-link mentity='definition.mmodule' />
+                               <span class='text-muted glyphicon glyphicon-asterisk' title='redefinition' />
+                               <entity-namespace namespace='definition.namespace' />
                        </span>
                        <div class='btn-bar'>
                                <button class='btn btn-link' aria-expanded='false'
@@ -31,7 +20,7 @@
                </h5>
                <div id='{{codeId}}' class='collapse'>
                        <pre ng-bind-html='code' />
+                       <entity-location mentity='definition' />
                </div>
-               <entity-location mentity='definition' />
        </div>
 </div>
index 6e39abf..11928ab 100644 (file)
@@ -1,13 +1,10 @@
-<span ng-if='mentity.mpackage'>
-       <entity-link mentity='mentity.mpackage' /> ::
+<span ng-repeat='part in namespace track by $index'>
+       <span ng-if='isArray(part)'>
+               <entity-namespace namespace='part' />
+       </span>
+       <span ng-if='isObject(part)'>
+               <entity-link mentity='part' />
+       </span>
+       <span ng-if='isString(part)'>
+       <span>{{part}}</span>
 </span>
-<span ng-if='mentity.mmodule'>
-       <entity-link mentity='mentity.mmodule' /> ::
-</span>
-<span ng-if='mentity.intro_mclassdef'>
-       <entity-link mentity='mentity.intro_mclassdef' /> ::
-</span>
-<span ng-if='mentity.mclassdef'>
-       <entity-link mentity='mentity.mclassdef' /> ::
-</span>
-{{mentity.name}}
index 3fd473f..eb4f5f9 100644 (file)
                        return {
                                restrict: 'E',
                                scope: {
-                                       mentity: '='
+                                       namespace: '='
                                },
-                               templateUrl: '/directives/entity/namespace.html'
+                               templateUrl: '/directives/entity/namespace.html',
+                               link: function ($scope, element, attrs) {
+                                       $scope.isObject = function(obj) {
+                                               return typeof obj === 'object';
+                                       };
+                                       $scope.isArray = function(obj) {
+                                               return Array.isArray(obj);
+                                       };
+                                       $scope.isString = function(obj) {
+                                               return typeof obj === 'string';
+                                       };
+                               }
                        };
                })
 
                                templateUrl: '/directives/entity/defcard.html',
                                link: function ($scope, element, attrs) {
                                        $scope.codeId = 'code_' + $scope.definition.full_name.replace(/[^a-zA-Z0-9]/g, '_');
+
+                                       $scope.isActive = function() {
+                                               return $scope.focus.full_name == $scope.definition.full_name;
+                                       }
+
                                        $scope.loadCardCode = function() {
                                                if(!$scope.code) {
                                                        Model.loadEntityCode($scope.definition.full_name,
index 53f8a2a..abcc707 100644 (file)
@@ -11,7 +11,7 @@
 
        <div class='page-header'>
                <h2><entity-signature mentity='mentity' /></h2>
-               <entity-namespace mentity='mentity' />
+               <entity-namespace namespace='mentity.namespace' />
        </div>
        <div ng-switch='mentity.class_name'>
                <div ng-switch-when='MPackage'>