Ejemplo n.º 1
0
 private void LoadContextHelp()
 {
     titleElem.HelpName = "site_import";
     // Special context help for special control
     if (SelectedNodeValue == CMSObjectHelper.GROUP_OBJECTS)
     {
         titleElem.HelpTopicName = "importGridObjects";
     }
     else if (plcControl.Visible)
     {
         titleElem.HelpTopicName = "importGrid_" + ImportExportHelper.GetSafeObjectTypeName(SelectedNodeValue);
     }
     else
     {
         titleElem.HelpTopicName = "importGrid";
     }
 }
Ejemplo n.º 2
0
    /// <summary>
    /// Reloads all data.
    /// </summary>
    public override void ReloadData(bool forceLoad)
    {
        if (CurrentReport != null)
        {
            // Load labels
            if (!RequestHelper.IsPostBack() || forceLoad)
            {
                // Create query parameters
                string query = "?ObjectID=" + CurrentReport.ReportObjectID;

                // Set link value
                string url = CurrentReport.ReportURL;
                if (CurrentReport.ReportCulture != String.Empty)
                {
                    url = URLHelper.AddParameterToUrl(url, URLHelper.LanguageParameterName, CurrentReport.ReportCulture);
                }
                lnkUrlValue.Text        = HTMLHelper.HTMLEncode(url);
                lnkUrlValue.NavigateUrl = url;
                lnkUrlValue.ToolTip     = HTMLHelper.HTMLEncode(url);
                lnkUrlValue.Target      = "_blank";

                // Set culture value
                var cultureInfo = CultureHelper.GetCultureInfo(CurrentReport.ReportCulture);
                lblCultureValue.Text = (cultureInfo != null) ? cultureInfo.DisplayName : ResHelper.Dash;

                // Set site value
                SiteInfo si = SiteInfoProvider.GetSiteInfo(CurrentReport.ReportSiteID);
                lblSiteValue.Text = (si != null) ? HTMLHelper.HTMLEncode(si.DisplayName) : ResHelper.Dash;

                // Set title
                lblTitleValue.Text = HTMLHelper.HTMLEncode(CurrentReport.ReportTitle);

                // Set labels
                if (!string.IsNullOrEmpty(CurrentReport.ReportObjectType))
                {
                    lblObjectTypeValue.Text = GetString("ObjectType." + ImportExportHelper.GetSafeObjectTypeName(CurrentReport.ReportObjectType));
                    query += "&ObjectType=" + CurrentReport.ReportObjectType;
                }
                else
                {
                    lblObjectTypeValue.Text = ResHelper.Dash;
                }

                // Get object display name
                lblObjectNameValue.Text = ResHelper.Dash;

                string objectType = CurrentReport.ReportObjectType;
                int    objectId   = CurrentReport.ReportObjectID;

                if ((objectId > 0) && !string.IsNullOrEmpty(objectType) && !DocumentHelper.IsDocumentObjectType(objectType))
                {
                    GeneralizedInfo obj = ProviderHelper.GetInfoById(objectType, objectId);
                    if ((obj != null) && !string.IsNullOrEmpty(obj.ObjectDisplayName))
                    {
                        lblObjectNameValue.Text = HTMLHelper.HTMLEncode(obj.ObjectDisplayName);
                    }
                }

                // Set Reported by label
                lblReportedByValue.Text = ResHelper.Dash;
                if (CurrentReport.ReportUserID != 0)
                {
                    UserInfo ui = UserInfoProvider.GetUserInfo(CurrentReport.ReportUserID);
                    lblReportedByValue.Text = (ui != null) ? HTMLHelper.HTMLEncode(ui.FullName) : GetString("general.NA");
                }

                // Set other parameters
                lblReportedWhenValue.Text = CurrentReport.ReportWhen.ToString();

                CMSPage page = Page as CMSPage;

                if ((CurrentReport.ReportObjectID > 0) && (!string.IsNullOrEmpty(CurrentReport.ReportObjectType)) && AbuseReportInfoProvider.IsObjectTypeSupported(CurrentReport.ReportObjectType))
                {
                    // Add Object details button
                    string detailUrl = "~/CMSModules/AbuseReport/AbuseReport_ObjectDetails.aspx" + query;
                    detailUrl = URLHelper.AddParameterToUrl(detailUrl, "hash", QueryHelper.GetHash(detailUrl));
                    var onClientClickScript = ScriptHelper.GetModalDialogScript(UrlResolver.ResolveUrl(detailUrl), "objectdetails", 960, 600);

                    if (page != null)
                    {
                        var headerActions = page.HeaderActions;
                        headerActions.AddAction(new HeaderAction
                        {
                            Text          = GetString("abuse.details"),
                            OnClientClick = onClientClickScript,
                            ButtonStyle   = ButtonStyle.Default
                        });
                        btnObjectDetails.Visible = false;
                    }
                    else
                    {
                        btnObjectDetails.OnClientClick = onClientClickScript;
                        ScriptHelper.RegisterDialogScript(Page);
                    }
                }
                else
                {
                    btnObjectDetails.Visible = false;
                }

                Control postback = ControlsHelper.GetPostBackControl(Page);

                // Not post-back not caused by OK button or Save action in header
                if ((postback != btnOk) && ((page == null) || (postback != page.HeaderActions)))
                {
                    txtCommentValue.Text = CurrentReport.ReportComment;
                    LoadStatus((int)CurrentReport.ReportStatus);
                }
            }
        }
    }
