Skip to content

Commit 0a0cad8

Browse files
committed
apply order by to filelists, closes feature #51
1 parent 6532587 commit 0a0cad8

File tree

8 files changed

+66
-13
lines changed

8 files changed

+66
-13
lines changed

dist/angular-filemanager.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/angular-filemanager.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/css/angular-filemanager.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,3 +532,17 @@ a:hover {
532532
transform: rotate(450deg);
533533
}
534534
}
535+
536+
table th > a:hover,
537+
table th > a:active,
538+
table th > a:focus {
539+
text-decoration: none;
540+
}
541+
.sortorder:after {
542+
color: #2196f3;
543+
content: '\25bc';
544+
}
545+
.sortorder.reverse:after {
546+
color: #2196f3;
547+
content: '\25b2';
548+
}

src/js/controllers/main.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@
66

77
$scope.config = fileManagerConfig;
88
$scope.appName = fileManagerConfig.appName;
9-
$scope.orderProp = ['model.type', 'model.name'];
9+
10+
$scope.reverse = false;
11+
$scope.predicate = ['model.type', 'model.name'];
12+
$scope.order = function(predicate) {
13+
$scope.reverse = ($scope.predicate[1] === predicate) ? !$scope.reverse : false;
14+
$scope.predicate[1] = predicate;
15+
};
16+
1017
$scope.query = '';
1118
$scope.temp = new Item();
1219
$scope.fileNavigator = new FileNavigator();

src/js/controllers/selector-controller.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@
44
'$scope', '$rootScope', 'fileNavigator',
55
function($scope, $rootScope, FileNavigator) {
66

7-
$scope.orderProp = ['model.type', 'model.name'];
7+
$scope.reverse = false;
8+
$scope.predicate = ['model.type', 'model.name'];
9+
$scope.order = function(predicate) {
10+
$scope.reverse = ($scope.predicate[1] === predicate) ? !$scope.reverse : false;
11+
$scope.predicate[1] = predicate;
12+
};
13+
814
$scope.fileNavigator = new FileNavigator();
915

1016
$rootScope.select = function(item, temp) {

src/js/entities/item.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
angular.module('FileManagerApp').factory('item', ['$http', '$q', '$translate', 'fileManagerConfig', 'chmod', function($http, $q, $translate, fileManagerConfig, Chmod) {
44

55
var Item = function(model, path) {
6+
window.px = this;
67
var rawModel = {
78
name: model && model.name || '',
89
path: path || [],
910
type: model && model.type || 'file',
10-
size: model && model.size || 0,
11+
size: model && parseInt(model.size || 0),
1112
date: parseMySQLDate(model && model.date),
1213
perms: new Chmod(model && model.rights),
1314
content: model && model.content || '',

src/templates/main-table-modal.html

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
<table class="table table-condensed table-modal-condensed mb0">
22
<thead>
33
<tr>
4-
<th>{{"name" | translate}}</th>
4+
<th>
5+
<a href="" ng-click="order('model.name')">
6+
{{"name" | translate}}
7+
<span class="sortorder" ng-show="predicate[1] === 'model.name'" ng-class="{reverse:reverse}"></span>
8+
</a>
9+
</th>
510
<th class="text-right"></th>
611
</tr>
712
</thead>
@@ -24,7 +29,7 @@
2429
{{ fileNavigator.error }}
2530
</td>
2631
</tr>
27-
<tr ng-repeat="item in fileNavigator.fileList | orderBy: orderProp" ng-show="!fileNavigator.requesting && item.model.type === 'dir'">
32+
<tr ng-repeat="item in fileNavigator.fileList | orderBy:predicate:reverse" ng-show="!fileNavigator.requesting && item.model.type === 'dir'">
2833
<td>
2934
<a href="" ng-click="fileNavigator.folderClick(item)" title="{{item.model.name}} ({{item.model.sizeKb()}}kb)">
3035
<i class="glyphicon glyphicon-folder-close"></i>

src/templates/main-table.html

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,30 @@
11
<table class="table mb0 table-files">
22
<thead>
33
<tr>
4-
<th>{{"name" | translate}}</th>
5-
<th class="hidden-xs">{{"size" | translate}}</th>
6-
<th class="hidden-sm hidden-xs">{{"date" | translate}}</th>
7-
<th class="hidden-sm hidden-xs">{{"permissions" | translate}}</th>
4+
<th>
5+
<a href="" ng-click="order('model.name')">
6+
{{"name" | translate}}
7+
<span class="sortorder" ng-show="predicate[1] === 'model.name'" ng-class="{reverse:reverse}"></span>
8+
</a>
9+
</th>
10+
<th class="hidden-xs">
11+
<a href="" ng-click="order('model.size')">
12+
{{"size" | translate}}
13+
<span class="sortorder" ng-show="predicate[1] === 'model.size'" ng-class="{reverse:reverse}"></span>
14+
</a>
15+
</th>
16+
<th class="hidden-sm hidden-xs">
17+
<a href="" ng-click="order('model.date')">
18+
{{"date" | translate}}
19+
<span class="sortorder" ng-show="predicate[1] === 'model.date'" ng-class="{reverse:reverse}"></span>
20+
</a>
21+
</th>
22+
<th class="hidden-sm hidden-xs">
23+
<a href="" ng-click="order('model.permissions')">
24+
{{"permissions" | translate}}
25+
<span class="sortorder" ng-show="predicate[1] === 'model.permissions'" ng-class="{reverse:reverse}"></span>
26+
</a>
27+
</th>
828
<th class="text-right"></th>
929
</tr>
1030
</thead>
@@ -24,7 +44,7 @@
2444
{{ fileNavigator.error }}
2545
</td>
2646
</tr>
27-
<tr ng-repeat="item in fileNavigator.fileList | filter: query | orderBy: orderProp" ng-show="!fileNavigator.requesting">
47+
<tr ng-repeat="item in fileNavigator.fileList | filter: query | orderBy:predicate:reverse" ng-show="!fileNavigator.requesting">
2848
<td ng-right-click="touch(item)">
2949
<a href="" ng-click="smartClick(item)" title="{{item.model.name}} ({{item.model.sizeKb()}}kb)">
3050
<i class="glyphicon glyphicon-folder-close" ng-show="item.model.type === 'dir'"></i>

0 commit comments

Comments
 (0)