private void UpdateContent()
        {
            if (string.IsNullOrEmpty(submittedContent))
            {
                return;
            }

            if (!EditIsAllowed())
            {
                return;
            }

            if ((ViewMode == PageViewMode.WorkInProgress) && (WebConfigSettings.EnableContentWorkflow) && (CurrentSite.EnableContentWorkflow))
            {
                if (workInProgress != null)
                {
                    if (!editDraft)
                    {
                        return;
                    }

                    workInProgress.ContentText     = submittedContent;
                    workInProgress.LastModUserGuid = currentUser.UserGuid;
                    workInProgress.Save();
                }
                else
                {
                    //draft version doesn't exist - create it:
                    ContentWorkflow.CreateDraftVersion(
                        CurrentSite.SiteGuid,
                        submittedContent,
                        string.Empty,
                        -1,
                        Guid.Empty,
                        this.module.ModuleGuid,
                        currentUser.UserGuid);
                }
            }
            else
            {
                // edit live content
                if (userCanOnlyEditAsDraft)
                {
                    return;
                }

                html = repository.Fetch(module.ModuleId);
                if (html == null)
                {
                    html            = new HtmlContent();
                    html.ModuleId   = module.ModuleId;
                    html.ModuleGuid = module.ModuleGuid;
                }

                html.Body = submittedContent;
                //these will really only be saved if it is a new html instance
                html.CreatedDate     = DateTime.UtcNow;
                html.UserGuid        = currentUser.UserGuid;
                html.LastModUserGuid = currentUser.UserGuid;

                if (module != null)
                {
                    html.ModuleGuid = module.ModuleGuid;
                }
                html.LastModUtc = DateTime.UtcNow;


                if ((enableContentVersioning) && (html.ItemId > -1))
                {
                    html.CreateHistory(CurrentSite.SiteGuid);
                }

                html.ContentChanged += new ContentChangedEventHandler(html_ContentChanged);

                repository.Save(html);

                CurrentPage.UpdateLastModifiedTime();
                CacheHelper.ClearModuleCache(module.ModuleId);

                SiteUtils.QueueIndexing();
            }
        }
Example #2
0
        private void SaveHtml(bool draft)
        {
            if (html == null)
            {
                return;
            }

            this.itemId = html.ItemId;

            html.ContentChanged += new ContentChangedEventHandler(html_ContentChanged);

            bool   saveHtml = true;
            string htmlBody = edContent.Text;

            if (draft)
            {
                //ContentWorkflow wip = ContentWorkflow.GetWorkInProgress(this.module.ModuleGuid);
                //dont update the actual data, but edit/create the draft version:
                if (workInProgress != null)
                {
                    if (workInProgress.Status != ContentWorkflowStatus.Draft)
                    {
                        if ((workInProgress.Status == ContentWorkflowStatus.AwaitingApproval) && (userCanEdit))
                        {
                            // do nothing, let the editor update the draft without changing the status
                        }
                        else
                        {
                            //otherwise set the status back to draft
                            workInProgress.Status = ContentWorkflowStatus.Draft;
                        }
                    }

                    workInProgress.ContentText = edContent.Text;
                    workInProgress.Save();
                }
                else
                {
                    //draft version doesn't exist - create it:
                    ContentWorkflow.CreateDraftVersion(
                        siteSettings.SiteGuid,
                        edContent.Text,
                        string.Empty,
                        -1,
                        Guid.Empty,
                        this.module.ModuleGuid,
                        currentUser.UserGuid);
                }

                //if this is a new item, then we want to save it even though we will be saving it with no html,
                //this ensures that there is a record there from the start:
                if (html.ItemId < 1)
                {
                    saveHtml = true;
                    //save with no content as there will be no live content
                    htmlBody = String.Empty;
                }
                else
                {
                    saveHtml = false;
                }
            }

            if (saveHtml)
            {
                //update existing HTML content:

                html.Body            = htmlBody;
                html.LastModUserGuid = currentUser.UserGuid;
                if (module != null)
                {
                    html.ModuleGuid = module.ModuleGuid;
                }
                html.LastModUtc = DateTime.UtcNow;


                if (enableContentVersioning && !draft)
                {
                    html.CreateHistory(siteSettings.SiteGuid);
                }

                repository.Save(html);
            }
            CurrentPage.UpdateLastModifiedTime();
            CacheHelper.TouchCacheDependencyFile(cacheDependencyKey);

            SiteUtils.QueueIndexing();


            if (hdnReturnUrl.Value.Length > 0)
            {
                WebUtils.SetupRedirect(this, hdnReturnUrl.Value);
                return;
            }

            WebUtils.SetupRedirect(this, SiteUtils.GetCurrentPageUrl());
        }
