<span ng-if='!definition.mclassdef'>
in <entity-link mentity='definition.mmodule' />
</span>
+ <div class='btn-bar'>
+ <button class='btn btn-link' aria-expanded='false'
+ data-target='#{{codeId}}' ng-click='loadCardCode()'
+ aria-controls='{{codeId}}'>
+ <span class='glyphicon glyphicon-console'
+ title='Show code' />
+ </button>
+ </div>
</h5>
+ <div id='{{codeId}}' class='collapse'>
+ <pre ng-bind-html='code' />
+ </div>
<entity-location mentity='definition' />
</div>
</div>
definition: '=',
focus: '='
},
+ templateUrl: '/directives/entity/defcard.html',
link: function ($scope, element, attrs) {
- $scope.$watch("definition", function() {
- /*.loadEntityDefs($scope.definition.full_name,
- function(data) {
- $scope.mentity = data;
- }, function(err) {
- $scope.error = err;
- });
- Model.loadEntityCode($scope.definition.full_name,
- function(data) {
- $scope.code = data;
- }, function(err) {
- $scope.error = err;
- });*/
- });
- },
- templateUrl: '/directives/entity/defcard.html'
+ $scope.codeId = 'code_' + $scope.definition.full_name.replace(/[^a-zA-Z0-9]/g, '_');
+ $scope.loadCardCode = function() {
+ if(!$scope.code) {
+ Model.loadEntityCode($scope.definition.full_name,
+ function(data) {
+ $scope.code = data;
+ setTimeout(function() { // smooth collapse
+ $('#' + $scope.codeId).collapse('show')
+ }, 1);
+ }, function(err) {
+ $scope.code = err;
+ });
+ } else {
+ if($('#' + $scope.codeId).hasClass('in')) {
+ $('#' + $scope.codeId).collapse('hide');
+ } else {
+ $('#' + $scope.codeId).collapse('show');
+ }
+ }
+ };
+ }
};
}])
})();