Exemple #1
0
    protected void gridFile_OnAction(string actionName, object actionArgument)
    {
        switch (actionName.ToLower())
        {
        case "delete":
            try
            {
                // Get meta file ID
                int metaFileId = ValidationHelper.GetInteger(actionArgument, 0);

                // Get meta file
                MetaFileInfo mfi = MetaFileInfoProvider.GetMetaFileInfo(metaFileId);

                // Delete meta file
                MetaFileInfoProvider.DeleteMetaFileInfo(metaFileId);

                // Execute after delete event
                if (OnAfterDelete != null)
                {
                    OnAfterDelete(this, null);
                }
            }
            catch (Exception ex)
            {
                lblError.Visible = true;
                lblError.Text    = ex.Message;
            }
            break;
        }
    }
    /// <summary>
    /// Deletes the file binary from the file system.
    /// </summary>
    /// <param name="fileId">MetaFile ID</param>
    /// <param name="name">Returning the metafile name</param>
    protected bool DeleteFromFileSystem(int fileId, ref string name)
    {
        // Delete the file in file system
        MetaFileInfo mi = MetaFileInfoProvider.GetMetaFileInfo(fileId);

        if (mi != null)
        {
            name = mi.MetaFileName;

            // Ensure the binary column first (check if exists)
            DataSet ds = MetaFileInfoProvider.GetMetaFiles("MetaFileID = " + fileId, null, "CASE WHEN MetaFileBinary IS NULL THEN 0 ELSE 1 END AS HasBinary", -1);
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                bool hasBinary = ValidationHelper.GetBoolean(ds.Tables[0].Rows[0][0], false);
                if (!hasBinary)
                {
                    // Copy the binary data to database
                    mi.MetaFileBinary = MetaFileInfoProvider.GetFile(mi, SiteInfoProvider.GetSiteName(mi.MetaFileSiteID));
                    mi.Generalized.UpdateData();
                }

                // Delete the file from the disk
                MetaFileInfoProvider.DeleteFile(SiteInfoProvider.GetSiteName(mi.MetaFileSiteID), mi.MetaFileGUID.ToString(), true, false);

                return(true);
            }
        }

        return(false);
    }
 private void LoadMetafile()
 {
     if (metafile == null)
     {
         metafile = MetaFileInfoProvider.GetMetaFileInfoWithoutBinary(metafileGuid, CurrentSiteName, true);
     }
 }
    /// <summary>
    /// Initializes metafile.
    /// </summary>
    private void InitializeMetaFile()
    {
        MetaFileInfo metaFileInfo;

        if (InfoObject != null)
        {
            metaFileInfo = InfoObject as MetaFileInfo;
        }
        else
        {
            // Get metafile
            metaFileInfo = MetaFileInfoProvider.GetMetaFileInfoWithoutBinary(ObjectGuid, SiteName, true);
            InfoObject   = metaFileInfo;
        }

        // If file is not null and current user is global administrator then set image
        if (metaFileInfo != null)
        {
            // Check modify permission
            if (CheckPermissions && !UserInfoProvider.IsAuthorizedPerObject(metaFileInfo.MetaFileObjectType, metaFileInfo.MetaFileObjectID, PermissionsEnum.Modify, SiteContext.CurrentSiteName, MembershipContext.AuthenticatedUser))
            {
                RedirectToAccessDenied(GetString("metadata.errors.filemodify"));
            }

            // Fire event GetObjectExtension
            if (GetObjectExtension != null)
            {
                GetObjectExtension(metaFileInfo.MetaFileExtension);
            }
        }
        else
        {
            URLHelper.Redirect(AdministrationUrlHelper.GetInformationUrl("editedobject.notexists"));
        }
    }
    /// <summary>
    /// Processes a meta file upload for a new e-product.
    /// Returns the ID of the related SKU file object if it was created or updated successfully, otherwise returns 0.
    /// </summary>
    private int ProcessUploadForNewEproduct()
    {
        if (SKUID == 0)
        {
            // SKU does not exist
            return(0);
        }

        // Upload the file
        fileElem.ObjectID = SKUID;
        fileElem.UploadFile();

        MetaFileInfo metaFile = fileElem.CurrentlyHandledMetaFile;

        if (metaFile == null)
        {
            // The file was not uploaded
            return(0);
        }

        // Create a new SKU file
        SKUFileInfo skuFile = new SKUFileInfo()
        {
            FileSKUID        = SKUID,
            FileMetaFileGUID = metaFile.MetaFileGUID,
            FileName         = metaFile.MetaFileName,
            FilePath         = MetaFileInfoProvider.GetMetaFileUrl(metaFile.MetaFileGUID, metaFile.MetaFileName),
            FileType         = MediaSourceEnum.MetaFile.ToString()
        };

        SKUFileInfoProvider.SetSKUFileInfo(skuFile);
        return(skuFile.FileID);
    }