Ejemplo n.º 3
0
        public static DataSet LoadObjects(SiteImportSettings settings, string objectType, bool siteObjects, bool selectionOnly = false, bool forceXMLStructure = false)
        {
            DataSet ds;

            var e = new ImportGetDataEventArgs
            {
                Settings      = settings,
                ObjectType    = objectType,
                SiteObjects   = siteObjects,
                SelectionOnly = selectionOnly
            };

            // Get empty data set
            GeneralizedInfo infoObj;

            ds = GetEmptyDataSet(settings, objectType, siteObjects, selectionOnly, out infoObj, forceXMLStructure);

            // Turn off constrains check
            ds.EnforceConstraints = false;

            // Raise prepare data event
            var eData = new ImportGetDataEventArgs
            {
                Data          = ds,
                Settings      = settings,
                ObjectType    = objectType,
                SiteObjects   = siteObjects,
                SelectionOnly = selectionOnly
            };

            // Handle the event
            SpecialActionsEvents.PrepareDataStructure.StartEvent(eData);

            // Lowercase table names for compatibility
            DataHelper.LowerCaseTableNames(ds);


            Stream    reader = null;
            XmlReader xml    = null;

            string safeObjectType = ImportExportHelper.GetSafeObjectTypeName(objectType);

            // Prepare the path
            string filePath = DirectoryHelper.CombinePath(settings.TemporaryFilesPath, ImportExportHelper.DATA_FOLDER) + "\\";

            // Get object type subfolder
            filePath += ImportExportHelper.GetObjectTypeSubFolder(settings, objectType, siteObjects);
            filePath += safeObjectType + ".xml";
            string rootElement = safeObjectType;

            filePath = ImportExportHelper.GetExportFilePath(filePath);

            // Import only if file exists
            if (System.IO.File.Exists(filePath))
            {
                // Reader setting
                XmlReaderSettings rs = new XmlReaderSettings();
                rs.CloseInput      = true;
                rs.CheckCharacters = false;

                // Open reader
                reader = FileStream.New(filePath, CMS.IO.FileMode.Open, CMS.IO.FileAccess.Read, CMS.IO.FileShare.Read, 8192);
                xml    = XmlReader.Create(reader, rs);

                // Read main document element
                do
                {
                    xml.Read();
                } while ((xml.NodeType != XmlNodeType.Element) && !xml.EOF);

                if (xml.Name.ToLowerInvariant() != rootElement.ToLowerInvariant())
                {
                    throw new Exception("[ImportProvider.LoadObjects]: The required page element is '" + safeObjectType + "', element found is '" + xml.Name + "'.");
                }

                // Get version
                if (xml.HasAttributes)
                {
                    xml.MoveToAttribute("version");
                }

                if ((xml.NodeType != XmlNodeType.Attribute) || (xml.Name.ToLowerInvariant() != "version"))
                {
                    throw new Exception("[ImportProvider.LoadObjects]: Cannot find version attribute.");
                }


                // Get the dataset
                do
                {
                    xml.Read();
                } while (((xml.NodeType != XmlNodeType.Element) || (xml.Name != "NewDataSet")) && !xml.EOF);

                // Read data
                if (xml.Name == "NewDataSet")
                {
                    ds.ReadXml(xml);
                }

                // Filter data by object type condition for selection, some object types may overlap
                if (selectionOnly && !DataHelper.DataSourceIsEmpty(ds))
                {
                    // Remove unwanted rows from data collection with dependence on type condition
                    if (infoObj.TypeInfo.TypeCondition != null)
                    {
                        var dt = ObjectHelper.GetTable(ds, infoObj);
                        var where = infoObj.TypeInfo.WhereCondition;
                        where.Replace(" N'", " '").Replace("(N'", "('");
                        DataHelper.KeepOnlyRows(dt, where);

                        dt.AcceptChanges();
                    }
                }
            }


            // Safely close readers
            if (xml != null)
            {
                xml.Close();
            }

            if (reader != null)
            {
                reader.Close();
            }

            return(ds);
        }
