diff --git a/notes-service/src/main/java/io/meeds/notes/rest/model/NoteReorder.java b/notes-service/src/main/java/io/meeds/notes/rest/model/NoteReorder.java new file mode 100644 index 0000000000..6f86ec3f71 --- /dev/null +++ b/notes-service/src/main/java/io/meeds/notes/rest/model/NoteReorder.java @@ -0,0 +1,46 @@ +/* + * This file is part of the Meeds project (https://meeds.io/). + * + * Copyright (C) 2020 - 2026 Meeds Association contact@meeds.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package io.meeds.notes.rest.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class NoteReorder { + + private String pageId; + + private String wikiType; + + private String wikiOwner; + + private String sourceParentId; + + private String targetParentId; + + private List sourceOrderedIds; + + private List targetOrderedIds; + +} diff --git a/notes-service/src/main/java/org/exoplatform/wiki/jpa/entity/PageEntity.java b/notes-service/src/main/java/org/exoplatform/wiki/jpa/entity/PageEntity.java index c90cfa6802..81ec90cbf8 100644 --- a/notes-service/src/main/java/org/exoplatform/wiki/jpa/entity/PageEntity.java +++ b/notes-service/src/main/java/org/exoplatform/wiki/jpa/entity/PageEntity.java @@ -23,22 +23,7 @@ import java.util.List; import java.util.Set; -import jakarta.persistence.CascadeType; -import jakarta.persistence.CollectionTable; -import jakarta.persistence.Column; -import jakarta.persistence.ElementCollection; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.JoinColumn; -import jakarta.persistence.JoinTable; -import jakarta.persistence.ManyToMany; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.NamedQuery; -import jakarta.persistence.OneToMany; -import jakarta.persistence.SequenceGenerator; -import jakarta.persistence.Table; +import jakarta.persistence.*; import lombok.Data; import lombok.EqualsAndHashCode; @@ -49,8 +34,8 @@ @NamedQuery(name = "wikiPage.getPageOfWikiByName", query = "SELECT p FROM WikiPageEntity p JOIN p.wiki w WHERE p.name = :name AND w.type = :type AND w.owner = :owner AND p.deleted = false") @NamedQuery(name = "wikiPage.getAllPagesOfWiki", query = "SELECT p FROM WikiPageEntity p JOIN p.wiki w WHERE w.type = :type AND w.owner = :owner") @NamedQuery(name = "wikiPage.getPagesOfWiki", query = "SELECT p FROM WikiPageEntity p JOIN p.wiki w WHERE w.type = :type AND w.owner = :owner AND p.deleted = :deleted") -@NamedQuery(name = "wikiPage.getChildrenPages", query = "SELECT p FROM WikiPageEntity p WHERE p.parentPage.id = :id AND p.deleted = false ORDER BY p.name") -@NamedQuery(name = "wikiPage.getAllChildrenPages", query = "SELECT p FROM WikiPageEntity p WHERE p.parentPage.id = :id ORDER BY p.name") +@NamedQuery(name = "wikiPage.getChildrenPages", query = "SELECT p FROM WikiPageEntity p WHERE p.parentPage.id = :id AND p.deleted = false ORDER BY p.position ASC, p.name ASC") +@NamedQuery(name = "wikiPage.getAllChildrenPages", query = "SELECT p FROM WikiPageEntity p WHERE p.parentPage.id = :id ORDER BY p.position ASC, p.name ASC") @NamedQuery(name = "wikiPage.getRelatedPages", query = "SELECT p FROM WikiPageEntity p INNER JOIN p.relatedPages r where r.id = :pageId") @NamedQuery(name = "wikiPage.getAllPagesBySyntax", query = "SELECT p FROM WikiPageEntity p WHERE p.syntax = :syntax OR p.syntax IS NULL ORDER BY p.updatedDate DESC") @NamedQuery(name = "wikiPage.countPageChildrenById", query = "SELECT COUNT(*) FROM WikiPageEntity p WHERE p.parentPage.id = :id AND p.deleted = false") @@ -75,6 +60,7 @@ public class PageEntity extends BasePageEntity { private PageEntity parentPage; @OneToMany(mappedBy = "parentPage") + @OrderBy("position ASC, name ASC") @EqualsAndHashCode.Exclude private List children; @@ -126,4 +112,7 @@ public class PageEntity extends BasePageEntity { @Column(name = "DELETED") private boolean deleted; + @Column(name = "POSITION") + private Integer position; + } diff --git a/notes-service/src/main/java/org/exoplatform/wiki/service/NoteService.java b/notes-service/src/main/java/org/exoplatform/wiki/service/NoteService.java index 0e12d810ec..91b41dd34a 100644 --- a/notes-service/src/main/java/org/exoplatform/wiki/service/NoteService.java +++ b/notes-service/src/main/java/org/exoplatform/wiki/service/NoteService.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.util.List; +import io.meeds.notes.rest.model.NoteReorder; import org.gatein.api.EntityNotFoundException; import org.exoplatform.commons.utils.PageList; @@ -997,4 +998,11 @@ default boolean canViewNote(String pageId, String username) { */ boolean canViewNote(Page page, String username); + /** + * @param noteReorder the payload object encapsulating the reordering details. + * @param userIdentity user Identity + */ + default void updateNotesPosition(NoteReorder noteReorder, Identity userIdentity) throws IllegalAccessException { + throw new UnsupportedOperationException(); + } } diff --git a/notes-service/src/main/java/org/exoplatform/wiki/service/impl/NoteServiceImpl.java b/notes-service/src/main/java/org/exoplatform/wiki/service/impl/NoteServiceImpl.java index be1a7a8af1..2e80929a11 100644 --- a/notes-service/src/main/java/org/exoplatform/wiki/service/impl/NoteServiceImpl.java +++ b/notes-service/src/main/java/org/exoplatform/wiki/service/impl/NoteServiceImpl.java @@ -33,6 +33,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import io.meeds.notes.rest.model.NoteReorder; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.LocaleUtils; import org.apache.commons.lang3.StringUtils; @@ -1893,6 +1894,16 @@ public void markNoteAsViewed(Page note, Identity userIdentity) { } } + public void updateNotesPosition(NoteReorder noteReorder, Identity userIdentity) throws IllegalAccessException { + Page existingNote = getNoteById(noteReorder.getPageId()); + if (existingNote == null) { + throw new EntityNotFoundException("Note to update not found"); + } else if (userIdentity == null || !canEditNote(existingNote, userIdentity.getUserId())) { + throw new IllegalAccessException("User does not have edit the note."); + } + dataStorage.updateNotesPosition(noteReorder); + } + /******* Private methods *******/ private void deleteNoteMetadataProperties(Page note, String lang, String objectType) throws Exception { diff --git a/notes-service/src/main/java/org/exoplatform/wiki/service/rest/NotesRestService.java b/notes-service/src/main/java/org/exoplatform/wiki/service/rest/NotesRestService.java index a4908bad2b..8c28c61719 100644 --- a/notes-service/src/main/java/org/exoplatform/wiki/service/rest/NotesRestService.java +++ b/notes-service/src/main/java/org/exoplatform/wiki/service/rest/NotesRestService.java @@ -53,6 +53,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; +import io.meeds.notes.rest.model.NoteReorder; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.LocaleUtils; @@ -1474,6 +1475,24 @@ public Response markNoteAsViewed(@Parameter(description = "News id") @PathParam( } } + + @POST + @Path("/reorder") + @Operation(summary = "Reorder a note", method = "POST", description = "This reorder a note.") + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Request fulfilled"), + @ApiResponse(responseCode = "401", description = "User not authorized to get the note"), + @ApiResponse(responseCode = "500", description = "Internal server error") }) + public Response reorderNotes(@RequestBody NoteReorder request) { + try { + noteService.updateNotesPosition(request, ConversationState.getCurrent().getIdentity()); + return Response.ok().build(); + } catch (IllegalArgumentException e) { + return Response.status(Response.Status.BAD_REQUEST).build(); + } catch (IllegalAccessException e) { + return Response.status(Response.Status.UNAUTHORIZED).build(); + } + } + private List getJsonTree(WikiPageParams params, Map context, Identity identity, Locale locale) throws Exception { Wiki noteBook = noteBookService.getWikiByTypeAndOwner(params.getType(), params.getOwner()); WikiTreeNode noteBookNode = new WikiTreeNode(noteBook); diff --git a/notes-service/src/main/java/org/exoplatform/wiki/storage/NoteDataStorage.java b/notes-service/src/main/java/org/exoplatform/wiki/storage/NoteDataStorage.java index 5e7b3999a7..8dd658587d 100644 --- a/notes-service/src/main/java/org/exoplatform/wiki/storage/NoteDataStorage.java +++ b/notes-service/src/main/java/org/exoplatform/wiki/storage/NoteDataStorage.java @@ -34,6 +34,7 @@ import java.util.List; import java.util.Set; +import io.meeds.notes.rest.model.NoteReorder; import org.apache.commons.lang3.StringUtils; import org.exoplatform.commons.api.persistence.ExoTransactional; @@ -991,6 +992,65 @@ public List getDraftsOfWiki(String wikiOwner, String wikiType, String return convertDraftPageEntitiesToDraftPages(draftPageEntities); } + @ExoTransactional + public void updateNotesPosition(NoteReorder noteReorder) throws WikiException { + PageEntity pageToMove = pageDAO.find(Long.valueOf(noteReorder.getPageId())); + + if (pageToMove == null) { + throw new WikiException("Cannot update note position: page does not exist."); + } + boolean isCrossFolderMove = noteReorder.getSourceParentId() != null + && !noteReorder.getSourceParentId().equals(noteReorder.getTargetParentId()); + + if (isCrossFolderMove) { + PageEntity destinationParentEntity = null; + if (noteReorder.getTargetParentId() != null && !noteReorder.getTargetParentId().isEmpty()) { + destinationParentEntity = pageDAO.find(Long.valueOf(noteReorder.getTargetParentId())); + if (destinationParentEntity == null) { + throw new WikiException("Destination parent page does not exist."); + } + } + List pageMoves = pageToMove.getMoves(); + if (pageMoves == null) { + pageMoves = new ArrayList<>(); + } + PageMoveEntity move = new PageMoveEntity(noteReorder.getWikiType(), + noteReorder.getWikiOwner(), + pageToMove.getName(), + Calendar.getInstance().getTime()); + move.setPage(pageToMove); + pageMoveDAO.create(move); + pageToMove.setParentPage(destinationParentEntity); + if (destinationParentEntity != null) { + updateWikiOfPageTree(destinationParentEntity.getWiki(), pageToMove); + } + + pageMoves.add(move); + pageToMove.setMoves(pageMoves); + pageDAO.update(pageToMove); + } + if (noteReorder.getTargetOrderedIds() != null && !noteReorder.getTargetOrderedIds().isEmpty()) { + int position = 1; + for (String id : noteReorder.getTargetOrderedIds()) { + PageEntity pageToUpdate = pageDAO.find(Long.valueOf(id)); + if (pageToUpdate != null) { + pageToUpdate.setPosition(position++); + pageDAO.update(pageToUpdate); + } + } + } + if (isCrossFolderMove && noteReorder.getSourceOrderedIds() != null && !noteReorder.getSourceOrderedIds().isEmpty()) { + int position = 1; + for (String id : noteReorder.getSourceOrderedIds()) { + PageEntity pageToUpdate = pageDAO.find(Long.valueOf(id)); + if (pageToUpdate != null) { + pageToUpdate.setPosition(position++); + pageDAO.update(pageToUpdate); + } + } + } + } + private void getDraftsOfPage(PageEntity pageEntity, List drafts) { drafts.addAll(draftPageDAO.findDraftPagesByParentPage(pageEntity.getId())); List childrenPages = pageDAO.getChildrenPages(pageEntity); diff --git a/notes-service/src/main/java/org/exoplatform/wiki/tree/TreeNode.java b/notes-service/src/main/java/org/exoplatform/wiki/tree/TreeNode.java index 7e5f2f83f3..95f5d11faa 100644 --- a/notes-service/src/main/java/org/exoplatform/wiki/tree/TreeNode.java +++ b/notes-service/src/main/java/org/exoplatform/wiki/tree/TreeNode.java @@ -190,7 +190,6 @@ public boolean equals(Object obj) { public void pushDescendants(Map context, String userId) throws Exception { addChildren(context, userId); pushChildren(context, userId); - this.children = this.children.stream().sorted((childItem1, childItem2) -> new NaturalComparator().compare(childItem1.getName(), childItem2.getName())).toList(); } protected void addChildren(Map context, String userId) throws Exception { diff --git a/notes-service/src/main/resources/db/changelog/wiki.db.changelog-1.0.0.xml b/notes-service/src/main/resources/db/changelog/wiki.db.changelog-1.0.0.xml index 0dcd5e70f6..c505e012be 100644 --- a/notes-service/src/main/resources/db/changelog/wiki.db.changelog-1.0.0.xml +++ b/notes-service/src/main/resources/db/changelog/wiki.db.changelog-1.0.0.xml @@ -623,4 +623,10 @@ + + + + + + \ No newline at end of file diff --git a/notes-service/src/test/java/org/exoplatform/wiki/service/TestNoteService.java b/notes-service/src/test/java/org/exoplatform/wiki/service/TestNoteService.java index 4b6e4e488c..5015aa050b 100644 --- a/notes-service/src/test/java/org/exoplatform/wiki/service/TestNoteService.java +++ b/notes-service/src/test/java/org/exoplatform/wiki/service/TestNoteService.java @@ -30,6 +30,7 @@ import java.util.Date; import java.util.List; +import io.meeds.notes.rest.model.NoteReorder; import org.apache.commons.io.FileUtils; import org.junit.FixMethodOrder; import org.junit.runners.MethodSorters; @@ -1212,6 +1213,48 @@ public void testProcessingNoteImportedContentImages() throws Exception { file1.delete(); } + @SneakyThrows + public void testUpdateNotesPosition() { + Identity root = ROOT_IDENTITY; + Identity mary = USER_IDENTITY; + + Wiki portalWiki = getOrCreateWiki(wikiService, PortalConfig.PORTAL_TYPE, PORTAL_NAME); + + Page note1 = new Page("dragged_note", "dragged_note"); + note1 = noteService.createNote(portalWiki, "Home", note1, root); + + Page note2 = new Page("other_note", "other_note"); + note2 = noteService.createNote(portalWiki, "Home", note2, root); + + assertNotNull(noteService.getNoteById(note1.getId())); + + NoteReorder validReorder = new NoteReorder(); + validReorder.setPageId(note1.getId()); + validReorder.setWikiType(PortalConfig.PORTAL_TYPE); + validReorder.setWikiOwner(PORTAL_NAME); + validReorder.setSourceParentId("1"); + validReorder.setTargetParentId("1"); + validReorder.setTargetOrderedIds(Arrays.asList(note2.getId(), note1.getId())); + + noteService.updateNotesPosition(validReorder, root); + + NoteReorder reorder1 = new NoteReorder(); + reorder1.setPageId("10"); + + Exception notFoundException = assertThrows(Exception.class, () -> { + noteService.updateNotesPosition(reorder1, root); + }); + assertEquals("Note to update not found", notFoundException.getMessage()); + + NoteReorder reorder2 = new NoteReorder(); + reorder2.setPageId(note1.getId()); + + IllegalAccessException accessException = assertThrows(IllegalAccessException.class, () -> { + noteService.updateNotesPosition(reorder2, mary); + }); + assertEquals("User does not have edit the note.", accessException.getMessage()); + } + private Long getIdentityId(String username) { return Long.parseLong(identityManager.getOrCreateUserIdentity(username).getId()); } diff --git a/notes-service/src/test/java/org/exoplatform/wiki/service/rest/NotesRestServiceTest.java b/notes-service/src/test/java/org/exoplatform/wiki/service/rest/NotesRestServiceTest.java index db3f654fa9..d5927cebd0 100644 --- a/notes-service/src/test/java/org/exoplatform/wiki/service/rest/NotesRestServiceTest.java +++ b/notes-service/src/test/java/org/exoplatform/wiki/service/rest/NotesRestServiceTest.java @@ -364,11 +364,6 @@ public void testGetFullTreeData() throws Exception { assertEquals(5, ((JsonNodeData)((BeanToJsons) response3.getEntity()).getJsonList().getFirst()).getChildren().size()); JsonNodeData jsonNodeData = ((JsonNodeData)((BeanToJsons) response3.getEntity()).getJsonList().getFirst()); assertEquals(5, jsonNodeData.getChildren().size()); - assertEquals("testPage", jsonNodeData.getChildren().get(0).getName()); - assertEquals("testPage 1", jsonNodeData.getChildren().get(1).getName()); - assertEquals("testPage 2", jsonNodeData.getChildren().get(2).getName()); - assertEquals("testPage 10", jsonNodeData.getChildren().get(3).getName()); - assertEquals("testPage 22", jsonNodeData.getChildren().get(4).getName()); doThrow(new IllegalAccessException()).when(noteService) .getNoteOfNoteBookByName(pageParams.getType(), diff --git a/notes-service/src/test/java/org/exoplatform/wiki/storage/NoteDataStorageTest.java b/notes-service/src/test/java/org/exoplatform/wiki/storage/NoteDataStorageTest.java index c4845085aa..3e680011b6 100644 --- a/notes-service/src/test/java/org/exoplatform/wiki/storage/NoteDataStorageTest.java +++ b/notes-service/src/test/java/org/exoplatform/wiki/storage/NoteDataStorageTest.java @@ -18,11 +18,9 @@ */ package org.exoplatform.wiki.storage; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.List; +import java.util.*; +import io.meeds.notes.rest.model.NoteReorder; import org.apache.commons.lang3.StringUtils; import org.junit.Test; import org.mockito.Mockito; @@ -1023,6 +1021,82 @@ public void testGetVersionById() throws Exception { assertNotNull(storage.getPageVersionById(Long.parseLong(pageVersion.getId()))); } + @Test + public void testUpdateNotesPosition() { + Wiki wiki = new Wiki(); + wiki.setType(WIKI_TYPE_PORTAL); + wiki.setOwner(WIKI_OWNER); + wiki = storage.createWiki(wiki); + + Page homePage = wiki.getWikiHome(); + + Page folderA = new Page(); + folderA.setName("folderA"); + folderA.setTitle("Folder A"); + folderA = storage.createPage(wiki, homePage, folderA); + + Page note1 = new Page(); + note1.setName("note1"); + note1.setTitle("Note 1"); + note1 = storage.createPage(wiki, homePage, note1); + + Page note2 = new Page(); + note2.setName("note2"); + note2.setTitle("Note 2"); + note2 = storage.createPage(wiki, homePage, note2); + + assertNotNull(note1.getId()); + assertNotNull(note2.getId()); + + NoteReorder sameFolderReorder = new NoteReorder(); + sameFolderReorder.setPageId(note1.getId()); + sameFolderReorder.setWikiType(WIKI_TYPE_PORTAL); + sameFolderReorder.setWikiOwner(WIKI_OWNER); + sameFolderReorder.setSourceParentId(homePage.getId()); + sameFolderReorder.setTargetParentId(homePage.getId()); + sameFolderReorder.setTargetOrderedIds(Arrays.asList(note2.getId(), note1.getId())); + + storage.updateNotesPosition(sameFolderReorder); + + restartTransaction(); + + PageEntity updatedNote1 = pageDAO.find(Long.valueOf(note1.getId())); + PageEntity updatedNote2 = pageDAO.find(Long.valueOf(note2.getId())); + + assertEquals(Integer.valueOf(2), updatedNote1.getPosition()); + assertEquals(Integer.valueOf(1), updatedNote2.getPosition()); + assertEquals(Long.parseLong(homePage.getId()), updatedNote1.getParentPage().getId()); + + NoteReorder crossFolderReorder = new NoteReorder(); + crossFolderReorder.setPageId(note1.getId()); + crossFolderReorder.setWikiType(WIKI_TYPE_PORTAL); + crossFolderReorder.setWikiOwner(WIKI_OWNER); + crossFolderReorder.setSourceParentId(homePage.getId()); + crossFolderReorder.setTargetParentId(folderA.getId()); + + crossFolderReorder.setTargetOrderedIds(Collections.singletonList(note1.getId())); + crossFolderReorder.setSourceOrderedIds(Collections.singletonList(note2.getId())); + + storage.updateNotesPosition(crossFolderReorder); + + restartTransaction(); + + PageEntity movedNote1 = pageDAO.find(Long.valueOf(note1.getId())); + PageEntity remainingNote2 = pageDAO.find(Long.valueOf(note2.getId())); + + assertNotNull(movedNote1.getParentPage()); + assertEquals(Long.parseLong(folderA.getId()), movedNote1.getParentPage().getId()); + + assertEquals(Integer.valueOf(1), movedNote1.getPosition()); + assertEquals(Integer.valueOf(1), remainingNote2.getPosition()); + + assertNotNull(movedNote1.getMoves()); + assertFalse(movedNote1.getMoves().isEmpty()); + assertEquals(1, movedNote1.getMoves().size()); + assertEquals(WIKI_OWNER, movedNote1.getMoves().getFirst().getWikiOwner()); + assertEquals(note1.getName(), movedNote1.getMoves().getFirst().getPageName()); + } + protected void startSessionAs(String user, Collection memberships) { Identity identity = new Identity(user, memberships); ConversationState state = new ConversationState(identity); diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ar.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ar.properties index 8b6cf8c1cc..c89bb3a7f0 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ar.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ar.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=الفضاء: notes.label.movePageCurrentPosition=الموقع الحالي notes.label.movePageDestination=الوجهة: notes.label.movePagePosition=المهنة: -notes.label.noteTreeview.tooltip=انقر لعرض شجرة المعلومات notes.label.historyVersions=الإصدارات notes.label.restoreVersions=استعادة notes.untitled.title=بدون عنوان diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_aro.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_aro.properties index 6f9bfd4833..551868a01a 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_aro.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_aro.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=الفضاء: notes.label.movePageCurrentPosition=الموقع الحالي notes.label.movePageDestination=الوجهة: notes.label.movePagePosition=المهنة: -notes.label.noteTreeview.tooltip=انقر لعرض شجرة الملاحظات notes.label.historyVersions=الإصدارات notes.label.restoreVersions=استعادة notes.untitled.title=بدون عنوان diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ca.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ca.properties index 4628c617d5..d1dede22ec 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ca.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ca.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Espai: notes.label.movePageCurrentPosition=Posició actual: notes.label.movePageDestination=Destí: notes.label.movePagePosition=Posició: -notes.label.noteTreeview.tooltip=Feu clic per mostrar l'arbre de notes notes.label.historyVersions=Versions notes.label.restoreVersions=Restaura notes.untitled.title=Sense títol diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_co.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_co.properties index 6aaecfd387..329660d4eb 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_co.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_co.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Spaziu: notes.label.movePageCurrentPosition=Posizione attuale: notes.label.movePageDestination=Destination: notes.label.movePagePosition=Posizione: -notes.label.noteTreeview.tooltip=Cliccate per vede l'arburu Notes notes.label.historyVersions=Versioni notes.label.restoreVersions=Risturà notes.untitled.title=Sans titre diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_cs.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_cs.properties index ed09dae509..c8371926a8 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_cs.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_cs.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Skupina: notes.label.movePageCurrentPosition=Aktuální pozice: notes.label.movePageDestination=Cíl: notes.label.movePagePosition=Pozice: -notes.label.noteTreeview.tooltip=Kliknutím zobrazíte strom poznámek notes.label.historyVersions=Verze notes.label.restoreVersions=Obnovit notes.untitled.title=Bez názvu diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_de.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_de.properties index 6136601f76..a528df2886 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_de.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_de.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Projektraum notes.label.movePageCurrentPosition=Aktuelle Position: notes.label.movePageDestination=Ziel: notes.label.movePagePosition=Position: -notes.label.noteTreeview.tooltip=Klicken, um Notizbaum anzuzeigen notes.label.historyVersions=Versionen notes.label.restoreVersions=Wiederherstellen notes.untitled.title=Ohne Titel diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_el.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_el.properties index 107fb02a67..c99fc78fba 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_el.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_el.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Χώρος: notes.label.movePageCurrentPosition=Τρέχουσα θέση: notes.label.movePageDestination=Προορισμός: notes.label.movePagePosition=Θέση: -notes.label.noteTreeview.tooltip=Κλικ για εμφάνιση δέντρου σημειώσεων notes.label.historyVersions=Εκδόσεις notes.label.restoreVersions=Επαναφορά notes.untitled.title=Χωρίς τίτλο diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_en.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_en.properties index 327a7287d3..f9f72e5335 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_en.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_en.properties @@ -41,6 +41,7 @@ notes.no.attachments=No attachments notes.attachments.delete=Delete notes.label.LastModifiedBy=Last modified by {0} at {1} +notes.button.apply=Apply notes.button.cancel=Cancel notes.button.publish=Save notes.button.publishAndPost=Save and Post @@ -55,6 +56,8 @@ notes.edit.editNotes=Edit notes.save.success.message=Note saved successfully notes.content.save.success.message=User Policy Successfully Saved notes.content.publish.success.message=User Policy successfully published +notes.reorder.success.message=Note reordered successfully +notes.reorder.error.message=Error when reordering note notes.view.label=View notes.metadata.properties.label=Properties @@ -131,6 +134,7 @@ popup.confirmation.cancel=Are you sure you want to leave this page? notes.label.breadcrumbTitle=Notes Tree notes.label.breadcrumbs=Breadcrumb notes.label.filter=Filter by name +notes.label.resetFilter=Reset notes.label.includePageTitle=Include Notes notes.label.movePageTitle=Move Page notes.label.exportNotesTitle=Export Notes @@ -159,7 +163,6 @@ notes.label.movePageSpace=Space: notes.label.movePageCurrentPosition=Current position: notes.label.movePageDestination=Destination: notes.label.movePagePosition=Position: -notes.label.noteTreeview.tooltip=Click to display Notes tree notes.label.historyVersions=Versions notes.label.restoreVersions=Restore notes.untitled.title=Untitled @@ -175,6 +178,14 @@ notes.label.no-content.no-redactor.content.last=Or create a new note notes.label.noteNotFound=We could not find this note. notes.label.noteSearchNotFound=No notes found for: notes.label.noteNotFound.button=Back to Notes App +notes.label.noResults.placeholder=No results found. please, Try again + +notes.label.tree=Treeview +notes.tooltip.close.tree=Hide treeview +notes.tooltip.open.tree=Display treeview +notes.advanced.filter.button.title=Filter +notes.advanced.filter.drawer.title=Filter notes + notes.message.missingImportNotes=Import Notes is mandatory. import.drawer.maxFileSize.error=You can’t upload files larger than {0} MB import.drawer.fileType.error=You should upload a zip note diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_es_ES.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_es_ES.properties index ea7b4e2d50..116f64f4b0 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_es_ES.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_es_ES.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Espacio: notes.label.movePageCurrentPosition=Posición actual: notes.label.movePageDestination=Destino: notes.label.movePagePosition=Posición: -notes.label.noteTreeview.tooltip=Haz clic para mostrar el árbol de notas notes.label.historyVersions=Versiones notes.label.restoreVersions=Restaurar notes.untitled.title=Sin título diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_et.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_et.properties index 005482dd6f..27029a64e4 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_et.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_et.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Tühik: notes.label.movePageCurrentPosition=Praegune positsioon: notes.label.movePageDestination=Sihtkoht: notes.label.movePagePosition=Asukoht: -notes.label.noteTreeview.tooltip=Klõpsake märkmete puu kuvamiseks notes.label.historyVersions=Versioonid notes.label.restoreVersions=Taasta notes.untitled.title=Pealkirjata diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fa.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fa.properties index 16c2e996ab..66991d62f9 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fa.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fa.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=فضا: notes.label.movePageCurrentPosition=موقعیت فعلی: notes.label.movePageDestination=مقصد: notes.label.movePagePosition=موقعیت: -notes.label.noteTreeview.tooltip=برای نمایش درخت یادداشت ها کلیک کنید notes.label.historyVersions=نسخه ها notes.label.restoreVersions=بازيابي notes.untitled.title=بدون عنوان diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fi.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fi.properties index 206def7767..7444e0ca5d 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fi.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fi.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Tila: notes.label.movePageCurrentPosition=Nykyinen sijainti: notes.label.movePageDestination=Kohde: notes.label.movePagePosition=Sijainti: -notes.label.noteTreeview.tooltip=Klikkaa näyttääksesi muistiinpanojen puu notes.label.historyVersions=Versiot notes.label.restoreVersions=Palauta notes.untitled.title=Nimetön diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fil.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fil.properties index ab8effd61e..0f2f5f6cb1 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fil.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fil.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Ang espasyo: notes.label.movePageCurrentPosition=Kasalukuyang posisyon: notes.label.movePageDestination=Ang destinasyon: notes.label.movePagePosition=Ang Posisyon: -notes.label.noteTreeview.tooltip=I-click upang ipakita ang Notes tree notes.label.historyVersions=Ang mga bersyon notes.label.restoreVersions=Pagpapanumbalik notes.untitled.title=Walang Pamagat diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fr.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fr.properties index 41673b6c3e..6b5b43399d 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fr.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_fr.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Espace : notes.label.movePageCurrentPosition=Emplacement actuel : notes.label.movePageDestination=Destination : notes.label.movePagePosition=Position : -notes.label.noteTreeview.tooltip=Cliquer pour afficher l'arborescence des notes notes.label.historyVersions=Versions notes.label.restoreVersions=Restaurer notes.untitled.title=Sans titre @@ -175,6 +174,11 @@ notes.label.no-content.no-redactor.content.last=Ou créer une nouvelle note notes.label.noteNotFound=Nous n'avons pas pu trouver cette note. notes.label.noteSearchNotFound=Aucune note trouvée pour : notes.label.noteNotFound.button=Revenir à l'appli Notes + +notes.label.tree=Arborescence +notes.tooltip.close.tree=Masquer l'arborescence +notes.tooltip.open.tree=Afficher treeview + notes.message.missingImportNotes=Importer des notes est obligatoire. import.drawer.maxFileSize.error=Vous ne pouvez pas charger des fichiers de plus de {0} Mo import.drawer.fileType.error=Vous devez sélectionner un fichier au format zip diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_he.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_he.properties index ae3ed3edf5..ddf373acf7 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_he.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_he.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=חלל: notes.label.movePageCurrentPosition=תפקיד נוכחי: notes.label.movePageDestination=יַעַד: notes.label.movePagePosition=מַצָב: -notes.label.noteTreeview.tooltip=לחץ כדי להציג את עץ ההערות notes.label.historyVersions=גרסאות notes.label.restoreVersions=לְשַׁחְזֵר notes.untitled.title=ללא כותרת diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_hr.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_hr.properties index 2cc136b7ad..4bd5b19bfe 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_hr.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_hr.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Prostor: notes.label.movePageCurrentPosition=Trenutačna pozicija: notes.label.movePageDestination=Odredište: notes.label.movePagePosition=Položaj: -notes.label.noteTreeview.tooltip=Kliknite za prikaz stabla Bilješki notes.label.historyVersions=Verzije notes.label.restoreVersions=Vratiti notes.untitled.title=Bez naslova diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_hu.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_hu.properties index 81cd27afb3..5cfda709ba 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_hu.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_hu.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Űr: notes.label.movePageCurrentPosition=Jelenlegi pozíció: notes.label.movePageDestination=Rendeltetési hely: notes.label.movePagePosition=Pozíció: -notes.label.noteTreeview.tooltip=Kattintson a jegyzetfa megjelenítéséhez notes.label.historyVersions=Verziók notes.label.restoreVersions=Visszaállítás notes.untitled.title=Cím nélkül diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_id.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_id.properties index a9af3491db..4f062f6d64 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_id.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_id.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Forum: notes.label.movePageCurrentPosition=Posisi saat ini: notes.label.movePageDestination=Tujuan: notes.label.movePagePosition=Posisi: -notes.label.noteTreeview.tooltip=Klik untuk menampilkan pohon Catatan. notes.label.historyVersions=Versi notes.label.restoreVersions=Pulihan notes.untitled.title=Tanpa judul diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_in.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_in.properties index 3c8c27d1c9..6da466b527 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_in.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_in.properties @@ -88,7 +88,6 @@ notes.label.movePageSpace=Space: notes.label.movePageCurrentPosition=Current position: notes.label.movePageDestination=Destination: notes.label.movePagePosition=Position: -notes.label.noteTreeview.tooltip=Click to display Notes tree notes.label.historyVersions=Versions notes.label.restoreVersions=Restore notes.untitled.title=Untitled diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_it.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_it.properties index e06fd30922..9e71c7f64d 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_it.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_it.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Spazio: notes.label.movePageCurrentPosition=Posizione corrente: notes.label.movePageDestination=Destinazione: notes.label.movePagePosition=Posizione: -notes.label.noteTreeview.tooltip=Cliccare per visualizzare l'albero delle Note notes.label.historyVersions=Gestisci Versioni notes.label.restoreVersions=Ripristina notes.untitled.title=Senza Titolo diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ja.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ja.properties index c8d948127d..9bdf14d266 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ja.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ja.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=スペース: notes.label.movePageCurrentPosition=現在の位置: notes.label.movePageDestination=保存先: notes.label.movePagePosition=ポジション: -notes.label.noteTreeview.tooltip=クリックしてメモツリーを表示する notes.label.historyVersions=バージョン管理 notes.label.restoreVersions=リストア notes.untitled.title=タイトルなし diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ko.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ko.properties index 3423c79fae..0681e547b8 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ko.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ko.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=공간: notes.label.movePageCurrentPosition=현재 위치: notes.label.movePageDestination=목적지: notes.label.movePagePosition=위치: -notes.label.noteTreeview.tooltip=클릭하여 메모 트리를 표시합니다. notes.label.historyVersions=버전 notes.label.restoreVersions=복원하다 notes.untitled.title=제목 없음 diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_lt.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_lt.properties index 31483ba1a4..bde67dacfe 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_lt.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_lt.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Erdvė: notes.label.movePageCurrentPosition=Dabartinė padėtis: notes.label.movePageDestination=Paskirtis: notes.label.movePagePosition=Pozicija: -notes.label.noteTreeview.tooltip=Spustelėkite, kad būtų rodomas užrašų medis notes.label.historyVersions=Versijos notes.label.restoreVersions=Atkurti notes.untitled.title=Be pavadinimo diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_nl.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_nl.properties index 829a5f8940..7dabfc2085 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_nl.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_nl.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Ruimte: notes.label.movePageCurrentPosition=Huidige positie: notes.label.movePageDestination=Bestemming: notes.label.movePagePosition=Positie: -notes.label.noteTreeview.tooltip=Klik om Notitieboom weer te geven notes.label.historyVersions=Versies beheren notes.label.restoreVersions=Herstellen notes.untitled.title=Naamloos diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_no.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_no.properties index f50d7548d1..b099dbbf94 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_no.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_no.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Fellesskap: notes.label.movePageCurrentPosition=Nåværende posisjon: notes.label.movePageDestination=Destinasjon: notes.label.movePagePosition=Stilling: -notes.label.noteTreeview.tooltip=Klikk for å vise Notattre notes.label.historyVersions=Versjoner notes.label.restoreVersions=Gjenopprett notes.untitled.title=Uten tittel diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_pl.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_pl.properties index ef71bbd207..fb9e96ebc9 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_pl.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_pl.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Przestrzeń: notes.label.movePageCurrentPosition=Bieżąca pozycja: notes.label.movePageDestination=Cel: notes.label.movePagePosition=Stanowisko: -notes.label.noteTreeview.tooltip=Kliknij, aby wyświetlić drzewo notatek notes.label.historyVersions=Wersje notes.label.restoreVersions=Przywracanie notes.untitled.title=Bez tytułu diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_pt_BR.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_pt_BR.properties index 22cb15004f..1fa5d032b8 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_pt_BR.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_pt_BR.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Espaço: notes.label.movePageCurrentPosition=Posição atual: notes.label.movePageDestination=Destino: notes.label.movePagePosition=Cargo: -notes.label.noteTreeview.tooltip=Clique para exibir a árvore de notas notes.label.historyVersions=Versões notes.label.restoreVersions=Restaurar notes.untitled.title=Sem título diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_pt_PT.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_pt_PT.properties index b5102a7c31..18db98ee23 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_pt_PT.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_pt_PT.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Espaço: notes.label.movePageCurrentPosition=Posição atual: notes.label.movePageDestination=Destino: notes.label.movePagePosition=Cargo: -notes.label.noteTreeview.tooltip=Clique para exibir a árvore de notas notes.label.historyVersions=Versões notes.label.restoreVersions=Restaurar notes.untitled.title=Sem título diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ro.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ro.properties index 02df04ec55..0d8ea6aabd 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ro.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ro.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Spaţiu: notes.label.movePageCurrentPosition=Poziţia curentă: notes.label.movePageDestination=Destinație: notes.label.movePagePosition=Poziţie: -notes.label.noteTreeview.tooltip=Click pentru a afişa note arborescente notes.label.historyVersions=Versiuni notes.label.restoreVersions=Restabilire notes.untitled.title=Fără Nume diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ru.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ru.properties index 9cbdbd9f3c..7d095685b2 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ru.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_ru.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Область: notes.label.movePageCurrentPosition=Должность в настоящее время: notes.label.movePageDestination=Назначение: notes.label.movePagePosition=Должность: -notes.label.noteTreeview.tooltip=Нажмите, чтобы отобразить дерево записей notes.label.historyVersions=Версии notes.label.restoreVersions=Восстановить notes.untitled.title=Без названия diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sk.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sk.properties index 7a1c1500cc..ea01bc1b42 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sk.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sk.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Priestor: notes.label.movePageCurrentPosition=Aktuálna pozícia: notes.label.movePageDestination=Cieľ: notes.label.movePagePosition=Pozícia: -notes.label.noteTreeview.tooltip=Kliknutím zobrazíte strom poznámok notes.label.historyVersions=Verzie notes.label.restoreVersions=Obnoviť notes.untitled.title=Bez názvu diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sl.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sl.properties index 0a61ddeb94..75d46ab56f 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sl.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sl.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Prostor: notes.label.movePageCurrentPosition=Trenutni položaj: notes.label.movePageDestination=Cilj: notes.label.movePagePosition=Delovno mesto: -notes.label.noteTreeview.tooltip=Kliknite za prikaz drevesa Notes notes.label.historyVersions=Različice notes.label.restoreVersions=Obnovi notes.untitled.title=Neimenovan diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sq.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sq.properties index bca159faed..f699f2de93 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sq.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sq.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=crwdns44762:0crwdne44762:0 notes.label.movePageCurrentPosition=crwdns44764:0crwdne44764:0 notes.label.movePageDestination=crwdns44766:0crwdne44766:0 notes.label.movePagePosition=crwdns44768:0crwdne44768:0 -notes.label.noteTreeview.tooltip=crwdns44770:0crwdne44770:0 notes.label.historyVersions=crwdns44772:0crwdne44772:0 notes.label.restoreVersions=crwdns44774:0crwdne44774:0 notes.untitled.title=crwdns44776:0crwdne44776:0 diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sv_SE.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sv_SE.properties index 9a32ecff20..87996965b9 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sv_SE.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_sv_SE.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Webb-yta: notes.label.movePageCurrentPosition=Nuvarande befattning: notes.label.movePageDestination=Destination: notes.label.movePagePosition=Befattning: -notes.label.noteTreeview.tooltip=Klicka för att visa Anteckningsträd notes.label.historyVersions=Versioner notes.label.restoreVersions=Återställ notes.untitled.title=Namnlös diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_th.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_th.properties index d8028bc37c..d9c5b10675 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_th.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_th.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=อวกาศ: notes.label.movePageCurrentPosition=ตำแหน่งปัจจุบัน : notes.label.movePageDestination=ปลายทาง: notes.label.movePagePosition=ตำแหน่ง: -notes.label.noteTreeview.tooltip=คลิกเพื่อแสดงแผนผังบันทึก notes.label.historyVersions=เวอร์ชันต่างๆ notes.label.restoreVersions=คืนค่า notes.untitled.title=ไม่มีชื่อ diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_tr.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_tr.properties index ac75eeffd9..6afc3c9501 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_tr.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_tr.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Alan: notes.label.movePageCurrentPosition=Şu anki pozisyonu: notes.label.movePageDestination=Hedef: notes.label.movePagePosition=Pozisyon: -notes.label.noteTreeview.tooltip=Notlar ağacını görüntülemek için tıklayın notes.label.historyVersions=Sürümler notes.label.restoreVersions=Geri Yükle notes.untitled.title=Başlıksız diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_uk.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_uk.properties index 09d1542a90..4ac0d20508 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_uk.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_uk.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Область: notes.label.movePageCurrentPosition=Поточна позиція: notes.label.movePageDestination=Призначення: notes.label.movePagePosition=Посада: -notes.label.noteTreeview.tooltip=Натисніть, щоб відобразити дерево нотаток notes.label.historyVersions=Версії notes.label.restoreVersions=Відновити notes.untitled.title=Без назви diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_vi.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_vi.properties index 07013250e2..15a92d149b 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_vi.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_vi.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=Không gian Nhóm: notes.label.movePageCurrentPosition=Vị trí hiện tại: notes.label.movePageDestination=Điểm đến: notes.label.movePagePosition=Vị trí: -notes.label.noteTreeview.tooltip=Nhấp để hiển thị cây Ghi chú notes.label.historyVersions=Phiên bản notes.label.restoreVersions=Khôi phục notes.untitled.title=Không có Tiêu đề diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_zh_CN.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_zh_CN.properties index 5ae5a51847..11e94b68da 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_zh_CN.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_zh_CN.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=空间: notes.label.movePageCurrentPosition=现任职务: notes.label.movePageDestination=目的地: notes.label.movePagePosition=位置: -notes.label.noteTreeview.tooltip=点击显示笔记树 notes.label.historyVersions=版本 notes.label.restoreVersions=恢复 notes.untitled.title=无标题 diff --git a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_zh_TW.properties b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_zh_TW.properties index 417580090d..e618dfee2c 100644 --- a/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_zh_TW.properties +++ b/notes-webapp/src/main/resources/locale/portlet/notes/notesPortlet_zh_TW.properties @@ -159,7 +159,6 @@ notes.label.movePageSpace=空間: notes.label.movePageCurrentPosition=目前位置: notes.label.movePageDestination=目的地: notes.label.movePagePosition=位置: -notes.label.noteTreeview.tooltip=按一下可顯示註釋樹 notes.label.historyVersions=版本 notes.label.restoreVersions=還原 notes.untitled.title=無標題 diff --git a/notes-webapp/src/main/webapp/WEB-INF/gatein-resources.xml b/notes-webapp/src/main/webapp/WEB-INF/gatein-resources.xml index 8a839abeb9..d22dd78f41 100644 --- a/notes-webapp/src/main/webapp/WEB-INF/gatein-resources.xml +++ b/notes-webapp/src/main/webapp/WEB-INF/gatein-resources.xml @@ -90,6 +90,9 @@ vuetify + + vueDraggable + eXoVueI18n diff --git a/notes-webapp/src/main/webapp/javascript/eXo/wiki/notesService.js b/notes-webapp/src/main/webapp/javascript/eXo/wiki/notesService.js index d63ed0546a..96d04d1367 100644 --- a/notes-webapp/src/main/webapp/javascript/eXo/wiki/notesService.js +++ b/notes-webapp/src/main/webapp/javascript/eXo/wiki/notesService.js @@ -456,3 +456,20 @@ export function markNoteAsViewed(noteId, lang){ } }); } + +export function updateNotesOrder(payload) { + return fetch(`${notesConstants.PORTAL}/${notesConstants.PORTAL_REST}/notes/reorder`, { + headers: { + 'Content-Type': 'application/json' + }, + method: 'POST', + credentials: 'include', + body: JSON.stringify(payload) + }).then((resp) => { + if (resp?.ok) { + return true; + } else { + throw new Error('Error updating notes order'); + } + }); +} diff --git a/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewFilterDrawer.vue b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewFilterDrawer.vue new file mode 100644 index 0000000000..276a4d48e5 --- /dev/null +++ b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewFilterDrawer.vue @@ -0,0 +1,119 @@ + + + \ No newline at end of file diff --git a/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewItem.vue b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewItem.vue new file mode 100644 index 0000000000..8068ba305b --- /dev/null +++ b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewItem.vue @@ -0,0 +1,209 @@ + + + + \ No newline at end of file diff --git a/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewItemList.vue b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewItemList.vue new file mode 100644 index 0000000000..22bf819271 --- /dev/null +++ b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewItemList.vue @@ -0,0 +1,145 @@ + + + + + \ No newline at end of file diff --git a/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewSideBar.vue b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewSideBar.vue new file mode 100644 index 0000000000..51b7b64113 --- /dev/null +++ b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewSideBar.vue @@ -0,0 +1,568 @@ + + + + + \ No newline at end of file diff --git a/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewSideBarItemLabel.vue b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewSideBarItemLabel.vue new file mode 100644 index 0000000000..ed1a90e43c --- /dev/null +++ b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewSideBarItemLabel.vue @@ -0,0 +1,80 @@ + + + + \ No newline at end of file diff --git a/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewSideBarItemPrepend.vue b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewSideBarItemPrepend.vue new file mode 100644 index 0000000000..ee9802d2df --- /dev/null +++ b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeViewSideBarItemPrepend.vue @@ -0,0 +1,60 @@ + + + + \ No newline at end of file diff --git a/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeviewDrawer.vue b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeviewDrawer.vue index a8ced99f4d..e7e2f68e27 100644 --- a/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeviewDrawer.vue +++ b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeviewDrawer.vue @@ -644,6 +644,7 @@ export default { }, }, created() { + this.$root.$on('open-note-tree-view-drawer', this.open); this.$root.$on('refresh-treeView-items', (note)=> { if (note.draftPage) { this.getDraftNote(note.id); diff --git a/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeviewToolbar.vue b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeviewToolbar.vue new file mode 100644 index 0000000000..ef1e01d3a7 --- /dev/null +++ b/notes-webapp/src/main/webapp/vue-app/notes-treeview/components/NoteTreeviewToolbar.vue @@ -0,0 +1,95 @@ + + + diff --git a/notes-webapp/src/main/webapp/vue-app/notes-treeview/initComponents.js b/notes-webapp/src/main/webapp/vue-app/notes-treeview/initComponents.js index 0c21c529a2..e7bb5a0ae1 100644 --- a/notes-webapp/src/main/webapp/vue-app/notes-treeview/initComponents.js +++ b/notes-webapp/src/main/webapp/vue-app/notes-treeview/initComponents.js @@ -1,8 +1,22 @@ import NoteBreadcrumb from '../notes/components/NoteBreadcrumb.vue'; import NoteTreeviewDrawer from './components/NoteTreeviewDrawer.vue'; +import NoteTreeViewSideBar from './components/NoteTreeViewSideBar.vue'; +import NoteTreeViewSideBarItemLabel from './components/NoteTreeViewSideBarItemLabel.vue'; +import NoteTreeViewSideBarItemPrepend from './components/NoteTreeViewSideBarItemPrepend.vue'; +import NoteTreeviewToolbar from './components/NoteTreeviewToolbar.vue'; +import NoteTreeViewFilterDrawer from './components/NoteTreeViewFilterDrawer.vue'; +import NoteTreeViewItemList from './components/NoteTreeViewItemList.vue'; +import NoteTreeViewItem from './components/NoteTreeViewItem.vue'; const components = { 'note-treeview-drawer': NoteTreeviewDrawer, + 'note-treeview-sideBar': NoteTreeViewSideBar, + 'note-treeview-sidebar-item-label': NoteTreeViewSideBarItemLabel, + 'note-treeview-sidebar-item-prepend': NoteTreeViewSideBarItemPrepend, + 'note-treeview-toolbar': NoteTreeviewToolbar, + 'note-treeview-filter-drawer': NoteTreeViewFilterDrawer, + 'note-treeview-item-list': NoteTreeViewItemList, + 'note-treeview-item': NoteTreeViewItem, 'note-breadcrumb': NoteBreadcrumb }; diff --git a/notes-webapp/src/main/webapp/vue-app/notes/components/NotePage.vue b/notes-webapp/src/main/webapp/vue-app/notes/components/NotePage.vue new file mode 100644 index 0000000000..d693bac8ea --- /dev/null +++ b/notes-webapp/src/main/webapp/vue-app/notes/components/NotePage.vue @@ -0,0 +1,1300 @@ + + + diff --git a/notes-webapp/src/main/webapp/vue-app/notes/components/NotesOverview.vue b/notes-webapp/src/main/webapp/vue-app/notes/components/NotesOverview.vue index 8d451ef19f..31fe4a6896 100644 --- a/notes-webapp/src/main/webapp/vue-app/notes/components/NotesOverview.vue +++ b/notes-webapp/src/main/webapp/vue-app/notes/components/NotesOverview.vue @@ -1,1249 +1,123 @@ -