Beispiel #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        PXDBContext        context = new PXDBContext(new PXWikiSettings(this).Absolute);
        SendKBArticleMaint graph   = ds.DataGraph as SendKBArticleMaint;

        if (graph != null)
        {
            graph.WikiSettings = context.Settings;
            context.WikiID     = graph.Message.Current.WikiID;
        }

        PXWikiEdit wikiEdit = form.FindControl("wikiEdit") as PXWikiEdit;

        if (wikiEdit != null)
        {
            wikiEdit.PreviewSettings = context;
            form.DataBound          += new EventHandler(delegate(object o, EventArgs args)
            {
                PXDBContext settings = context;
                //settings.StyleID = SitePolicy.DefaultMailStyle;
                wikiEdit.PreviewSettings = settings;
            });
        }

        PXKBShow edContent = frmInsertArticle.FindControl("edContent") as PXKBShow;
    }
Beispiel #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string         exportType = Request["type"];
        WikiReader     reader     = PXGraph.CreateInstance <WikiReader>();
        PXWikiSettings settings   = new PXWikiSettings(this, reader);

        this.SetReaderFilter(reader);
        WikiPage article = reader.Pages.SelectWindowed(0, 1);

        reader.Pages.Current = article;
        PXRenderer renderer = this.CreateRenderer(exportType, settings.Absolute);

        if (article != null && !string.IsNullOrEmpty(article.Content) && renderer != null)
        {
            var ctx = new PXDBContext(settings.Absolute);

            ctx.Renderer = renderer;
            ctx.WikiID   = article.WikiID;
            string result = PXWikiParser.Parse(article.Content, ctx);
            string mime   = MimeTypes.GetMimeType("." + exportType);
            Response.AddHeader("cache-control", "no-store, private");
            Response.Clear();
            Response.Cache.SetCacheability(HttpCacheability.Private);
            Response.Cache.SetExpires(DateTime.Now.AddSeconds(2));
            Response.Cache.SetValidUntilExpires(true);
            Response.AddHeader("Content-Type", mime);
            Response.AddHeader("Content-Encoding", "ansi");
            this.AdditionalResponseParams(renderer, article);
            Response.Write(result);
        }
    }
	protected void Page_Load(object sender, EventArgs e)
	{
		string exportType = Request["type"];
		WikiReader reader = PXGraph.CreateInstance<WikiReader>();
		PXWikiSettings settings = new PXWikiSettings(this, reader);
		this.SetReaderFilter(reader);
		WikiPage article = reader.Pages.SelectWindowed(0, 1);
		reader.Pages.Current = article;
		PXRenderer renderer = this.CreateRenderer(exportType, settings.Absolute);
		if (article != null && !string.IsNullOrEmpty(article.Content) && renderer != null)
		{
			var ctx = new PXDBContext(settings.Absolute);

			ctx.Renderer = renderer;
			ctx.WikiID = article.WikiID;
			string result = PXWikiParser.Parse(article.Content, ctx);
			string mime = MimeTypes.GetMimeType("." + exportType);
			Response.AddHeader("cache-control", "no-store, private");
			Response.Clear();
			Response.Cache.SetCacheability(HttpCacheability.Private);
			Response.Cache.SetExpires(DateTime.Now.AddSeconds(2));
			Response.Cache.SetValidUntilExpires(true);
			Response.AddHeader("Content-Type", mime);
			Response.AddHeader("Content-Encoding", "ansi");
			this.AdditionalResponseParams(renderer, article);
			Response.Write(result);
		}
	}
