create_folder_ctrl.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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}/${result.meta.slug}`;
  19. this.$location.url(folderUrl);
  20. });
  21. }
  22. titleChanged() {
  23. this.titleTouched = true;
  24. this.validationSrv
  25. .validateNewDashboardOrFolderName(this.title)
  26. .then(() => {
  27. this.hasValidationError = false;
  28. })
  29. .catch(err => {
  30. this.hasValidationError = true;
  31. this.validationError = err.message;
  32. });
  33. }
  34. }