Exemple #6
0
    protected void hdnPostback_Click(object sender, EventArgs e)
    {
        try
        {
            int fileId = ValidationHelper.GetInteger(hdnField.Value, 0);
            if (fileId > 0)
            {
                // Get uploaded meta file
                MetaFileInfo mfi = MetaFileInfoProvider.GetMetaFileInfo(fileId);

                // Set currently handled meta file
                CurrentlyHandledMetaFile = mfi;

                // Fire after upload event
                if (OnAfterUpload != null)
                {
                    OnAfterUpload(this, EventArgs.Empty);
                }

                // Reload grid data
                gridFiles.ReloadData();
            }
        }
        catch (Exception ex)
        {
            lblError.Visible = true;
            lblError.Text    = ex.Message;
        }
    }
    /// <summary>
    /// Processes a meta file upload for an existing e-product.
    /// Returns the ID of the related SKU file object if it was created or updated successfully, otherwise returns 0.
    /// </summary>
    private int ProcessUploadForExistingEproduct()
    {
        if (SKUID == 0)
        {
            // SKU does not exist
            return(0);
        }

        MetaFileInfo metaFile = fileListElem.CurrentlyHandledMetaFile;
        SKUFileInfo  skuFile  = null;

        DataSet skuFiles = SKUFileInfoProvider.GetSKUFiles().WhereEquals("FileMetaFileGUID", metaFile.MetaFileGUID);

        if (DataHelper.DataSourceIsEmpty(skuFiles))
        {
            // Create a new SKU file
            skuFile = new SKUFileInfo()
            {
                FileSKUID        = SKUID,
                FileMetaFileGUID = metaFile.MetaFileGUID
            };
        }
        else
        {
            // Get an existing SKU file
            skuFile = new SKUFileInfo(skuFiles.Tables[0].Rows[0]);
        }

        skuFile.FileName = metaFile.MetaFileName;
        skuFile.FilePath = MetaFileInfoProvider.GetMetaFileUrl(metaFile.MetaFileGUID, metaFile.MetaFileName);
        skuFile.FileType = MediaSourceEnum.MetaFile.ToString();

        SKUFileInfoProvider.SetSKUFileInfo(skuFile);
        return(skuFile.FileID);
    }
Exemple #8
0
    /// <summary>
    /// Transforms inline attachment source back to metafile attachment source.
    /// </summary>
    /// <param name="match">Regex match result for inline attachment source</param>
    /// <returns>MetaFile attachment source</returns>
    private static string TransformSrc(Match match)
    {
        if (match.Groups.Count > 0)
        {
            // Get content ID (metafile GUID without '-') and make GUID of it
            string cidCode = match.Groups["cidCode"].Value;
            Guid   mfGuid  = (cidCode.Length == 32) ? ValidationHelper.GetGuid(cidCode.Insert(20, "-").Insert(16, "-").Insert(12, "-").Insert(8, "-"), Guid.Empty) : Guid.Empty;

            if (mfGuid != Guid.Empty)
            {
                // Get metafile by GUID
                MetaFileInfo mfi = MetaFileInfoProvider.GetMetaFileInfo(mfGuid, null, false);
                if (mfi != null)
                {
                    SiteInfo site = SiteInfoProvider.GetSiteInfo((mfi.MetaFileSiteID > 0) ? mfi.MetaFileSiteID : CMSContext.CurrentSiteID);
                    if (site != null)
                    {
                        // return metafile source
                        return("src=\"" + URLHelper.GetAbsoluteUrl("~/CMSPages/GetMetaFile.aspx?fileguid=" + mfGuid, site.DomainName) + "\"");
                    }
                }
            }
        }

        return(match.Value);
    }
Exemple #9
0
    /// <summary>
    /// Handles the OnBeforeSave event of the Form control.
    /// </summary>
    private void Form_OnBeforeSave(object sender, EventArgs e)
    {
        if (FormObject != null)
        {
            switch (iconType)
            {
            case IconTypeEnum.Metafile:
                // Remove icon css class
                FormObject.SetValue(IconCssFieldName, null);
                txtCssClass.Text = string.Empty;
                break;

            case IconTypeEnum.CssClass:
                // Delete uploaded metafile
                Guid metaFileguid = ValidationHelper.GetGuid(Value, Guid.Empty);
                if (metaFileguid != Guid.Empty)
                {
                    MetaFileInfo metaFile = MetaFileInfoProvider.GetMetaFileInfo(metaFileguid, null, true);
                    MetaFileInfoProvider.DeleteMetaFileInfo(metaFile);
                }

                // Delete the metafile thumbnail
                Value = null;
                FormObject.SetValue(Field, null);

                // Update the Icon CSS class field
                FormObject.SetValue(IconCssFieldName, txtCssClass.Text);
                break;
            }
        }
    }