Beispiel #4
0
        public virtual IEnumerable IndexCustomArticles(PXAdapter adapter)
        {
            PXLongOperation.StartOperation(this, delegate()
            {
                foreach (var result in WikiArticles.Select())
                {
                    string plaintext = null;

                    var _wp = (WikiPage)result[typeof(WikiPage)];
                    var _wr = (WikiRevision)result[typeof(WikiRevision)];
                    var _wl = (WikiPageLanguage)result[typeof(WikiPageLanguage)];

                    if (_wp.IsHtml != true)
                    {
                        WikiReader reader       = PXGraph.CreateInstance <WikiReader>();
                        PXWikiSettings settings = new PXWikiSettings(new PXPage(), reader);
                        PXTxtRenderer renderer  = new PXTxtRenderer(settings.Absolute);
                        var ctx      = new PXDBContext(settings.Absolute);
                        ctx.Renderer = renderer;
                        plaintext    = (_wl.Title ?? "") + Environment.NewLine + PXWikiParser.Parse(_wr.Content, ctx);
                    }
                    else
                    {
                        plaintext = (_wl.Title ?? "") + Environment.NewLine + SearchService.Html2PlainText(_wr.Content);
                    }


                    //Try updating the article in current Company
                    if (!PXDatabase.Update <WikiRevision>(
                            new PXDataFieldAssign("PlainText", PXDbType.NVarChar, plaintext),
                            new PXDataFieldRestrict("PageID", PXDbType.UniqueIdentifier, _wr.PageID),
                            new PXDataFieldRestrict("PageRevisionID", PXDbType.Int, _wr.PageRevisionID),
                            new PXDataFieldRestrict("Language", PXDbType.VarChar, _wr.Language)
                            ))
                    {
                        //Article may be shared. Try updating the article through graph (thus handling the shared record update stratagy)
                        //if article is not updatable an exception may be thrown - ignore.
                        try
                        {
                            ArticleUpdater updater = PXGraph.CreateInstance <ArticleUpdater>();
                            WikiRevision rev       = updater.Revision.Select(_wr.PageID, _wr.PageRevisionID, _wr.Language);
                            rev.PlainText          = plaintext;
                            updater.Revision.Update(rev);
                            updater.Persist();
                        }
                        catch (Exception ex)
                        {
                            PXTrace.WriteInformation("Plain text field could not be updated for article = {0}. Error Message: {1}", _wr.PageID, ex.Message);
                        }
                    }
                }
            });



            return(adapter.Get());
        }
	private PXRenderer CreateRenderer(string exportType, PXDBContext settings)
	{
		switch (exportType)
		{
			case "txt":
				PXTxtRenderer resultTxt = new PXTxtRenderer(settings);
				resultTxt.ColsCount = 100;
				return resultTxt;
			case "rtf":
				PXRtfRenderer resultRtf = new PXRtfRenderer(settings);
				return resultRtf;
		}
		return null;
	}
Beispiel #6
0
    private PXRenderer CreateRenderer(string exportType, PXDBContext settings)
    {
        switch (exportType)
        {
        case "txt":
            PXTxtRenderer resultTxt = new PXTxtRenderer(settings);
            resultTxt.ColsCount = 100;
            return(resultTxt);

        case "rtf":
            PXRtfRenderer resultRtf = new PXRtfRenderer(settings);
            return(resultRtf);
        }
        return(null);
    }
	protected void Page_Load(object sender, EventArgs e)
	{
		PXDBContext context = new PXDBContext(new PXWikiSettings(this).Absolute);
		SendKBArticleMaint graph = ds.DataGraph as SendKBArticleMaint;
		if (graph != null)
		{
			graph.WikiSettings = context.Settings;
			context.WikiID = graph.Message.Current.WikiID;
		}

		PXWikiEdit wikiEdit = form.FindControl("wikiEdit") as PXWikiEdit;
		if (wikiEdit != null) 
		{
			wikiEdit.PreviewSettings = context;
			form.DataBound += new EventHandler(delegate(object o, EventArgs args)
			{
				PXDBContext settings = context;
				//settings.StyleID = SitePolicy.DefaultMailStyle;
				wikiEdit.PreviewSettings = settings;
			});
		}

		PXKBShow edContent = frmInsertArticle.FindControl("edContent") as PXKBShow;
	}
