private PageMaster GetNextPageMaster(string pageSequenceName,
                                             int currentPageNumber,
                                             bool thisIsFirstPage,
                                             bool isEmptyPage)
        {
            PageMaster pageMaster = null;

            PageSequenceMaster sequenceMaster =
                this.layoutMasterSet.getPageSequenceMaster(pageSequenceName);

            if (sequenceMaster != null)
            {
                pageMaster = GetNextSimplePageMaster(sequenceMaster,
                                                     currentPageNumber,
                                                     thisIsFirstPage,
                                                     isEmptyPage).getPageMaster();
            }
            else
            {
                SimplePageMaster simpleMaster =
                    this.layoutMasterSet.getSimplePageMaster(pageSequenceName);
                if (simpleMaster == null)
                {
                    throw new FonetException("'master-reference' for 'fo:page-sequence'"
                                             + "matches no 'simple-page-master' or 'page-sequence-master'");
                }
                currentPageMasterName = pageSequenceName;

                pageMaster = simpleMaster.GetNextPageMaster();
            }
            return(pageMaster);
        }
Beispiel #2
0
        public void CreateSysMasterPageV0(Site site)
        {
            PageTemplate sysTemplate = new PageTemplate
            {
                Id    = "System.cshtml",
                Title = "System Page"
            };

            var masterPages   = new List <PageMaster>();
            var pageTemplates = new List <PageTemplate>();

            pageTemplates.Add(sysTemplate);

            foreach (var template in pageTemplates)
            {
                var masterPage = new PageMaster
                {
                    Id           = KeyGen.NewGuid().ToString(),
                    SiteId       = site.Id,
                    TemplateId   = template.Id,
                    Title        = template.Title + " Master Page",
                    PreviewPath  = "/img/admin/na.png",
                    IsDefault    = false,
                    IsSystemPage = true
                };

                _masterPageManager.CreateAsync(masterPage).Wait();
                _masterPageManager.CreateInitialVersion(masterPage.Id, true).Wait();

                masterPages.Add(masterPage);
            }
        }
Beispiel #3
0
 public PageMaster Create(PageMaster page, Int64 UserID)
 {
     page.CreatedBy   = UserID;
     page.CreatedDtTm = DateTime.Now;
     dbModel.PageMasters.Add(page);
     dbModel.SaveChanges();
     return(page);
 }
        public bool CanPublishMaster(UserContext user, PageMaster master)
        {
            var site = _siteManager.GetByIdAsync(master.SiteId).Result;

            // HOTFIX: Only corporate users can perform this activity
            var validClaims = new SecurityClaim[]
            {
                new SecurityClaim(SiteClaimTypes.SitePrimaryAdmin, ConnectCoreConstants.CorporateId),
                new SecurityClaim(SiteClaimTypes.SiteMasterPagesPublish, ConnectCoreConstants.CorporateId),
            };

            return(user.SecurityClaims.FindAny(validClaims));
        }
Beispiel #5
0
        public PageMaster Edit(PageMaster page, Int64 UserID)
        {
            var pageInfo = dbModel.PageMasters.Where(w => w.PageID == page.PageID).FirstOrDefault();

            pageInfo.ActionName           = page.ActionName;
            pageInfo.ControllerName       = page.ControllerName;
            pageInfo.PageName             = page.PageName;
            pageInfo.PageType             = page.PageType;
            pageInfo.Remarks              = page.Remarks;
            pageInfo.IsActive             = page.IsActive;
            pageInfo.ModifiedBy           = UserID;
            pageInfo.ModifiedDtTm         = DateTime.Now;
            pageInfo.Remarks              = page.Remarks;
            dbModel.Entry(pageInfo).State = EntityState.Modified;
            dbModel.SaveChanges();
            return(page);
        }
