diff --git a/app/controllers/api/SnapshotController.java b/app/controllers/api/SnapshotController.java
index 83a91a10..43a364f9 100644
--- a/app/controllers/api/SnapshotController.java
+++ b/app/controllers/api/SnapshotController.java
@@ -74,7 +74,7 @@ public static void createSnapshot () {
try {
// create a dummy snapshot from which to get values
Snapshot original = Base.mapper.readValue(params.get("body"), Snapshot.class);
- Snapshot s = VersionedDataStore.takeSnapshot(original.agencyId, original.name);
+ Snapshot s = VersionedDataStore.takeSnapshot(original.agencyId, original.name, original.comment);
s.validFrom = original.validFrom;
s.validTo = original.validTo;
gtx = VersionedDataStore.getGlobalTx();
diff --git a/app/datastore/VersionedDataStore.java b/app/datastore/VersionedDataStore.java
index ffad8ed8..cf0459db 100644
--- a/app/datastore/VersionedDataStore.java
+++ b/app/datastore/VersionedDataStore.java
@@ -78,7 +78,7 @@ static DB getRawAgencyTx (String agencyId) {
}
/** Take a snapshot of an agency database. The snapshot will be saved in the global database. */
- public static Snapshot takeSnapshot (String agencyId, String name) {
+ public static Snapshot takeSnapshot (String agencyId, String name, String comment) {
AgencyTx tx = getAgencyTx(agencyId);
GlobalTx gtx = getGlobalTx();
int version = -1;
@@ -97,6 +97,7 @@ public static Snapshot takeSnapshot (String agencyId, String name) {
ret.snapshotTime = System.currentTimeMillis();
ret.name = name;
+ ret.comment = comment;
ret.current = true;
snapshot = getSnapshotDb(agencyId, version, false);
diff --git a/app/models/Snapshot.java b/app/models/Snapshot.java
index 050f2768..6453d41f 100644
--- a/app/models/Snapshot.java
+++ b/app/models/Snapshot.java
@@ -24,7 +24,10 @@ public class Snapshot implements Cloneable, Serializable {
/** The name of this snapshot */
public String name;
-
+
+ /** The comment of this snapshot */
+ public String comment;
+
/** ID: agency ID, version */
@JsonSerialize(using=JacksonSerializers.Tuple2IntSerializer.class)
@JsonDeserialize(using=JacksonSerializers.Tuple2IntDeserializer.class)
diff --git a/app/views/Application/snapshots.html b/app/views/Application/snapshots.html
index 281571cc..dfd3ab79 100644
--- a/app/views/Application/snapshots.html
+++ b/app/views/Application/snapshots.html
@@ -29,12 +29,13 @@
&{'snapshot.for'} {{ agencyName }}
- &{'snapshot.name'} | &{'snapshot.version'} | &{'snapshot.valid-from'} | &{'snapshot.valid-to'} | &{'snapshot.date'} | &{'snapshot.current'} | &{'snapshot.restore'} |
+ &{'snapshot.name'} | &{'snapshot.comment'} | &{'snapshot.version'} | &{'snapshot.valid-from'} | &{'snapshot.valid-to'} | &{'snapshot.date'} | &{'snapshot.current'} | &{'snapshot.restore'} |
{{#snapshots}}
{{name}} |
+ {{comment}} |
{{version}} |
{{validFrom}} |
{{validTo}} |
@@ -43,6 +44,7 @@ &{'snapshot.for'} {{ agencyName }}
|
&{'snapshot.download'} |
+
{{/snapshots}}
@@ -64,6 +66,9 @@ &{'snapshot.take-snapshot'}
+
+
+
diff --git a/conf/messages.en b/conf/messages.en
index 05e9f1f2..e39715de 100755
--- a/conf/messages.en
+++ b/conf/messages.en
@@ -157,6 +157,7 @@ snapshot.for=Snapshots for
snapshot.new=Take snapshot
snapshot.restore=Restore snapshot
snapshot.name=Name
+snapshot.comment=Comment
snapshot.date=Snapshot date
snapshot.snapshots=Snapshots
snapshot.take-before-restore=You must create a snapshot of the current state of the database before you can restore a previous version.
diff --git a/public/javascripts/models.js b/public/javascripts/models.js
index ea9dde69..c7c27664 100755
--- a/public/javascripts/models.js
+++ b/public/javascripts/models.js
@@ -600,6 +600,7 @@ G.Trip = Backbone.Model.extend({
G.Snapshot = Backbone.Model.extend({
defaults: {
name: null,
+ comment: null,
id: null,
agencyId: null,
snapshotTime: null,
diff --git a/public/javascripts/pages/snapshots.js b/public/javascripts/pages/snapshots.js
index 8d39023e..dbc6fe13 100644
--- a/public/javascripts/pages/snapshots.js
+++ b/public/javascripts/pages/snapshots.js
@@ -94,6 +94,7 @@ var GtfsEditor = GtfsEditor || {};
takeSnapshot: function () {
var instance = this;
var name = this.$('#snapshot-name').val();
+ var comment = this.$('#snapshot-comment').val();
var dfrom = this.toIso(this.$('#valid-from').data('datepicker').getDate());
var dto = this.toIso(this.$('#valid-to').data('datepicker').getDate());
@@ -101,17 +102,18 @@ var GtfsEditor = GtfsEditor || {};
this.collection.create({
name: name,
+ comment: comment,
validFrom: dfrom,
validTo: dto,
agencyId: G.session.agencyId
}, {
wait: true,
-
-
- success: function () {
- this.$('#modal-container > .modal').modal('hide').remove();
- instance.collection.fetch({reset: true, data: {agencyId: G.session.agencyId}});
- }});
+ success: function () {
+ this.$('#modal-container > .modal').modal('hide').remove();
+ instance.collection.fetch({reset: true, data: {agencyId: G.session.agencyId}});
+ }
+ }
+ );
},
/** convert a local date to an iso date */
@@ -134,8 +136,9 @@ var GtfsEditor = GtfsEditor || {};
takeSnapshotAndRestore: function (e) {
var instance = this;
var name = this.$('#snapshot-name').val();
+ var comment = this.$('#snapshot-comment').val();
this.$('#modal-container button.snapshot').prop('disabled', true).text('Saving . . .');
- this.collection.create({name: name, agencyId: G.session.agencyId},
+ this.collection.create({name: name, comment: comment, agencyId: G.session.agencyId},
{wait: true, success: function () {
var id = $(e.target).attr('data-snapshot');
instance.$('.restore-snapshot').prop('disabled', true);