Skip to content

Commit

Permalink
Stopping card closing when autosaving
Browse files Browse the repository at this point in the history
Closes #25
  • Loading branch information
domholmes committed Jan 18, 2014
1 parent cc52e99 commit ef14586
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 27 deletions.
8 changes: 1 addition & 7 deletions Web/Squirrel/Scripts/dataaccess/reminderRepository.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,6 @@
return reminder.entityAspect.entityState.isAdded();
}

function hasErrors(reminder) {

return reminder.entityAspect.getValidationErrors().length > 0;
}

function saveReminder(reminder, successCallback, failCallback) {

reminder.propertiesWithErrors.removeAll();
Expand Down Expand Up @@ -93,8 +88,7 @@
deleteReminder: deleteReminder,
revertReminder: revertReminder,
saveReminder: saveReminder,
isNew: isNew,
hasErrors: hasErrors
isNew: isNew
}

} (window.sr))
9 changes: 7 additions & 2 deletions Web/Squirrel/Scripts/models/reminder.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ sr.Reminder = function () {
}
}

rem.isEditing = ko.observable(false);
rem.inEditMode = ko.observable(false);

rem.isSaving = ko.observable(false);

Expand Down Expand Up @@ -178,11 +178,16 @@ sr.Reminder = function () {
}
});

rem.isEditing.subscribe(function (newValue) {
rem.inEditMode.subscribe(function (newValue) {
if (newValue && rem.showAddressField()) {
publishLocation();
}
});

rem.errors.subscribe(function (newValue) {
if (newValue.length > 0) {
rem.inEditMode(true);
}
});
};
};
34 changes: 20 additions & 14 deletions Web/Squirrel/Scripts/viewmodels/indexViewModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ sr.AppViewModel = function () {

var reminder = ko.utils.arrayFirst(vm.reminders(), function (reminder) {

return reminder.isEditing() === true;
return reminder.inEditMode() === true;
});

return reminder !== null;
Expand All @@ -26,7 +26,7 @@ sr.AppViewModel = function () {
if (vm.canAddNewReminder()) {

var newReminder = sr.repository.createReminder();
newReminder.isEditing(true);
newReminder.inEditMode(true);
newReminder.postCreationSetup();

vm.reminders.unshift(newReminder);
Expand All @@ -36,7 +36,7 @@ sr.AppViewModel = function () {
vm.beginEditReminder = function (reminder, event) {

event.stopPropagation();
reminder.isEditing(true);
reminder.inEditMode(true);
};

vm.cancelCurrentAction = function (reminder) {
Expand All @@ -55,7 +55,7 @@ sr.AppViewModel = function () {
else {
sr.repository.revertReminder(reminder);
reminder.isSaving(false);
reminder.isEditing(false);
reminder.inEditMode(false);
}
}
};
Expand All @@ -76,7 +76,7 @@ sr.AppViewModel = function () {
reminder,
function () {// success

reminder.isEditing(false);
reminder.inEditMode(false);
vm.reminders.remove(reminder);
$.connection.notificationHub.server.pushUpdate();
},
Expand All @@ -97,8 +97,17 @@ sr.AppViewModel = function () {
reminder.isDeleting(false);
});
};

vm.autoSaveReminder = function (reminder, property, value) {
property(value);
vm.saveReminder(reminder, false);
};

vm.saveReminder = function (reminder) {
vm.manualSaveReminder = function (reminder) {
vm.saveReminder(reminder, true);
};

vm.saveReminder = function (reminder, leaveEditMode) {

reminder.isSaving(true);

Expand All @@ -112,13 +121,15 @@ sr.AppViewModel = function () {
function () {// success

reminder.isSaving(false);
reminder.isEditing(false);

if (leaveEditMode) {
reminder.inEditMode(false);
}

$.connection.notificationHub.server.pushUpdate();
},
function (response) {// fail

reminder.isEditing(true);

if (response.status) {

switch (response.status) {
Expand All @@ -145,11 +156,6 @@ sr.AppViewModel = function () {
}
};

vm.autoSaveReminder = function (reminder, property, value) {
property(value);
vm.saveReminder(reminder);
};

vm.loadReminders = function () {

vm.isLoadingReminders(true);
Expand Down
8 changes: 4 additions & 4 deletions Web/Squirrel/Views/Home/Index.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@
<div class="card-wrap" data-bind="foreach: $data">
<div data-bind="attr: { 'class': $parent.colClass }">
<article data-bind="
animateToState: isEditing() ? 'edit' : 'display',
animateToState: inEditMode() ? 'edit' : 'display',
initialState: 'display',
attr: {
'class': 'card margin-bottom'
},
css: {
disabled: (!enabled() && !isEditing()),
editing: isEditing
disabled: (!enabled() && !inEditMode()),
editing: inEditMode
}">
<div class="display">
<div class="body">
Expand Down Expand Up @@ -113,7 +113,7 @@
<footer>
<button class="link-emulate" data-bind="
text: 'Save',
click: $root.saveReminder,
click: $root.manualSaveReminder,
css: {
busy: isSaving,
disabled: isDeleting
Expand Down

0 comments on commit ef14586

Please sign in to comment.