-<div class='card card-xl' ng-class='{active: isActive()}'>
+<div class='card card-xl' ng-class='{active: isActive()}' id='{{definition.full_name}}'>
<div class='card-body'>
<h5>
<span ng-if='definition.is_intro'>
<span>
- <a ng-href='{{mentity.web_url | encodeURI}}'>{{mentity.name}}</a>
+ <a ng-href='{{mentity.web_url}}'>{{mentity.name}}</a>
</span>
return d.promise;
}
},
- controller: function(mentity, lin) {
- this.mentity = mentity;
- this.lin = lin;
+ controller: function(mentity, lin, $scope, $location, $anchorScroll) {
+ var vm = this;
+ vm.focus = $location.hash() ?
+ $location.hash() : mentity.intro.full_name;
+ vm.mentity = mentity;
+ vm.linearization = lin;
+ setTimeout(function() {
+ $anchorScroll();
+ }, 400);
+ $scope.$watch(function () {
+ return $location.hash();
+ }, function (value) {
+ vm.focus = $location.hash() ?
+ $location.hash() : mentity.intro.full_name;
+ $anchorScroll();
+ });
},
- controllerAs: 'vm',
+ controllerAs: 'vm'
})
.state('doc.entity.all', {
url: '/all',
$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;
+ return $scope.focus == $scope.definition.full_name;
}
$scope.loadCardCode = function() {
}
};
- if($scope.isActive()) $scope.loadCardCode();
+ $scope.$watch('focus', function() {
+ if($scope.isActive()) $scope.loadCardCode();
+ });
}
};
}])
})
$locationProvider.html5Mode(true);
})
-
- .filter('encodeURI', function() {
- return encodeURIComponent;
- });
})();
+++ /dev/null
-<ul class='nav nav-tabs' ng-init='entityCtrl.loadEntityLinearization()'>
- <li role='presentation' class='warning'>
- <a ng-href='{{mentity.mclass.web_url}}'>
- <span class='glyphicon glyphicon-chevron-left'/> Go to class
- </a>
- </li>
- <li role='presentation' class='active'>
- <a data-toggle='tab' role='tab' data-target='#linearization' aria-controls='linearization'>
- <span class='glyphicon glyphicon-arrow-down'/> Linearization
- </a>
- </li>
-</ul>
-
-<div class='tab-content'>
- <div role='tabpanel' class='tab-pane fade in active' id='linearization'>
- <entity-linearization
- list-title='Class definitions'
- list-entities='linearization'
- list-focus='mentity' />
- </div>
-</div>
</li>
</ul>
<br>
- <div ng-switch='vm.mentity.class_name'>
- <div ng-switch-when='MClassDef'>
- <div ng-include src='"/views/classdef.html"' />
- </div>
- <div ng-switch-when='MMethodDef' ng-switch-when='MAttributeDef' ng-switch-when='MVirtualTypeDef'>
- <div ng-include src='"/views/propdef.html"' />
- </div>
-
- <ui-view />
- </div>
+ <ui-view />
</div>
<entity-linearization
list-title='Class definitions'
list-entities='vm.linearization'
- list-focus='vm.mentity.intro' />
+ list-focus='vm.focus' />
</div>
+++ /dev/null
-<ul class='nav nav-tabs' ng-init='entityCtrl.loadEntityLinearization()'>
- <li role='presentation' class='warning'>
- <a href='{{mentity.mproperty.web_url}}'>
- <span class='glyphicon glyphicon-chevron-left'/> Go to property
- </a>
- </li>
- <li role='presentation' class='active'>
- <a data-toggle='tab' role='tab' data-target='#linearization' aria-controls='linearization'>
- <span class='glyphicon glyphicon-arrow-down'/> Linearization
- </a>
- </li>
-</ul>
-
-<div class='tab-content'>
- <div role='tabpanel' class='tab-pane fade in active' id='linearization'>
- <entity-linearization
- list-title='Class definitions'
- list-entities='linearization'
- list-focus='mentity' />
- </div>
-</div>
end
return new Namespace.from([mmodule.full_name, "$::", mclass.intro_mmodule.to_ns_ref: nullable NSEntity])
end
+
+ redef fun web_url do return "{mclass.web_url}/lin#{full_name}"
end
redef class MProperty
end
return res
end
+
+ redef fun web_url do return "{mproperty.web_url}/lin#{full_name}"
end
redef class MClassType