Exemple #10
0
    private void BasicInit()
    {
        // Init actions even if control is disabled. Enabled may be set late in some cases (team development).
        gridFile.OnAction            += gridFile_OnAction;
        gridFile.OnExternalDataBound += gridFile_OnExternalDataBound;

        uploader.OnUploadFile += uploader_OnUploadFile;
        uploader.OnDeleteFile += uploader_OnDeleteFile;

        // Initialize UniGrid only if ObjectID is present
        if (ObjectID > 0)
        {
            gridFile.IsLiveSite         = IsLiveSite;
            gridFile.WhereCondition     = MetaFileInfoProvider.GetWhereCondition(ObjectID, ObjectType, Category, null);
            gridFile.StopProcessing     = StopProcessing;
            gridFile.GridView.CssClass += " table-width-30";

            pnlGrid.Visible            = true;
            pnlAttachmentList.CssClass = "AttachmentsList SingleAttachment";
        }
        else
        {
            pnlGrid.Visible = false;
        }
    }
Exemple #11
0
    /// <summary>
    /// Handles the OnBeforeSave event of the Form control.
    /// </summary>
    private void Form_OnBeforeSave(object sender, EventArgs e)
    {
        if (FormObject != null)
        {
            switch (ThumbnailType)
            {
            case ThumbnailTypeEnum.Metafile:
                // Clear the Icon CSS class field
                FormObject.SetValue(IconCssFieldName, string.Empty);
                fontIconSelector.Value = string.Empty;

                break;

            case ThumbnailTypeEnum.CssClass:
                // Delete uploaded metafile
                Guid metaFileguid = ValidationHelper.GetGuid(Value, Guid.Empty);
                if (metaFileguid != Guid.Empty)
                {
                    MetaFileInfo metaFile = MetaFileInfoProvider.GetMetaFileInfo(metaFileguid, FormObject.Generalized.ObjectSiteName, true);
                    MetaFileInfoProvider.DeleteMetaFileInfo(metaFile);
                }

                // Delete the metafile thumbnail
                Value = null;
                FormObject.SetValue(Field, null);

                // Update the Icon CSS class field
                FormObject.SetValue(IconCssFieldName, fontIconSelector.Value);
                break;
            }
        }
    }
    /// <summary>
    /// Reloads control.
    /// </summary>
    /// <param name="forceReload">Indicates if the control should be reloaded even if it has been already loaded</param>
    public void ReloadData(bool forceReload)
    {
        if (!loaded || forceReload)
        {
            if (StopProcessing)
            {
                gridFiles.StopProcessing = StopProcessing;
                return;
            }
            else
            {
                gridFiles.Visible = true;
            }

            // Set where condition
            gridFiles.WhereCondition = MetaFileInfoProvider.GetWhereCondition(ObjectID, ObjectType, Category, Where);

            if (forceReload)
            {
                // Reload grid
                gridFiles.ReloadData();
            }

            loaded = true;
        }
    }
Exemple #13
0
        private byte[] GetFileBinary(BaseInfo image)
        {
            switch (image)
            {
            case MediaFileInfo mediaFile:
                // For files with uploaded binary (new file or update)
                if (mediaFile.FileBinary != null)
                {
                    return(mediaFile.FileBinary);
                }
                // For existing files
                var mediaLibrary = MediaLibraryInfoProvider.GetMediaLibraryInfo(mediaFile.FileLibraryID);
                return(MediaFileInfoProvider.GetFile(mediaFile, mediaLibrary.LibraryFolder, SiteContext.CurrentSiteName));

            case MetaFileInfo metaFile:
                // For files with uploaded binary (new file or update)
                if (metaFile.MetaFileBinary != null)
                {
                    return(metaFile.MetaFileBinary);
                }
                // For existing files
                return(MetaFileInfoProvider.GetFile(metaFile, SiteContext.CurrentSiteName));

            case AttachmentInfo attachment:
                return(attachment.AttachmentBinary);

            case AttachmentHistoryInfo attachmentHistory:
                return(attachmentHistory.AttachmentBinary);

            default:
                return(null);
            }
        }
