Skip to content
Snippets Groups Projects
Commit b4acd43c authored by piotr.kupczyk@id.ethz.ch's avatar piotr.kupczyk@id.ethz.ch
Browse files

SSDM-13282 : Admin UI - improve error handling

parent 2fab1f1b
No related branches found
No related tags found
1 merge request!40SSDM-13578 : 2PT : Database and V3 Implementation - include the new AFS "free"...
...@@ -9,10 +9,26 @@ export default class BrowserController { ...@@ -9,10 +9,26 @@ export default class BrowserController {
throw 'Method not implemented' throw 'Method not implemented'
} }
async _doLoadNodePath(params) {
try {
return await this.doLoadNodePath(params)
} catch (error) {
this._onError(error)
}
}
async doLoadNodes() { async doLoadNodes() {
throw 'Method not implemented' throw 'Method not implemented'
} }
async _doLoadNodes(params) {
try {
return await this.doLoadNodes(params)
} catch (error) {
this._onError(error)
}
}
constructor() { constructor() {
autoBind(this) autoBind(this)
...@@ -20,10 +36,10 @@ export default class BrowserController { ...@@ -20,10 +36,10 @@ export default class BrowserController {
class FullTreeController extends BrowserTreeController { class FullTreeController extends BrowserTreeController {
async doLoadNodePath(params) { async doLoadNodePath(params) {
return controller.doLoadNodePath(params) return controller._doLoadNodePath(params)
} }
async doLoadNodes(params) { async doLoadNodes(params) {
return await controller.doLoadNodes({ return await controller._doLoadNodes({
...params, ...params,
filter: null filter: null
}) })
...@@ -32,11 +48,11 @@ export default class BrowserController { ...@@ -32,11 +48,11 @@ export default class BrowserController {
class FilteredTreeController extends BrowserTreeController { class FilteredTreeController extends BrowserTreeController {
async doLoadNodePath(params) { async doLoadNodePath(params) {
return controller.doLoadNodePath(params) return controller._doLoadNodePath(params)
} }
async doLoadNodes(params) { async doLoadNodes(params) {
const { filter } = controller.context.getState() const { filter } = controller.context.getState()
return await controller.doLoadNodes({ return await controller._doLoadNodes({
...params, ...params,
filter: util.trim(filter) filter: util.trim(filter)
}) })
...@@ -96,7 +112,7 @@ export default class BrowserController { ...@@ -96,7 +112,7 @@ export default class BrowserController {
let { nodeSetAsRoot } = this.context.getState() let { nodeSetAsRoot } = this.context.getState()
if (nodeSetAsRoot) { if (nodeSetAsRoot) {
const nodeSetAsRootPath = await this.doLoadNodePath({ const nodeSetAsRootPath = await this._doLoadNodePath({
object: nodeSetAsRoot.object object: nodeSetAsRoot.object
}) })
if (!_.isEmpty(nodeSetAsRootPath)) { if (!_.isEmpty(nodeSetAsRootPath)) {
...@@ -177,7 +193,7 @@ export default class BrowserController { ...@@ -177,7 +193,7 @@ export default class BrowserController {
let nodeSetAsRoot = null let nodeSetAsRoot = null
if (node) { if (node) {
const path = await this.doLoadNodePath({ const path = await this._doLoadNodePath({
object: node.object object: node.object
}) })
...@@ -365,4 +381,11 @@ export default class BrowserController { ...@@ -365,4 +381,11 @@ export default class BrowserController {
await onSettingsChange(settings) await onSettingsChange(settings)
} }
} }
_onError(error) {
const { onError } = this.context.getProps()
if (onError) {
onError(error)
}
}
} }
...@@ -31,6 +31,7 @@ class BrowserWithOpenbis extends React.PureComponent { ...@@ -31,6 +31,7 @@ class BrowserWithOpenbis extends React.PureComponent {
{...this.props} {...this.props}
loadSettings={this.loadSettings} loadSettings={this.loadSettings}
onSettingsChange={this.onSettingsChange} onSettingsChange={this.onSettingsChange}
onError={this.onError}
/> />
</ResizableWithOpenbis> </ResizableWithOpenbis>
) )
...@@ -43,6 +44,10 @@ class BrowserWithOpenbis extends React.PureComponent { ...@@ -43,6 +44,10 @@ class BrowserWithOpenbis extends React.PureComponent {
async onSettingsChange(settings) { async onSettingsChange(settings) {
await AppController.getInstance().setSetting(this.props.id, settings) await AppController.getInstance().setSetting(this.props.id, settings)
} }
async onError(error) {
await AppController.getInstance().errorChange(error)
}
} }
export default BrowserWithOpenbis export default BrowserWithOpenbis
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment