private void MovePageIfNeeded(PageSettings pageSettings, TabInfo tab) { if (pageSettings.ParentId.HasValue) { var request = new PageMoveRequest { Action = "parent", PageId = tab.TabID, ParentId = pageSettings.ParentId.Value }; MovePage(request); } }
public TabInfo MovePage(PageMoveRequest request) { var portalSettings = PortalController.Instance.GetCurrentPortalSettings(); var tab = TabController.Instance.GetTab(request.PageId, portalSettings.PortalId); if (tab == null) { throw new PageNotFoundException(); } if (tab.ParentId != request.ParentId) { string errorMessage; if (!IsValidTabPath(tab, Globals.GenerateTabPath(request.ParentId, tab.TabName), tab.TabName, out errorMessage)) { throw new PageException(errorMessage); } } switch (request.Action) { case "before": TabController.Instance.MoveTabBefore(tab, request.RelatedPageId); break; case "after": TabController.Instance.MoveTabAfter(tab, request.RelatedPageId); break; case "parent": //avoid move tab into its child page if (IsChild(portalSettings.PortalId, tab.TabID, request.ParentId)) { throw new PageException("DragInvalid"); } TabController.Instance.MoveTabToParent(tab, request.ParentId); break; } //as tab's parent may changed, url need refresh. return(TabController.Instance.GetTab(request.PageId, portalSettings.PortalId)); }
public HttpResponseMessage MovePage(PageMoveRequest request) { if (!_securityService.IsPageAdminUser()) { return(GetForbiddenResponse()); } try { var tab = _pagesController.MovePage(request); var tabs = TabController.GetPortalTabs(PortalSettings.PortalId, Null.NullInteger, false, true, false, true); var pageItem = Converters.ConvertToPageItem <PageItem>(tab, tabs); return(Request.CreateResponse(HttpStatusCode.OK, new { Status = 0, Page = pageItem })); } catch (PageNotFoundException) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } catch (PageException ex) { return(Request.CreateResponse(HttpStatusCode.OK, new { Status = 1, ex.Message })); } }