Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/iglvzx/IGalvez.Autoindex.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIzzy Galvez <i@igalvez.net>2015-10-23 23:17:07 +0300
committerIzzy Galvez <i@igalvez.net>2015-10-23 23:17:07 +0300
commit594eb9d88c093d877fbbd4991f46c1cda7d70d23 (patch)
tree1315a0380de6c95591e6c2ddd4b57f7b980e6c39
parent086565c5365a1405bb04c56a3f7b8bb1212db368 (diff)
better filetype management, removes need to hardcode types.
-rw-r--r--.autoindex/file-types.js106
-rw-r--r--.autoindex/script.js69
2 files changed, 103 insertions, 72 deletions
diff --git a/.autoindex/file-types.js b/.autoindex/file-types.js
index 04fa5df..9804529 100644
--- a/.autoindex/file-types.js
+++ b/.autoindex/file-types.js
@@ -1,46 +1,72 @@
-var iconText = 'file-text-o';
-var iconCode = 'file-code-o';
-var iconImage = 'picture-o';
-var iconFont = 'font';
+// file types array of objects
+var fileTypes = [
-var filesText = [
- 'txt',
- 'pem'
-];
+ {
+ type: "text",
+ icon: "file-text-o",
+ extensions: [
+ 'txt',
+ 'pem',
+ 'log'
+ ]
+ },
-var filesWeb = [ // web pages
-];
+ {
+ type: "code",
+ icon: "file-code-o",
+ extensions: [
+ 'html',
+ 'js',
+ 'css',
+ 'scss',
+ 'less',
+ 'map',
+ 'json',
+ 'yml',
+ 'xml',
+ 'jade',
+ 'md',
+ 'py',
+ 'sh',
+ 'svg',
+ 'cgi'
+ ]
+ },
-var filesCode = [
- 'html',
- 'js',
- 'css',
- 'scss',
- 'less',
- 'map',
- 'json',
- 'yml',
- 'xml',
- 'jade',
- 'md',
- 'py',
- 'sh',
- 'svg',
- 'cgi'
-];
+ {
+ type: "image",
+ icon: "picture-o",
+ extensions: [
+ 'bmp',
+ 'jpg',
+ 'jpeg',
+ 'png',
+ 'gif',
+ 'tiff',
+ 'ico'
+ ]
+ },
-var filesImage = [
- 'jpg',
- 'jpeg',
- 'png',
- 'gif',
- 'tiff',
- 'ico'
-];
+ {
+ type: "font",
+ icon: "font",
+ extensions: [
+ 'otf',
+ 'eot',
+ 'ttf',
+ 'woff',
+ 'woff2'
+ ]
+ },
+
+ {
+ type: "configuration",
+ icon: "cog",
+ extensions: [
+ 'ini',
+ 'conf',
+ 'cfg'
+ ]
+ }
-var filesFont = [
- 'otf',
- 'eot',
- 'ttf',
- 'woff'
];
diff --git a/.autoindex/script.js b/.autoindex/script.js
index 5fd5547..e7b84a7 100644
--- a/.autoindex/script.js
+++ b/.autoindex/script.js
@@ -47,7 +47,7 @@ if(/\/$/.test(document.URL)) {
function addIcon(object, icon, className) {
var HTML = '<i class="' + className + ' fa fa-fw fa-' + icon + '"></i>';
-
+
if(className == 'right') {
object.append(HTML);
} else if(className == 'left') {
@@ -57,7 +57,7 @@ function addIcon(object, icon, className) {
// CSS and icons to rows and links -----------------------------------------------------------------
$('table tbody tr').each(function(i, obj) {
-
+
var link = $('a', this).first();
link.parent().addClass('td-link');
var file = link.text();
@@ -68,43 +68,48 @@ $('table tbody tr').each(function(i, obj) {
$(this).addClass('warning');
link.text('../');
addIcon(link, 'folder', 'left');
-
+
} else {
-
- if (file.substring(file.length - 1) == '/') {
+
+ if (file.substring(file.length - 1) == '/') {
link.attr('data-type', 'folder');
$(this).addClass('active');
addIcon(link, 'folder', 'left');
} else {
-
- var fparts = file.split('.');
-
- if(fparts.length > 1) {
-
- var ext = fparts[fparts.length - 1];
-
- if($.inArray(ext, filesText) > -1) { // text files
- addIcon(link, iconText, 'left');
- showSource = true;
- } else if($.inArray(ext, filesCode) > -1) { // code
- addIcon(link, iconCode, 'left');
- showSource = true;
- } else if($.inArray(ext, filesImage) > -1) { // images
- addIcon(link, iconImage, 'left');
- } else if($.inArray(ext, filesFont) > -1) { // fonts
- addIcon(link, iconFont, 'left');
- } else { // unknown file extension
- addIcon(link, 'file-o', 'left');
- }
-
- } else { // files with no extension
- addIcon(link, 'file-o', 'left');
- }
-
+
+ var fparts = file.split('.');
+
+ if(fparts.length > 1) {
+
+ var ext = fparts[fparts.length - 1];
+
+ var extensionFound = false;
+ for(var i = 0; i < fileTypes.length; i++) {
+
+ var icon = fileTypes[i].icon;
+ var extensions = fileTypes[i].extensions;
+
+ if($.inArray(ext, extensions) > -1) {
+
+ extensionFound = true;
+ addIcon(link, icon, 'left');
+ break;
+
+ }
+ }
+
+ if(!extensionFound) { // extension not found in fileTypes array of objects
+ addIcon(link, 'file-o', 'left');
+ }
+
+ } else { // files with no extension
+ addIcon(link, 'file-o', 'left');
+ }
+
link.attr('target', '_blank');
- link.attr('data-type', 'file');
+ link.attr('data-type', 'file');
}
-
+
}
});