Added custom sorting to table sorter

pull/23/head
Mark McDowall 12 years ago
parent 6f359cb4db
commit c55099ce5a

@ -213,6 +213,7 @@
<Content Include="_backboneApp\JsLibraries\require.js" /> <Content Include="_backboneApp\JsLibraries\require.js" />
<Content Include="_backboneApp\Mixins\backbone.ajax.js" /> <Content Include="_backboneApp\Mixins\backbone.ajax.js" />
<Content Include="_backboneApp\Mixins\backbone.marionette.templates.js" /> <Content Include="_backboneApp\Mixins\backbone.marionette.templates.js" />
<Content Include="_backboneApp\Mixins\tablesorter.extensions.js" />
<Content Include="_backboneApp\Routing.js" /> <Content Include="_backboneApp\Routing.js" />
<Content Include="_backboneApp\JsLibraries\backbone.modelbinder.js" /> <Content Include="_backboneApp\JsLibraries\backbone.modelbinder.js" />
<Content Include="_backboneApp\AddSeries\New\AddNewSeriesTemplate.html" /> <Content Include="_backboneApp\AddSeries\New\AddNewSeriesTemplate.html" />

@ -75,6 +75,7 @@
<script src="/_backboneApp/JsLibraries/backbone.mutators.js"></script> <script src="/_backboneApp/JsLibraries/backbone.mutators.js"></script>
<script src="/_backboneApp/JsLibraries/backbone.marionette.js"></script> <script src="/_backboneApp/JsLibraries/backbone.marionette.js"></script>
<script src="/_backboneApp/JsLibraries/jquery.tablesorter.js"></script> <script src="/_backboneApp/JsLibraries/jquery.tablesorter.js"></script>
@* @*
<script src="/_backboneApp/JsLibraries/jquery.tablesorter.bootstrap.js"></script> <script src="/_backboneApp/JsLibraries/jquery.tablesorter.bootstrap.js"></script>
*@ *@
@ -82,6 +83,7 @@
<script src="/_backboneApp/Mixins/backbone.marionette.templates.js"></script> <script src="/_backboneApp/Mixins/backbone.marionette.templates.js"></script>
<script src="/_backboneApp/Mixins/backbone.ajax.js"></script> <script src="/_backboneApp/Mixins/backbone.ajax.js"></script>
<script src="/_backboneApp/Mixins/tablesorter.extensions.js"></script>
<script data-main="/_backboneApp/app" src="/_backboneApp/JsLibraries/require.js"></script> <script data-main="/_backboneApp/app" src="/_backboneApp/JsLibraries/require.js"></script>
<script src="/_backboneApp/Routing.js"></script> <script src="/_backboneApp/Routing.js"></script>

@ -0,0 +1,49 @@
$.tablesorter.addParser({
// set a unique id
id: 'title',
is: function (s) {
// return false so this parser is not auto detected
return false;
},
format: function (s) {
// format your data for normalization
return s.match(/title="(.*?)"/)[1].toLowerCase();
},
// set type, either numeric or text
type: 'text'
});
$.tablesorter.addParser({
// set a unique id
id: 'date',
is: function (s) {
// return false so this parser is not auto detected
return false;
},
format: function (s) {
// format your data for normalization
var match = s.match(/data-date="(.*?)"/)[1];
if (match === '')
return Date.create().addYears(100).format(Date.ISO8601_DATETIME);
return match;
},
// set type, either numeric or text
type: 'text'
});
$.tablesorter.addParser({
// set a unique id
id: 'innerHtml',
is: function (s) {
// return false so this parser is not auto detected
return false;
},
format: function (s) {
// format your data for normalization
return $(s).get(0).innerHTML;
},
// set type, either numeric or text
type: 'text'
});

