create_folder_ctrl.ts 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import appEvents from "app/core/app_events";
  2. export class CreateFolderCtrl {
  3. title = "";
  4. navModel: any;
  5. titleTouched = false;
  6. hasValidationError: boolean;
  7. validationError: any;
  8. /** @ngInject **/
  9. constructor(private backendSrv, private $location, private validationSrv, navModelSrv) {
  10. this.navModel = navModelSrv.getNav('dashboards', 'manage-dashboards', 0);
  11. }
  12. create() {
  13. if (this.hasValidationError) {
  14. return;
  15. }
  16. return this.backendSrv.createDashboardFolder(this.title).then(result => {
  17. appEvents.emit('alert-success', ['Folder Created', 'OK']);
  18. var folderUrl = `/dashboards/folder/${result.dashboard.id}/${
  19. result.meta.slug
  20. }`;
  21. this.$location.url(folderUrl);
  22. });
  23. }
  24. titleChanged() {
  25. this.titleTouched = true;
  26. this.validationSrv.validateNewDashboardOrFolderName(this.title)
  27. .then(() => {
  28. this.hasValidationError = false;
  29. })
  30. .catch(err => {
  31. this.hasValidationError = true;
  32. this.validationError = err.message;
  33. });
  34. }
  35. }