Merge lp:~stephen-stewart/snapweb/json-error-responses into lp:~snappy-dev/snapweb/trunk

Proposed by Stephen Stewart on 2015-05-06
Status: Merged
Approved by: Sergio Schvezov on 2015-05-06
Approved revision: 118
Merged at revision: 122
Proposed branch: lp:~stephen-stewart/snapweb/json-error-responses
Merge into: lp:~snappy-dev/snapweb/trunk
Diff against target: 100 lines (+14/-21)
2 files modified
www/src/js/models/snap.js (+14/-12)
www/src/js/views/snap-layout.js (+0/-9)
To merge this branch: bzr merge lp:~stephen-stewart/snapweb/json-error-responses
Reviewer Review Type Date Requested Status
Sergio Schvezov 2015-05-06 Approve on 2015-05-06
Review via email: mp+258402@code.launchpad.net

Commit Message

handle 500's, use the response to set the model state

To post a comment you must log in.
Sergio Schvezov (sergiusens) wrote :

There are some x-cross merges here but arg, let's do this...

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'snappy/converge.go'
2=== modified file 'www/src/js/models/snap.js'
3--- www/src/js/models/snap.js 2015-05-05 11:20:39 +0000
4+++ www/src/js/models/snap.js 2015-05-06 15:25:29 +0000
5@@ -2,7 +2,9 @@
6
7 var _ = require('lodash');
8 var Backbone = require('backbone');
9+var Radio = require('backbone.radio');
10 var CONF = require('../config.js');
11+var chan = Radio.channel('root');
12
13 /** Snap Model
14 *
15@@ -29,16 +31,13 @@
16
17 initialize: function() {
18
19- this.on('error', function(model, response, opts) {
20- var httpStatus = opts.xhr.status;
21- });
22-
23 this.on('add sync', function(model, response, opts) {
24 var status = model.get('status') || opts.xhr.status;
25
26- if (status === 202 ||
27- status === CONF.INSTALL_STATE.INSTALLING ||
28- status === CONF.INSTALL_STATE.UNINSTALLING) {
29+ if (
30+ status === CONF.INSTALL_STATE.INSTALLING ||
31+ status === CONF.INSTALL_STATE.UNINSTALLING
32+ ) {
33 _.delay(function(model) {
34 model.fetch();
35 }, CONF.INSTALL_POLL_WAIT, model);
36@@ -47,16 +46,19 @@
37 });
38
39 this.on('error', function(model, response, opts) {
40- var status = model.get('status') || opts.xhr.status;
41- model.set({
42- 'status': model.previous('status'),
43- 'message': response.statusText
44- });
45+ this.set(this.parse(response.responseJSON));
46+ chan.command('alert:error', model);
47 });
48
49+ this.on('change:message', this.onMessageChange);
50+
51 this.on('add change:status', this.handleStatusChange);
52 },
53
54+ onMessageChange: function(model) {
55+ console.log('message:', model.get('message'));
56+ },
57+
58 handleStatusChange: function(model) {
59 this.setInstallActionString(model);
60 this.setInstallHTMLClass(model);
61
62=== modified file 'www/src/js/views/snap-layout.js'
63--- www/src/js/views/snap-layout.js 2015-05-06 09:46:30 +0000
64+++ www/src/js/views/snap-layout.js 2015-05-06 15:25:29 +0000
65@@ -2,14 +2,12 @@
66 var _ = require('lodash');
67 var Backbone = require('backbone');
68 var Marionette = require('backbone.marionette');
69-var Radio = require('backbone.radio');
70 var SnapMenuView = require('./snap-menu.js');
71 var SnapDetailView = require('./snap-detail.js');
72 var SnapReviewsView = require('./snap-reviews.js');
73 var SnapSettingsView = require('./snap-settings.js');
74 var template = require('../templates/snap-layout.hbs');
75 var CONF = require('../config.js');
76-var chan = Radio.channel('root');
77
78 module.exports = Marionette.LayoutView.extend({
79
80@@ -21,9 +19,6 @@
81 this.model, 'change:status', this.onModelStatusChange
82 );
83 this.listenTo(
84- this.model, 'change:message', this.onModelError
85- );
86- this.listenTo(
87 this.model, 'change:progress', this.onProgressChange
88 );
89 },
90@@ -42,10 +37,6 @@
91 }
92 },
93
94- onModelError: function(model) {
95- chan.command('alert:error', model);
96- },
97-
98 onModelHTMLClassChange: function(model) {
99 var installer = this.ui.installer;
100 installer.removeClass(model.previous('installHTMLClass'))

Subscribers

People subscribed via source and target branches