aboutsummaryrefslogtreecommitdiffstats
path: root/www/js
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2012-10-29 15:05:25 +0000
committerStruan Donald <struan@exo.org.uk>2012-10-29 15:38:45 +0000
commit42b4a0dbedb593f035fc3412c78b6cd31e3e5827 (patch)
tree0215bed96953527be7264c8c12d34a33a58a2b2d /www/js
parentdb50d726de418b36a1f2ae730c5ea8c514b1f875 (diff)
inital basic POC of saving reports
Diffstat (limited to 'www/js')
-rw-r--r--www/js/mobile.js68
1 files changed, 67 insertions, 1 deletions
diff --git a/www/js/mobile.js b/www/js/mobile.js
index 463a37f..471c1a4 100644
--- a/www/js/mobile.js
+++ b/www/js/mobile.js
@@ -1,3 +1,11 @@
+Storage.prototype.setObject = function(key, value) {
+ this.setItem(key, JSON.stringify(value));
+};
+
+Storage.prototype.getObject = function(key) {
+ return JSON.parse(this.getItem(key));
+};
+
function touchmove(e) {
e.preventDefault();
}
@@ -369,7 +377,7 @@ function sign_out() {
if ( data.signed_out ) {
localStorage.signed_out = 1;
localStorage.name = null;
- $.mobile.pageChange('sign_in.html');
+ $.mobile.changePage('sign_in.html');
}
}
} );
@@ -427,12 +435,69 @@ function onDeviceReady() {
document.location = 'no_connection.html';
}
}
+
+function get_report_params () {
+ var params = {
+ service: 'iphone',
+ title: $('#form_title').val(),
+ detail: $('#form_detail').val(),
+ may_show_name: $('#form_may_show_name').attr('checked') ? 1 : 0,
+ category: $('#form_category').val(),
+ lat: $('#fixmystreet\\.latitude').val(),
+ lon: $('#fixmystreet\\.longitude').val(),
+ phone: $('#form_phone').val(),
+ pc: $('#pc').val()
+ };
+
+ if ( localStorage.username && localStorage.password && localStorage.name ) {
+ params.name = localStorage.name;
+ params.email = localStorage.username;
+ params.password_sign_in = localStorage.password;
+ } else {
+ params.name = $('#form_name').val();
+ params.email = $('#form_email').val();
+ params.password_sign_in = $('#password_sign_in').val();
+ }
+
+ return params;
+
+}
+
+function save_report() {
+ var params = get_report_params();
+
+ var r;
+ if ( localStorage.getObject( 'reports' ) ) {
+ r = localStorage.getObject( 'reports' );
+ } else {
+ r = [];
+ }
+ r.push( params );
+ $.mobile.changePage('my_reports.html');
+}
+
+function display_saved_reports() {
+ if ( localStorage.getObject( 'reports' ) ) {
+ var r = localStorage.getObject('reports');
+ var list = $('<ul></ul>');
+ for ( i = 0; i < r.length; i++ ) {
+ if ( r[i] && r[i].title ) {
+ $('<li id="' + i + '">' + r[i].title + '</li>').appendTo(list);
+ }
+ }
+ list.appendTo('#reports');
+ } else {
+ $("#reports").innerHTML('No Reports');
+ }
+}
+
$(document).bind('pageinit', function() {
$('#postcodeForm').submit(locate);
$('#mapForm').submit(postReport);
$('#signInForm').submit(sign_in);
$('#ffo').click(getPosition);
$('#forget').on('click', forget);
+ $('#save_report').on('click', save_report);
$('#mapForm :input[type=submit]').on('click', function() { submit_clicked = $(this); });
account();
});
@@ -445,3 +510,4 @@ $(document).delegate('#report-created', 'pageshow',function() {
});
$(document).delegate('#account-page', 'pageshow', display_account_page);
+$(document).delegate('#my-reports-page', 'pageshow', display_saved_reports);