Exemple #14
0
    /// <summary>
    /// Ensures the info objects.
    /// </summary>
    private void LoadInfos()
    {
        switch (baseImageEditor.ImageType)
        {
        case ImageHelper.ImageTypeEnum.Metafile:

            if (mf == null)
            {
                mf = MetaFileInfoProvider.GetMetaFileInfoWithoutBinary(metafileGuid, CurrentSiteName, true);
            }
            break;

        case ImageHelper.ImageTypeEnum.PhysicalFile:
            // Skip loading info for physical files
            break;

        default:
            if (ai == null)
            {
                baseImageEditor.Tree = new TreeProvider(MembershipContext.AuthenticatedUser);

                // If using workflow then get versioned attachment
                if (VersionHistoryID != 0)
                {
                    ai = DocumentHelper.GetAttachment(attachmentGuid, VersionHistoryID);
                }
                // Else get file without binary data
                else
                {
                    ai = AttachmentInfoProvider.GetAttachmentInfoWithoutBinary(attachmentGuid, CurrentSiteName);
                }
            }
            break;
        }
    }
    /// <summary>
    /// Action button handler.
    /// </summary>
    protected void btnOK_Click(object sender, EventArgs e)
    {
        if (!String.IsNullOrEmpty(drpAction.SelectedValue))
        {
            List <string> items = null;

            if (drpWhat.SelectedValue == "all")
            {
                // Get only the appropriate set of items
                string where = filterWhere;
                switch (drpAction.SelectedValue)
                {
                case "deleteindatabase":
                case "copytofilesystem":
                    // Only process those where binary is available in DB
                    where = SqlHelper.AddWhereCondition(where, "MetaFileBinary IS NOT NULL");
                    break;

                case "copytodatabase":
                    // Only copy those where the binary is missing
                    where = SqlHelper.AddWhereCondition(where, "MetaFileBinary IS NULL");
                    break;
                }

                // Get all, build the list of items
                DataSet ds = MetaFileInfoProvider.GetMetaFiles(where, null, "MetaFileID", 0);
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    items = new List <string>();

                    // Process all rows
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        int fileId = ValidationHelper.GetInteger(dr["MetaFileID"], 0);
                        items.Add(fileId.ToString());
                    }
                }
            }
            else
            {
                // Take selected items
                items = gridFiles.SelectedItems;
            }

            if ((items != null) && (items.Count > 0))
            {
                // Setup the async log
                pnlLog.Visible     = true;
                pnlContent.Visible = false;

                ctlAsyncLog.TitleText = drpAction.SelectedItem.Text;

                CurrentError = string.Empty;

                // Process the file asynchronously
                var parameter = new object[] { items, drpAction.SelectedValue };
                ctlAsyncLog.RunAsync(p => ProcessFiles(parameter), WindowsIdentity.GetCurrent());
            }
        }
    }
Exemple #16
0
    protected void AttachmentList_OnAfterChange(object sender, EventArgs e)
    {
        // Get number of attachments
        InfoDataSet <MetaFileInfo> ds = MetaFileInfoProvider.GetMetaFiles(ObjectId, ObjectType, ObjectCategory, null, null, "MetafileID", -1);

        // Register script to update hdnCount value (it is used to update attachment count in wopener)
        ScriptHelper.RegisterStartupScript(this, typeof(string), "UpdateCountHolder", "document.getElementById('" + hdnCount.ClientID + "').value=" + ds.Items.Count.ToString(), true);
    }
Exemple #17
0
    /// <summary>
    /// Removes all metafiles used in invoices.
    /// </summary>
    private static void RemoveInvoiceMetafiles()
    {
        var invoiceMetafiles = MetaFileInfoProvider.GetMetaFiles()
                               .WhereEquals("MetaFileGroupName", "Invoice");

        foreach (var metafile in invoiceMetafiles)
        {
            metafile.Delete();
        }
    }
Exemple #18
0
    /// <summary>
    /// Uploads file with new product uploader.
    /// </summary>
    public void UploadNewProductFile()
    {
        // Get SKU
        SKUInfo skui = SKUInfoProvider.GetSKUInfo(this.SKUID);

        // Get allowed extensions
        string allowedExtensions = null;

        if (skui != null)
        {
            string settingKey = (skui.IsGlobal) ? "CMSUploadExtensions" : (CMSContext.CurrentSiteName + ".CMSUploadExtensions");
            allowedExtensions = SettingsKeyProvider.GetStringValue(settingKey);
        }

        // Get posted file
        HttpPostedFile file = this.newProductFileUploader.PostedFile;

        if ((file != null) && (file.ContentLength > 0) && !String.IsNullOrEmpty(allowedExtensions))
        {
            // Get file extension
            string extension = Path.GetExtension(file.FileName);;

            // If file extension is not allowed
            if (!FileHelper.CheckExtension(extension, allowedExtensions))
            {
                // Set error message and don't upload
                string error = ValidationHelper.GetString(SessionHelper.GetValue("NewProductError"), null);
                error += ";" + String.Format(this.GetString("com.eproduct.attachmentinvalid"), allowedExtensions.Replace(";", ", "));
                SessionHelper.SetValue("NewProductError", error);
                return;
            }
        }

        // Upload attachment
        this.newProductFileUploader.ObjectID = this.SKUID;
        this.newProductFileUploader.UploadFile();

        // Get uploaded meta file
        MetaFileInfo mfi = this.newProductFileUploader.CurrentlyHandledMetaFile;

        if (mfi != null)
        {
            // Create new SKU file
            SKUFileInfo skufi = new SKUFileInfo();

            skufi.FileSKUID        = this.SKUID;
            skufi.FileMetaFileGUID = mfi.MetaFileGUID;
            skufi.FileName         = mfi.MetaFileName;
            skufi.FilePath         = MetaFileInfoProvider.GetMetaFileUrl(mfi.MetaFileGUID, mfi.MetaFileName);
            skufi.FileType         = MediaSourceEnum.MetaFile.ToString();

            // Save SKU file
            SKUFileInfoProvider.SetSKUFileInfo(skufi);
        }
    }