Ejemplo n.º 4
0
    /// <summary>
    /// Unigrid external databound handler.
    /// </summary>
    protected object UniGrid_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLowerCSafe())
        {
        // Display link instead of title
        case "title":
            if (parameter != DBNull.Value)
            {
                DataRowView row   = (DataRowView)parameter;
                string      url   = ValidationHelper.GetString(row["ReportURL"], "");
                string      title = HTMLHelper.HTMLEncode(ValidationHelper.GetString(row["ReportTitle"], ""));

                HyperLink link    = new HyperLink();
                string    culture = ValidationHelper.GetString(row["ReportCulture"], "");
                if (culture != String.Empty)
                {
                    url = URLHelper.AddParameterToUrl(url, URLHelper.LanguageParameterName, culture);
                }
                link.NavigateUrl = url;
                link.Target      = "_blank";
                link.Text        = title;
                link.ToolTip     = HTMLHelper.HTMLEncode(url);
                link.Style.Add("cursor", "help");
                return(link);
            }
            return(sourceName);

        // Insert status label
        case "status":
            if (parameter != DBNull.Value)
            {
                switch (parameter.ToString().ToLowerCSafe())
                {
                default:
                    return(ResHelper.GetString("general.new"));

                case "1":
                    return("<span class=\"AbuseSolved\">" + ResHelper.GetString("general.solved") + "</span>");

                case "2":
                    return("<span class=\"AbuseRejected\">" + ResHelper.GetString("general.rejected") + "</span>");
                }
            }
            return(sourceName);

        case "solve":
            if (parameter != DBNull.Value)
            {
                string status = ValidationHelper.GetString(((DataRowView)((GridViewRow)parameter).DataItem).Row["ReportStatus"], "");
                var    button = ((CMSGridActionButton)sender);
                switch (status)
                {
                // Disables the button and changes its icon
                case "1":
                    button.Enabled = false;
                    break;

                case "2":
                    button.Enabled = true;
                    break;
                }
            }
            break;

        case "reject":
            if (parameter != DBNull.Value)
            {
                string status = ValidationHelper.GetString(((DataRowView)((GridViewRow)parameter).DataItem).Row["ReportStatus"], "");
                var    button = ((CMSGridActionButton)sender);

                switch (status)
                {
                // Disables the button and changes its icon
                case "1":
                    button.Enabled = true;
                    break;

                case "2":
                    button.Enabled = false;
                    break;
                }
            }
            break;

        case "objecttype":
            string objectType = ImportExportHelper.GetSafeObjectTypeName(parameter.ToString());
            if (!string.IsNullOrEmpty(objectType))
            {
                parameter = ResHelper.GetString("ObjectType." + objectType);
            }
            else
            {
                return("-");
            }
            break;

        case "comment":
            string resultText = parameter.ToString();
            parameter = HTMLHelper.HTMLEncode(TextHelper.LimitLength(resultText, 297, "..."));
            break;
        }

        return(parameter.ToString());
    }
