From 8fc62183192aeb537b3e545776754d168eb05857 Mon Sep 17 00:00:00 2001 From: Marco Dickert Date: Sat, 19 Aug 2017 01:48:29 +0200 Subject: [PATCH] execute correct action, when clicking on a file icon --- build/libifm.php | 11 ++++++----- ifm.php | 11 ++++++----- src/ifm.js | 11 ++++++----- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/build/libifm.php b/build/libifm.php index 511597d..7f92e8f 100644 --- a/build/libifm.php +++ b/build/libifm.php @@ -1332,16 +1332,17 @@ function IFM( params ) { filetable.tBodies[0].addEventListener( 'click', function( e ) { if( e.target.tagName == "TD" && e.target.parentElement.classList.contains( 'clickable-row' ) && e.target.parentElement.dataset.filename !== ".." && e.ctrlKey ) e.target.parentElement.classList.toggle( 'selectedItem' ); - else if( e.target.classList.contains( 'ifmitem' ) ) { + else if( e.target.classList.contains( 'ifmitem' ) || e.target.parentElement.classList.contains( 'ifmitem' ) ) { e.stopPropagation(); e.preventDefault(); - if( e.target.dataset.type == "dir" ) - self.changeDirectory( e.target.parentElement.parentElement.dataset.filename ); + ifmitem = ( e.target.classList.contains( 'ifmitem' ) ? e.target : e.target.parentElement ); + if( ifmitem.dataset.type == "dir" ) + self.changeDirectory( ifmitem.parentElement.parentElement.dataset.filename ); else if( self.config.isDocroot ) - window.location.href = self.hrefEncode( self.pathCombine( self.currentDir, e.target.parentElement.parentElement.dataset.filename ) ); + window.location.href = self.hrefEncode( self.pathCombine( self.currentDir, ifmitem.parentElement.parentElement.dataset.filename ) ); else - document.forms["d_"+e.target.id].submit(); + document.forms["d_"+ifmitem.id].submit(); } else if( e.target.parentElement.name == 'start_download' ) { e.stopPropagation(); e.preventDefault(); diff --git a/ifm.php b/ifm.php index bb8c31c..1baf14c 100644 --- a/ifm.php +++ b/ifm.php @@ -1332,16 +1332,17 @@ function IFM( params ) { filetable.tBodies[0].addEventListener( 'click', function( e ) { if( e.target.tagName == "TD" && e.target.parentElement.classList.contains( 'clickable-row' ) && e.target.parentElement.dataset.filename !== ".." && e.ctrlKey ) e.target.parentElement.classList.toggle( 'selectedItem' ); - else if( e.target.classList.contains( 'ifmitem' ) ) { + else if( e.target.classList.contains( 'ifmitem' ) || e.target.parentElement.classList.contains( 'ifmitem' ) ) { e.stopPropagation(); e.preventDefault(); - if( e.target.dataset.type == "dir" ) - self.changeDirectory( e.target.parentElement.parentElement.dataset.filename ); + ifmitem = ( e.target.classList.contains( 'ifmitem' ) ? e.target : e.target.parentElement ); + if( ifmitem.dataset.type == "dir" ) + self.changeDirectory( ifmitem.parentElement.parentElement.dataset.filename ); else if( self.config.isDocroot ) - window.location.href = self.hrefEncode( self.pathCombine( self.currentDir, e.target.parentElement.parentElement.dataset.filename ) ); + window.location.href = self.hrefEncode( self.pathCombine( self.currentDir, ifmitem.parentElement.parentElement.dataset.filename ) ); else - document.forms["d_"+e.target.id].submit(); + document.forms["d_"+ifmitem.id].submit(); } else if( e.target.parentElement.name == 'start_download' ) { e.stopPropagation(); e.preventDefault(); diff --git a/src/ifm.js b/src/ifm.js index e8bfac0..75e7fa9 100644 --- a/src/ifm.js +++ b/src/ifm.js @@ -180,16 +180,17 @@ function IFM( params ) { filetable.tBodies[0].addEventListener( 'click', function( e ) { if( e.target.tagName == "TD" && e.target.parentElement.classList.contains( 'clickable-row' ) && e.target.parentElement.dataset.filename !== ".." && e.ctrlKey ) e.target.parentElement.classList.toggle( 'selectedItem' ); - else if( e.target.classList.contains( 'ifmitem' ) ) { + else if( e.target.classList.contains( 'ifmitem' ) || e.target.parentElement.classList.contains( 'ifmitem' ) ) { e.stopPropagation(); e.preventDefault(); - if( e.target.dataset.type == "dir" ) - self.changeDirectory( e.target.parentElement.parentElement.dataset.filename ); + ifmitem = ( e.target.classList.contains( 'ifmitem' ) ? e.target : e.target.parentElement ); + if( ifmitem.dataset.type == "dir" ) + self.changeDirectory( ifmitem.parentElement.parentElement.dataset.filename ); else if( self.config.isDocroot ) - window.location.href = self.hrefEncode( self.pathCombine( self.currentDir, e.target.parentElement.parentElement.dataset.filename ) ); + window.location.href = self.hrefEncode( self.pathCombine( self.currentDir, ifmitem.parentElement.parentElement.dataset.filename ) ); else - document.forms["d_"+e.target.id].submit(); + document.forms["d_"+ifmitem.id].submit(); } else if( e.target.parentElement.name == 'start_download' ) { e.stopPropagation(); e.preventDefault();