From d52fe9f9bce3577979ac8425b364126133f5e53f Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee Date: Tue, 15 Sep 2015 17:57:43 +0430 Subject: [PATCH] Fix directories with nested files not showing Fix cwd showing "/sdcard/sdcard" directories --- build/main.js | 1 + build/polyfill.js | 12 +++++------- releases/hawk-1.0.0.zip | Bin 1245795 -> 1245768 bytes src/js/actions/changedir.js | 2 +- src/js/reducers/cwd.js | 3 ++- src/polyfill.js | 12 +++++------- 6 files changed, 14 insertions(+), 16 deletions(-) diff --git a/build/main.js b/build/main.js index 6f55807..14d9e54 100644 --- a/build/main.js +++ b/build/main.js @@ -31995,6 +31995,7 @@ exports['default'] = function (state, action) { }; function changeTo(dir) { + dir = (0, _utils.normalize)(dir); (0, _apiFiles.children)(dir, true).then(function (files) { _store2['default'].dispatch((0, _actionsFilesView.listFiles)(files)); }, _utils.reportError); diff --git a/build/polyfill.js b/build/polyfill.js index f5fd5aa..8ed9267 100644 --- a/build/polyfill.js +++ b/build/polyfill.js @@ -41,24 +41,22 @@ function shimDirectory(directory) { return; } - var parts = this.result.name.replace('/sdcard/', '').split('/'); + var normalized = this.result.name.replace('/sdcard/', ''); + var parts = normalized.split('/'); // immediate children files if (parts.slice(0, -1).join('/') === current) { - console.log('constructing file'); var file = new File([this.result], parts[parts.length - 1], { type: this.result.type }); - console.log('defining path'); Object.defineProperty(file, 'path', { value: parts.slice(0, -1).join('/') + '/' }); children.push(file); // Directories - } else if (parts.slice(0, -2).join('/') === current) { - var path = parts.slice(0, -2).join('/') + '/'; - var name = parts[parts.length - 2]; + } else if (normalized.indexOf(current) === 0) { + var name = normalized.slice(current.length).replace(/^\//, '').split('/')[0]; var exists = children.some(function(child) { return child.name === name @@ -67,7 +65,7 @@ function shimDirectory(directory) { if (!exists) { var dir = Object.assign({}, directory); dir.name = name; - dir.path = path; + dir.path = current + '/'; children.push(dir); } } diff --git a/releases/hawk-1.0.0.zip b/releases/hawk-1.0.0.zip index 8e85e2a283830215d6f202d22842746111cf3ca0..399ed568932193d77fb40875587bf6d54c57c0d4 100644 GIT binary patch delta 849 zcmaFd;&Y7sRj&V|>UCVkpKjzU2Th1kxG1SV4?AIgE*5#{WXbbWV^+Mm6Id zCJ@7|j!_n@E47vJD+@>@ri;-AY~ZZvjQ7FjR4-ucVB|IF*LVN8LfO^4lb^x7U0@L- z5HkTWGZ3=?F)I+W0Wmuea{w_X5OV=BHxTmxF)tAF0Wtq}fkgs>_G~GcMGCeG)4SI3 zOEFnxED7bxzq0q9~!ki#bmRO{a zmtT~dn3GwRnle51tdO>nHJ1V$faD7ji%N=tmLRF?I4hJlUGAJv{dB&!Ts+gyo)cQ4 z1v0KyAvLEsRUtD?K?9*$FEcMCwZcD5Be}GwC^fG{bNars%wp4jo)_YFKvGqllbM_f zQ=^xYnwMUZp{ZAtT9A_n6xWZ7(bv~eP*>N~D=x^%EYVQcSJ#X-ST1!zh>;g+u!6P% zP;|Q7MWOc~@AF?0;?M>%rc3@6G6c~+e}xP{blqPeTM)hXuaFIh{tcxq|3UcW|AZ_- z;+y^nS%K(x{~+ph{|i}w_~}r3A(X!TU&tCLK2<^(qvd!l zHbYGW(_0vYH9*F$V-%KQ44rqfixt|z@)atvYK3Y(t3DEGEt^)A zpqfrfK3wE7(}`S4ONtXIRq^>FEK;Sn_W#E`u1usfG)~2HlVG&5#dX_WwpyhRm~67_ z@Jz)sxoj}2rV@(Odr0gFGjEj!4x(Kggsgu~{lRPLlqUH?KED_c0TK3WneOV)jaQm> zRnd}=-6MuyZ7ow`#9GX-LcinRZ>~^F00LJ3MP;O1qrJ#PjSeDP7k2M6e4t!5cLREv W$Yw`|Oi+~LcES@iah$zIVf7n!{r{f; diff --git a/src/js/actions/changedir.js b/src/js/actions/changedir.js index d4c8935..a7e4356 100644 --- a/src/js/actions/changedir.js +++ b/src/js/actions/changedir.js @@ -5,5 +5,5 @@ export default function changedir(dir) { return { type: CHANGE_DIRECTORY, dir - }; + } } diff --git a/src/js/reducers/cwd.js b/src/js/reducers/cwd.js index a88d4bf..4016eb7 100644 --- a/src/js/reducers/cwd.js +++ b/src/js/reducers/cwd.js @@ -1,7 +1,7 @@ import { CHANGE_DIRECTORY, REFRESH, SETTINGS } from 'actions/types'; import { children, CACHE } from 'api/files'; import store from 'store'; -import { reportError } from 'utils'; +import { reportError, normalize } from 'utils'; import { listFiles } from 'actions/files-view'; export default function(state = '', action) { @@ -25,6 +25,7 @@ export default function(state = '', action) { } function changeTo(dir) { + dir = normalize(dir); children(dir, true).then(files => { store.dispatch(listFiles(files)); }, reportError) diff --git a/src/polyfill.js b/src/polyfill.js index f5fd5aa..8ed9267 100644 --- a/src/polyfill.js +++ b/src/polyfill.js @@ -41,24 +41,22 @@ function shimDirectory(directory) { return; } - var parts = this.result.name.replace('/sdcard/', '').split('/'); + var normalized = this.result.name.replace('/sdcard/', ''); + var parts = normalized.split('/'); // immediate children files if (parts.slice(0, -1).join('/') === current) { - console.log('constructing file'); var file = new File([this.result], parts[parts.length - 1], { type: this.result.type }); - console.log('defining path'); Object.defineProperty(file, 'path', { value: parts.slice(0, -1).join('/') + '/' }); children.push(file); // Directories - } else if (parts.slice(0, -2).join('/') === current) { - var path = parts.slice(0, -2).join('/') + '/'; - var name = parts[parts.length - 2]; + } else if (normalized.indexOf(current) === 0) { + var name = normalized.slice(current.length).replace(/^\//, '').split('/')[0]; var exists = children.some(function(child) { return child.name === name @@ -67,7 +65,7 @@ function shimDirectory(directory) { if (!exists) { var dir = Object.assign({}, directory); dir.name = name; - dir.path = path; + dir.path = current + '/'; children.push(dir); } }