|
@@ -68,6 +68,55 @@
|
|
|
</div>
|
|
|
</label>
|
|
|
</div>
|
|
|
+ <br><br>
|
|
|
+ <div class="ui accordion" id="advanceShare">
|
|
|
+ <div class="title">
|
|
|
+ <i class="dropdown icon"></i>
|
|
|
+ <span locale="share/setting/advance/title">Advance Share Options</span>
|
|
|
+ </div>
|
|
|
+ <div class="content">
|
|
|
+ <div class="ui radio checkbox">
|
|
|
+ <input id="users" type="radio" class="shareoption" value="users" name="shareopt" onchange="updateSharePermission(this);">
|
|
|
+ <label for="users">
|
|
|
+ <div class="ui header">
|
|
|
+ <div class="content whiteTheme">
|
|
|
+ <i class="clipboard check icon"></i> <span locale="share/setting/advance/users">Selected Users</span>
|
|
|
+ <div class="sub header whiteTheme" locale="share/setting/advance/usersDesc">Selected users with matching user name</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </label>
|
|
|
+ </div>
|
|
|
+ <div id="userselector">
|
|
|
+ <p style="margin-top: 1em;" locale="share/setting/advance/usersInstruct"">Select target users from the list below</p>
|
|
|
+ <select id="targetUsersList" class="ui fluid search dropdown" multiple="">
|
|
|
+ <option value="">Users</option>
|
|
|
+ </select>
|
|
|
+ <div id="noUserWarning" class="ui yellow message" style="display:none;">
|
|
|
+ <i class="caret up icon"></i> <span locale="share/setting/advance/addUserToSave">Add at least one target share user to save changes</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="ui radio checkbox" style="margin-top: 1em;">
|
|
|
+ <input id="groups" type="radio" class="shareoption" value="groups" name="shareopt" onchange="updateSharePermission(this);">
|
|
|
+ <label for="groups">
|
|
|
+ <div class="ui header">
|
|
|
+ <div class="content whiteTheme">
|
|
|
+ <i class="sitemap icon"></i> <span locale="share/setting/advance/groups">Selected Groups</span>
|
|
|
+ <div class="sub header whiteTheme" locale="share/setting/advance/groupsDesc">All the users that has access to any one of the selected group(s)</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </label>
|
|
|
+ </div>
|
|
|
+ <div id="groupselector">
|
|
|
+ <p style="margin-top: 1em;" locale="share/setting/advance/groupsInstruct">Select target groups from the list below</p>
|
|
|
+ <select id="targetGroupList" class="ui fluid search dropdown" multiple="">
|
|
|
+ <option value="">Groups</option>
|
|
|
+ </select>
|
|
|
+ <div id="noGroupWarning" class="ui yellow message" style="display:none;">
|
|
|
+ <i class="caret up icon"></i> <span locale="share/setting/advance/addGroupToSave">Add at least one target share group to save changes</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<br><br>
|
|
|
<div id="udpateNotification" style="display:none;" class="ui green inverted segment">
|
|
|
<i class=" checkmark icon"></i> <span locale="share/setting/updated">Share Setting Updated</span>
|
|
@@ -118,6 +167,24 @@
|
|
|
if (initialized){
|
|
|
return;
|
|
|
}
|
|
|
+
|
|
|
+ //Load User & Group List
|
|
|
+ $.get(relpath + "../system/users/list", function(data){
|
|
|
+ var groups = {};
|
|
|
+ $("#targetUsersList").html(`<option value="">Users</option>`);
|
|
|
+ data.forEach(user => {
|
|
|
+ $("#targetUsersList").append(`<option value="${user[0]}">${user[0]}</option>`);
|
|
|
+ var userGroups = user[1];
|
|
|
+ userGroups.forEach(thisGroup => {
|
|
|
+ groups[thisGroup] = true;
|
|
|
+ });
|
|
|
+ });
|
|
|
+ $("#targetGroupList").html(`<option value="">Groups</option>`);
|
|
|
+ for (var [key, value] of Object.entries(groups)) {
|
|
|
+ $("#targetGroupList").append(`<option value="${key}">${key}</option>`);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
initialized = true;
|
|
|
//Do localization
|
|
|
applocale.init(relpath + "../SystemAO/locale/file_share.json", function(){
|
|
@@ -125,6 +192,8 @@
|
|
|
});
|
|
|
|
|
|
$(".checkbox").checkbox();
|
|
|
+ $(".dropdown").dropdown();
|
|
|
+ $(".accordion").accordion();
|
|
|
var inputFile = ao_module_loadInputFiles();
|
|
|
if (inputFile == null){
|
|
|
//No file selected
|
|
@@ -186,6 +255,7 @@
|
|
|
if (data.error !== undefined){
|
|
|
alert(data.error);
|
|
|
}else{
|
|
|
+ console.log(data);
|
|
|
updateShareLinkInfo(data.UUID);
|
|
|
shareEditingUUID = data.UUID;
|
|
|
$(".shareoption").each(function(){
|
|
@@ -193,10 +263,32 @@
|
|
|
$(this)[0].checked = false;
|
|
|
}else{
|
|
|
$(this)[0].checked = true;
|
|
|
+ if (data.Permission == "users"){
|
|
|
+ $("#advanceShare").accordion("open", 0);
|
|
|
+ $("#targetUsersList").dropdown("set selected", data.Accessibles);
|
|
|
+ $("#targetUsersList").parent().removeClass("disabled");
|
|
|
+ $("#targetGroupList").parent().addClass("disabled");
|
|
|
+ }else if (data.Permission == "groups"){
|
|
|
+ $("#advanceShare").accordion("open", 0);
|
|
|
+ $("#targetGroupList").dropdown("set selected", data.Accessibles);
|
|
|
+ $("#targetUsersList").parent().addClass("disabled");
|
|
|
+ $("#targetGroupList").parent().removeClass("disabled");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
+
|
|
|
+ $("#targetUsersList").on("change", function(evt){
|
|
|
+ updateSharePermissionByType("users");
|
|
|
+ });
|
|
|
+
|
|
|
+ $("#targetGroupList").on("change", function(evt){
|
|
|
+ updateSharePermissionByType("groups");
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//If the file is from desktop, set share icon
|
|
|
if (ao_module_virtualDesktop == true){
|
|
|
var fileDir = shareingFileData.filepath.split("/");
|
|
@@ -253,6 +345,40 @@
|
|
|
|
|
|
function updateSharePermission(object){
|
|
|
var newPermission = $(object).attr('value');
|
|
|
+ updateSharePermissionByType(newPermission);
|
|
|
+ }
|
|
|
+
|
|
|
+ function updateSharePermissionByType(newPermission){
|
|
|
+ if (newPermission == "users"){
|
|
|
+ //Build the user list
|
|
|
+ $("#targetUsersList").parent().removeClass("disabled");
|
|
|
+ $("#targetGroupList").parent().addClass("disabled");
|
|
|
+ var selectedUsers = $("#targetUsersList").val();
|
|
|
+ if (selectedUsers.length == 0){
|
|
|
+ //Show tips message
|
|
|
+ $("#noUserWarning").slideDown("fast");
|
|
|
+ return;
|
|
|
+ }else{
|
|
|
+ $("#noUserWarning").slideUp("fast");
|
|
|
+ }
|
|
|
+ //Rewrite it to permission handling description
|
|
|
+ newPermission = "users:" + selectedUsers.join(",");
|
|
|
+ }else if (newPermission == "groups"){
|
|
|
+ //Build the group list
|
|
|
+ $("#targetUsersList").parent().addClass("disabled");
|
|
|
+ $("#targetGroupList").parent().removeClass("disabled");
|
|
|
+ var selectedGroups = $("#targetGroupList").val();
|
|
|
+ if (selectedGroups.length == 0){
|
|
|
+ //Show tips message
|
|
|
+ $("#noGroupWarning").slideDown("fast");
|
|
|
+ return;
|
|
|
+ }else{
|
|
|
+ $("#noGroupWarning").slideUp("fast");
|
|
|
+ }
|
|
|
+ //Rewrite it to permission handling description
|
|
|
+ newPermission = "groups:" + selectedGroups.join(",");
|
|
|
+ }
|
|
|
+
|
|
|
$.ajax({
|
|
|
url: relpath + "../system/file_system/share/edit",
|
|
|
data: {uuid: shareEditingUUID, mode: newPermission},
|
|
@@ -264,7 +390,7 @@
|
|
|
$("#udpateNotification").slideDown("fast").delay(3000).slideUp("fast");
|
|
|
}
|
|
|
});
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
function updateShareLinkInfo(uuid){
|
|
|
$("#qrcode").html("");
|