HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/RMourik/bassol.nl/wwwroot/CMSModules/PortalEngine/UI/OnSiteEdit/EditText.aspx.cs
using System;
using System.Linq;
using System.Web.UI;

using CMS.UIControls;
using CMS.Helpers;
using CMS.Controls;
using CMS.ExtendedControls;
using CMS.PortalEngine;

public partial class CMSModules_PortalEngine_UI_OnSiteEdit_EditText : CMSAbstractEditablePage
{
    protected override void OnInit(EventArgs e)
    {
        DocumentManager.OnValidateData += DocumentManager_OnValidateData;
        DocumentManager.OnAfterAction += DocumentManager_OnAfterAction;

        // Process ASPX template parameters
        if (QueryHelper.Contains("regiontype"))
        {
            ucEditableText.RegionType = CMSEditableRegionTypeEnumFunctions.GetRegionTypeEnum(QueryHelper.GetString("regiontype", string.Empty));
            if (ucEditableText.RegionType == CMSEditableRegionTypeEnum.HtmlEditor)
            {
                // HtmlEditor needs toolbar location defined (due to toolbar positioning and editing area padding)
                ucEditableText.HtmlAreaToolbarLocation = "Out:CKToolbar";
            }

            // Min/Max length
            ucEditableText.MaxLength = QueryHelper.GetInteger("maxl", ucEditableText.MaxLength);
            ucEditableText.MinLength = QueryHelper.GetInteger("minl", ucEditableText.MinLength);

            // Editor stylesheet
            ucEditableText.HTMLEditorCssStylesheet = QueryHelper.GetString("editorcss", ucEditableText.HTMLEditorCssStylesheet);

            // Word wrap
            ucEditableText.WordWrap = QueryHelper.GetBoolean("wordwrap", ucEditableText.WordWrap);

            // Upload image dimensions
            ucEditableText.ResizeToHeight = QueryHelper.GetInteger("resizetoheight", ucEditableText.ResizeToHeight);
            ucEditableText.ResizeToWidth = QueryHelper.GetInteger("resizetowidth", ucEditableText.ResizeToHeight);
            ucEditableText.ResizeToMaxSideSize = QueryHelper.GetInteger("resizetomaxsidesize", ucEditableText.ResizeToHeight);

            // Toolbar set
            ucEditableText.HtmlAreaToolbar = QueryHelper.GetString("toolbarset", ucEditableText.HtmlAreaToolbar);
        }

        ucEditableText.ViewMode = CheckPermissions();
        ucEditableText.DataControl = CurrentWebPartInstance;
        ucEditableText.CurrentPageInfo = CurrentPageInfo;
        ucEditableText.SetupControl();

        CurrentMaster.FooterContainer.Visible = false;
        CurrentMaster.PanelContent.RemoveCssClass("dialog-content");

        string title = GetString("Content.EditTextTitle");
        if (!String.IsNullOrEmpty(PageTitleSuffix))
        {
            title += " - " + HTMLHelper.HTMLEncode(PageTitleSuffix);
        }
        SetTitle(title);

        base.OnInit(e);

        CSSHelper.RegisterCSSLink(Page, "Design", "OnSiteEdit.css");
        ScriptHelper.RegisterJQuery(Page);

        menuElem.ShowSaveAndClose = true;

        String resize = @"function resizeEditor() {$cmsj('.cke_contents').height($cmsj(window).height()-$cmsj('.DialogsPageHeader').height() - $cmsj('.cke_top').height() - $cmsj('.cke_bottom').height() - 20) }
        $cmsj(window).resize(function() {resizeEditor()});";
        ScriptHelper.RegisterClientScriptBlock(this, typeof(Page), "resizeHeight", ScriptHelper.GetScript(resize));

        if (ucEditableText.RegionType == CMSEditableRegionTypeEnum.TextArea)
        {
            const string resizeScript = @"
            var resizeTextAreaTimer;

            // DOM ready
            $cmsj(document).ready( function() { ResizeEditableArea(200); });

            // Window resize
            $cmsj(window).resize(function () { ResizeEditableArea(100); });

            function ResizeEditableArea(timeout) {
                clearTimeout(resizeTextAreaTimer);
                resizeTextAreaTimer = window.setTimeout(function () {
                    var textarea = $cmsj('.EditableTextTextBox');
                    var editableTextContainer = $cmsj('.EditableTextContainer');
                    var editableTextEdit = $cmsj('.EditableTextEdit');
                    var borderMargin1 = textarea.outerHeight(true) - textarea.height();
                    var borderMargin2 = editableTextEdit.outerHeight(true) - editableTextEdit.height();
                    var borderMargin3 = editableTextContainer.outerHeight(true) - editableTextContainer.height();
                    var height = $cmsj('.dialog-content').height() - borderMargin1 - borderMargin2 - borderMargin3;
                    textarea.height(height);
             }, timeout); }";


            ScriptHelper.RegisterClientScriptBlock(this, typeof(Page), "ResizeEditableArea", ScriptHelper.GetScript(resizeScript));
        }

        CurrentDeviceInfo device = DeviceContext.CurrentDevice;

        if (device.IsMobile)
        {
            // Do not use fixed positioning for mobile devices
            (CurrentMaster.HeaderContainer as CMSPanel).FixedPosition = false;
        }
    }


    /// <summary>
    /// Load content
    /// </summary>
    public override void LoadContent(string content, bool forceReload)
    {
        ucEditableText.LoadContent(content, true);

        // Use always inline toolbar and resize height after editor is initialized
        if (ucEditableText.Editor != null)
        {
            ucEditableText.Editor.ToolbarLocation = "CKToolbar";
            ucEditableText.Editor.Config["on"] = "{ 'instanceReady' : function(e) { resizeEditor ();  } }";
        }
    }


    /// <summary>
    /// Get content
    /// </summary>
    public override string GetContent()
    {
        // Return editable content when valid
        if (ucEditableText.IsValid())
        {
            return ucEditableText.GetContent();
        }
        else
        {
            ShowError(ucEditableText.ErrorMessage);
        }

        return null;
    }


    /// <summary>
    /// Handles the OnValidateData event of the DocumentManager control.
    /// </summary>
    protected void DocumentManager_OnValidateData(object sender, DocumentManagerEventArgs e)
    {
        if (!ucEditableText.IsValid())
        {
            // Set the error message when an error occurs
            e.IsValid = false;
            e.ErrorMessage = ucEditableText.ErrorMessage;
        }
    }


    /// <summary>
    /// Handles the OnAfterAction event of the DocumentManager control.
    /// </summary>
    protected void DocumentManager_OnAfterAction(object sender, DocumentManagerEventArgs e)
    {
        // Update the ViewMode in order to enable/disable the edit text control (used for workflow actions).
        ucEditableText.ViewMode = CheckPermissions();

        // Refresh the page after action
        switch (e.ActionName)
        {
            case DocumentComponentEvents.UNDO_CHECKOUT:
            case DocumentComponentEvents.CHECKOUT:
            case DocumentComponentEvents.CHECKIN:
            case DocumentComponentEvents.CREATE_VERSION:
            case DocumentComponentEvents.PUBLISH:
            case DocumentComponentEvents.APPROVE:
            case DocumentComponentEvents.REJECT:
                URLHelper.RefreshCurrentPage();
                break;
        }

    }
}