Exemple #19
0
    private void SendMail(string mail, IEnumerable <ProductBookModel> list)
    {
        SiteInfo          currentSite  = SiteContext.CurrentSite;
        ContextResolver   resolver     = MacroContext.CurrentResolver;
        string            emailSubject = null;
        EmailTemplateInfo template     = null;

        template     = EmailTemplateProvider.GetEmailTemplate("SendProductLinkDownload", currentSite.SiteName);
        emailSubject = EmailHelper.GetSubject(template, "Demande de contact");

        //mail type
        if (template != null)
        {
            ev.LogEvent("I", DateTime.Now, "Template!=null ", (template != null).ToString());
            resolver.SourceParameters = null;
            EmailMessage email = new EmailMessage();
            email.EmailFormat = EmailFormatEnum.Default;
            email.From        =
                EmailHelper.GetSender(template,
                                      SettingsKeyInfoProvider.GetStringValue(currentSite.SiteName + ".CMSAdminEmailAddress"));
            email.Recipients = mail;

            StringBuilder sb = new StringBuilder();
            foreach (var produit in list)
            {
                string str = "<br/> <b>" + produit.productname + "</b> (" + produit.fileUrl + ")";
                sb = sb.AppendLine(str);
            }

            ev.LogEvent("I", DateTime.Now, "Template ", sb.ToString());

            string templatetext =
                template.TemplateText.Replace("#Product", sb.ToString());
            email.Body = resolver.ResolveMacros(templatetext);
            resolver.EncodeResolvedValues = false;
            email.PlainTextBody           = resolver.ResolveMacros(template.TemplatePlainText);
            email.Subject       = resolver.ResolveMacros(emailSubject);
            email.CcRecipients  = template.TemplateCc;
            email.BccRecipients = template.TemplateBcc;

            try
            {
                MetaFileInfoProvider.ResolveMetaFileImages(email, template.TemplateID, EmailObjectType.EMAILTEMPLATE,
                                                           MetaFileInfoProvider.OBJECT_CATEGORY_TEMPLATE);
                // Send the e-mail immediately
                EmailSender.SendEmail(currentSite.SiteName, email, true);
            }
            catch (Exception ex)
            {
                ev.LogEvent("E", DateTime.Now, "SendMail ", ex.Message);
            }
        }
    }
    /// <summary>
    /// Initializes header action control.
    /// </summary>
    /// <param name="templateId">Template ID</param>
    protected void InitHeaderActions(int templateId)
    {
        bool isAuthorized = CurrentUser.IsAuthorizedPerResource("CMS.Newsletter", "ManageTemplates") && (EditedObject != null);

        // Init save button
        CurrentMaster.HeaderActions.ActionsList.Add(new SaveAction
        {
            Enabled = isAuthorized
        });

        // Init spellcheck button
        CurrentMaster.HeaderActions.ActionsList.Add(new HeaderAction
        {
            Text          = GetString("spellcheck.title"),
            Tooltip       = GetString("spellcheck.title"),
            OnClientClick = "checkSpelling(spellURL); return false;",
            ButtonStyle   = ButtonStyle.Default,
        });

        int attachCount = 0;

        if (isAuthorized)
        {
            // Get number of attachments
            InfoDataSet <MetaFileInfo> ds = MetaFileInfoProvider.GetMetaFiles(templateId, EmailTemplateInfo.OBJECT_TYPE, ObjectAttachmentsCategories.TEMPLATE, null, null, "MetafileID", -1);
            attachCount = ds.Items.Count;

            // Register attachments count update module
            ScriptHelper.RegisterModule(this, "CMS/AttachmentsCountUpdater", new { Selector = "." + mAttachmentsActionClass, Text = ResHelper.GetString("general.attachments") });

            // Register dialog scripts
            ScriptHelper.RegisterDialogScript(Page);
        }

        // Prepare metafile dialog URL
        string metaFileDialogUrl = ResolveUrl(@"~/CMSModules/AdminControls/Controls/MetaFiles/MetaFileDialog.aspx");
        string query             = string.Format("?objectid={0}&objecttype={1}", templateId, EmailTemplateInfo.OBJECT_TYPE);

        metaFileDialogUrl += string.Format("{0}&category={1}&hash={2}", query, ObjectAttachmentsCategories.TEMPLATE, QueryHelper.GetHash(query));

        // Init attachment button
        CurrentMaster.HeaderActions.ActionsList.Add(new HeaderAction
        {
            Text          = GetString("general.attachments") + ((attachCount > 0) ? " (" + attachCount + ")" : string.Empty),
            Tooltip       = GetString("general.attachments"),
            OnClientClick = string.Format(@"if (modalDialog) {{modalDialog('{0}', 'Attachments', '700', '500');}}", metaFileDialogUrl) + " return false;",
            Enabled       = isAuthorized,
            CssClass      = mAttachmentsActionClass,
            ButtonStyle   = ButtonStyle.Default,
        });

        CurrentMaster.HeaderActions.ActionPerformed += HeaderActions_ActionPerformed;
    }
