Class EditorService

java.lang.Object
sk.iway.iwcm.editor.service.EditorService

@Service @RequestScope public class EditorService extends Object
Servis pre ukladanie web stranok (tabulka documents a documents_history). NEPOUZIVAT standardne je potrebne pouzit EditorFacade, ktora zapuzdruje dalsie operacie pri ulozeni Servis je RequestScope aby pre kazdy request boli objeky oddelene (thread safe)
  • Field Details

  • Constructor Details

  • Method Details

    • getDoc

      public DocDetails getDoc(int docId, int historyId)
      Vrati DocDetails objekt podla zadaneho docId alebo historyId (ak je zadane)
      Parameters:
      docId -
      historyId -
      Returns:
    • saveEditedDoc

      public int saveEditedDoc(DocDetails editedDoc)
      Ulozi DocDetials do databazy vratane vsetkych akcii spojenych s ulozenim web stranky (schvalovanie, nastavenie adresara...)
      Parameters:
      editedDoc -
      Returns:
      historyId alebo hodnotu < 1 ak nastala chyba
    • prepareNewDocForEditor

      public DocDetails prepareNewDocForEditor(int docId, GroupDetails group)
      Vrati instanciu noveho DocDetails
      Parameters:
      docId - - -1 alebo -DOCID sablony prazdnej stranky
      group - - adresar kde ma vzniknut (podla toho sa nastavi sablona, sort priority...)
      Returns:
    • setSortPriority

      public boolean setSortPriority(DocDetails editedDoc, GroupDetails group)
      Set next available sort priority for doc
      Parameters:
      editedDoc -
      group -
      Returns:
    • prepareDocForEditor

      public DocDetails prepareDocForEditor(int docId, int historyId)
      Vrati existujuci DocDetails objekt podla zadaneho historyId/docId. Riesi aj problem s MultigroupMaping, kedy nacita udaje master dokumentu.
      Parameters:
      docId -
      historyId -
      Returns:
    • prepareDocForEditor

      public DocDetails prepareDocForEditor(int docId, int historyId, boolean ignoreMultigroupMapping)
      Vrati existujuci DocDetails objekt podla zadaneho historyId/docId. ak je ignoreMultigroupMapping=false Riesi aj problem s MultigroupMaping, kedy nacita udaje master dokumentu.
      Parameters:
      docId -
      historyId -
      ignoreMultigroupMapping -
      Returns:
    • deleteWebpage

      public boolean deleteWebpage(DocDetails doc, boolean publishEvents)
      Zmazanie web stranky, kontroluje prava pouzivatela, ak nema prava throwne RuntimeException
      Parameters:
      doc -
      publishEvents - - true to publish WebjetEvents (default true)
      Returns:
    • computeVirtualPathForNewPage

      public static int computeVirtualPathForNewPage(DocDetails editedDoc, GroupsDB groupsDB)
      Computes and assigns a unique virtual path for a page.

      This method is primarily intended for brand-new pages (with docId == -1 and an empty virtual path), but it can also be used when changing the title or group of an existing page. It replicates the same uniqueness loop used by #setVirtualPath(DocDetails, GroupsDB, DocDB) and stores the resulting value into DocBasic.setVirtualPath(String) on the supplied editedDoc instance.

      The return value is the docId of an existing page whose virtual path conflicts with the one being computed, or -1 if the computed virtual path is unique.

      Parameters:
      editedDoc - document being created or edited; its virtual path will be updated in place
      groupsDB - groups data access object used to resolve domain and group paths
      Returns:
      docId of the conflicting document, or -1 if no conflict was found
    • setVirtualPath

      protected void setVirtualPath(DocDetails editedDoc)
      Nastavi stranke URL adresu (virtual_path), ak uz nejaka ina stranka takuto URL ma, tak prida cislo 1,2,3... na koniec URL adresy
      Parameters:
      editedDoc -
    • getApprovers

      public List<UserDetails> getApprovers()
      Ak nastalo schvalovanie vrati zoznam schvalovatelov
      Returns:
    • getPublihStart

      public Long getPublihStart()
      Ak ma web stranka publikovanie v buducnosti nastavi sa sem timestamp zaciatku publikovania
      Returns:
    • isPageSavedToPublic

      public boolean isPageSavedToPublic()
      Ak bola stranka uspesne vypublikovana na verejne zobrazenie vrati true
      Returns:
    • isPageSavedAsWorkVersion

      public boolean isPageSavedAsWorkVersion()
      Ak bola stranka korektne ulozena ako rozpracovana verzia vrati true
      Returns:
    • isForceReload

      public boolean isForceReload()
      Vrati true ak je potrebne obnovit stromovu strukturu web stranok na GUI
      Returns:
    • setForceReload

      public void setForceReload(boolean forceReload)
      Vyvola reload=true atribut v JSON odpovedi pre obnovenie stromovej struktury/datatabulky
      Parameters:
      forceReload -
    • getNotify

      public List<NotifyBean> getNotify()
      Vrati zoznam moznych notifikacii pre pouzivatela
      Returns:
    • addNotify

      public void addNotify(NotifyBean notifyBean)
      Prida notifikaciu
      Parameters:
      notifyBean -
    • isPageEditable

      public boolean isPageEditable(Identity user, DocDetails doc, boolean isDelete)
      Overi, ci pouzivatel ma pravo na editaciu zadanej web stranky
      Parameters:
      user -
      doc -
      isDelete -
      Returns:
    • checkPermissions

      public void checkPermissions(Identity user, DocDetails doc, boolean isDelete)
      Skontroluje prava na editaciu web stranky a throwne Runtime exception v pripade nedostatocnych prav
      Parameters:
      user -
      doc -
      isDelete - - nastavte na true, ak sa jedna o kontrolu prav pre mazanie stranky
    • getProp

      public Prop getProp()
    • getCssListJson

      public static List<Map<String,String>> getCssListJson(DocBasic doc)
      Vrati mapu CSS stylov pre roletku vyberu stylu v editore
      Parameters:
      doc -
      Returns:
    • saveAttrs

      public void saveAttrs(DocDetails doc, List<DocAtrDefEntity> attrs, boolean cleanBeforeSave)
    • approveDocHistory

      public void approveDocHistory(DocHistory editedHistory)
      Approve waiting DocHistory to change some webpage (can be update/insert).
      Parameters:
      editedHistory -
    • approveAction

      public boolean approveAction()
      Perform insert/update webpage action (aka waiting docHistory) by approve/reject throu calling ApproveSrvice.approveAction method
      Returns:
    • approveDelAction

      public boolean approveDelAction()
      Perform delete webpage action (aka waiting docHistory) by approve/reject throu calling ApproveSrvice.approveDelAction method
      Returns:
    • deleteWebpageLogic

      protected String deleteWebpageLogic(int delDocId, ApproveService approveService, boolean publishEvents)
      Delete webpage logic + checkPermissions and check approve posibility. It will move webpage to trash folder (soft delete) OR if delete is called from trash folder perform permanent delete.
      Parameters:
      delDocId -
      approveService -
      publishEvents -
      Returns:
      Return "success" or other string taht represend some sort of error taht occured
    • recoverWebpageFromTrash

      public void recoverWebpageFromTrash(int recoverDocId)
      Recover webpage from trash folder: - set groupId from history (latest where actual=1 or latest) - set available from history (latest where actual=1 or latest)
      Parameters:
      recoverDocId -
    • recoverWebpageFromTrash

      public void recoverWebpageFromTrash(int recoverDocId, boolean publishEvents)
      Recover webpage from trash folder: - set groupId from history (latest where actual=1 or latest) - set available from history (latest where actual=1 or latest)
      Parameters:
      recoverDocId -
      publishEvents - - if true, publish ON_RECOVER and AFTER_RECOVER events, if false, do not publish any events