Skip to content

Commit 7ddb173

Browse files
committed
Add logic to assume Records will be successfully created, greatly increasing responsiveness when creating new records
Fix error usage and display Remove unused manage_areas and manage_domains templates
1 parent 0876d99 commit 7ddb173

File tree

7 files changed

+36
-100
lines changed

7 files changed

+36
-100
lines changed

apps/trolls_goals/public/js/areas.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ areasModule.factory('AreaFactory', function($resource, $rootScope) {
55
$rootScope.newArea = function() {
66
$rootScope.new_area = new Area();
77
$rootScope.new_area.prompt_for_details = false;
8+
$rootScope.new_area.hidden = false;
89
$rootScope.new_area.start_day = $rootScope.today;
910
};
1011

@@ -30,7 +31,7 @@ areasModule.factory('AreaFactory', function($resource, $rootScope) {
3031
$rootScope.calculateDomainAreaMap();
3132
}, function(response) {
3233
console.error(response.data.error);
33-
$rootScope.area_error = response.data.error;
34+
$rootScope.error = response.data.error;
3435
});
3536
}
3637
else {
@@ -41,7 +42,7 @@ areasModule.factory('AreaFactory', function($resource, $rootScope) {
4142
$rootScope.calculateDomainAreaMap();
4243
}, function(response) {
4344
console.error(response.data.error);
44-
$rootScope.area_error = response.data.error;
45+
$rootScope.error = response.data.error;
4546
});
4647
}
4748
$rootScope.newArea();
@@ -53,7 +54,7 @@ areasModule.factory('AreaFactory', function($resource, $rootScope) {
5354
$rootScope.handleDeletedArea(area, true);
5455
}, function(response) {
5556
console.error(response.data.error);
56-
$rootScope.area_error = response.data.error;
57+
$rootScope.error = response.data.error;
5758
});
5859
};
5960

@@ -77,7 +78,7 @@ areasModule.factory('AreaFactory', function($resource, $rootScope) {
7778
if (_.isFunction(cb)) { cb(); }
7879
}, function(response) {
7980
console.error(response.data.error);
80-
$rootScope.area_error = response.data.error;
81+
$rootScope.error = response.data.error;
8182
$rootScope.areas = [];
8283
if (_.isFunction(cb)) { cb(); }
8384
});

apps/trolls_goals/public/js/domains.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ domainsModule.factory('DomainFactory', function($resource, $rootScope) {
1212
// Define Domain CRUD functions on $rootScope
1313
$rootScope.newDomain = function() {
1414
$rootScope.new_domain = new Domain();
15+
$rootScope.new_domain.hidden = false;
1516
};
1617

1718
$rootScope.getDomain = function(domain_id) {
@@ -40,7 +41,7 @@ domainsModule.factory('DomainFactory', function($resource, $rootScope) {
4041
$rootScope.calculateDomainAreaMap();
4142
}, function(response) {
4243
console.error(response.data.error);
43-
$rootScope.domain_error = response.data.error;
44+
$rootScope.error = response.data.error;
4445
});
4546
}
4647
else {
@@ -50,7 +51,7 @@ domainsModule.factory('DomainFactory', function($resource, $rootScope) {
5051
$rootScope.calculateDomainAreaMap();
5152
}, function(response) {
5253
console.error(response.data.error);
53-
$rootScope.domain_error = response.data.error;
54+
$rootScope.error = response.data.error;
5455
});
5556
}
5657
$rootScope.newDomain();
@@ -68,7 +69,7 @@ domainsModule.factory('DomainFactory', function($resource, $rootScope) {
6869
$rootScope.calculateDomainAreaMap();
6970
}, function(response) {
7071
console.error(response.data.error);
71-
$rootScope.domain_error = response.data.error;
72+
$rootScope.error = response.data.error;
7273
});
7374
};
7475

@@ -84,7 +85,7 @@ domainsModule.factory('DomainFactory', function($resource, $rootScope) {
8485
if (_.isFunction(cb)) { cb(); }
8586
}, function(response) {
8687
console.error(response.data.error);
87-
$rootScope.domain_error = response.data.error;
88+
$rootScope.error = response.data.error;
8889
$rootScope.domains = [];
8990
if (_.isFunction(cb)) { cb(); }
9091
});

apps/trolls_goals/public/js/records.js

+15-8
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,23 @@ var recordsModule = angular.module('records', []);
33
recordsModule.factory('RecordFactory', function($resource, $rootScope) {
44
$rootScope.records = $rootScope.records || {};
55
$rootScope.createRecord = $rootScope.createRecord || function(area_id, day) {
6-
var record = { area: area_id, day: day };
6+
var record = new Record();
7+
record.area = area_id;
8+
record.day = day;
9+
record.just_created = true;
10+
var records = $rootScope.records[area_id][day] || [];
11+
records.push(record);
12+
$rootScope.records[area_id][day] = records;
713
Record.save(record, function(r) {
814
console.log('successfully added record!', r);
9-
r.just_created = true;
10-
var records = $rootScope.records[record.area][day] || [];
11-
records.push(r);
12-
$rootScope.records[record.area][day] = records;
15+
record._id = r._id;
1316
}, function(response) {
1417
console.error(response.data.error);
15-
scope.domain_error = response.data.error;
18+
$rootScope.error = response.data.error;
19+
// remove not-actually-created record
20+
var records = $rootScope.records[area_id][day];
21+
records = _.without(records, record);
22+
$rootScope.records[area_id][day] = records;
1623
});
1724
};
1825

@@ -35,7 +42,7 @@ recordsModule.factory('RecordFactory', function($resource, $rootScope) {
3542
console.log('successfully edited record!', r);
3643
}, function(response) {
3744
console.error(response.data.error);
38-
scope.domain_error = response.data.error;
45+
$rootScope.error = response.data.error;
3946
});
4047
};
4148

@@ -47,7 +54,7 @@ recordsModule.factory('RecordFactory', function($resource, $rootScope) {
4754
});
4855
}, function(response) {
4956
console.error(response.data.error);
50-
scope.domain_error = response.data.error;
57+
$rootScope.error = response.data.error;
5158
});
5259
};
5360

apps/trolls_goals/public/js/records_table.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ recordsTableModule.directive('recordsTable', function($rootScope, RecordFactory)
3131
});
3232
}, function(response) {
3333
console.error(response.data.error);
34-
scope.domain_error = response.data.error;
34+
$rootScope.error = response.data.error;
3535
});
3636
});
3737
}

apps/trolls_goals/public/tmpl/manage_areas.html

-52
This file was deleted.

apps/trolls_goals/public/tmpl/manage_domains.html

-31
This file was deleted.

apps/trolls_goals/views/index.ejs

+10
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,16 @@
3131
</div>
3232
</div>
3333
</div>
34+
<div id="error-wrapper" class="hidden" ng-class="{ 'has-error': error, 'hidden': ! error }">
35+
<div class="help-block" ng-if="error">
36+
An error occurred: {{error}}
37+
<br />
38+
Sorry! Please try again, or refresh the page.
39+
<span class="small-grey-icon glyphicon glyphicon-remove"
40+
ng-click="$root.error = null">
41+
</span>
42+
</div>
43+
</div>
3444
</div>
3545
<% include ../../../views/foot_start %>
3646
<script src="/js/lib/lodash.js"></script>

0 commit comments

Comments
 (0)