Exemple #21
0
    private int GetAttachmentsCount()
    {
        var metafiles = MetaFileInfoProvider.GetMetaFiles(
            Issue.IssueID,
            Issue.IssueIsVariant ? IssueInfo.OBJECT_TYPE_VARIANT : IssueInfo.OBJECT_TYPE,
            ObjectAttachmentsCategories.ISSUE,
            null, null,
            "MetafileID",
            -1);

        return(metafiles.Items.Count);
    }
Exemple #22
0
    /// <summary>
    /// Saves the widget data and create string for inline widget.
    /// </summary>
    private string SaveInline()
    {
        string script = "var widgetObj = new Object(); \n";

        if (IsInline)
        {
            // Validate data
            if (!SaveForm(formCustom))
            {
                return(String.Empty);
            }

            DataRow dr = formCustom.DataRow;

            if (wi == null)
            {
                return(String.Empty);
            }

            // Name of the widget is first argument
            script += String.Format("widgetObj['name']='{0}';", HttpUtility.UrlEncode(wi.WidgetName));

            if (mFields == null)
            {
                return(String.Empty);
            }
            foreach (FormFieldInfo ffi in mFields)
            {
                if (dr.Table.Columns.Contains(ffi.Name))
                {
                    script += String.Format("widgetObj['{0}'] = {1}; \n", ffi.Name, ScriptHelper.GetString(HttpUtility.UrlEncode(dr[ffi.Name].ToString().Replace("%", "%25"))));
                }
            }
            // Add image GUID
            DataSet ds = MetaFileInfoProvider.GetMetaFiles("MetaFileObjectID = " + wi.WidgetID + "  AND MetaFileObjectType = 'cms.widget'", String.Empty, "MetafileGuid", 0);
            if (!SqlHelperClass.DataSourceIsEmpty(ds))
            {
                Guid guid = ValidationHelper.GetGuid(ds.Tables[0].Rows[0]["MetafileGuid"], Guid.Empty);
                script += "widgetObj['image_guid'] = '" + guid.ToString() + "'; \n";
            }

            // Add display name
            script += "widgetObj['widget_displayname'] = " + ScriptHelper.GetString(HttpUtility.UrlEncode(wi.WidgetDisplayName.Replace("%", "%25"))) + "; \n";

            // Create javascript for save
            script += "widgetObj['cms_type'] = 'widget';\n InsertSelectedItem(widgetObj);\n";

            // Add to recently used widgtets collection
            CMSContext.CurrentUser.UserSettings.UpdateRecentlyUsedWidget(wi.WidgetName);
            return(script);
        }
        return(string.Empty);
    }
