protected void Page_Load(object sender, EventArgs e)
    {
        DebugHelper.SetContext("GetImageVersion");

        // Get the parameters
        Guid editorGuid = QueryHelper.GetGuid("editorguid", Guid.Empty);
        int  num        = QueryHelper.GetInteger("versionnumber", -1);

        // Load the temp file info
        if (num >= 0)
        {
            tfi = TempFileInfoProvider.GetTempFileInfo(editorGuid, num);
        }
        else
        {
            DataSet ds = TempFileInfoProvider.GetTempFiles(null, "FileNumber DESC", 1, null);
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                tfi = new TempFileInfo(ds.Tables[0].Rows[0]);
            }
        }

        // Send the data
        SendFile();

        DebugHelper.ReleaseContext();
    }
 /// <summary>
 /// Saves current version of image and discards all other versions.
 /// </summary>
 /// <param name="includeExtensionInName">If true file name is returned with extension</param>
 public void SaveCurrentVersion(bool includeExtensionInName)
 {
     if (LoadingFailed)
     {
         SavingFailed = true;
     }
     else
     {
         if (imgHelper != null)
         {
             TempFileInfo tfi = TempFileInfoProvider.GetTempFileInfo(InstanceGUID, CurrentVersion);
             if (tfi != null)
             {
                 if (SaveImage != null)
                 {
                     tfi.Generalized.EnsureBinaryData();
                     SaveImage((includeExtensionInName ? tfi.FileName + "." + tfi.FileExtension.TrimStart('.') : tfi.FileName), tfi.FileExtension, tfi.FileMimeType, tfi.FileTitle, tfi.FileDescription, tfi.FileBinary, tfi.FileImageWidth, tfi.FileImageHeight);
                 }
             }
         }
         if (!SavingFailed)
         {
             // Delete all versions
             TempFileInfoProvider.DeleteTempFiles(TempFileInfoProvider.IMAGE_EDITOR_FOLDER, InstanceGUID);
         }
     }
 }
    /// <summary>
    /// Returns true if the files are stored only in DB or user has disk read/write permissions. Otherwise false.
    /// </summary>
    public bool IsUndoRedoPossible()
    {
        if (ViewState["IsUndoRedoPossible"] == null)
        {
            bool storeFilesInFileSystem = TempFileInfoProvider.StoreFilesInFileSystem(SiteContext.CurrentSiteName);
            bool storeFilesInDatabase   = TempFileInfoProvider.StoreFilesInDatabase(SiteContext.CurrentSiteName);

            if (storeFilesInDatabase)
            {
                ViewState["IsUndoRedoPossible"] = true;
            }
            else
            {
                if (storeFilesInFileSystem)
                {
                    string dir = TempFileInfoProvider.GetTempFilesFolderPath(TempFileInfoProvider.IMAGE_EDITOR_FOLDER, InstanceGUID);
                    if (DirectoryHelper.CheckPermissions(dir))
                    {
                        ViewState["IsUndoRedoPossible"] = true;
                    }
                    else
                    {
                        ViewState["IsUndoRedoPossible"] = false;
                    }
                }
                else
                {
                    ViewState["IsUndoRedoPossible"] = false;
                }
            }
        }

        return(ValidationHelper.GetBoolean(ViewState["IsUndoRedoPossible"], true));
    }
    /// <summary>
    /// Returns true if the files are stored only in DB or user has disk read/write permissions. Otherwise false.
    /// </summary>
    public bool IsUndoRedoPossible()
    {
        if (ViewState["IsUndoRedoPossible"] != null)
        {
            return(ValidationHelper.GetBoolean(ViewState["IsUndoRedoPossible"], true));
        }

        var filesLocationType = FileHelper.FilesLocationType(SiteContext.CurrentSiteName);

        if (filesLocationType != FilesLocationTypeEnum.FileSystem)
        {
            ViewState["IsUndoRedoPossible"] = true;
        }
        else
        {
            if (filesLocationType != FilesLocationTypeEnum.Database)
            {
                string dir = TempFileInfoProvider.GetTempFilesFolderPath(TempFileInfoProvider.IMAGE_EDITOR_FOLDER, InstanceGUID);
                if (DirectoryHelper.CheckPermissions(dir))
                {
                    ViewState["IsUndoRedoPossible"] = true;
                }
                else
                {
                    ViewState["IsUndoRedoPossible"] = false;
                }
            }
            else
            {
                ViewState["IsUndoRedoPossible"] = false;
            }
        }

        return(ValidationHelper.GetBoolean(ViewState["IsUndoRedoPossible"], true));
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        DebugHelper.SetContext("GetImageVersion");

        if (!QueryHelper.ValidateHash("hash"))
        {
            URLHelper.Redirect(ResolveUrl("~/CMSMessages/Error.aspx?title=" + ResHelper.GetString("imageeditor.badhashtitle") + "&text=" + ResHelper.GetString("imageeditor.badhashtext")));
        }

        // Get the parameters
        Guid editorGuid = QueryHelper.GetGuid("editorguid", Guid.Empty);
        int  num        = QueryHelper.GetInteger("versionnumber", -1);

        // Load the temp file info
        if (num >= 0)
        {
            tfi = TempFileInfoProvider.GetTempFileInfo(editorGuid, num);
        }
        else
        {
            DataSet ds = TempFileInfoProvider.GetTempFiles(null, "FileNumber DESC", 1, null);
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                tfi = new TempFileInfo(ds.Tables[0].Rows[0]);
            }
        }

        // Send the data
        SendFile();

        DebugHelper.ReleaseContext();
    }
    protected void btnClose_Click(object sender, EventArgs e)
    {
        TempFileInfoProvider.DeleteTempFiles(TempFileInfoProvider.IMAGE_EDITOR_FOLDER, imageEditor.InstanceGUID);

        string script = "setTimeout(function() { window.skipCloseConfirm = true; CloseDialog(); },0);";

        ScriptHelper.RegisterStartupScript(Page, typeof(string), "CloseImageEditor", script, true);
    }
 /// <summary>
 /// Processes the redo action.
 /// </summary>
 public void ProcessRedo()
 {
     CurrentVersion++;
     tempFile = TempFileInfoProvider.GetTempFileInfo(InstanceGUID, CurrentVersion);
     InitFileInfo();
     PopulateConversionDropdownlist();
     PropagateChanges(false);
 }
