|
@@ -10,7 +10,6 @@ import appEvents from 'app/core/app_events';
|
|
|
@observer
|
|
@observer
|
|
|
export class FolderSettings extends React.Component<IContainerProps, any> {
|
|
export class FolderSettings extends React.Component<IContainerProps, any> {
|
|
|
formSnapshot: any;
|
|
formSnapshot: any;
|
|
|
- dashboard: any;
|
|
|
|
|
|
|
|
|
|
constructor(props) {
|
|
constructor(props) {
|
|
|
super(props);
|
|
super(props);
|
|
@@ -22,9 +21,7 @@ export class FolderSettings extends React.Component<IContainerProps, any> {
|
|
|
|
|
|
|
|
return folder.load(view.routeParams.get('uid') as string).then(res => {
|
|
return folder.load(view.routeParams.get('uid') as string).then(res => {
|
|
|
this.formSnapshot = getSnapshot(folder);
|
|
this.formSnapshot = getSnapshot(folder);
|
|
|
- this.dashboard = res.dashboard;
|
|
|
|
|
-
|
|
|
|
|
- view.updatePathAndQuery(`${res.meta.url}/settings`, {}, {});
|
|
|
|
|
|
|
+ view.updatePathAndQuery(`${res.url}/settings`, {}, {});
|
|
|
|
|
|
|
|
return nav.initFolderNav(toJS(folder.folder), 'manage-folder-settings');
|
|
return nav.initFolderNav(toJS(folder.folder), 'manage-folder-settings');
|
|
|
});
|
|
});
|
|
@@ -51,7 +48,7 @@ export class FolderSettings extends React.Component<IContainerProps, any> {
|
|
|
const { nav, folder, view } = this.props;
|
|
const { nav, folder, view } = this.props;
|
|
|
|
|
|
|
|
folder
|
|
folder
|
|
|
- .saveFolder(this.dashboard, { overwrite: false })
|
|
|
|
|
|
|
+ .saveFolder({ overwrite: false })
|
|
|
.then(newUrl => {
|
|
.then(newUrl => {
|
|
|
view.updatePathAndQuery(newUrl, {}, {});
|
|
view.updatePathAndQuery(newUrl, {}, {});
|
|
|
|
|
|
|
@@ -61,7 +58,7 @@ export class FolderSettings extends React.Component<IContainerProps, any> {
|
|
|
.then(() => {
|
|
.then(() => {
|
|
|
return nav.initFolderNav(toJS(folder.folder), 'manage-folder-settings');
|
|
return nav.initFolderNav(toJS(folder.folder), 'manage-folder-settings');
|
|
|
})
|
|
})
|
|
|
- .catch(this.handleSaveFolderError);
|
|
|
|
|
|
|
+ .catch(this.handleSaveFolderError.bind(this));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
delete(evt) {
|
|
delete(evt) {
|
|
@@ -79,7 +76,7 @@ export class FolderSettings extends React.Component<IContainerProps, any> {
|
|
|
icon: 'fa-trash',
|
|
icon: 'fa-trash',
|
|
|
yesText: 'Delete',
|
|
yesText: 'Delete',
|
|
|
onConfirm: () => {
|
|
onConfirm: () => {
|
|
|
- return this.props.folder.deleteFolder().then(() => {
|
|
|
|
|
|
|
+ return folder.deleteFolder().then(() => {
|
|
|
appEvents.emit('alert-success', ['Folder Deleted', `${title} has been deleted`]);
|
|
appEvents.emit('alert-success', ['Folder Deleted', `${title} has been deleted`]);
|
|
|
view.updatePathAndQuery('dashboards', '', '');
|
|
view.updatePathAndQuery('dashboards', '', '');
|
|
|
});
|
|
});
|
|
@@ -91,6 +88,8 @@ export class FolderSettings extends React.Component<IContainerProps, any> {
|
|
|
if (err.data && err.data.status === 'version-mismatch') {
|
|
if (err.data && err.data.status === 'version-mismatch') {
|
|
|
err.isHandled = true;
|
|
err.isHandled = true;
|
|
|
|
|
|
|
|
|
|
+ const { nav, folder, view } = this.props;
|
|
|
|
|
+
|
|
|
appEvents.emit('confirm-modal', {
|
|
appEvents.emit('confirm-modal', {
|
|
|
title: 'Conflict',
|
|
title: 'Conflict',
|
|
|
text: 'Someone else has updated this folder.',
|
|
text: 'Someone else has updated this folder.',
|
|
@@ -98,16 +97,20 @@ export class FolderSettings extends React.Component<IContainerProps, any> {
|
|
|
yesText: 'Save & Overwrite',
|
|
yesText: 'Save & Overwrite',
|
|
|
icon: 'fa-warning',
|
|
icon: 'fa-warning',
|
|
|
onConfirm: () => {
|
|
onConfirm: () => {
|
|
|
- this.props.folder.saveFolder(this.dashboard, { overwrite: true });
|
|
|
|
|
|
|
+ folder
|
|
|
|
|
+ .saveFolder({ overwrite: true })
|
|
|
|
|
+ .then(newUrl => {
|
|
|
|
|
+ view.updatePathAndQuery(newUrl, {}, {});
|
|
|
|
|
+
|
|
|
|
|
+ appEvents.emit('dashboard-saved');
|
|
|
|
|
+ appEvents.emit('alert-success', ['Folder saved']);
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ return nav.initFolderNav(toJS(folder.folder), 'manage-folder-settings');
|
|
|
|
|
+ });
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- if (err.data && err.data.status === 'name-exists') {
|
|
|
|
|
- err.isHandled = true;
|
|
|
|
|
-
|
|
|
|
|
- appEvents.emit('alert-error', ['A folder or dashboard with this name exists already.']);
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
render() {
|
|
render() {
|