Exemple #23
0
    /// <summary>
    /// Validates form data and returns TRUE if succeeded, otherwise returns FALSE.
    /// </summary>
    public bool ValidateData()
    {
        if (plcSKUControls.Visible)
        {
            string error = "";

            if (!SKUInfoProvider.LicenseVersionCheck(URLHelper.GetCurrentDomain(), FeatureEnum.Ecommerce, VersionActionEnum.Insert))
            {
                error = GetString("ecommerceproduct.versioncheck");
            }

            // If global meta files should be stored in filesystem
            if ((error == "") && ucMetaFile.Visible && (ucMetaFile.PostedFile != null) && MetaFileInfoProvider.StoreFilesInFileSystem(null))
            {
                // Get product image path
                string path = MetaFileInfoProvider.GetFilesFolderPath(null);

                // Check permission for image folder
                if (!DirectoryHelper.CheckPermissions(path))
                {
                    error = String.Format(GetString("com.newproduct.accessdeniedtopath"), path);
                }
            }


            // Validate SKU name
            if ((error == "") && (txtSKUName.Visible) && (txtSKUName.Text.Trim() == ""))
            {
                // SKU name not entered
                error = GetString("com.newproduct.skunameempty");
            }


            if (error == "")
            {
                // Validate SKU price
                if (txtSKUPrice.Visible)
                {
                    error = txtSKUPrice.ValidatePrice(false);
                }
            }

            // Show error message
            if (error != "")
            {
                lblError.Visible = true;
                lblError.Text    = error;
                return(false);
            }
        }
        return(true);
    }
    /// <summary>
    /// Initializes header actions.
    /// </summary>
    protected void InitHeaderActions()
    {
        menu.ActionsList.Clear();

        // Add save action
        save = new SaveAction(Page);
        menu.ActionsList.Add(save);

        bool isAuthorized = CurrentUser.IsAuthorizedPerResource("cms.form", "EditForm") && ((formId > 0) && (EditedObject != null));

        int attachCount = 0;

        if (isAuthorized)
        {
            // Get number of attachments
            InfoDataSet <MetaFileInfo> ds = MetaFileInfoProvider.GetMetaFiles(formId, FormObjectType.BIZFORM, MetaFileInfoProvider.OBJECT_CATEGORY_FORM_LAYOUT, null, null, "MetafileID", -1);
            attachCount = ds.Items.Count;

            string script = @"
function UpdateAttachmentCount(count) {
    var counter = document.getElementById('attachmentCount');
    if (counter != null) {
        if (count > 0) { counter.innerHTML = ' (' + count + ')'; }
        else { counter.innerHTML = ''; }
    }
}";
            ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "UpdateAttachmentScript_" + this.ClientID, script, true);

            // Register dialog scripts
            ScriptHelper.RegisterDialogScript(Page);
        }

        // Prepare metafile dialog URL
        string metaFileDialogUrl = ResolveUrl(@"~/CMSModules/AdminControls/Controls/MetaFiles/MetaFileDialog.aspx");
        string query             = string.Format("?objectid={0}&objecttype={1}", formId, FormObjectType.BIZFORM);

        metaFileDialogUrl += string.Format("{0}&category={1}&hash={2}", query, MetaFileInfoProvider.OBJECT_CATEGORY_FORM_LAYOUT, QueryHelper.GetHash(query));

        // Init attachment button
        attachments = new HeaderAction()
        {
            ControlType   = HeaderActionTypeEnum.LinkButton,
            Text          = GetString("general.attachments") + string.Format("<span id='attachmentCount'>{0}</span>", (attachCount > 0) ? " (" + attachCount.ToString() + ")" : string.Empty),
            Tooltip       = GetString("general.attachments"),
            OnClientClick = string.Format(@"if (modalDialog) {{modalDialog('{0}', 'Attachments', '700', '500');}}", metaFileDialogUrl) + " return false;",
            ImageUrl      = isAuthorized ? GetImageUrl("Objects/CMS_MetaFile/attachment.png") : GetImageUrl("Objects/CMS_MetaFile/attachment_disabled.png"),
            Enabled       = isAuthorized
        };
        menu.ActionsList.Add(attachments);
    }
    /// <summary>
    /// Creates and sends unsubscription e-mail.
    /// </summary>
    /// <param name="subscriber">Subscriber object</param>
    /// <param name="news">Newsletter object</param>
    /// <param name="subscription">Subscription object</param>
    /// <param name="siteName">Site name</param>
    protected void SendUnsubscriptionRequest(SubscriberInfo subscriber, NewsletterInfo news, SubscriberNewsletterInfo subscription, string siteName)
    {
        // Get global e-mail template with unsubscription request
        EmailTemplateInfo et = EmailTemplateProvider.GetEmailTemplate("newsletter.unsubscriptionrequest", siteName);

        if (et != null)
        {
            // Get subscriber member
            SortedDictionary <int, SubscriberInfo> subscribers = SubscriberInfoProvider.GetSubscribers(subscriber, 1, 0);
            foreach (KeyValuePair <int, SubscriberInfo> item in subscribers)
            {
                // Get 1st subscriber's member
                SubscriberInfo sb = item.Value;

                string body      = et.TemplateText;
                string plainBody = et.TemplatePlainText;

                // Resolve newsletter macros (first name, last name etc.)
                IssueHelper ih = new IssueHelper();
                if (ih.LoadDynamicFields(sb, news, subscription, null, false, siteName, null, null, null))
                {
                    body      = ih.ResolveDynamicFieldMacros(body);
                    plainBody = ih.ResolveDynamicFieldMacros(plainBody);
                }

                // Create e-mail
                EmailMessage msg = new EmailMessage();
                msg.EmailFormat   = EmailFormatEnum.Default;
                msg.From          = EmailHelper.GetSender(et, news.NewsletterSenderEmail);
                msg.Recipients    = sb.SubscriberEmail;
                msg.BccRecipients = et.TemplateBcc;
                msg.CcRecipients  = et.TemplateCc;
                msg.Subject       = ResHelper.LocalizeString(et.TemplateSubject);
                msg.Body          = URLHelper.MakeLinksAbsolute(body);
                msg.PlainTextBody = URLHelper.MakeLinksAbsolute(plainBody);

                // Add attachments and send e-mail
                MetaFileInfoProvider.ResolveMetaFileImages(msg, et.TemplateID, EmailObjectType.EMAILTEMPLATE, MetaFileInfoProvider.OBJECT_CATEGORY_TEMPLATE);

                EmailSender.SendEmail(siteName, msg);
            }
        }
        else
        {
            // Log missing template
            EventLogProvider ev = new EventLogProvider();
            ev.LogEvent(EventLogProvider.EVENT_TYPE_ERROR, DateTime.Now, "UnsubscriptionRequest", "Unsubscription request e-mail template is missing.");
        }
    }
