Issue #1193 : Tag Manager redesign

* Create the new design of tag manager
 * Replace all actions by ajax actions
 * Add delete, rename, duplicate and merge tag's functions in the Piwigo API
 * Modification of group manager to match both designs
This commit is contained in:
Zacharie
2020-06-16 16:44:14 +02:00
committed by plegall
parent 21dc3b8490
commit a3ab495446
12 changed files with 1527 additions and 630 deletions
+353 -13
View File
@@ -2194,7 +2194,7 @@ input[type="text"].dError {border-color:#ff7070; background-color:#FFe5e5;}
.selection-mode-group-manager{
position:absolute;
right:15px;
z-index:1;
z-index:11;
}
.switch {
@@ -2257,9 +2257,9 @@ input:checked + .slider:before {
position: absolute;
right: 0;
width: 223px;
min-height: 584px;
height:calc(100% - 171px);
min-height:calc(100% - 171px);
top: 169.5px;
z-index: 10;
}
.Selection-mode-content{
@@ -2304,7 +2304,7 @@ input:checked + .slider:before {
white-space: nowrap;
}
.SelectionModeGroup button{
#selection-mode-block button{
display:block;
margin:20px auto;
font-size: 12px;
@@ -2314,11 +2314,11 @@ input:checked + .slider:before {
width: 180px;
}
.SelectionModeGroup button:hover{
#selection-mode-block button:hover{
cursor: pointer;
}
.SelectionModeGroup button.unavailable{
#selection-mode-block button.unavailable{
opacity: 0.3;
background: none !important;
border: none !important;
@@ -2503,26 +2503,26 @@ input:checked + .slider:before {
font-size: 13px;
}
.groupDeleteConfirm, .groupAlert {
.jconfirmDeleteConfirm, .jconfirmAlert {
padding-bottom: 0 !important;
color: #3c3c3c !important;
line-height: 28px !important;
}
.groupAlert {
.jconfirmAlert {
margin-bottom: -2px !important;
}
.groupDeleteConfirm ~ .jconfirm-content-pane, .groupAlert ~ .jconfirm-content-pane {
.jconfirmDeleteConfirm ~ .jconfirm-content-pane, .jconfirmAlert ~ .jconfirm-content-pane {
height: 0px !important;
margin: 0px !important;
}
.groupDeleteConfirm ~ .jconfirm-buttons button {
.jconfirmDeleteConfirm ~ .jconfirm-buttons button {
text-transform: none !important;
}
.groupAlert .jconfirm-icon-c i {
.jconfirmAlert .jconfirm-icon-c i {
color: #0a0 !important;
background-color:#c2f5c2 !important;
border-radius: 20px;
@@ -2532,11 +2532,11 @@ input:checked + .slider:before {
font-size: 45px;
}
.groupAlert .jconfirm-icon-c {
.jconfirmAlert .jconfirm-icon-c {
margin-bottom: 25px !important;
}
.groupAlert .jconfirm-title {
.jconfirmAlert .jconfirm-title {
font-size: 20px !important;
}
@@ -3223,4 +3223,344 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important;
}
.selectedAlbum.cat-list-album-path span {
background-color: transparent;
}
.tag-header {
display: flex;
flex-wrap: nowrap;
align-items: center;
margin-left: 10px;
}
.tag-header #search-tag{
position: relative;
margin-left: 10px;
}
.tag-header #search-tag .search-input{
padding: 10px;
box-shadow: 0px 2px #00000024;
border: none;
background-color: #fafafa;
padding-left: 30px;
width: 300px;
}
.tag-header #search-tag span {
position: absolute;
top: 50%;
transform: translate(4px, -50%);
font-size: 18px;
}
.tag-header #add-tag {
position: relative;
}
.tag-header #add-tag .add-tag-container {
position: relative;
padding: 10px;
background-color: #fafafa;
padding-left: 30px;
box-shadow: 0px 2px #00000024;
border-radius: 5px;
font-weight: bold;
display: inline-flex;
transition: ease 0.2s;
cursor: pointer;
}
.tag-header #add-tag .add-tag-container:hover {
background-color: #f0f0f0;
}
.tag-header #add-tag.input-mode .add-tag-container {
width: 200px;
cursor: auto;
}
.tag-header #add-tag input[type=text] {
position: absolute;
left: 5%;
background: none;
width: calc(90% - 40px);
border: none;
opacity: 0;
display: none;
transition: ease 0.2s;
}
.tag-header #add-tag span{
z-index: 100;
cursor: pointer;
}
.tag-header #add-tag.input-mode input[type=text] {
opacity: 1;
display: block;
}
.tag-header #add-tag .icon-validate {
position: absolute;
top: 50%;
transform: translate(5px, -50%);
font-size: 18px;
position: absolute;
left: 0;
right: auto;
transition: transform ease 0.8s, color ease 0.2s;
}
.tag-header #add-tag.input-mode .icon-validate{
transform: translate(180px, -50%) rotate(360deg);
color: #FFA646;
font-size: 22px;
cursor: pointer;
}
.tag-header #add-tag.input-mode span:hover{
color: #ff7700;
}
.tag-header #add-tag p {
margin: 0;
white-space: nowrap;
}
.tag-header #add-tag.input-mode p {
opacity: 0;
}
.tag-header #add-tag .icon-cancel {
position: absolute;
top: 50%;
transform: translate(209px, -50%);
font-size: 18px;
position: absolute;
left: 0;
transition: ease 0.2s;
display: none;
opacity: 0;
}
.tag-header #add-tag.input-mode .icon-cancel {
display: block;
opacity: 1;
}
.tag-info {
height: 35px;
overflow: hidden;
border-radius: 20px;
display: flex;
padding: 0px 10px;
font-weight: bold;
}
.tag-info p {
margin: auto;
white-space: nowrap;
}
.tag-info::before {
line-height: 35px;
margin: 0px 10px;
font-size: 16px;
}
.tag-info.tag-warning {
color: #ee8800;
background-color:#ffdd99;
}
.tag-info.tag-message {
color: #0a0;
background-color:#c2f5c2;
display: none;
}
.tag-info.tag-error {
color: #f22;
background-color: #ffd5dc;
display: none;
animation-name: tag-error-appear ;
animation-duration: 0.4s;
animation-timing-function: ease;
}
@keyframes tag-error-appear {
25% { transform: translateX(-10px)}
50% { transform: translateX(10px)}
75% { transform: translateX(-10px)}
100% { transform: translateX(0px)}
}
.tag-container {
display: flex;
padding: 25px;
flex-flow: wrap;
padding-right: 223px;
}
.tag-container .tag-box{
display: inline-flex;
align-items: center;
padding: 10px;
background-color: #fafafa;
margin: 5px;
box-shadow: 0px 2px 1px #00000024;
border-radius: 18px;
position: relative;
}
.tag-container .tag-box.selection {
opacity: 0.6;
cursor: pointer;
}
.tag-container .tag-box[data-selected='1'] {
opacity: 1;
}
.tag-container .tag-box p {
white-space: nowrap;
margin: 0;
}
.tag-container .tag-box.edit-name p {
display: none;
}
.tag-container .tag-box.edit-name .showOptions {
display: none;
}
.tag-container .tag-box .tag-dropdown-block {
display:none;
position:absolute;
right: 0;
top: 30px;
background-color:white;
z-index:2;
padding:5px 0px;
box-shadow: 0px 0px 5px #d7d7d7;
border-radius: 10px;
transform: translateX(85%);
}
.tag-container .tag-box .tag-dropdown-block .tag-dropdown-action {
white-space: nowrap;
text-align: initial;
padding: 5px 10px;
font-size: 13px;
}
.tag-container .tag-box .tag-dropdown-block .tag-dropdown-action:hover {
color: #3A3A3A;
text-decoration: none;
background-color: #e7e7e7;
}
.tag-container .tag-box .select-checkbox {
display: none;
width: 18.4px;
height: 19px;
background-color: #e7e7e7;
border-radius: 100%;
margin: 2px 0px;
margin-left: 0px;
margin-left: 4px;
}
.tag-container .tag-box[data-selected='1'] .select-checkbox {
background-color: #ddd;
}
.tag-container .tag-box .select-checkbox i {
display: none;
font-size: 20px;
transform: translate(-12px , -6px);
position: absolute;
animation-name: icon-check-animation;
animation-duration: 0.4s;
animation-timing-function: ease-out;
}
.tag-container .tag-box[data-selected='1'] .select-checkbox i {
display: inline;
}
@keyframes icon-check-animation {
0% {
transform: translate(-12px , -6px) scale(0);
}
75% {
transform: translate(-12px , -6px) scale(1.3);
}
100% {
transform: translate(-12px , -6px);
}
}
.tag-container .tag-box .tag-rename {
display: none;
}
.tag-container .tag-box.edit-name .tag-rename {
display: flex;
}
.tag-container .tag-box .tag-rename .tag-name-editable {
text-align: left;
width: 100px;
color: #3c3c3c;
font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif;
margin: 0px;
background-color: white;
border: 1px solid #d5d5d5;
}
.tag-container .tag-box .tag-rename span:hover {
color: #ffa744;
}
.tag-container .tag-box .tag-rename span {
padding: 2px 3px;
margin: auto;
cursor: pointer;
color: #3A3A3A;
}
.tag-selection .tag-selection-content {
margin-top: 90px;
padding: 5px;
}
.tag-selection .tag-selection-content .selection-mode-tag{
display: none;
}
.selection-mode-tag .tag-list {
margin: 10px;
text-align: start;
font-weight: 700;
font-size: 15px;
}
.selection-mode-tag .tag-list p {
width: 85%;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
color: #a0a0a0;
margin: 0;
}
.selection-mode-tag .tag-list div {
display: flex;
margin: 10px;
text-align: start;
}