Exemplo n.º 1
0
        /// <summary>
        /// Display edit
        /// </summary>
        /// <param name="_edit"></param>
        /// <param name="BrowsingHistory"></param>
        /// <param name="browser"></param>
        public static void DisplayEdit(Edit _edit, bool BrowsingHistory = false, Controls.SpecialBrowser browser = null, bool ChangeEdit = true)
        {
            Core.History("Processing.DisplayEdit()");
            try
            {
                if (browser == null)
                {
                    browser = main._CurrentBrowser;
                }
                    if (_edit != null)
                    {
                        if (_edit._Page != null)
                        {
                            if (BrowsingHistory != true && browser.History.Count == 0 || (browser.History[0].Edit is Edit) == false)
                            {
                                browser.AddToHistory(new Core.HistoryItem(_edit));
                            }
                        }

                        if (main._CurrentBrowser == browser && ChangeEdit == true)
                        {
                            browser.Edit = _edit;
                            Program.MainForm.Set_Current_User(_edit._User);
                            Program.MainForm.Set_Current_Page(_edit._Page);
                        }

                        if (_edit._Deleted)
                        {

                        }
                        else if (_edit.Prev == Core.NullEdit)
                        {
                            Requests.request_read.browser_html_data BrowserRequest = new Requests.request_read.browser_html_data();
                            BrowserRequest.address = Core.SitePath() + "index.php?title=" + System.Web.HttpUtility.UrlEncode(_edit._Page.Name) + "&id=" + _edit.Id;
                            BrowserRequest.browser = browser;
                            BrowserRequest.Start();
                        }
                        else
                        {
                            if (_edit.DiffCacheState == Edit.CacheState.Viewed || _edit.DiffCacheState == Edit.CacheState.Cached)
                            {
                                if (_edit.Diff != null)
                                {
                                    string DocumentText = "", DiffText = "";
                                    DiffText = _edit.Diff;

                                    DiffText = DiffText.Replace("href=\"/wiki/", "href=\"" + Config.Projects[Config.Project] + "wiki/");
                                    DiffText = DiffText.Replace("href='/wiki/", "href='" + Config.Projects[Config.Project] + "wiki/");
                                    DiffText = DiffText.Replace("href=\"/w/", "href=\"" + Config.Projects[Config.Project] + "w/");
                                    DiffText = DiffText.Replace("href='/w/", "href='" + Config.Projects[Config.Project] + "w/");

                                    DocumentText = huggle3.Properties.Resources.header;
                                    DocumentText += DiffText;
                                    DocumentText += huggle3.Properties.Resources.footer;

                                    browser.DocumentText = DocumentText;

                                }
                                _edit.DiffCacheState = Edit.CacheState.Viewed;
                            }
                        }
                        if (_edit.DiffCacheState == Edit.CacheState.Uncached)
                        {
                            _edit.DiffCacheState = Edit.CacheState.Caching;
                            Requests.request_read.diff Request = new Requests.request_read.diff();
                            Request._Edit = _edit;
                            Request.browsertab = browser;
                            Request.Start();
                        }
                        Program.MainForm.Refresh_Interface();
                    }
                }
            catch (Exception ex)
            {
                Core.ExceptionHandler( ex );
            }
        }