Beispiel #8
0
    protected void form_DataBinding(object sender, EventArgs e)
    {
        WikiReader graph   = (WikiReader)this.DS.DataGraph;
        PXCache    cache   = graph.Views[this.DS.PrimaryView].Cache;
        WikiPage   current = cache.Current as WikiPage;

        if (current != null)
        {
            string language = Request.Params["Language"];
            if (string.IsNullOrEmpty(language))
            {
                language = LocaleInfo.GetCulture().Name;
            }

            WikiRevision currentrevision =
                PXSelect <WikiRevision,
                          Where <WikiRevision.pageID,
                                 Equal <Required <WikiRevision.pageID> >,
                                 And <WikiRevision.language, Equal <Required <WikiRevision.language> > > >, OrderBy <Desc <WikiRevision.pageRevisionID> > > .SelectWindowed(new PXGraph(), 0, 1, current.PageID, language);

            if (this.PublicUrlEditor != null)
            {
                this.PublicUrlEditor.Text = string.Empty;
            }

            if (current.WikiID != null)
            {
                if (Master is IPXMasterPage)
                {
                    (Master as IPXMasterPage).ScreenTitle = current.Title;
                }
                if (Master is IPXMasterPage)
                {
                    (Master as IPXMasterPage).BranchAvailable = false;
                }
                graph.Filter.Current.WikiID = current.WikiID;
                WikiDescriptor wiki    = graph.wikis.SelectWindowed(0, 1, current.WikiID);
                PXWikiShow     content = MainForm.FindControl("edContent") as PXWikiShow;
                if (wiki != null)
                {
                    if (!string.IsNullOrEmpty(wiki.PubVirtualPath))
                    {
                        if (PublicUrlEditor != null)
                        {
                            PublicUrlEditor.Text = Request.GetExternalUrl().ToString();
                            int index = PublicUrlEditor.Text.IndexOf("Wiki");
                            if (index > -1)
                            {
                                PublicUrlEditor.Text = PublicUrlEditor.Text.Remove(0, index);
                                PublicUrlEditor.Text = wiki.PubVirtualPath + "/" + PublicUrlEditor.Text;
                            }
                        }
                    }
                    if (!Page.IsPostBack)
                    {
                        PXAuditJournal.Register("WI000000", Wiki.Link(wiki.Name, current.Name));
                    }
                }

                if (content != null)
                {
                    PXDBContext wikiContext = (PXDBContext)content.WikiContext;

                    if (currentrevision != null)
                    {
                        wikiContext.Text = currentrevision.Content;
                    }
                    if (_pageDBContextType == null)
                    {
                        wikiContext.ContentWidth  = current.Width.GetValueOrDefault(0);
                        wikiContext.ContentHeight = current.Height.GetValueOrDefault(0);
                        wikiContext.PageTitle     = current.Title;
                    }

                    wikiContext.WikiID = current.WikiID.Value != Guid.Empty ? current.WikiID.Value : current.PageID.Value;

                    if (current.PageID != null && (_pageDBContextType == null &&
                                                   (PXSiteMap.WikiProvider.GetAccessRights(current.PageID.Value) >= PXWikiRights.Update &&
                                                    current.PageRevisionID > 0)))
                    {
                        wikiContext.LastModified        = current.PageRevisionDateTime;
                        wikiContext.LastModifiedByLogin = cache.GetStateExt(current, "PageRevisionCreatedByID").ToString();
                    }
                    if (current.PageID != null && PXSiteMap.WikiProvider.GetAccessRights(current.PageID.Value) >= PXWikiRights.Update)
                    {
                        wikiContext.RenderSectionLink = true;
                    }
                    else
                    {
                        wikiContext.HideBrokenLink    = true;
                        wikiContext.RedirectAvailable = true;
                    }

                    if (this.WikiTextPanel != null)
                    {
                        this.WikiTextPanel.Caption = current.Title;
                    }
                    if (this.WikiTextEditor != null)
                    {
                        this.WikiTextEditor.Text = graph.ConvertGuidToLink(current.Content);
                    }
                }
                if (this.LinkEditor != null)
                {
                    this.LinkEditor.Text = "[" + (wiki != null && wiki.Name != null ? wiki.Name + "\\" : string.Empty) + current.Name + "]";
                }
            }
        }
        this.Page.ClientScript.RegisterClientScriptBlock(GetType(), "varreg", "var printLink=\"" + ResolveUrl("~/Wiki/Print.aspx") + "?" + ControlHelper.SanitizeUrl(Request.QueryString.ToString()) + "\";", true);

        if (this.LinkEditor != null)
        {
            LinkEditor.ReadOnly = true;
        }
        if (this.UrlEditor != null)
        {
            UrlEditor.Text     = Request.GetExternalUrl().ToString();
            UrlEditor.ReadOnly = true;
        }
        if (this.PublicUrlEditor != null)
        {
            PublicUrlEditor.Enabled  = !string.IsNullOrEmpty(PublicUrlEditor.Text);
            PublicUrlEditor.ReadOnly = true;
        }
    }