This repository has been archived by the owner on May 21, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 23
/
files.js
122 lines (98 loc) 路 4.73 KB
/
files.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
(function(window, $, RightClick, undefined) {
'use strict';
if (!RightClick) {
console.error('The RightClick app is recommanded to have context menus');
return false;
}
var appName = RightClick.appName;
new RightClick.Menu($('tbody[class=files-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 all'), function () {
currentFile.closest('tbody').find('tr input.selectCheckBox:checked').trigger('click')
});
$.each($('.selectedActions:not(.hidden) .menu-center li:not(.hidden)'), 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', (currentFile.attr('data-type') === 'dir' ? t(appName, 'Share folder') : t(appName, 'Share file')), function () {
share.click();
});
}
if (!$('.selectedActions').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;
}, $('#app-content-files .files-fileList'), function () {
$('.filesSelectMenu').css('visibility', 'visible');
});
})(window, jQuery, RightClick);