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)
  • 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:
    • 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 -