@ -31,14 +31,44 @@ define(['app', 'Quality/QualityProfileCollection', 'Series/SeriesItemView'], fun
if(!this.tableSorter && this.collection.length > 0) if(!this.tableSorter && this.collection.length > 0)
{ {
this.tableSorter = this.ui.table.tablesorter({
textExtraction: function (node) {
return node.innerHTML;
},
sortList: [[1,0]],
headers: {
0: {
sorter: 'title'
},
1: {
sorter: 'innerHtml'
},
5: {
sorter: 'date'
},
6: {
sorter: false
},
7: {
sorter: false
}
}
});
this.tableSorter = this.ui.table.tablesorter(); this.ui.table.find('th.header').each(function(){
$(this).append('<i class="icon-sort pull-right">');
});
this.ui.table.bind("sortEnd",function() { this.ui.table.bind("sortEnd", function() {
$(this).find('th.header i').each(function(){ $(this).find('th.header i').each(function(){
$(this).remove(); $(this).remove();
}); });
$(this).find('th.header').each(function () {
if (!$(this).hasClass('headerSortDown') && !$(this).hasClass('headerSortUp'))
$(this).append('<i class="icon-sort pull-right">');
});
$(this).find('th.headerSortDown').each(function(){ $(this).find('th.headerSortDown').each(function(){
$(this).append('<i class="icon-sort-down pull-right">'); $(this).append('<i class="icon-sort-down pull-right">');
}); });
@ -47,7 +77,7 @@ define(['app', 'Quality/QualityProfileCollection', 'Series/SeriesItemView'], fun
$(this).append('<i class="icon-sort-up pull-right">'); $(this).append('<i class="icon-sort-up pull-right">');
}); });
}); });
} }
else else
{ {
this.ui.table.trigger('update'); this.ui.table.trigger('update');

@ -42,7 +42,7 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<UseVSHostingProcess>true</UseVSHostingProcess> <UseVSHostingProcess>true</UseVSHostingProcess>
<CodeAnalysisRuleSet>BasicCorrectnessRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisRuleSet>BasicCorrectnessRules.ruleset</CodeAnalysisRuleSet>
<IntermediateOutputPath>C:\Users\Mark.McDowall\AppData\Local\Temp\vs83FB.tmp\x86\Debug\</IntermediateOutputPath> <IntermediateOutputPath>C:\Users\Mark\AppData\Local\Temp\vs1A55.tmp\x86\Debug\</IntermediateOutputPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget> <PlatformTarget>x86</PlatformTarget>
@ -52,7 +52,7 @@
<DefineConstants>TRACE</DefineConstants> <DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<IntermediateOutputPath>C:\Users\Mark.McDowall\AppData\Local\Temp\vs83FB.tmp\x86\Release\</IntermediateOutputPath> <IntermediateOutputPath>C:\Users\Mark\AppData\Local\Temp\vs1A55.tmp\x86\Release\</IntermediateOutputPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<ApplicationIcon>NzbDrone.ico</ApplicationIcon> <ApplicationIcon>NzbDrone.ico</ApplicationIcon>
@ -71,6 +71,7 @@
<PlatformTarget>x86</PlatformTarget> <PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<IntermediateOutputPath>C:\Users\Mark\AppData\Local\Temp\vs1A55.tmp\x86\Mono\</IntermediateOutputPath>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Autofac, Version=2.6.3.862, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL"> <Reference Include="Autofac, Version=2.6.3.862, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">

@ -42,7 +42,7 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<UseVSHostingProcess>true</UseVSHostingProcess> <UseVSHostingProcess>true</UseVSHostingProcess>
<CodeAnalysisRuleSet>BasicCorrectnessRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisRuleSet>BasicCorrectnessRules.ruleset</CodeAnalysisRuleSet>
<IntermediateOutputPath>C:\Users\Mark.McDowall\AppData\Local\Temp\vs8003.tmp\x86\Debug\</IntermediateOutputPath> <IntermediateOutputPath>C:\Users\Mark\AppData\Local\Temp\vs167E.tmp\x86\Debug\</IntermediateOutputPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget> <PlatformTarget>x86</PlatformTarget>
@ -52,7 +52,7 @@
<DefineConstants>TRACE</DefineConstants> <DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<IntermediateOutputPath>C:\Users\Mark.McDowall\AppData\Local\Temp\vs8003.tmp\x86\Release\</IntermediateOutputPath> <IntermediateOutputPath>C:\Users\Mark\AppData\Local\Temp\vs167E.tmp\x86\Release\</IntermediateOutputPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<ApplicationIcon>NzbDrone.ico</ApplicationIcon> <ApplicationIcon>NzbDrone.ico</ApplicationIcon>
@ -71,6 +71,7 @@
<PlatformTarget>x86</PlatformTarget> <PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<IntermediateOutputPath>C:\Users\Mark\AppData\Local\Temp\vs167E.tmp\x86\Mono\</IntermediateOutputPath>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Autofac, Version=2.6.3.862, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL"> <Reference Include="Autofac, Version=2.6.3.862, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">

Loading…
Cancel
Save