mirror of
https://github.com/lxsang/antos-frontend.git
synced 2024-11-16 17:48:21 +01:00
sort file in fileview tag
This commit is contained in:
parent
5b6e6f8d94
commit
7488f4625c
Binary file not shown.
@ -91,7 +91,7 @@ namespace OS {
|
|||||||
this.showhidden = false;
|
this.showhidden = false;
|
||||||
this.chdir = true;
|
this.chdir = true;
|
||||||
this.view = "list";
|
this.view = "list";
|
||||||
this._onfileopen = this._onfileselect = (e) => {};
|
this._onfileopen = this._onfileselect = (e) => { };
|
||||||
this._header = [
|
this._header = [
|
||||||
{ text: "__(File name)" },
|
{ text: "__(File name)" },
|
||||||
{ text: "__(Type)" },
|
{ text: "__(Type)" },
|
||||||
@ -106,7 +106,7 @@ namespace OS {
|
|||||||
* @param {*} [d]
|
* @param {*} [d]
|
||||||
* @memberof FileViewTag
|
* @memberof FileViewTag
|
||||||
*/
|
*/
|
||||||
protected reload(d?: any): void {}
|
protected reload(d?: any): void { }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set the function that allows to fetch file entries.
|
* set the function that allows to fetch file entries.
|
||||||
@ -265,31 +265,8 @@ namespace OS {
|
|||||||
if (!data) {
|
if (!data) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// sort file by type, then by name
|
|
||||||
data
|
this.data = data.sort(this.sortByName).sort(this.sortByType);
|
||||||
.sort(function(a:API.FileInfoType,b:API.FileInfoType): number{
|
|
||||||
if(a.filename)
|
|
||||||
{
|
|
||||||
a.name = a.filename;
|
|
||||||
}
|
|
||||||
if(b.filename)
|
|
||||||
{
|
|
||||||
b.name = b.filename;
|
|
||||||
}
|
|
||||||
return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
|
|
||||||
})
|
|
||||||
.sort(function(a:API.FileInfoType,b:API.FileInfoType): number{
|
|
||||||
if(!a.type)
|
|
||||||
{
|
|
||||||
a.type = "none";
|
|
||||||
}
|
|
||||||
if(!b.type)
|
|
||||||
{
|
|
||||||
b.type = "none";
|
|
||||||
}
|
|
||||||
return a.type.toLowerCase().localeCompare(b.type.toLowerCase());
|
|
||||||
});
|
|
||||||
this.data = data;
|
|
||||||
if (this.status) {
|
if (this.status) {
|
||||||
(this.refs.status as LabelTag).text = " ";
|
(this.refs.status as LabelTag).text = " ";
|
||||||
}
|
}
|
||||||
@ -336,25 +313,47 @@ namespace OS {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sort file by it type
|
* Sort file by its type
|
||||||
*
|
*
|
||||||
* @private
|
* @private
|
||||||
* @param {API.FileInfoType} a first file meta-data
|
* @param {API.FileInfoType} a
|
||||||
* @param {API.FileInfoType} b second file meta-data
|
* @param {API.FileInfoType} b
|
||||||
* @returns {(0|-1|1)}
|
* @return {*} {number}
|
||||||
* @memberof FileViewTag
|
* @memberof FileViewTag
|
||||||
*/
|
*/
|
||||||
private sortByType(
|
private sortByType(
|
||||||
a: API.FileInfoType,
|
a: API.FileInfoType,
|
||||||
b: API.FileInfoType
|
b: API.FileInfoType
|
||||||
): 0 | -1 | 1 {
|
): number {
|
||||||
if (a.type < b.type) {
|
if (!a.type) {
|
||||||
return -1;
|
a.type = "none";
|
||||||
} else if (a.type > b.type) {
|
|
||||||
return 1;
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
if (!b.type) {
|
||||||
|
b.type = "none";
|
||||||
|
}
|
||||||
|
return a.type.toLowerCase().localeCompare(b.type.toLowerCase());
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* sort file by its name
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {API.FileInfoType} a first file meta-data
|
||||||
|
* @param {API.FileInfoType} b second file meta-data
|
||||||
|
* @returns {number}
|
||||||
|
* @memberof FileViewTag
|
||||||
|
*/
|
||||||
|
private sortByName(
|
||||||
|
a: API.FileInfoType,
|
||||||
|
b: API.FileInfoType
|
||||||
|
): number {
|
||||||
|
// sort file by type, then by name
|
||||||
|
if (a.filename) {
|
||||||
|
a.name = a.filename;
|
||||||
|
}
|
||||||
|
if (b.filename) {
|
||||||
|
b.name = b.filename;
|
||||||
|
}
|
||||||
|
return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -491,7 +490,7 @@ namespace OS {
|
|||||||
if (!this.data) {
|
if (!this.data) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.data.sort(this.sortByType);
|
this.data.sort(this.sortByName).sort(this.sortByType);
|
||||||
switch (this.view) {
|
switch (this.view) {
|
||||||
case "icon":
|
case "icon":
|
||||||
return this.refreshList();
|
return this.refreshList();
|
||||||
@ -597,7 +596,7 @@ namespace OS {
|
|||||||
.then((d: API.FileInfoType[]) =>
|
.then((d: API.FileInfoType[]) =>
|
||||||
resolve(
|
resolve(
|
||||||
this.getTreeData(
|
this.getTreeData(
|
||||||
d.sort(this.sortByType)
|
d.sort(this.sortByName).sort(this.sortByType)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user