Exemple #26
0
    /// <summary>
    /// Updates metafile image path.
    /// </summary>
    private void UpdateImagePath(MediaLibraryInfo mli)
    {
        // Update image path according to its meta file
        DataSet ds = MetaFileInfoProvider.GetMetaFiles(ucMetaFile.ObjectID, mli.TypeInfo.ObjectType);

        if (!DataHelper.DataSourceIsEmpty(ds))
        {
            MetaFileInfo metaFile = new MetaFileInfo(ds.Tables[0].Rows[0]);
            mli.LibraryTeaserPath = MetaFileInfoProvider.GetMetaFileUrl(metaFile.MetaFileGUID, metaFile.MetaFileName);
        }
        else
        {
            mli.LibraryTeaserPath = "";
        }
    }
Exemple #27
0
    /// <summary>
    /// Uploads file.
    /// </summary>
    public void UploadFile()
    {
        if ((uploader.PostedFile != null) && (uploader.PostedFile.ContentLength > 0) && (ObjectID > 0))
        {
            try
            {
                MetaFileInfo existing = null;

                // Check if uploaded file already exists and delete it
                DataSet ds = MetaFileInfoProvider.GetMetaFiles(ObjectID, ObjectType, Category, null, null);
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    // Get existing record ID and delete it
                    existing = new MetaFileInfo(ds.Tables[0].Rows[0]);
                    MetaFileInfoProvider.DeleteMetaFileInfo(existing);
                }

                // Create new meta file
                MetaFileInfo mfi = new MetaFileInfo(uploader.PostedFile, ObjectID, ObjectType, Category);
                if (existing != null)
                {
                    // Preserve GUID
                    mfi.MetaFileGUID        = existing.MetaFileGUID;
                    mfi.MetaFileTitle       = existing.MetaFileTitle;
                    mfi.MetaFileDescription = existing.MetaFileDescription;
                }
                mfi.MetaFileSiteID = SiteID;

                // Save to the database
                MetaFileInfoProvider.SetMetaFileInfo(mfi);

                // Set currently handled meta file
                this.CurrentlyHandledMetaFile = mfi;

                SetupControls();
            }
            catch (Exception ex)
            {
                lblErrorUploader.Visible  = true;
                lblErrorUploader.Text     = ex.Message;
                ViewState["SavingFailed"] = true;
                SetupControls();
            }

            // File was uploaded, do not delete in one postback
            mAlreadyUploadedDontDelete = true;
        }
    }
    /// <summary>
    /// Gets metafile preview.
    /// </summary>
    /// <param name="objTemplateId">Template ID</param>
    protected string GetPreviewImage(object objTemplateId)
    {
        int templateId = ValidationHelper.GetInteger(objTemplateId, 0);

        DataSet dsPreview = MetaFileInfoProvider.GetMetaFiles(templateId, WebTemplateInfo.OBJECT_TYPE);

        if (!DataHelper.DataSourceIsEmpty(dsPreview))
        {
            string guid = ValidationHelper.GetString(dsPreview.Tables[0].Rows[0]["MetaFileGUID"], "");
            return(ResolveUrl("~/CMSPages/GetMetaFile.aspx?fileguid=" + guid));
        }
        else
        {
            return(GetImageUrl("Others/Install/no_image.png"));
        }
    }
Exemple #29
0
    private void layoutElem_OnAfterSave(object sender, EventArgs e)
    {
        // Delete all attachments if layout was deleted
        if (FormInfo != null)
        {
            var dci = DataClassInfoProvider.GetDataClassInfo(FormInfo.FormClassID);
            if ((dci != null) && string.IsNullOrEmpty(dci.ClassFormLayout))
            {
                // Delete all attachments
                MetaFileInfoProvider.DeleteFiles(FormInfo.FormID, BizFormInfo.OBJECT_TYPE, ObjectAttachmentsCategories.LAYOUT);
            }
        }

        // Log synchronization
        SynchronizationHelper.LogObjectChange(FormInfo, TaskTypeEnum.UpdateObject);
    }
Exemple #30
0
    /// <summary>
    /// BtnUpload click event handler.
    /// </summary>
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        if (!AllowModify || (uploader.PostedFile == null) || (uploader.PostedFile.FileName.Trim() == ""))
        {
            return;
        }

        try
        {
            // Fire before upload event
            CancelEventArgs beforeUploadArgs = new CancelEventArgs();
            if (OnBeforeUpload != null)
            {
                OnBeforeUpload(this, beforeUploadArgs);
            }

            // If upload was not cancelled
            if (!beforeUploadArgs.Cancel)
            {
                // Create new meta file
                MetaFileInfo mfi = new MetaFileInfo(uploader.PostedFile, ObjectID, ObjectType, Category)
                {
                    MetaFileSiteID = SiteID
                };

                // Save meta file
                MetaFileInfoProvider.SetMetaFileInfo(mfi);

                // Set currently handled meta file
                CurrentlyHandledMetaFile = mfi;

                // Fire after upload event
                if (OnAfterUpload != null)
                {
                    OnAfterUpload(this, EventArgs.Empty);
                }

                // Reload grid data
                gridFiles.ReloadData();
            }
        }
        catch (Exception ex)
        {
            lblError.Visible = true;
            lblError.Text    = ex.Message;
        }
    }