Ejemplo n.º 5
0
    private void LoadSettingsControl()
    {
        try
        {
            if (Settings != null)
            {
                plcControl.Controls.Clear();
                plcControl.Visible = false;
                settingsControl    = null;

                if (!string.IsNullOrEmpty(SelectedNodeValue))
                {
                    string virtualPath = "~/CMSModules/ImportExport/Controls/Import/" + (SiteNode ? "Site/" : "") + ImportExportHelper.GetSafeObjectTypeName(SelectedNodeValue) + ".ascx";
                    string filePath    = Server.MapPath(virtualPath);

                    if (File.Exists(filePath))
                    {
                        // Load control
                        settingsControl = (ImportExportControl)Page.LoadUserControl(virtualPath);
                        settingsControl.EnableViewState = true;
                        settingsControl.ID       = "settingControl";
                        settingsControl.Settings = Settings;

                        if (settingsControl.Visible)
                        {
                            plcControl.Controls.Add(settingsControl);
                            plcControl.Visible = true;
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            lblError.Text = "[ImportPanel.LoadSettingsControl]: Error loading settings control for object type '" + SelectedNodeValue + "'. " + EventLogProvider.GetExceptionLogMessage(ex);
        }
    }
    /// <summary>
    /// Reloads all data.
    /// </summary>
    public override void ReloadData(bool forceLoad)
    {
        if (CurrentReport != null)
        {
            // Load labels
            if (!RequestHelper.IsPostBack() || forceLoad)
            {
                // Create query parameters
                string query = "?ObjectID=" + CurrentReport.ReportObjectID;

                // Set link value
                string url = CurrentReport.ReportURL;
                if (CurrentReport.ReportCulture != String.Empty)
                {
                    url = URLHelper.AddParameterToUrl(url, URLHelper.LanguageParameterName, CurrentReport.ReportCulture);
                }
                lnkUrlValue.Text        = HTMLHelper.HTMLEncode(url);
                lnkUrlValue.NavigateUrl = url;
                lnkUrlValue.ToolTip     = HTMLHelper.HTMLEncode(url);
                lnkUrlValue.Target      = "_blank";

                // Set culture value
                CultureInfo ci = CultureHelper.GetCultureInfo(CurrentReport.ReportCulture);
                lblCultureValue.Text = (ci != null) ? ci.DisplayName : ResHelper.Dash;

                // Set site value
                SiteInfo si = SiteInfoProvider.GetSiteInfo(CurrentReport.ReportSiteID);
                lblSiteValue.Text = (si != null) ? HTMLHelper.HTMLEncode(si.DisplayName) : ResHelper.Dash;

                // Set title
                lblTitleValue.Text = HTMLHelper.HTMLEncode(CurrentReport.ReportTitle);

                // Set labels
                if (!string.IsNullOrEmpty(CurrentReport.ReportObjectType))
                {
                    lblObjectTypeValue.Text = GetString("ObjectType." + ImportExportHelper.GetSafeObjectTypeName(CurrentReport.ReportObjectType));
                    query += "&ObjectType=" + CurrentReport.ReportObjectType;
                    if ((CurrentReport.ReportObjectID > 0) && (CurrentReport.ReportObjectType.ToLowerCSafe() != DocumentObjectType.DOCUMENT))
                    {
                        pnlLink.Visible = true;
                    }
                }
                else
                {
                    lblObjectTypeValue.Text = ResHelper.Dash;
                }

                // Get object display name
                lblObjectNameValue.Text = ResHelper.Dash;

                string objectType = CurrentReport.ReportObjectType;
                int    objectId   = CurrentReport.ReportObjectID;

                if ((objectId > 0) && !string.IsNullOrEmpty(objectType) && !objectType.EqualsCSafe(DocumentObjectType.DOCUMENT, true))
                {
                    GeneralizedInfo obj = CMSObjectHelper.GetObjectById(objectType, objectId);
                    if ((obj != null) && !string.IsNullOrEmpty(obj.ObjectDisplayName))
                    {
                        lblObjectNameValue.Text = HTMLHelper.HTMLEncode(obj.ObjectDisplayName);
                    }
                }

                // Set Reported by label
                lblReportedByValue.Text = ResHelper.Dash;
                if (CurrentReport.ReportUserID != 0)
                {
                    UserInfo ui = UserInfoProvider.GetUserInfo(CurrentReport.ReportUserID);
                    lblReportedByValue.Text = (ui != null) ? HTMLHelper.HTMLEncode(ui.FullName) : GetString("general.NA");
                }

                // Set other parameters
                lblReportedWhenValue.Text = CurrentReport.ReportWhen.ToString();

                if ((CurrentReport.ReportObjectID > 0) && (!string.IsNullOrEmpty(CurrentReport.ReportObjectType)) && AbuseReportInfoProvider.IsObjectTypeSupported(CurrentReport.ReportObjectType))
                {
                    lnkShowDetails.Visible = true;
                    string detailUrl = "~/CMSModules/AbuseReport/AbuseReport_ObjectDetails.aspx" + query;
                    lnkShowDetails.NavigateUrl = URLHelper.AddParameterToUrl(detailUrl, "hash", QueryHelper.GetHash(detailUrl));
                }

                Control postback = ControlsHelper.GetPostBackControl(Page);
                CMSPage page     = Page as CMSPage;

                // Not post-back not caused by OK button or Save action in header
                if ((postback != btnOk) && ((page == null) || (postback != page.HeaderActions)))
                {
                    txtCommentValue.Text = CurrentReport.ReportComment;
                    LoadStatus((int)CurrentReport.ReportStatus);
                }
            }
        }
    }