Merge pull request #95 from nmaier/perf-and-filter-fixes

Perf and filter fixes
This commit is contained in:
hamza zia 2014-06-03 12:25:06 +08:00
commit 3dfa47fa23
2 changed files with 32 additions and 9 deletions

View File

@ -226,12 +226,12 @@
<!-- }}} --> <!-- }}} -->
<div class="row-fluid"> <div class="row-fluid">
<div ng-class="{'span3': enable.sidebar.show}" ng-if="enable.sidebar.show"> <div ng-class="{'span3': enable.sidebar.show}" ng-show="enable.sidebar.show">
<!-- {{{ nav side bar --> <!-- {{{ nav side bar -->
<div class="well sidebar-nav"> <div class="well sidebar-nav">
<!-- {{{ download filters --> <!-- {{{ download filters -->
<ul id="filters" class="clearfix nav nav-list" ng-if="enable.sidebar.filters"> <ul id="filters" class="clearfix nav nav-list" ng-show="enable.sidebar.filters">
<li class="nav-header">Download Filters</li> <li class="nav-header">Download Filters</li>
<li> <li>
<label for="filter-speed"> <label for="filter-speed">
@ -347,7 +347,7 @@
class="row-fluid download" data-gid="{{download.gid}}"> class="row-fluid download" data-gid="{{download.gid}}">
<tbody> <tbody>
<tr> <tr>
<td class="download-name download-item" ng-click="download.collapsed = !download.collapsed"> <td class="download-name download-item" ng-click="toggleCollapsed(download)">
<i class="icon-magnet" style="color: red;" ng-show="download.metadata"></i> {{download.name}} <i class="icon-magnet" style="color: red;" ng-show="download.metadata"></i> {{download.name}}
</td> </td>
<td class="download-controls download-item" rowspan="2"> <td class="download-controls download-item" rowspan="2">
@ -404,7 +404,7 @@
</li> </li>
<li> <li>
<a ng-click="download.collapsed = !download.collapsed" <a ng-click="toggleCollapsed(download)"
href="#"><i class="icon-info-sign">&nbsp;</i> More Info</a> href="#"><i class="icon-info-sign">&nbsp;</i> More Info</a>
</li> </li>
@ -418,7 +418,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="download-overview download-item" ng-click="download.collapsed = !download.collapsed" ng-switch="download.status"> <td class="download-overview download-item" ng-click="toggleCollapsed(download)" ng-switch="download.status">
<!-- {{{ statistics --> <!-- {{{ statistics -->
<ul class="stats pull-left" ng-switch-when="active"> <ul class="stats pull-left" ng-switch-when="active">
<!-- {{{ active download statistics --> <!-- {{{ active download statistics -->
@ -551,15 +551,15 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="download-progress download-item" colspan="2" ng-click="download.collapsed = !download.collapsed"> <td class="download-progress download-item" colspan="2" ng-click="toggleCollapsed(download)">
<div class="progress progress-striped" ng-class="getProgressClass(download)"> <div class="progress progress-striped" ng-class="getProgressClass(download)">
<div class="bar" style="width: {{getProgress(download)}}%;"></div> <div class="bar" style="width: {{getProgress(download)}}%;"></div>
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="2" ng-click="download.collapsed = !download.collapsed" ng-switch="download.collapsed"> <td colspan="2" ng-click="toggleCollapsed(download)" ng-switch="download.collapsed">
<div collapse="download.collapsed"> <div ng-switch-when="false" collapse="download.animCollapsed">
<div class="download-item" ng-show="download.numPieces > 1"> <div class="download-item" ng-show="download.numPieces > 1">
<canvas bitfield="download.bitfield" draw="!download.collapsed" pieces="download.numPieces" class="progress chunk-canvas" width="1400" chunkbar></canvas> <canvas bitfield="download.bitfield" draw="!download.collapsed" pieces="download.numPieces" class="progress chunk-canvas" width="1400" chunkbar></canvas>
</div> </div>

View File

@ -243,6 +243,28 @@ function(
scope.loadFilters(); scope.loadFilters();
scope.toggleCollapsed = function(download) {
if (!download.collapsed) {
download.animCollapsed = true;
// ng-unswitch after half a second.
// XXX hacky way, because I'm to lazy right now to wire up proper
// transitionend events.
setTimeout(function() {
scope.$apply(function() {
download.collapsed = true;
});
}, 500);
return;
}
download.collapsed = false;
setTimeout(function() {
scope.$apply(function() {
download.animCollapsed = false;
});
}, 0);
};
// max downloads shown in one page // max downloads shown in one page
scope.pageSize = pageSize; scope.pageSize = pageSize;
@ -338,7 +360,8 @@ function(
uploadSpeed: d.uploadSpeed, uploadSpeed: d.uploadSpeed,
fmtUploadSpeed: utils.fmtspeed(d.uploadSpeed), fmtUploadSpeed: utils.fmtspeed(d.uploadSpeed),
collapsed: true, collapsed: true,
files: [] animCollapsed: true,
files: [],
}; };
} }
else { else {