Beispiel #8
0
 protected void btnClose_Click(object sender, EventArgs e)
 {
     TempFileInfoProvider.DeleteTempFiles(TempFileInfoProvider.IMAGE_EDITOR_FOLDER, imageEditor.InstanceGUID);
     ltlScript.Text = ScriptHelper.GetScript("setTimeout('window.skipCloseConfirm = true;Close()',0);");
 }
    protected void Page_Load(object sender, EventArgs e)
    {
        RegisterTrimScript();

        if (LoadImageType != null)
        {
            LoadImageType();
        }

        ltlScript.Text = "";

        if (!URLHelper.IsPostback())
        {
            // Display image if available data
            if (imageType != ImageHelper.ImageTypeEnum.None)
            {
                if (InitializeProperties != null)
                {
                    InitializeProperties();
                }

                if (!LoadingFailed)
                {
                    currentFormat = imgHelper.ImageFormatToString();
                }
            }

            // Create first version on first load (original)
            if (ImgHelper != null)
            {
                CreateVersion(ImgHelper.SourceData);
            }
        }
        else
        {
            // Load current version to edit
            tempFile = TempFileInfoProvider.GetTempFileInfo(InstanceGUID, CurrentVersion);
            if (tempFile != null)
            {
                tempFile.Generalized.EnsureBinaryData();
                ImgHelper     = new ImageHelper(tempFile.FileBinary);
                currentFormat = imgHelper.ImageFormatToString();
            }

            if (!IsUndoRedoPossible() && (InitializeProperties != null))
            {
                InitializeProperties();
            }

            if (!LoadingFailed)
            {
                currentFormat = imgHelper.ImageFormatToString();
            }
        }

        InitializeStrings(!RequestHelper.IsPostBack());
        InitializeFields();

        if (!URLHelper.IsPostback())
        {
            // Initialize labels depending on image type in parent control
            if (InitializeLabels != null)
            {
                InitializeLabels(true);
            }
        }

        // Show tab 'Properties'
        if (ValidationHelper.GetBoolean(hdnShowProperties.Value, false))
        {
            ScriptHelper.RegisterStartupScript(this, typeof(string), "ShowProperties", ScriptHelper.GetScript("ShowProperties(true, '" + hdnShowProperties.ClientID + "');"));
        }

        if (!IsPreview)
        {
            // Enable or disable meta data editor
            metaDataEditor.Enabled = Enabled;
        }
    }
    /// <summary>
    /// Creates new version of image.
    /// </summary>
    /// <param name="data">Image data</param>
    /// <param name="name">File name</param>
    /// <param name="title">File title</param>
    /// <param name="description">File description</param>
    public void CreateVersion(byte[] data, string name, string title, string description)
    {
        if (IsUndoRedoPossible())
        {
            // If current
            if ((CurrentVersion) >= MaxVersionsCount)
            {
                ShowError(GetString("img.errors.maxversion"));
                LoadingFailed = true;
            }
            else if (ImgHelper != null)
            {
                try
                {
                    // Set the imagehelper to new data
                    ImgHelper = new ImageHelper(data);
                    CurrentVersion++;

                    // Save new file version
                    TempFileInfo tfi = new TempFileInfo();
                    tfi.FileDirectory   = "ImageEditor";
                    tfi.FileBinary      = data;
                    tfi.FileParentGUID  = InstanceGUID;
                    tfi.FileExtension   = "." + currentFormat;
                    tfi.FileName        = name;
                    tfi.FileTitle       = title;
                    tfi.FileDescription = description;
                    tfi.FileNumber      = CurrentVersion;
                    tfi.FileMimeType    = "image/" + (currentFormat == "jpg" ? "jpeg" : currentFormat);
                    tfi.FileImageWidth  = ImgHelper.ImageWidth;
                    tfi.FileImageHeight = ImgHelper.ImageHeight;
                    tfi.FileSize        = ImgHelper.SourceData.Length;
                    tfi.FileSiteName    = SiteContext.CurrentSiteName;

                    tempFile = tfi;

                    SetScriptProperties(true);

                    // Delete all next temporary files before creating new
                    TempFileInfoProvider.DeleteTempFiles(TempFileInfoProvider.IMAGE_EDITOR_FOLDER, InstanceGUID, CurrentVersion - 1, MaxVersionsCount);

                    // Save new temporary file
                    TempFileInfoProvider.SetTempFileInfo(tfi);

                    // Oldest version is always current if creating new version
                    OldestVersion = CurrentVersion;
                }
                catch (Exception ex)
                {
                    ShowError(GetString("img.errors.processing"), ex.Message);
                    EventLogProvider.LogException("Image editor", "LOAD", ex);
                    LoadingFailed = true;
                }
            }
        }
        else
        {
            if (SaveImage != null)
            {
                string extension = "." + currentFormat;
                string mimetype  = "image/" + (currentFormat == "jpg" ? "jpeg" : currentFormat);

                ImgHelper.LoadImage(data);

                SaveImage(name, extension, mimetype, title, description, data, ImgHelper.ImageWidth, ImgHelper.ImageHeight);
            }
        }
    }