diff --git a/app/scripts/controllers/schema-controller.js b/app/scripts/controllers/schema-controller.js index 882266d20eb..34b19ce53a2 100644 --- a/app/scripts/controllers/schema-controller.js +++ b/app/scripts/controllers/schema-controller.js @@ -44,20 +44,25 @@ schemaModule.controller("SchemaController", ['$scope', '$routeParams', '$locatio } $scope.rename = function (cls, event) { - // TODO -// if (!$scope.popoverPromise) { -// var popScope = $scope.$new(true); -// popScope.rename = function (name) { -// ClassAlterApi.changeProperty($routeParams.database, { clazz: cls.name, name: "name", value: name}).then(function (data) { -// var noti = S("The class {{name}} has been renamed to {{newName}}").template({ name: cls.name, newName: name}).s; -// Notification.push({content: noti}); -// cls.name = name; -// }, function err(data) { -// Notification.push({content: data, error: true}); -// }); -// } -// $scope.popoverPromise = $popover(angular.element(event.target), { scope: popScope, title: 'Rename Class', template: 'views/database/changeNamePopover.html', show: true}); -// } + + //modal + var modalScope = $scope.$new(true); + modalScope.what = 'class'; + modalScope.tmpName = cls.name; + var modalPromise = $modal({template: 'views/database/changeNameModal.html', scope: modalScope, show: false}); + + modalScope.rename = function (name) { + if (name != cls.name) { + ClassAlterApi.changeProperty($routeParams.database, { clazz: cls.name, name: "name", value: name}).then(function (data) { + var noti = S("The class {{name}} has been renamed to {{newName}}").template({ name: cls.name, newName: name}).s; + Notification.push({content: noti}); + cls.name = name; + }, function err(data) { + Notification.push({content: data, error: true}); + }); + } + } + modalPromise.$promise.then(modalPromise.show); } $scope.dropClass = function (nameClass) { @@ -124,7 +129,7 @@ schemaModule.controller("SchemaController", ['$scope', '$routeParams', '$locatio } ]) ; -schemaModule.controller("ClassEditController", ['$scope', '$routeParams', '$location', 'Database', 'CommandApi', '$modal', '$q', '$route', '$window', 'DatabaseApi', 'Spinner', function ($scope, $routeParams, $location, Database, CommandApi, $modal, $q, $route, $window, DatabaseApi, Spinner) { +schemaModule.controller("ClassEditController", ['$scope', '$routeParams', '$location', 'Database', 'CommandApi', '$modal', '$q', '$route', '$window', 'DatabaseApi', 'Spinner', 'PropertyAlterApi', 'Notification', function ($scope, $routeParams, $location, Database, CommandApi, $modal, $q, $route, $window, DatabaseApi, Spinner, PropertyAlterApi, Notification) { Database.setWiki("https://github.com/orientechnologies/orientdb-studio/wiki/Class"); var clazz = $routeParams.clazz; $scope.class2show = clazz; @@ -181,6 +186,29 @@ schemaModule.controller("ClassEditController", ['$scope', '$routeParams', '$loca $scope.indexes = null; $scope.indexes = Database.listIndexesForClass(clazz); + $scope.rename = function (props) { + + + //modal + var modalScope = $scope.$new(true); + modalScope.what = 'property'; + modalScope.tmpName = props.name; + var modalPromise = $modal({template: 'views/database/changeNameModal.html', scope: modalScope, show: false}); + + modalScope.rename = function (name) { + if (name != props.name) { + PropertyAlterApi.changeProperty($routeParams.database, { clazz: $scope.class2show, property: props.name, name: "name", value: name}).then(function (data) { + var noti = S("The Property {{name}} has been renamed to {{newName}}").template({ name: props.name, newName: name}).s; + Notification.push({content: noti}); + props.name = name; + }, function err(data) { + Notification.push({content: data, error: true}); + }); + } + } + modalPromise.$promise.then(modalPromise.show); + + } $scope.getEngine = function (index) { var engine = ''; diff --git a/app/scripts/services/database-services.js b/app/scripts/services/database-services.js index 17b5441b5fd..b29f7a0de8d 100644 --- a/app/scripts/services/database-services.js +++ b/app/scripts/services/database-services.js @@ -783,3 +783,24 @@ database.factory('ClassAlterApi', function ($http, $resource, $q) { } return resource }); +database.factory('PropertyAlterApi', function ($http, $resource, $q) { + + + var resource = $resource('function/:database'); + + + resource.changeProperty = function (database, props) { + + var deferred = $q.defer(); + var text = API + 'command/' + database + '/sql/-/-1?format=rid,type,version,class,graph'; + var query = "alter property {{clazz}}.{{property}} {{name}} {{value}}" + var queryText = S(query).template(props).s; + $http.post(text, queryText).success(function (data) { + deferred.resolve(data) + }).error(function (data) { + deferred.reject(data); + }); + return deferred.promise; + } + return resource +}); diff --git a/app/styles/layout.css b/app/styles/layout.css index 0f74ff09a6f..9ae855fc6de 100644 --- a/app/styles/layout.css +++ b/app/styles/layout.css @@ -483,3 +483,14 @@ table.result-table > thead > tr > th { width: 100%; } +.cloud-db tr { + width: 100%; + display: inline-table; +} +.cloud-db tbody { + max-height: 200px; + width: 100%; + overflow: auto; + display:block; +} + diff --git a/app/views/database/changeNameModal.html b/app/views/database/changeNameModal.html new file mode 100644 index 00000000000..43fe1056576 --- /dev/null +++ b/app/views/database/changeNameModal.html @@ -0,0 +1,40 @@ + + + + diff --git a/app/views/database/changeNamePopover.html b/app/views/database/changeNamePopover.html index 8fc48c82d6b..35f0e526b88 100644 --- a/app/views/database/changeNamePopover.html +++ b/app/views/database/changeNamePopover.html @@ -10,7 +10,7 @@

- diff --git a/app/views/database/editclass.html b/app/views/database/editclass.html index 6d4028d0410..36557c876fb 100644 --- a/app/views/database/editclass.html +++ b/app/views/database/editclass.html @@ -73,7 +73,7 @@

Properties

- {{result['name']}} + {{result['name']}}