Example #1
0
        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);
            }
        }
Example #2
0
        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 }));
            }
        }