X-Git-Url: http://nitlanguage.org diff --git a/share/nitweb/javascripts/entities.js b/share/nitweb/javascripts/entities.js index 255602c..9eefc9f 100644 --- a/share/nitweb/javascripts/entities.js +++ b/share/nitweb/javascripts/entities.js @@ -19,6 +19,33 @@ .module('entities', ['ui', 'model']) .controller('EntityCtrl', ['Model', '$routeParams', '$scope', function(Model, $routeParams, $scope) { + this.loadEntityLinearization = function() { + Model.loadEntityLinearization($routeParams.id, + function(data) { + $scope.linearization = data; + }, function(err) { + $scope.error = err; + }); + }; + + this.loadEntityDefs = function() { + Model.loadEntityDefs($routeParams.id, + function(data) { + $scope.defs = data; + }, function(err) { + $scope.error = err; + }); + }; + + this.loadEntityCode = function() { + Model.loadEntityCode($routeParams.id, + function(data) { + $scope.code = data; + }, function(err) { + $scope.code = err; + }); + }; + Model.loadEntity($routeParams.id, function(data) { $scope.mentity = data; @@ -94,6 +121,7 @@ restrict: 'E', scope: { listEntities: '=', + listId: '@', listTitle: '@', listObjectFilter: '=', }, @@ -116,4 +144,49 @@ } }; }) + + .directive('entityLinearization', function() { + return { + restrict: 'E', + scope: { + listEntities: '=', + listTitle: '@', + listFocus: '=' + }, + templateUrl: '/directives/entity/linearization.html' + }; + }) + + .directive('entityDef', ['Model', function(Model, Code) { + return { + restrict: 'E', + scope: { + definition: '=', + focus: '=' + }, + templateUrl: '/directives/entity/defcard.html', + link: function ($scope, element, attrs) { + $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'); + } + } + }; + } + }; + }]) })();