Example #3
0
        private void SaveHtml(bool draft)
        {
            if (html == null)
            {
                return;
            }

            this.itemId = html.ItemId;

            html.ContentChanged += new ContentChangedEventHandler(html_ContentChanged);

            bool   saveHtml = true;
            string htmlBody = edContent.Text;

            if (draft)
            {
                //ContentWorkflow wip = ContentWorkflow.GetWorkInProgress(this.module.ModuleGuid);
                //dont update the actual data, but edit/create the draft version:
                if (workInProgress != null)
                {
                    if (workInProgress.Status != ContentWorkflowStatus.Draft)
                    {
                        //JOE DAVIS
                        if ((workInProgress.Status == ContentWorkflowStatus.AwaitingApproval || workInProgress.Status == ContentWorkflowStatus.AwaitingPublishing) &&
                            ((userCanEdit) || UserCanApproveDraftModule(module.ModuleId, HtmlContent.FeatureGuid)))
                        {
                            // do nothing, let the editor update the draft without changing the status
                        }
                        else
                        {
                            //otherwise set the status back to draft
                            workInProgress.Status = ContentWorkflowStatus.Draft;
                        }
                    }

                    workInProgress.ContentText     = edContent.Text;
                    workInProgress.LastModUserGuid = currentUser.UserGuid;
                    workInProgress.Save();
                }
                else
                {
                    //draft version doesn't exist - create it:
                    ContentWorkflow.CreateDraftVersion(
                        siteSettings.SiteGuid,
                        edContent.Text,
                        string.Empty,
                        -1,
                        Guid.Empty,
                        this.module.ModuleGuid,
                        currentUser.UserGuid);
                }

                //if this is a new item, then we want to save it even though we will be saving it with no html,
                //this ensures that there is a record there from the start:
                if (html.ItemId < 1)
                {
                    saveHtml = true;
                    //save with no content as there will be no live content
                    htmlBody = String.Empty;
                }
                else
                {
                    saveHtml = false;
                }
            }

            if (saveHtml)
            {
                html.Body = htmlBody;
                //these will really only be saved if it is a new html instance
                html.CreatedDate = DateTime.UtcNow;
                html.UserGuid    = currentUser.UserGuid;

                html.LastModUserGuid = currentUser.UserGuid; //this is only used for update

                if (divExcludeFromRecentContent.Visible)
                {
                    html.ExcludeFromRecentContent = chkExcludeFromRecentContent.Checked;
                }

                if (module != null)
                {
                    html.ModuleGuid = module.ModuleGuid;
                }
                html.LastModUtc = DateTime.UtcNow;


                if (enableContentVersioning && !draft)
                {
                    html.CreateHistory(siteSettings.SiteGuid);
                }

                repository.Save(html);
            }
            else
            {
                if ((divExcludeFromRecentContent.Visible) && (chkExcludeFromRecentContent.Checked != html.ExcludeFromRecentContent))
                {
                    html.ExcludeFromRecentContent = chkExcludeFromRecentContent.Checked;
                    repository.Save(html);
                }
            }

            if (!draft)
            {
                CurrentPage.UpdateLastModifiedTime();
                CacheHelper.ClearModuleCache(moduleId);

                SiteUtils.QueueIndexing();
            }


            //if (hdnReturnUrl.Value.Length > 0)
            //{

            //    WebUtils.SetupRedirect(this, hdnReturnUrl.Value);
            //    return;
            //}

            //WebUtils.SetupRedirect(this, SiteUtils.GetCurrentPageUrl());
        }