diff --git a/admin/themes/clear/theme.css b/admin/themes/clear/theme.css index dacc008ff..c62e929a7 100644 --- a/admin/themes/clear/theme.css +++ b/admin/themes/clear/theme.css @@ -329,17 +329,17 @@ p.albumTitle img {margin-bottom:-3px;} .groups .GroupContainer, .groups .showCreateGroup, .groups .addGroupFormBlock{ - box-shadow: -1px 1px 2px #e7e7e7; + box-shadow: 0px 0px 5px #acacac; } -.groups .showCreateGroup:hover #addGroup, +.groups #addGroupForm:hover #addGroup, .groups .addGroupFormTitle{ color:#3c3c3c; text-decoration:none; } .groups #addGroup{ - color:#d5d5d5; + color:#777; } .groups .group_number_users{ @@ -410,9 +410,7 @@ label>p.group_select { color:#3c3c3c; } -.groups #GroupPermission:hover, -.groups #GroupDuplicate:hover, -.groups #GroupDelete:hover{ +.group-dropdown-option:hover{ background-color:#e7e7e7; } diff --git a/admin/themes/default/js/group_list.js b/admin/themes/default/js/group_list.js index 69ff913c5..d80730ad9 100644 --- a/admin/themes/default/js/group_list.js +++ b/admin/themes/default/js/group_list.js @@ -35,20 +35,31 @@ $("#cancel").click(function () { /*------- Add Group toggle -------*/ +var isToggle = true; +$(".addGroupBlock").on("click", function() { + if (isToggle) deployAddGroupForm() + else hideAddGroupForm(); +}) -$("#showAddGroup").click(function () { - $("#addGroupForm").css("display", "inline-block"); - $("#showAddGroup").css("display", "none"); -}); +var deployAddGroupForm = function () { + $(".addGroupBlock").animate({ + top: "20%", + padding: "0px" + }, 400, complete=function(){ + $("#addGroupForm form").fadeIn(); + }); + isToggle = false; +} -var closeAddGroup = function () { - $("#addGroupForm").css("display", "none"); - $("#showAddGroup").css("display", "inline-block"); -}; - -$("#addGroupClose").click(closeAddGroup); - -$(".actionButtons input").click(closeAddGroup); +var hideAddGroupForm = function () { + $("#addGroupForm form").fadeOut(function(){ + $(".addGroupBlock").animate({ + top: "50%", + padding: "100px 0" + }, 400) + }); + isToggle = true; +} /*------- Add Group Submit @@ -76,7 +87,7 @@ jQuery(document).ready(function () { newgroup.find(".Group-checkbox input").attr("id", "Group-Checkbox-selection-" + id); newgroup.find(".input-edit-group-name").attr("placeholder", name); newgroup.find(".group_number_users").html("0 " + member_default); - + hideAddGroupForm(); //Setup the icon color var colors = [["#ffa744", "#ffe9cf"],["#896af3", "#e0daf4"], ["#6ece5e","#d6ffcf"],["#2883c3","#cfebff"]]; var colorId = Number(id)%4; @@ -93,7 +104,6 @@ jQuery(document).ready(function () { $("#showAddGroup .groupError").html(name_taken); $("#showAddGroup .groupError").fadeIn(); $("#showAddGroup .groupError").delay(3000).fadeOut(); - $("#showAddGroup .groupError").delay(10).html(contents); } }, error: function (err) { @@ -182,35 +192,39 @@ var setupGroupBox = function (groupBox) { }); /* Set the rename action */ - let contents = groupBox.find("#group_name").html(); - groupBox.find("#group_name").blur(function() { - if (contents!=groupBox.find("#group_name").html()){ - jQuery.ajax({ - url: "ws.php?format=json&method=pwg.groups.setInfo", - type: "POST", - data: "group_id=" + id + "&pwg_token=" + pwg_token + "&name="+groupBox.find("#group_name").html(), - success: function (raw_data) { - data = jQuery.parseJSON(raw_data); - if (data.stat === "ok") { - groupBox.find(".groupMessage").html(renaming_done); - groupBox.find(".groupMessage").fadeIn(); - groupBox.find(".groupMessage").delay(3000).fadeOut(); - contents = groupBox.find("#group_name").html(); - } else { - groupBox.find(".groupError").html(name_taken); - groupBox.find(".groupError").fadeIn(); - groupBox.find(".groupError").delay(3000).fadeOut(); - groupBox.find("#group_name").delay(10).html(contents); - } - }, - error: function (err) { - console.log(err); - }, - }); + groupBox.find(".Group-name .icon-pencil").on("click", function () { + groupBox.find(".Group-name-container form").show(); + groupBox.find(".Group-name-container .icon-pencil").hide(); + groupBox.find(".Group-name-container .icon-ok").show(); + groupBox.find(".Group-name-container p").css("opacity", 0) + }); + + groupBox.find(".Group-name-container .icon-ok").on("click", function () { + renameGroup(id, groupBox.find(".group_name-editable").val()) + }); + + groupBox.find(".Group-name-container form").on("submit", function (e) { + e.preventDefault(); + renameGroup(id, groupBox.find(".group_name-editable").val()) + }); + + /* Hide group options and rename field on click on the screen */ + + $(document).mouseup(function (e) { + if ($(e.target).closest("#group-"+id+" #GroupOptions").length === 0) { + groupBox.find(".group-dropdown-options #GroupOptions").hide(); + } + if ($(e.target).closest("#group-"+id+" .Group-name").length === 0) { + groupBox.find(".Group-name-container form").hide(); + groupBox.find(".Group-name-container .icon-pencil").removeAttr("style"); + groupBox.find(".Group-name-container .icon-ok").hide(); + groupBox.find(".Group-name-container p").css("opacity", 1); + groupBox.find(".group_name-editable").val(groupBox.find(".Group-name-container p").html()); } }); }; +/* Group Ajax Functions */ var deleteGroup = function (id) { jQuery.ajax({ url: "ws.php?format=json&method=pwg.groups.delete", @@ -228,6 +242,40 @@ var deleteGroup = function (id) { }); }; +var renameGroup = function(id, newName) { + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.groups.setInfo", + type: "POST", + data: "group_id=" + id + "&pwg_token=" + pwg_token + "&name="+newName, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + newName = data.result.groups[0].name; + //Display message + $("#group-" + id).find(".groupMessage").html(renaming_done); + $("#group-" + id).find(".groupMessage").fadeIn(); + $("#group-" + id).find(".groupMessage").delay(3000).fadeOut(); + $("#group-" + id).find("#group_name").html(newName); + + //Hide editable field + $("#group-" + id).find(".Group-name-container form").hide(); + $("#group-" + id).find(".Group-name-container span").show(); + $("#group-" + id).find(".Group-name-container .icon-ok").hide(); + $("#group-" + id).find(".Group-name-container p").css("opacity", 1) + } else { + //Display error message + $("#group-" + id).find(".groupError").html(name_taken); + $("#group-" + id).find(".groupError").fadeIn(); + $("#group-" + id).find(".groupError").delay(3000).fadeOut(); + } + }, + error: function (err) { + console.log(err); + }, + }); +} + + /*------- Selection mode toggle actions, changes "..." in group block to checkbox, @@ -237,14 +285,13 @@ var deleteGroup = function (id) { $(function () { $("#toggleSelectionMode").click(function () { if ($(this).is(":checked")) { - $(".in-selection-mode").fadeIn(); - $(".not-in-selection-mode").fadeOut(); + $(".in-selection-mode").show(); + $(".not-in-selection-mode").hide(); $("#group_name").attr("contenteditable", false); $(".GroupManagerButtons").removeClass("visible"); } else { $(".in-selection-mode").fadeOut(); - $(".not-in-selection-mode").fadeIn(); - $(".GroupManagerButtons").addClass("visible"); + $(".not-in-selection-mode").removeAttr("style"); $(".Group-checkbox input").attr("checked", false); $(".Group-checkbox input[type='checkbox']").trigger("change"); $("#group_name").attr("contenteditable", true); @@ -252,16 +299,6 @@ $(function () { }); }); -/*------- - Hide group options on click on the screen - -------*/ - -$(document).mouseup(function (e) { - if ($(e.target).closest("#GroupOptions").length === 0) { - $(".group-dropdown-options #GroupOptions").hide(); - } -}); - /*------- Update Selection Panel -------*/ @@ -272,14 +309,20 @@ var updateSelectionPanel = function (changedState = "") { if (numSelect == 0) { updateStatePanel("NoSelection") - } else if (numSelect == 1 && (state == "OptionMerge" || state == "NoSelection" || state == "Selection")) { - updateStatePanel("OneSelected") - } else if (changedState != "") { - updateStatePanel(changedState) - } else if (numSelect > 1 && state == "OneSelected") { - updateStatePanel("Selection"); + } else if (changedState == "") { + if (numSelect == 1 && state != "ConfirmDeletion") + updateStatePanel("OneSelected") + if (numSelect > 1 && state == "OneSelected") + updateStatePanel("Selection"); + } else { + if (changedState == "Selection" && numSelect == 1) + updateStatePanel("OneSelected") + else + updateStatePanel(changedState) } + console.log(state); + $(".number-Selected").html(numSelect + ""); }; @@ -291,7 +334,9 @@ var updateStatePanel = function (newState = "Selection") { switch (newState) { case "OneSelected": $("#DeleteSelectionMode").show(); - $("#MergeSelectionMode").hide(); + $("#MergeSelectionMode").show(); + buttonUnavailable($("#MergeSelectionMode")); + buttonAvailable($("#DeleteSelectionMode"), "updateSelectionPanel('ConfirmDeletion')"); $("#MergeOptionsBlock").hide(); $("#ConfirmGroupAction").hide(); break; @@ -304,6 +349,8 @@ var updateStatePanel = function (newState = "Selection") { case "Selection": $("#DeleteSelectionMode").show(); $("#MergeSelectionMode").show(); + buttonAvailable($("#MergeSelectionMode"), "updateSelectionPanel('OptionMerge')"); + buttonAvailable($("#DeleteSelectionMode"), "updateSelectionPanel('ConfirmDeletion')"); $("#MergeOptionsBlock").hide(); $("#ConfirmGroupAction").hide(); break; @@ -315,6 +362,10 @@ var updateStatePanel = function (newState = "Selection") { break; } if (newState == "NoSelection") { + $("#DeleteSelectionMode").show(); + $("#MergeSelectionMode").show(); + buttonUnavailable($("#MergeSelectionMode")); + buttonUnavailable($("#DeleteSelectionMode")); $(".SelectionModeGroup").hide(); $("#nothing-selected").show(); $("#MergeOptionsBlock").hide(); @@ -325,6 +376,16 @@ var updateStatePanel = function (newState = "Selection") { } }; +var buttonAvailable = function(button, onClick) { + button.removeClass("unavailable"); + button.attr("OnClick", onClick); +} + +var buttonUnavailable = function(button) { + button.addClass("unavailable"); + button.removeAttr("OnClick"); +} + /*------- Delete function on button's pannel -------*/ diff --git a/admin/themes/default/template/group_list.tpl b/admin/themes/default/template/group_list.tpl index 6e1e63306..4f3e6c247 100644 --- a/admin/themes/default/template/group_list.tpl +++ b/admin/themes/default/template/group_list.tpl @@ -1,8 +1,8 @@ {footer_script} var pwg_token = "{$PWG_TOKEN}"; var member_default = "{'member'|@translate}" -var group_created = "{'Group created'|@translate}" -var renaming_done = "{'Renaming done'|@translate}" +var group_created = "{'Group added'|@translate}" +var renaming_done = "{'Group renamed'|@translate}" var name_taken = "{'Name is already taken'|@translate}" {/footer_script} @@ -12,44 +12,52 @@ var name_taken = "{'Name is already taken'|@translate}" {function name=groupContent} {function groupContent}
-
-
-
-
-
- -
-
- - -
-
-
- -
- -
-

{$grp_name}

+
+
+
+
+
+ +
+
+ + + +
+
+ +
+ +
+ + +

{$grp_name}

+
+ + +
+
+ + +
+ +
+ + + {'Cancel'|@translate} +
+ +

{$grp_members}

-
- - - {'Cancel'|@translate} -
- -

{$grp_members}

- - + Manage users + Manage permissions
{/function} {/function} @@ -79,8 +87,8 @@ var name_taken = "{'Name is already taken'|@translate}"
- - + +
@@ -110,31 +118,25 @@ var name_taken = "{'Name is already taken'|@translate}"
-
+
-
+

{'Add group'|translate}

-
- -
-
-
-
-

{'Add group'|@translate}

-
-

{'Group name'|translate}

- -
- - -
-
-
+
+
+
+ + +
+ + +
+
{* Template Group (for js application) *} diff --git a/admin/themes/default/theme.css b/admin/themes/default/theme.css index d8854acf1..4fb233aec 100644 --- a/admin/themes/default/theme.css +++ b/admin/themes/default/theme.css @@ -1477,6 +1477,8 @@ FORM#categoryOrdering p.albumActions .userSeparator {margin:0 5px;} .albumBlock {display: flex; justify-content: space-between; padding: 10px 10px 0 10px;} .albumBlock .albumLineBlock {display: block; padding-left: 7px; max-width: 45%; height: 50px;} +.showCreateAlbum {text-align:left; margin:0 1em 25px 20px; line-height:22px;} +.showCreateAlbum .userSeparator {margin:0 5px;} #addAlbumOpen, #autoOrderOpen {padding: 7px 15px; font-weight: bold; font-size: 11px;} .afterUploadActions {text-align: center; margin-bottom: 30px !important;} .afterUploadActions a {justify-content: center; margin: 35px; font-weight: bold; font-size: 14px; padding: 10px 12px;} @@ -1532,16 +1534,9 @@ input[type="text"].dError {border-color:#ff7070; background-color:#FFe5e5;} margin-left:5px; } -.showCreateGroup { - order: -10000000000; - text-align: left; - margin: 0 1em 25px 20px; - line-height: 22px; -} - .content .groups form{ margin:0; - margin-top: 40px; + margin-top: 115px; } .groups { @@ -1554,10 +1549,6 @@ input[type="text"].dError {border-color:#ff7070; background-color:#FFe5e5;} margin-right:224px; } -.groups .GroupContainer{ - display:inline-block; -} - .remove-item { flex: 1; -webkit-animation: flexShrink 500ms ease forwards; @@ -1569,34 +1560,78 @@ input[type="text"].dError {border-color:#ff7070; background-color:#FFe5e5;} width:100%; } -.groups .GroupContainer, -.groups .addGroupFormBlock { +.groups .GroupContainer { vertical-align: middle; position: relative; - display: inline-block; + display: flex; + flex-direction: column; text-align: left; height: 286px; width: 220px; margin: 15px; border-radius: 10px; + align-items: center; + justify-content: space-between; +} + +.groupHeader { + width: 100%; } .groups .Group-name .Group-name-container p{ - margin: 0; + margin: auto; padding: 2px; text-align: center; font-weight:700; + max-width: 170px; } .groups .Group-name .Group-name-container p:focus{ margin:0 30px; } +.Group-name-container form{ + margin: 0 !important; + position: absolute; + top : 0px; + transform: translate(-1px, -5px); + display: none; +} + +.Group-name-container .icon-ok{ + display: none; + position:absolute; + top: 2px; + left: 190px; + cursor: pointer; + z-index: 2; +} + +.Group-name-container .icon-ok:hover{ + color: #ffa744; +} + +.Group-name-container form input{ + text-align: center; + width: 200px; + margin: 4px; + margin-top: 0px; + background: none !important; + border-radius: 10px; + border: 2px solid #89a6ee !important; + font-weight: bold; + color: #3c3c3c; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; +} + .addGroupLabel { margin: 0; border-radius: 5px 5px 0 0; padding: 2px; - text-align: center; + position: absolute; + left: 11px; + top: -11px; + font-size: 14px; } .groups .icon-users-1{ @@ -1610,32 +1645,6 @@ input[type="text"].dError {border-color:#ff7070; background-color:#FFe5e5;} margin:5px; } -.groups .showCreateGroup{ - vertical-align: middle; - position: relative; - display: inline-block; - height: 286px; - width: 220px; - margin: 15px; - border-radius:10px; - margin-left:15px; -} - -.groups .showCreateGroup a:first-child{ - position: absolute; - transform:translate(-50%,-50%); - top:50%; - left:50%; -} - -.groups .showCreateGroup .userSeparator{ - margin:0 5px; -} - -.groups #addGroupForm { - order: -10000000000; -} - .groups .addGroupFormTitle{ font-size:1.2em; font-weight:700; @@ -1645,7 +1654,7 @@ input[type="text"].dError {border-color:#ff7070; background-color:#FFe5e5;} padding:5px; } -.groupHeader { +.groupIcon { margin:15px auto; } @@ -1663,21 +1672,23 @@ input[type="text"].dError {border-color:#ff7070; background-color:#FFe5e5;} .groupMessage { display: none; position: absolute; - background-color: #d6ffcf; - min-height: 17px; + min-height: 20px; padding: 10px; border-radius: 30px; top: -17px; font-size: 12px; - right: 50px; - width: 106px; + right: 52px; + width: 110px; + color: #0a0; + background-color:#c2f5c2; } .groupError { z-index: 2; display: none; position: absolute; - background-color: #ffcfcf; + color: #f22; + background-color: #ffd5dc; min-height: 17px; padding: 10px; border-radius: 30px; @@ -1799,14 +1810,26 @@ input:checked + .slider:before { .SelectionModeGroupList div{ margin:10px; + text-align: start; +} + +.SelectionModeGroupList div div{ + display: flex; } .SelectionModeGroupList a, -.SelectionModeGroupList p{ +.SelectionModeGroupList p { display:inline-block; margin:0 } +.SelectionModeGroupList p { + width: 85%; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + .SelectionModeGroup button{ display:block; margin:20px auto; @@ -1820,6 +1843,13 @@ input:checked + .slider:before { cursor: pointer; } +.SelectionModeGroup button.unavailable{ + opacity: 0.3; + background: none !important; + border: none !important; + cursor: auto; +} + #ConfirmGroupAction{ font-size:12px; font-weight:700; @@ -1934,7 +1964,12 @@ input:checked + .slider:before { .groups .Group-name .icon-pencil{ position:absolute; top: 2px; - left: 180px; + left: 195px; + cursor: pointer; +} + +.groups .Group-name .icon-pencil:hover{ + color: #ffa744; } #EditGroupName{ @@ -1942,13 +1977,12 @@ input:checked + .slider:before { display:none; } -@media (hover: hover){ - .groups .Group-name .icon-pencil{ +.groups .Group-name .icon-pencil{ display:none; - } - .groups .Group-name:hover .icon-pencil{ - display:block; - } +} + +.Group-name:hover .icon-pencil{ + display:block; } /* Options menu*/ @@ -1976,9 +2010,7 @@ input:checked + .slider:before { cursor: pointer; } -.groups #GroupPermission, -.groups #GroupDuplicate, -.groups #GroupDelete{ +.group-dropdown-option{ padding:5px 10px; } @@ -2042,19 +2074,16 @@ input:checked + .slider:before { /* Add group */ -.showCreateGroup{ - position:relative; - cursor: pointer; -} - .addGroupBlock{ position:absolute; top:50%; transform:translateY(-50%); - margin:0 70px; + margin: auto; + width: 100%; + padding: 100px 0; } -.groups .showCreateGroup .icon-plus-circled{ +.groups .icon-plus-circled{ font-size: 19px; color: rgb(44,132,195); background-color: #CDE9FD; @@ -2067,10 +2096,17 @@ input:checked + .slider:before { .groups #addGroup{ font-weight:700; + width: 145px; + margin: auto; } .groups #addGroupForm{ + cursor: pointer; position: relative; + order: -10000000000; +} + +.groups #addGroupForm form { display: none; } @@ -2089,6 +2125,7 @@ input:checked + .slider:before { margin:10px; text-align:center; margin-top:18px; + position: relative; } .groups fieldset INPUT[type="text"]{ @@ -2122,25 +2159,18 @@ input:checked + .slider:before { .groups .GroupManagerButtons{ text-align:center; - margin:18px 0; -} - -.groups .GroupManagerButtons a { - padding-top :15px; - padding-bottom :15px; + width: 190px; + height: 50px; + line-height: 50px; + margin-bottom: 10px; } .groups .manage-users, .groups .manage-permissions{ - font-size: 12px; - font-weight: 700; - padding: 6.5px 20px; + font-size: 15px; display: inline-block; } -.groups .manage-users{ - padding:6.5px 40px; -} .groups .manage-users, .groups .manage-users:hover, .groups .manage-permissions, @@ -2148,17 +2178,13 @@ input:checked + .slider:before { text-decoration:none; } -.groups .manage-permissions{ - margin-top:20px; -} - @media (hover: hover){ .GroupContainer .GroupManagerButtons{ display:none; } - .GroupContainer:hover .GroupManagerButtons.visible{ + .GroupContainer:hover .GroupManagerButtons{ display:block; } }