From 912477d10b1bb8bbe0e03dbd70b0a5e6bb018119 Mon Sep 17 00:00:00 2001 From: Daniele Viti Date: Tue, 9 Apr 2019 09:08:56 +0200 Subject: [PATCH 1/2] W2G2 Integration Needed to block right click menu when a file is locked! --- js/files.js | 187 +++++++++++++++++++++++++++------------------------- 1 file changed, 96 insertions(+), 91 deletions(-) diff --git a/js/files.js b/js/files.js index 9f8d9f6..d69693e 100644 --- a/js/files.js +++ b/js/files.js @@ -1,4 +1,4 @@ -(function(window, $, RightClick, undefined) { +(function (window, $, RightClick, undefined) { 'use strict'; if (!RightClick) { @@ -11,109 +11,114 @@ new RightClick.Menu($('tbody[id=fileList]'), function (event, context, delimiter) { var options = new RightClick.Options(); var currentFile = $(event.target).closest('tr'); - var selectedActions = '.selectedActions .menu-center li'; - currentFile.find('.action-menu').click(); - $('.filesSelectMenu').css('visibility', 'hidden'); - $('.actions-selected').click(); - - var menu = currentFile.find('.fileActionsMenu'); - var menuStyle = $('style.rightClickStyle'); - var generateNewOption = function (action, icon, text, onClick, prepend, subOptions) { - return new RightClick.Option(action, text, 'icon-' + icon, typeof onClick === 'function' ? function (event, context) { - event.stopPropagation(); - event.preventDefault(); - - menu.remove(); - currentFile.removeClass('mouseOver'); - currentFile.removeClass('highlighted'); - currentFile.find('.action-menu').removeClass('open'); - - onClick(event, context); - } : onClick, subOptions); - }; - var addNewOption = function (action, icon, text, onClick, prepend, subOptions) { - if (prepend === undefined) - prepend = true; - - var option = generateNewOption(action, icon, text, onClick, prepend, subOptions); - - if (prepend) - options.prepend(option); - else - options.append(option); - }; - var addNewOpenSubOption = function (action, icon, text, onClick, prepend, subOptions) { - if (prepend === undefined) - prepend = true; - - var option = generateNewOption(action, icon, text, onClick, prepend, subOptions); - - if (prepend) - openSubOptions.prepend(option); - else - openSubOptions.append(option); - }; - - menu.css('visibility', 'hidden'); - - if (currentFile.hasClass('selected')) { - menu.find('ul').html(''); - - addNewOption('Check', 'category-disabled', t(appName, 'Unselect'), function () { - $(currentFile.find('input.selectCheckBox')).click(); - }); - - $.each($('.selectedActions .menu-center li'), function (i, selectedAction) { - var action = $(selectedAction); - - addNewOption(action.attr('class'), $(action.find('span.icon')).attr('class').replace('icon', '').replace(' ', '').replace('icon-', ''), $(action.find('span:not(.icon)')).text(), function () { - action.find('a').click(); - }, false); - }); - } - else { - var mimeType = currentFile.attr('data-mime'); - var text = ''; - var icon = 'toggle'; - var onClick = function () { - currentFile.find('.filename .nametext').click(); + + // W2G2 Integration + if ($(currentFile).find(".statelock").length == 0) { + var selectedActions = '.selectedActions .menu-center li'; + currentFile.find('.action-menu').click(); + $('.filesSelectMenu').css('visibility', 'hidden'); + $('.actions-selected').click(); + + var menu = currentFile.find('.fileActionsMenu'); + var menuStyle = $('style.rightClickStyle'); + var generateNewOption = function (action, icon, text, onClick, prepend, subOptions) { + return new RightClick.Option(action, text, 'icon-' + icon, typeof onClick === 'function' ? function (event, context) { + event.stopPropagation(); + event.preventDefault(); + + menu.remove(); + currentFile.removeClass('mouseOver'); + currentFile.removeClass('highlighted'); + currentFile.find('.action-menu').removeClass('open'); + + onClick(event, context); + } : onClick, subOptions); }; + var addNewOption = function (action, icon, text, onClick, prepend, subOptions) { + if (prepend === undefined) + prepend = true; - var share = currentFile.find('.filename .fileactions .action-share'); + var option = generateNewOption(action, icon, text, onClick, prepend, subOptions); - if (share.length === 0) { - addNewOption('Share', 'shared', t(appName, 'Share ' + (currentFile.attr('data-type') === 'dir' ? 'folder' : 'file')), function () { - share.click(); - }); - } + if (prepend) + options.prepend(option); + else + options.append(option); + }; + var addNewOpenSubOption = function (action, icon, text, onClick, prepend, subOptions) { + if (prepend === undefined) + prepend = true; + + var option = generateNewOption(action, icon, text, onClick, prepend, subOptions); + + if (prepend) + openSubOptions.prepend(option); + else + openSubOptions.append(option); + }; + + menu.css('visibility', 'hidden'); + + if (currentFile.hasClass('selected')) { + menu.find('ul').html(''); - if (!$('#selectedActionsList').hasClass('hidden')) { - addNewOption('Check', 'category-enabled', t(appName, 'Select'), function () { + addNewOption('Check', 'category-disabled', t(appName, 'Unselect'), function () { $(currentFile.find('input.selectCheckBox')).click(); }); + + $.each($('.selectedActions .menu-center li'), function (i, selectedAction) { + var action = $(selectedAction); + + addNewOption(action.attr('class'), $(action.find('span.icon')).attr('class').replace('icon', '').replace(' ', '').replace('icon-', ''), $(action.find('span:not(.icon)')).text(), function () { + action.find('a').click(); + }, false); + }); + } else { + var mimeType = currentFile.attr('data-mime'); + var text = ''; + var icon = 'toggle'; + var onClick = function () { + currentFile.find('.filename .nametext').click(); + }; + + var share = currentFile.find('.filename .fileactions .action-share'); + + if (share.length === 0) { + addNewOption('Share', 'shared', t(appName, 'Share ' + (currentFile.attr('data-type') === 'dir' ? 'folder' : 'file')), function () { + share.click(); + }); + } + + if (!$('#selectedActionsList').hasClass('hidden')) { + addNewOption('Check', 'category-enabled', t(appName, 'Select'), function () { + $(currentFile.find('input.selectCheckBox')).click(); + }); + } } - } - for (var key in menu.find('li:not(.hidden)')) { - if (!isNaN(key)) { - var li = $(menu.find('li')[key]); - var spans = $(li.find('span')); + for (var key in menu.find('li:not(.hidden)')) { + if (!isNaN(key)) { + var li = $(menu.find('li')[key]); + var spans = $(li.find('span')); - options.append(new RightClick.Option($(li.find('a')).attr('data-action'), $(spans[1]).text(), $(spans[0]).attr('class'), function (event, option) { - event.stopPropagation(); - event.preventDefault(); + options.append(new RightClick.Option($(li.find('a')).attr('data-action'), $(spans[1]).text(), $(spans[0]).attr('class'), function (event, option) { + event.stopPropagation(); + event.preventDefault(); - $($('.fileActionsMenu').find('a[data-action="' + option.name + '"]')).click(); - })); + $($('.fileActionsMenu').find('a[data-action="' + option.name + '"]')).click(); + })); + } } - } - setTimeout(function () { - currentFile.find('.action-menu').click(); - $('.fileActionsMenu').css('visibility', 'hidden'); - }, 100); + setTimeout(function () { + currentFile.find('.action-menu').click(); + $('.fileActionsMenu').css('visibility', 'hidden'); + }, 100); - return options; + return options; + } else { + return options; + } }, $('#app-content-files #fileList'), function () { $('.filesSelectMenu').css('visibility', 'visible'); }); From 222dc3193e29224164907c62f68ff775499af37d Mon Sep 17 00:00:00 2001 From: Daniele Viti Date: Thu, 22 Aug 2019 22:36:53 +0200 Subject: [PATCH 2/2] Update files.js --- js/files.js | 221 ++++++++++++++++++++++++++-------------------------- 1 file changed, 112 insertions(+), 109 deletions(-) diff --git a/js/files.js b/js/files.js index d69693e..5387018 100644 --- a/js/files.js +++ b/js/files.js @@ -1,4 +1,4 @@ -(function (window, $, RightClick, undefined) { +(function(window, $, RightClick, undefined) { 'use strict'; if (!RightClick) { @@ -11,114 +11,117 @@ new RightClick.Menu($('tbody[id=fileList]'), function (event, context, delimiter) { var options = new RightClick.Options(); var currentFile = $(event.target).closest('tr'); - - // W2G2 Integration - if ($(currentFile).find(".statelock").length == 0) { - var selectedActions = '.selectedActions .menu-center li'; - currentFile.find('.action-menu').click(); - $('.filesSelectMenu').css('visibility', 'hidden'); - $('.actions-selected').click(); - - var menu = currentFile.find('.fileActionsMenu'); - var menuStyle = $('style.rightClickStyle'); - var generateNewOption = function (action, icon, text, onClick, prepend, subOptions) { - return new RightClick.Option(action, text, 'icon-' + icon, typeof onClick === 'function' ? function (event, context) { - event.stopPropagation(); - event.preventDefault(); - - menu.remove(); - currentFile.removeClass('mouseOver'); - currentFile.removeClass('highlighted'); - currentFile.find('.action-menu').removeClass('open'); - - onClick(event, context); - } : onClick, subOptions); - }; - var addNewOption = function (action, icon, text, onClick, prepend, subOptions) { - if (prepend === undefined) - prepend = true; - - var option = generateNewOption(action, icon, text, onClick, prepend, subOptions); - - if (prepend) - options.prepend(option); - else - options.append(option); - }; - var addNewOpenSubOption = function (action, icon, text, onClick, prepend, subOptions) { - if (prepend === undefined) - prepend = true; - - var option = generateNewOption(action, icon, text, onClick, prepend, subOptions); - - if (prepend) - openSubOptions.prepend(option); - else - openSubOptions.append(option); - }; - - menu.css('visibility', 'hidden'); - - if (currentFile.hasClass('selected')) { - menu.find('ul').html(''); - - addNewOption('Check', 'category-disabled', t(appName, 'Unselect'), function () { - $(currentFile.find('input.selectCheckBox')).click(); - }); - - $.each($('.selectedActions .menu-center li'), function (i, selectedAction) { - var action = $(selectedAction); - - addNewOption(action.attr('class'), $(action.find('span.icon')).attr('class').replace('icon', '').replace(' ', '').replace('icon-', ''), $(action.find('span:not(.icon)')).text(), function () { - action.find('a').click(); - }, false); - }); - } else { - var mimeType = currentFile.attr('data-mime'); - var text = ''; - var icon = 'toggle'; - var onClick = function () { - currentFile.find('.filename .nametext').click(); - }; - - var share = currentFile.find('.filename .fileactions .action-share'); - - if (share.length === 0) { - addNewOption('Share', 'shared', t(appName, 'Share ' + (currentFile.attr('data-type') === 'dir' ? 'folder' : 'file')), function () { - share.click(); - }); - } - - if (!$('#selectedActionsList').hasClass('hidden')) { - addNewOption('Check', 'category-enabled', t(appName, 'Select'), function () { - $(currentFile.find('input.selectCheckBox')).click(); - }); - } - } - - for (var key in menu.find('li:not(.hidden)')) { - if (!isNaN(key)) { - var li = $(menu.find('li')[key]); - var spans = $(li.find('span')); - - options.append(new RightClick.Option($(li.find('a')).attr('data-action'), $(spans[1]).text(), $(spans[0]).attr('class'), function (event, option) { - event.stopPropagation(); - event.preventDefault(); - - $($('.fileActionsMenu').find('a[data-action="' + option.name + '"]')).click(); - })); - } - } - - setTimeout(function () { - currentFile.find('.action-menu').click(); - $('.fileActionsMenu').css('visibility', 'hidden'); - }, 100); - - return options; - } else { - return options; - } + + + var selectedActions = '.selectedActions .menu-center li'; + currentFile.find('.action-menu').click(); + $('.filesSelectMenu').css('visibility', 'hidden'); + $('.actions-selected').click(); + + if ($(currentFile).find(".statelock").length == 0) { + var menu = currentFile.find('.fileActionsMenu'); + var menuStyle = $('style.rightClickStyle'); + var generateNewOption = function (action, icon, text, onClick, prepend, subOptions) { + return new RightClick.Option(action, text, 'icon-' + icon, typeof onClick === 'function' ? function (event, context) { + event.stopPropagation(); + event.preventDefault(); + + menu.remove(); + currentFile.removeClass('mouseOver'); + currentFile.removeClass('highlighted'); + currentFile.find('.action-menu').removeClass('open'); + + onClick(event, context); + } : onClick, subOptions); + }; + var addNewOption = function (action, icon, text, onClick, prepend, subOptions) { + if (prepend === undefined) + prepend = true; + + var option = generateNewOption(action, icon, text, onClick, prepend, subOptions); + + if (prepend) + options.prepend(option); + else + options.append(option); + }; + var addNewOpenSubOption = function (action, icon, text, onClick, prepend, subOptions) { + if (prepend === undefined) + prepend = true; + + var option = generateNewOption(action, icon, text, onClick, prepend, subOptions); + + if (prepend) + openSubOptions.prepend(option); + else + openSubOptions.append(option); + }; + + menu.css('visibility', 'hidden'); + + if (currentFile.hasClass('selected')) { + menu.find('ul').html(''); + + addNewOption('Check', 'category-disabled', t(appName, 'Unselect'), function () { + $(currentFile.find('input.selectCheckBox')).click(); + }); + + $.each($('.selectedActions .menu-center li'), function (i, selectedAction) { + var action = $(selectedAction); + + addNewOption(action.attr('class'), $(action.find('span.icon')).attr('class').replace('icon', '').replace(' ', '').replace('icon-', ''), $(action.find('span:not(.icon)')).text(), function () { + action.find('a').click(); + }, false); + }); + } + else { + var mimeType = currentFile.attr('data-mime'); + var text = ''; + var icon = 'toggle'; + var onClick = function () { + currentFile.find('.filename .nametext').click(); + }; + + var share = currentFile.find('.filename .fileactions .action-share'); + + if (share.length === 0) { + addNewOption('Share', 'shared', t(appName, 'Share ' + (currentFile.attr('data-type') === 'dir' ? 'folder' : 'file')), function () { + share.click(); + }); + } + + if (!$('#selectedActionsList').hasClass('hidden')) { + addNewOption('Check', 'category-enabled', t(appName, 'Select'), function () { + $(currentFile.find('input.selectCheckBox')).click(); + }); + } + } + + var fileOptions = menu.find('li:not(.hidden)'); + + for (var key in fileOptions) { + if (!isNaN(key)) { + var li = $(fileOptions[key]); + var spans = $(li.find('span')); + + options.append(new RightClick.Option($(li.find('a')).attr('data-action'), $(spans[1]).text(), $(spans[0]).attr('class'), function (event, option) { + event.stopPropagation(); + event.preventDefault(); + + $($('.fileActionsMenu').find('a[data-action="' + option.name + '"]')).click(); + })); + } + } + + setTimeout(function () { + currentFile.find('.action-menu').click(); + $('.fileActionsMenu').css('visibility', 'hidden'); + }, 100); + + return options; + } else { + return options; + } }, $('#app-content-files #fileList'), function () { $('.filesSelectMenu').css('visibility', 'visible'); });