updated json serilizer to return defaults

use enum text instead of number
pull/6/head
kay.one 11 years ago
parent a6aba16902
commit 40f384968a

@ -1,6 +1,7 @@
using System; using System;
using System.IO; using System.IO;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization; using Newtonsoft.Json.Serialization;
namespace NzbDrone.Common namespace NzbDrone.Common
@ -20,25 +21,17 @@ namespace NzbDrone.Common
public JsonSerializer() public JsonSerializer()
{ {
var setting = new JsonSerializerSettings _jsonNetSerializer = new Newtonsoft.Json.JsonSerializer()
{ {
DateTimeZoneHandling = DateTimeZoneHandling.Utc, DateTimeZoneHandling = DateTimeZoneHandling.Utc,
NullValueHandling = NullValueHandling.Ignore, NullValueHandling = NullValueHandling.Include,
Formatting = Formatting.Indented, Formatting = Formatting.Indented,
DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate DefaultValueHandling = DefaultValueHandling.Include,
};
_jsonNetSerializer = new Newtonsoft.Json.JsonSerializer()
{
DateTimeZoneHandling = setting.DateTimeZoneHandling,
NullValueHandling = setting.NullValueHandling,
Formatting = setting.Formatting,
DefaultValueHandling = setting.DefaultValueHandling,
ContractResolver = new CamelCasePropertyNamesContractResolver() ContractResolver = new CamelCasePropertyNamesContractResolver()
}; };
}
_jsonNetSerializer.Converters.Add(new StringEnumConverter { CamelCaseText = true });
}
public T Deserialize<T>(string json) where T : class, new() public T Deserialize<T>(string json) where T : class, new()
{ {

@ -17,9 +17,9 @@ namespace NzbDrone.Core.Datastore.Events
public enum RepositoryAction public enum RepositoryAction
{ {
Created, Created = 1,
Updated, Updated = 2,
Deleted Deleted = 3
} }
} }

@ -11,12 +11,22 @@ define(['app', 'AddSeries/RootFolders/RootFolderCollection', 'AddSeries/New/Sear
regions: { regions: {
searchResult: '#search-result' searchResult: '#search-result'
}, },
collection: new NzbDrone.Series.SeriesCollection(),
initialize: function () { initialize: function () {
this.collection = new NzbDrone.Series.SeriesCollection();
this.collection.parse = function (response) {
_.each(response, function (model) {
model.id = null;
});
return response;
};
NzbDrone.AddSeries.New.AddNewSeriesContext = this; NzbDrone.AddSeries.New.AddNewSeriesContext = this;
NzbDrone.vent.on(NzbDrone.Events.SeriesAdded, function (options){ NzbDrone.vent.on(NzbDrone.Events.SeriesAdded, function (options) {
if (!options.existing) { if (!options.existing) {
NzbDrone.AddSeries.New.AddNewSeriesContext.ui.seriesSearch.val(''); NzbDrone.AddSeries.New.AddNewSeriesContext.ui.seriesSearch.val('');

@ -1,6 +1,6 @@
"use strict"; "use strict";
Backbone.Collection.prototype.BindSignalR = function (options) { _.extend(Backbone.Collection.prototype, {BindSignalR: function (options) {
if (!options || !options.url) { if (!options || !options.url) {
console.assert(this.url, 'url must be provided or collection must have url'); console.assert(this.url, 'url must be provided or collection must have url');
@ -34,14 +34,15 @@ Backbone.Collection.prototype.BindSignalR = function (options) {
console.debug('{0} [{1}]'.format(options.url, _getStatus(change.newState))); console.debug('{0} [{1}]'.format(options.url, _getStatus(change.newState)));
}); });
connection.received(function () { connection.received(function (model) {
console.debug(model);
self.fetch(); self.fetch();
}); });
connection.start({ transport: ['longPolling'] }); connection.start({ transport: ['longPolling'] });
return this; return this;
}; }});

@ -33,11 +33,11 @@
{{#if bestDateString}} {{#if bestDateString}}
<span class="label">{{bestDateString}}</span> <span class="label">{{bestDateString}}</span>
{{else}} {{else}}
<span class="label label-inverse">{{statusText}}</span> <span class="label label-inverse">{{status}}</span>
{{/if}} {{/if}}
<span class="label label-info">Season {{seasonCount}}</span> <span class="label label-info">Season {{seasonCount}}</span>
{{else}} {{else}}
<span class="label label-important">{{statusText}}</span> <span class="label label-important">{{status}}</span>
<span class="label label-info">{{seasonCount}} Seasons</span> <span class="label label-info">{{seasonCount}} Seasons</span>
{{/if}} {{/if}}
</div> </div>

@ -26,7 +26,7 @@
{{#if bestDateString}} {{#if bestDateString}}
<span class="label label-inverse air-date" title="{{shortDate}}">{{bestDateString}}</span> <span class="label label-inverse air-date" title="{{shortDate}}">{{bestDateString}}</span>
{{else}} {{else}}
<span class="label label-inverse">{{statusText}}</span> <span class="label label-inverse">{{status}}</span>
{{/if}} {{/if}}
<span class="label label-info">Season {{seasonCount}}</span> <span class="label label-info">Season {{seasonCount}}</span>
{{else}} {{else}}

@ -23,7 +23,7 @@ define(['app', 'Quality/QualityProfileCollection', 'AddSeries/RootFolders/RootFo
}, },
poster : function () { poster : function () {
var poster = _.find(this.get('images'), function (image) { var poster = _.find(this.get('images'), function (image) {
return image.coverType === 1; return image.coverType === 'poster';
}); });
if (poster) { if (poster) {
@ -47,14 +47,7 @@ define(['app', 'Quality/QualityProfileCollection', 'AddSeries/RootFolders/RootFo
return "http://trakt.tv/show/" + this.get('titleSlug'); return "http://trakt.tv/show/" + this.get('titleSlug');
}, },
isContinuing : function () { isContinuing : function () {
return this.get('status') === 0; return this.get('status') === 'continuing';
},
statusText : function () {
if (this.get('status') === 0) {
return 'Continuing';
}
return 'Ended';
}, },
shortDate : function () { shortDate : function () {
var date = this.get('nextAiring'); var date = this.get('nextAiring');

Loading…
Cancel
Save