|
|
|
@ -19,28 +19,28 @@ function getSelection($row) { |
|
|
|
return values; |
|
|
|
} |
|
|
|
|
|
|
|
function highlightBorder(element, highlight) { |
|
|
|
$(element).toggleClass('warning-input', highlight); |
|
|
|
function highlightBorder($element, highlight) { |
|
|
|
$element.toggleClass('warning-input', highlight); |
|
|
|
return highlight; |
|
|
|
} |
|
|
|
|
|
|
|
function highlightInput(input) { |
|
|
|
if ($(input).attr('type') === 'text' || $(input).attr('type') === 'password') { |
|
|
|
return highlightBorder(input, |
|
|
|
($(input).val() === '' && !$(input).hasClass('optional'))); |
|
|
|
function highlightInput($input) { |
|
|
|
if ($input.attr('type') === 'text' || $input.attr('type') === 'password') { |
|
|
|
return highlightBorder($input, |
|
|
|
($input.val() === '' && !$input.hasClass('optional'))); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
OC.MountConfig={ |
|
|
|
saveStorage:function(tr, callback) { |
|
|
|
var mountPoint = $(tr).find('.mountPoint input').val(); |
|
|
|
var oldMountPoint = $(tr).find('.mountPoint input').data('mountpoint'); |
|
|
|
saveStorage:function($tr, callback) { |
|
|
|
var mountPoint = $tr.find('.mountPoint input').val(); |
|
|
|
var oldMountPoint = $tr.find('.mountPoint input').data('mountpoint'); |
|
|
|
if (mountPoint === '') { |
|
|
|
return false; |
|
|
|
} |
|
|
|
var statusSpan = $(tr).closest('tr').find('.status span'); |
|
|
|
var backendClass = $(tr).find('.backend').data('class'); |
|
|
|
var configuration = $(tr).find('.configuration input'); |
|
|
|
var statusSpan = $tr.find('.status span'); |
|
|
|
var backendClass = $tr.find('.backend').data('class'); |
|
|
|
var configuration = $tr.find('.configuration input'); |
|
|
|
var addMountPoint = true; |
|
|
|
if (configuration.length < 1) { |
|
|
|
return false; |
|
|
|
@ -62,14 +62,14 @@ OC.MountConfig={ |
|
|
|
} |
|
|
|
}); |
|
|
|
if ($('#externalStorage').data('admin') === true) { |
|
|
|
var multiselect = getSelection($(tr)); |
|
|
|
var multiselect = getSelection($tr); |
|
|
|
} |
|
|
|
if (addMountPoint) { |
|
|
|
var status = false; |
|
|
|
if ($('#externalStorage').data('admin') === true) { |
|
|
|
var isPersonal = false; |
|
|
|
var oldGroups = $(tr).find('.applicable').data('applicable-groups'); |
|
|
|
var oldUsers = $(tr).find('.applicable').data('applicable-users'); |
|
|
|
var oldGroups = $tr.find('.applicable').data('applicable-groups'); |
|
|
|
var oldUsers = $tr.find('.applicable').data('applicable-users'); |
|
|
|
var groups = []; |
|
|
|
var users = []; |
|
|
|
$.each(multiselect, function(index, value) { |
|
|
|
@ -102,7 +102,7 @@ OC.MountConfig={ |
|
|
|
oldMountPoint: oldMountPoint |
|
|
|
}, |
|
|
|
success: function(result) { |
|
|
|
$(tr).find('.mountPoint input').data('mountpoint', mountPoint); |
|
|
|
$tr.find('.mountPoint input').data('mountpoint', mountPoint); |
|
|
|
status = updateStatus(statusSpan, result); |
|
|
|
if (callback) { |
|
|
|
callback(status); |
|
|
|
@ -116,8 +116,8 @@ OC.MountConfig={ |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
$(tr).find('.applicable').data('applicable-groups', groups); |
|
|
|
$(tr).find('.applicable').data('applicable-users', users); |
|
|
|
$tr.find('.applicable').data('applicable-groups', groups); |
|
|
|
$tr.find('.applicable').data('applicable-users', users); |
|
|
|
var mountType = 'group'; |
|
|
|
$.each(oldGroups, function(index, applicable) { |
|
|
|
$.ajax({type: 'POST', |
|
|
|
@ -163,7 +163,7 @@ OC.MountConfig={ |
|
|
|
oldMountPoint: oldMountPoint |
|
|
|
}, |
|
|
|
success: function(result) { |
|
|
|
$(tr).find('.mountPoint input').data('mountpoint', mountPoint); |
|
|
|
$tr.find('.mountPoint input').data('mountpoint', mountPoint); |
|
|
|
status = updateStatus(statusSpan, result); |
|
|
|
if (callback) { |
|
|
|
callback(status); |
|
|
|
@ -183,20 +183,23 @@ OC.MountConfig={ |
|
|
|
}; |
|
|
|
|
|
|
|
$(document).ready(function() { |
|
|
|
var $externalStorage = $('#externalStorage'); |
|
|
|
|
|
|
|
//initialize hidden input field with list of users and groups
|
|
|
|
$('#externalStorage').find('tr:not(#addMountPoint)').each(function(i,tr) { |
|
|
|
var applicable = $(tr).find('.applicable'); |
|
|
|
if (applicable.length > 0) { |
|
|
|
var groups = applicable.data('applicable-groups'); |
|
|
|
$externalStorage.find('tr:not(#addMountPoint)').each(function(i,tr) { |
|
|
|
var $tr = $(tr); |
|
|
|
var $applicable = $tr.find('.applicable'); |
|
|
|
if ($applicable.length > 0) { |
|
|
|
var groups = $applicable.data('applicable-groups'); |
|
|
|
var groupsId = []; |
|
|
|
$.each(groups, function () { |
|
|
|
groupsId.push(this+"(group)"); |
|
|
|
groupsId.push(this + '(group)'); |
|
|
|
}); |
|
|
|
var users = applicable.data('applicable-users'); |
|
|
|
var users = $applicable.data('applicable-users'); |
|
|
|
if (users.indexOf('all') > -1) { |
|
|
|
$(tr).find('.applicableUsers').val(''); |
|
|
|
$tr.find('.applicableUsers').val(''); |
|
|
|
} else { |
|
|
|
$(tr).find('.applicableUsers').val(groupsId.concat(users).join(',')); |
|
|
|
$tr.find('.applicableUsers').val(groupsId.concat(users).join(',')); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
@ -221,7 +224,7 @@ $(document).ready(function() { |
|
|
|
}; |
|
|
|
}, |
|
|
|
results: function (data, page) { |
|
|
|
if (data.status === "success") { |
|
|
|
if (data.status === 'success') { |
|
|
|
|
|
|
|
var results = []; |
|
|
|
var userCount = 0; // users is an object
|
|
|
|
@ -256,10 +259,10 @@ $(document).ready(function() { |
|
|
|
type: 'POST', |
|
|
|
contentType: 'application/json', |
|
|
|
data: JSON.stringify(users), |
|
|
|
dataType: "json" |
|
|
|
dataType: 'json' |
|
|
|
}).done(function(data) { |
|
|
|
var results = []; |
|
|
|
if (data.status === "success") { |
|
|
|
if (data.status === 'success') { |
|
|
|
$.each(data.users, function(user, displayname) { |
|
|
|
if (displayname !== false) { |
|
|
|
results.push({name:user, displayname:displayname, type:'user'}); |
|
|
|
@ -294,9 +297,9 @@ $(document).ready(function() { |
|
|
|
} |
|
|
|
}, |
|
|
|
escapeMarkup: function (m) { return m; } // we escape the markup in formatResult and formatSelection
|
|
|
|
}).on("select2-loaded", function() { |
|
|
|
$.each($(".avatardiv"), function(i, div) { |
|
|
|
$div = $(div); |
|
|
|
}).on('select2-loaded', function() { |
|
|
|
$.each($('.avatardiv'), function(i, div) { |
|
|
|
var $div = $(div); |
|
|
|
if ($div.data('type') === 'user') { |
|
|
|
$div.avatar($div.data('name'),32); |
|
|
|
} |
|
|
|
@ -306,21 +309,21 @@ $(document).ready(function() { |
|
|
|
} |
|
|
|
addSelect2($('tr:not(#addMountPoint) .applicableUsers')); |
|
|
|
|
|
|
|
$('#externalStorage').on('change', '#selectBackend', function() { |
|
|
|
var tr = $(this).closest("tr"); |
|
|
|
$('#externalStorage tbody').append($(tr).clone()); |
|
|
|
$('#externalStorage tbody tr').last().find('.mountPoint input').val(''); |
|
|
|
$externalStorage.on('change', '#selectBackend', function() { |
|
|
|
var $tr = $(this).closest('tr'); |
|
|
|
$externalStorage.find('tbody').append($tr.clone()); |
|
|
|
$externalStorage.find('tbody tr').last().find('.mountPoint input').val(''); |
|
|
|
var selected = $(this).find('option:selected').text(); |
|
|
|
var backendClass = $(this).val(); |
|
|
|
$(tr).find('.backend').text(selected); |
|
|
|
if ($(tr).find('.mountPoint input').val() === '') { |
|
|
|
$(tr).find('.mountPoint input').val(suggestMountPoint(selected)); |
|
|
|
$tr.find('.backend').text(selected); |
|
|
|
if ($tr.find('.mountPoint input').val() === '') { |
|
|
|
$tr.find('.mountPoint input').val(suggestMountPoint(selected)); |
|
|
|
} |
|
|
|
$(tr).addClass(backendClass); |
|
|
|
$(tr).find('.status').append('<span></span>'); |
|
|
|
$(tr).find('.backend').data('class', backendClass); |
|
|
|
$tr.addClass(backendClass); |
|
|
|
$tr.find('.status').append('<span></span>'); |
|
|
|
$tr.find('.backend').data('class', backendClass); |
|
|
|
var configurations = $(this).data('configurations'); |
|
|
|
var td = $(tr).find('td.configuration'); |
|
|
|
var $td = $tr.find('td.configuration'); |
|
|
|
$.each(configurations, function(backend, parameters) { |
|
|
|
if (backend === backendClass) { |
|
|
|
$.each(parameters['configuration'], function(parameter, placeholder) { |
|
|
|
@ -342,20 +345,20 @@ $(document).ready(function() { |
|
|
|
newElement = $('<input type="text" class="added' + class_string + '" data-parameter="'+parameter+'" placeholder="'+placeholder+'" />'); |
|
|
|
} |
|
|
|
highlightInput(newElement); |
|
|
|
td.append(newElement); |
|
|
|
$td.append(newElement); |
|
|
|
}); |
|
|
|
if (parameters['custom'] && $('#externalStorage tbody tr.'+backendClass.replace(/\\/g, '\\\\')).length === 1) { |
|
|
|
if (parameters['custom'] && $externalStorage.find('tbody tr.'+backendClass.replace(/\\/g, '\\\\')).length === 1) { |
|
|
|
OC.addScript('files_external', parameters['custom']); |
|
|
|
} |
|
|
|
td.children().not('[type=hidden]').first().focus(); |
|
|
|
$td.children().not('[type=hidden]').first().focus(); |
|
|
|
return false; |
|
|
|
} |
|
|
|
}); |
|
|
|
$(tr).find('td').last().attr('class', 'remove'); |
|
|
|
$(tr).find('td').last().removeAttr('style'); |
|
|
|
$(tr).removeAttr('id'); |
|
|
|
$tr.find('td').last().attr('class', 'remove'); |
|
|
|
$tr.find('td').last().removeAttr('style'); |
|
|
|
$tr.removeAttr('id'); |
|
|
|
$(this).remove(); |
|
|
|
addSelect2(tr.find('.applicableUsers')); |
|
|
|
addSelect2($tr.find('.applicableUsers')); |
|
|
|
}); |
|
|
|
|
|
|
|
function suggestMountPoint(defaultMountPoint) { |
|
|
|
@ -369,7 +372,7 @@ $(document).ready(function() { |
|
|
|
var match = true; |
|
|
|
while (match && i < 20) { |
|
|
|
match = false; |
|
|
|
$('#externalStorage tbody td.mountPoint input').each(function(index, mountPoint) { |
|
|
|
$externalStorage.find('tbody td.mountPoint input').each(function(index, mountPoint) { |
|
|
|
if ($(mountPoint).val() === defaultMountPoint+append) { |
|
|
|
match = true; |
|
|
|
return false; |
|
|
|
@ -385,54 +388,54 @@ $(document).ready(function() { |
|
|
|
return defaultMountPoint+append; |
|
|
|
} |
|
|
|
|
|
|
|
$('#externalStorage').on('paste', 'td input', function() { |
|
|
|
var tr = $(this).closest("tr"); |
|
|
|
var me = this; |
|
|
|
$externalStorage.on('paste', 'td input', function() { |
|
|
|
var $me = $(this); |
|
|
|
var $tr = $me.closest('tr'); |
|
|
|
setTimeout(function() { |
|
|
|
highlightInput($(me)); |
|
|
|
OC.MountConfig.saveStorage(tr); |
|
|
|
highlightInput($me); |
|
|
|
OC.MountConfig.saveStorage($tr); |
|
|
|
}, 20); |
|
|
|
}); |
|
|
|
|
|
|
|
var timer; |
|
|
|
|
|
|
|
$('#externalStorage').on('keyup', 'td input', function() { |
|
|
|
$externalStorage.on('keyup', 'td input', function() { |
|
|
|
clearTimeout(timer); |
|
|
|
var tr = $(this).closest("tr"); |
|
|
|
var $tr = $(this).closest('tr'); |
|
|
|
highlightInput($(this)); |
|
|
|
if ($(this).val) { |
|
|
|
timer = setTimeout(function() { |
|
|
|
OC.MountConfig.saveStorage(tr); |
|
|
|
OC.MountConfig.saveStorage($tr); |
|
|
|
}, 2000); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
$('#externalStorage').on('change', 'td input:checkbox', function() { |
|
|
|
OC.MountConfig.saveStorage($(this).closest("tr")); |
|
|
|
$externalStorage.on('change', 'td input:checkbox', function() { |
|
|
|
OC.MountConfig.saveStorage($(this).closest('tr')); |
|
|
|
}); |
|
|
|
|
|
|
|
$('#externalStorage').on('change', '.applicable', function() { |
|
|
|
OC.MountConfig.saveStorage($(this).closest("tr")); |
|
|
|
$externalStorage.on('change', '.applicable', function() { |
|
|
|
OC.MountConfig.saveStorage($(this).closest('tr')); |
|
|
|
}); |
|
|
|
|
|
|
|
$('#externalStorage').on('click', '.status>span', function() { |
|
|
|
OC.MountConfig.saveStorage($(this).closest("tr")); |
|
|
|
$externalStorage.on('click', '.status>span', function() { |
|
|
|
OC.MountConfig.saveStorage($(this).closest('tr')); |
|
|
|
}); |
|
|
|
|
|
|
|
$('#sslCertificate').on('click', 'td.remove>img', function() { |
|
|
|
var $tr = $(this).closest("tr"); |
|
|
|
var $tr = $(this).closest('tr'); |
|
|
|
$.post(OC.filePath('files_external', 'ajax', 'removeRootCertificate.php'), {cert: $tr.attr('id')}); |
|
|
|
$tr.remove(); |
|
|
|
return true; |
|
|
|
}); |
|
|
|
|
|
|
|
$('#externalStorage').on('click', 'td.remove>img', function() { |
|
|
|
var tr = $(this).closest('tr'); |
|
|
|
var mountPoint = $(tr).find('.mountPoint input').val(); |
|
|
|
$externalStorage.on('click', 'td.remove>img', function() { |
|
|
|
var $tr = $(this).closest('tr'); |
|
|
|
var mountPoint = $tr.find('.mountPoint input').val(); |
|
|
|
|
|
|
|
if ($('#externalStorage').data('admin') === true) { |
|
|
|
if ($externalStorage.data('admin') === true) { |
|
|
|
var isPersonal = false; |
|
|
|
var multiselect = getSelection($(tr)); |
|
|
|
var multiselect = getSelection($tr); |
|
|
|
$.each(multiselect, function(index, value) { |
|
|
|
var pos = value.indexOf('(group)'); |
|
|
|
if (pos != -1) { |
|
|
|
@ -450,10 +453,11 @@ $(document).ready(function() { |
|
|
|
var isPersonal = true; |
|
|
|
$.post(OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), { mountPoint: mountPoint, mountType: mountType, applicable: applicable, isPersonal: isPersonal }); |
|
|
|
} |
|
|
|
$(tr).remove(); |
|
|
|
$tr.remove(); |
|
|
|
}); |
|
|
|
|
|
|
|
$('#allowUserMounting').bind('change', function() { |
|
|
|
var $allowUserMounting = $('#allowUserMounting'); |
|
|
|
$allowUserMounting.bind('change', function() { |
|
|
|
OC.msg.startSaving('#userMountingMsg'); |
|
|
|
if (this.checked) { |
|
|
|
OC.AppConfig.setValue('files_external', 'allow_user_mounting', 'yes'); |
|
|
|
@ -475,8 +479,8 @@ $(document).ready(function() { |
|
|
|
|
|
|
|
// disable allowUserMounting
|
|
|
|
if(userMountingBackends.length === 0) { |
|
|
|
$('#allowUserMounting').prop('checked', false); |
|
|
|
$('#allowUserMounting').trigger('change'); |
|
|
|
$allowUserMounting.prop('checked', false); |
|
|
|
$allowUserMounting.trigger('change'); |
|
|
|
|
|
|
|
} |
|
|
|
}); |
|
|
|
|