diff --git a/public/app/core/controllers/all.ts b/public/app/core/controllers/all.ts index 40cf056431b..ab658d75acf 100644 --- a/public/app/core/controllers/all.ts +++ b/public/app/core/controllers/all.ts @@ -2,3 +2,4 @@ import './invited_ctrl'; import './signup_ctrl'; import './reset_password_ctrl'; import './error_ctrl'; +import './json_editor_ctrl'; diff --git a/public/app/core/controllers/json_editor_ctrl.ts b/public/app/core/controllers/json_editor_ctrl.ts new file mode 100644 index 00000000000..0c33a0408e7 --- /dev/null +++ b/public/app/core/controllers/json_editor_ctrl.ts @@ -0,0 +1,20 @@ +import angular from 'angular'; +import coreModule from '../core_module'; + +export class JsonEditorCtrl { + /** @ngInject */ + constructor($scope: any) { + $scope.json = angular.toJson($scope.model.object, true); + $scope.canUpdate = $scope.model.updateHandler !== void 0 && $scope.model.canUpdate; + $scope.canCopy = $scope.model.enableCopy; + + $scope.update = () => { + const newObject = angular.fromJson($scope.json); + $scope.model.updateHandler(newObject, $scope.model.object); + }; + + $scope.getContentForClipboard = () => $scope.json; + } +} + +coreModule.controller('JsonEditorCtrl', JsonEditorCtrl);