Exemplo n.º 1
0
        public override void Save()
        {
            // bool isNew = this.IsNew;
            if (IsNew && WebSessionHelper.CurrentLicense != null && WebSessionHelper.CurrentLicense.HasMaxNumberExceeded("Template"))
            {
                throw new Exception("Kan niet opslaan: licentie heeft maximale aantal templates (" + WebSessionHelper.CurrentLicense.MaxNumberOfTemplates + ") overschreden.");
            }
            string parseErrors = HtmlHelper.ValidateHtml(this.Content);

            if (parseErrors != "")
            {
                //throw new Exception("Html is niet geldig: " + parseErrors);
            }
            base.Save();

            string stylesToGenerateScreenshot     = "";
            BaseCollection <CmsScript> allScripts = new BaseCollection <CmsScript>();

            allScripts.AddRange(this.Scripts);
            allScripts.AddRange(this.SiteScripts);
            foreach (CmsScript script in allScripts)
            {
                string scriptContent = script.Content;
                if (script.ScriptType == ScriptTypeEnum.Css)
                {
                    stylesToGenerateScreenshot += "<style>" + scriptContent + "</style>\r\n";
                }
                else
                {
                    stylesToGenerateScreenshot += "<script type=\"text/javascript\">" + scriptContent + "</script>\r\n";
                }
            }
            string htmlToGenerateScreenshot = String.Format(@"<!DOCTYPE html>
<html>
    <head>
        {0}
    </head>
    <body>
        {1}
    </body>
</html>", stylesToGenerateScreenshot, GetBodyContent());

            GenerateScreenshotHelper.GenerateScreenshotFromHTML(this.ID, htmlToGenerateScreenshot);

            //UnpublishedItem.Set(this, "Template");
            //BaseCollection<CmsPage> pages = BaseCollection<CmsPage>.Get("FK_Layout = '" + this.ID + "'");
            //foreach (CmsPage page in pages)
            //{
            //    UnpublishedItem.Set(page, "Page");
            //}
            //this.Publish();
            //bugfix
            foreach (CmsScript script in Scripts)
            {
                //mocht een script al zijn gekoppeld aan een page dan hier koppeling verwijderen, zodat je geen dubbele koppelingen krijgt
                string sql = String.Format("DELETE FROM ScriptPerPage WHERE FK_Script =  '{0}' AND EXISTS (SELECT * FROM Page WHERE Page.ID = FK_Page AND Page.FK_Layout='{1}')", script.ID, this.ID);
                DataBase.Get().Execute(sql);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Create a new instance.
        /// </summary>
        internal HeaderCollection(Document owner, ICollection <Header> fields)
        {
            foreach (var field in fields)
            {
                if (field.Owner != null)
                {
                    throw new ArgumentOutOfRangeException(nameof(fields), "Item cannot be in other collection.");
                }
            }

            Owner = owner;
            BaseCollection.AddRange(fields);
            foreach (var field in fields)
            {
                field.Owner = this;
            }

            //ensure first field is always Version
            if (!Contains(HeaderType.Version))
            {
                BaseCollection.Insert(0, new Header(HeaderType.Version, BitConverter.GetBytes(Header.DefaultVersion)));
            }
            else
            {
                var versionField = this[HeaderType.Version];
                var versionIndex = IndexOf(versionField);
                if (versionIndex > 0)
                {
                    BaseCollection.RemoveAt(versionIndex);
                    BaseCollection.Insert(0, versionField);
                }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Create a new instance.
        /// </summary>
        internal RecordCollection(Entry owner, ICollection <Record> fields)
        {
            foreach (var field in fields)
            {
                if (field.Owner != null)
                {
                    throw new ArgumentOutOfRangeException(nameof(fields), "Item cannot be in other collection.");
                }
            }

            Owner = owner;
            BaseCollection.AddRange(fields);
            foreach (var field in fields)
            {
                field.Owner = this;
            }
        }
Exemplo n.º 4
0
        protected override string getHeader()
        {
            string head = "";
            //head += GetHeaderMetaTags();
            BaseCollection <CmsScript> scripts = this.Site.Scripts;

            scripts.AddRange(this.Template.Scripts);
            scripts.AddRange(this.Scripts);

            head += Site.HeadContent;
            head += HeadContent;
            foreach (CmsScript script in scripts)
            {
                head += script.GetTag();
            }

            head += GetHeaderModuleDependentScripts();

            head += @"<script>
                    $(document).ready(function () {
                        if(parent && window.location != window.parent.location){
                            //vanuit iframe geladen
                            parent.BITEDITPAGE.newsletterId= '" + this.ID.ToString() + @"';
                            parent.BITEDITPAGE.language= '" + this.Template.LanguageCode + @"';
                            $('.bitContainer').sortable({
                                placeholder: 'bitContainerPlaceholder',
                                connectWith: '.bitContainer',
                                handle: '.moduleMoveGrip',
    
                                update: function (event, ui) {
                                    if (this === ui.item.parent()[0]) {
                                        var item = ui.item;
                                        var isNew = ($(item).is('.moduleToDrag'));
                                        var moduleType = $(item).attr('data-module-type');
                                        var id = $(item).attr('id');
                                        var containerName = $(this).attr('id').replace(""bitContainer"", """");
                                        var index = $(this).children().index(ui.item[0]);


                                        BITAJAX.dataServiceUrl = ""/_bitplate/EditPage/ModuleService2.aspx"";

                                        if (isNew) {
                                            var parametersObject = { type: moduleType, pageid: parent.BITEDITPAGE.pageId, containername: containerName, sortorder: index, newsletterid: parent.BITEDITPAGE.newsletterId };
                                            var jsonstring = JSON.stringify(parametersObject);
                                            BITAJAX.callWebService(""AddNewModule"", jsonstring, function (data) {
                                                item.replaceWith(data.d[0]);
                                                BITEDITPAGE.attachModuleCommands();
                                                BITEDITPAGE.addModuleScriptsToHead(data.d[1]);
                                                BITEDITPAGE.fillModulesCheckBoxList(parent.BITEDITPAGE.pageId);
                                            });
                                        }
                                        else {
                                            //sleep van ene container naar andere of van ene positie naar andere
                                            var parametersObject = { moduleid: id, pageid: parent.BITEDITPAGE.pageId, containername: containerName, sortorder: index, newsletterid: parent.BITEDITPAGE.newsletterId };
                                            var jsonstring = JSON.stringify(parametersObject);
                                            BITAJAX.callWebService(""MoveModule"", jsonstring, null);
                                        }
                                    }
                                },                
    
                                stop: function (event, ui) {
                                    var moduleMoveGrip = $(ui.item).find('.moduleMoveGrip');
                                    $(moduleMoveGrip).css({ 'width': 0, 'height': 0, 'display': 'none' });
                                    parent.BITEDITPAGE.calulateOrderingNumber(ui.item);
                                    var moduleId = $(ui.item).attr('id').replace('bitModule', '');
                                    //verberg infodivje
                                    $('#ModuleInfo' + moduleId).remove();
                                }
                                //$('.bitContainer').disableSelection();
                            });
                        }
                    });
            </script>";

            head += @"<script type=""text/javascript"" src=""/_js/bitAjax.js""></script>";
            /* <script type=""text/javascript"" src=""/_js/bitSiteScript.js""></script>"; */
            return(head);
        }