Beispiel #6
0
        public async Task <bool> UpdateAsync(PageMaster pageMaster)
        {
            Ensure.Argument.NotNull(pageMaster);

            var tempPageMaster = await _db.PageMasters.FirstOrDefaultAsync(x => x.Id == pageMaster.Id);

            if (tempPageMaster == null)
            {
                return(false);
            }

            tempPageMaster.Title       = pageMaster.Title;
            tempPageMaster.TemplateId  = pageMaster.TemplateId;
            tempPageMaster.PreviewPath = pageMaster.PreviewPath;

            //NOTE: Currently the "Default" master page is set during seeding with no user option to change.
            //      Undo the following code block once we allow the user to set this value

            /*
             *
             *  tempPageMaster.IsDefault = pageMaster.IsDefault;
             *
             *  // Logic to change the existing "Default" master page when "IsDefault" changes.
             *  if(tempPageMaster.IsDefault == true)
             *  {
             *      var oldDefault = await GetDefaultMasterPage(pageMaster.SiteId);
             *
             *      if (oldDefault != null && oldDefault.Id != tempPageMaster.Id)
             *      {
             *          oldDefault.IsDefault = false;
             *      }
             *  }
             */

            try
            {
                await _db.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
        private IActionResult RenderMaster(PageMaster masterPage, IContentVersion versionInfo, bool editable, string toolbarView = null)
        {
            var masterPageSettings = new MasterPageSettings
            {
                MasterPageId = masterPage.Id,
                VersionCode  = versionInfo.VersionCode,
                Editable     = editable
            };

            var contentBindings = ContentBindings.Generic("~/UI/Views/Public/Layouts/Empty.cshtml", null);
            var windowSettings  = new ShellSettings(masterPage.Title);

            if (toolbarView != null)
            {
                windowSettings.Toolbar = new ToolbarSettings(toolbarView, masterPage);
            }

            return(this.MasterPageView(contentBindings, masterPageSettings, windowSettings));
        }
        private Page MakePage(AreaTree areaTree, int firstAvailPageNumber,
                              bool isFirstPage,
                              bool isEmptyPage)
        {
            PageMaster pageMaster = GetNextPageMaster(masterName,
                                                      firstAvailPageNumber,
                                                      isFirstPage, isEmptyPage);

            if (pageMaster == null)
            {
                throw new FonetException("page masters exhausted. Cannot recover.");
            }
            Page p = pageMaster.makePage(areaTree);

            if (currentPage != null)
            {
                ArrayList foots = currentPage.getPendingFootnotes();
                p.setPendingFootnotes(foots);
            }
            return(p);
        }
Beispiel #9
0
        public async Task <string> CreateAsync(PageMaster pageMaster)
        {
            Ensure.Argument.NotNull(pageMaster);

            try
            {
                if (string.IsNullOrEmpty(pageMaster.Id))
                {
                    pageMaster.Id = KeyGen.NewGuid();
                }

                _db.PageMasters.Add(pageMaster);

                await _db.SaveChangesAsync();

                return(pageMaster.Id);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Beispiel #10
0
        /// <summary>
        /// Sets the current page.
        /// </summary>
        protected override void SetCurrentPage()
        {
            //Create master page
            MasterPage = new PageMaster(this);

            //Create whatever other page currently selected
            switch (Page)
            {
            case 1:
            {
                CurrentPage = new PageOverview(this);
                break;
            }

            case 2:
            {
                CurrentPage = new PageFinance(this);
                break;
            }

            case 3:
            {
                CurrentPage = new PagePopulace(this);
                break;
            }

            case 4:
            {
                CurrentPage = new PageDelegation(this);
                break;
            }

            case 5:
            {
                CurrentPage = new PageVote(this);
                break;
            }
            }
        }
Beispiel #11
0
        public App()
        {
            InitializeComponent();

            Nav = new IconNavigationPage(new PageListing
            {
                ToolbarItems =
                {
                    new IconToolbarItem
                    {
                        Icon      = "fa-search",
                        IconColor = Color.White,
                        Command   = new Command(() =>
                        {
                            App.Nav.PushAsync(new PageSearch());
                        }),
                    }
                },
            });

            Master   = new PageMaster();
            MainPage = Master;
        }
Beispiel #12
0
        private Dictionary <string, PageMaster> CreateMasterPagesV1(Site site)
        {
            var index         = 0;
            var masterPageMap = new Dictionary <string, PageMaster>();
            var dataFolder    = _coreOptions.FileSystemRoot + "\\" + _siteTemplate.DataFolder;

            foreach (var item in _siteTemplate.MasterPages)
            {
                var pageTemplate = _pageTemplates.FirstOrDefault(x => x.Id == item.Template);

                if (pageTemplate == null)
                {
                    throw new Exception($"Could not create MasterPage {item.Id}. Invalid page template {item.Template}");
                }

                var masterPage = new PageMaster
                {
                    Id          = KeyGen.NewGuid().ToString(),
                    SiteId      = site.Id,
                    TemplateId  = item.Template,
                    Title       = pageTemplate.Title + " Master Page",
                    PreviewPath = "/img/admin/na.png",
                    IsDefault   = index == 0
                };

                var seedFiles = item.SeedData?.Select(file => dataFolder + "\\" + file).ToArray();

                _masterPageManager.CreateAsync(masterPage).Wait();
                _masterPageManager.CreateInitialVersion(masterPage.Id, seedFiles).Wait();

                masterPageMap.Add(item.Id, masterPage);
                index++;
            }

            return(masterPageMap);
        }
Beispiel #13
0
        private IEnumerable <PageMaster> CreateMasterPagesV0(Site site)
        {
            var masterPages = new List <PageMaster>();

            foreach (var template in _pageTemplates)
            {
                var masterPage = new PageMaster
                {
                    Id          = KeyGen.NewGuid().ToString(),
                    SiteId      = site.Id,
                    TemplateId  = template.Id,
                    Title       = template.Title + " Master Page",
                    PreviewPath = "/img/admin/na.png",
                    IsDefault   = _pageTemplates[0].Id == template.Id
                };

                _masterPageManager.CreateAsync(masterPage).Wait();
                _masterPageManager.CreateInitialVersion(masterPage.Id, true).Wait();

                masterPages.Add(masterPage);
            }

            return(masterPages);
        }
Beispiel #14
0
        protected internal override void End()
        {
            int pageWidth =
                this.properties.GetProperty("page-width").GetLength().MValue();
            int pageHeight =
                this.properties.GetProperty("page-height").GetLength().MValue();
            MarginProps mProps = propMgr.GetMarginProps();

            int contentRectangleXPosition = mProps.marginLeft;
            int contentRectangleYPosition = pageHeight - mProps.marginTop;
            int contentRectangleWidth     = pageWidth - mProps.marginLeft
                                            - mProps.marginRight;
            int contentRectangleHeight = pageHeight - mProps.marginTop
                                         - mProps.marginBottom;

            this.pageMaster = new PageMaster(pageWidth, pageHeight);
            if (getRegion(RegionBody.REGION_CLASS) != null)
            {
                BodyRegionArea body =
                    (BodyRegionArea)getRegion(RegionBody.REGION_CLASS).MakeRegionArea(contentRectangleXPosition,
                                                                                      contentRectangleYPosition,
                                                                                      contentRectangleWidth,
                                                                                      contentRectangleHeight);
                this.pageMaster.addBody(body);
            }
            else
            {
                FonetDriver.ActiveDriver.FireFonetError(
                    "simple-page-master must have a region of class " +
                    RegionBody.REGION_CLASS);
            }

            if (getRegion(RegionBefore.REGION_CLASS) != null)
            {
                RegionArea before =
                    getRegion(RegionBefore.REGION_CLASS).MakeRegionArea(contentRectangleXPosition,
                                                                        contentRectangleYPosition, contentRectangleWidth,
                                                                        contentRectangleHeight);
                this.pageMaster.addBefore(before);
                beforePrecedence =
                    ((RegionBefore)getRegion(RegionBefore.REGION_CLASS)).getPrecedence();
                beforeHeight = before.GetHeight();
            }
            else
            {
                beforePrecedence = false;
            }

            if (getRegion(RegionAfter.REGION_CLASS) != null)
            {
                RegionArea after =
                    getRegion(RegionAfter.REGION_CLASS).MakeRegionArea(contentRectangleXPosition,
                                                                       contentRectangleYPosition, contentRectangleWidth,
                                                                       contentRectangleHeight);
                this.pageMaster.addAfter(after);
                afterPrecedence =
                    ((RegionAfter)getRegion(RegionAfter.REGION_CLASS)).getPrecedence();
                afterHeight = after.GetHeight();
            }
            else
            {
                afterPrecedence = false;
            }

            if (getRegion(RegionStart.REGION_CLASS) != null)
            {
                RegionArea start =
                    ((RegionStart)getRegion(RegionStart.REGION_CLASS)).MakeRegionArea(contentRectangleXPosition,
                                                                                      contentRectangleYPosition, contentRectangleWidth,
                                                                                      contentRectangleHeight, beforePrecedence,
                                                                                      afterPrecedence, beforeHeight, afterHeight);
                this.pageMaster.addStart(start);
            }

            if (getRegion(RegionEnd.REGION_CLASS) != null)
            {
                RegionArea end =
                    ((RegionEnd)getRegion(RegionEnd.REGION_CLASS)).MakeRegionArea(contentRectangleXPosition,
                                                                                  contentRectangleYPosition, contentRectangleWidth,
                                                                                  contentRectangleHeight, beforePrecedence,
                                                                                  afterPrecedence, beforeHeight, afterHeight);
                this.pageMaster.addEnd(end);
            }
        }