Example #1
0
        /// <summary>
        /// Lưu các thiết lập của Module
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        protected void OnSave(object sender, EventArgs args)
        {
            try
            {
                if (Page.IsValid)
                {
                    // Nạp cấu trúc Portal
                    PortalDefinition     pd = PortalDefinition.Load();
                    PortalDefinition.Tab t  = pd.GetTab(CurrentTabReference);
                    // Truy xuất đến cấu trúc Module hiện thời
                    PortalDefinition.Module m = t.GetModule(CurrentReference);

                    // Thay đổi các thông số tương ứng
                    m.reference = txtReference.Text;
                    m.title     = HttpUtility.HtmlEncode(txtTitle.Text);
                    m.type      = cboPath.SelectedValue + "/" + cbType.SelectedItem.Value;
                    m.roles     = RolesCtrl.GetData();
                    m.CacheTime = Convert.ToInt32(txtCacheTime.Text);

                    // Lưu các thông số và cấu trúc
                    pd.Save();

                    // Lưu các thông số khi thực thi của module
                    m.LoadModuleSettings();
                    m.LoadRuntimeProperties();
                    for (int _intPropertyCount = 0; _intPropertyCount < rptRuntimeProperties.Items.Count; _intPropertyCount++)
                    {
                        HtmlInputHidden _hihPropertyName   = rptRuntimeProperties.Items[_intPropertyCount].FindControl("lblPropertyName") as HtmlInputHidden;
                        TextBox         _txtPropertyValue  = rptRuntimeProperties.Items[_intPropertyCount].FindControl("txtPropertyValue") as TextBox;
                        DropDownList    _drdAvaiableValues = rptRuntimeProperties.Items[_intPropertyCount].FindControl("drdAvaiableValues") as DropDownList;

                        if (_hihPropertyName != null && _txtPropertyValue != null)
                        {
                            string _strPropertyValue = _txtPropertyValue.Visible ? _txtPropertyValue.Text : _drdAvaiableValues.SelectedValue;
                            m.moduleRuntimeSettings.SetRuntimePropertyValue(true, _hihPropertyName.Value, _strPropertyValue);
                        }
                    }
                    m.SaveRuntimeSettings();

                    CurrentReference = m.reference;

                    // Phát sinh sự kiện lưu thông tin thành công
                    if (Save != null)
                    {
                        Save(this, new EventArgs());
                    }
                }
            }
            catch (Exception e)
            {
                lbError.Text = e.Message;
            }
        }
Example #2
0
        protected void OnDelete(object sender, EventArgs args)
        {
            PortalDefinition pd = PortalDefinition.Load();

            PortalDefinition.Tab t = pd.GetTab(CurrentReference);
            PortalDefinition.DeleteTab(CurrentReference);

            if (Delete != null)
            {
                Delete(this, t);
            }
        }
Example #3
0
        /// <summary>
        /// Thủ tục cập nhật lại mã tham chiếu của thẻ tương ứng với đề mục đã sửa
        /// Thủ tục này được gọi khi người sử dụng thay đổi đường dẫn hiển thị trên URL của một đề mục nào đó.
        /// </summary>
        /// <param name="_strOldTabRef">Mã tham chiếu cũ, dùng để tìm ra thẻ hiện thời ứng với đề mục cần sửa</param>
        /// <param name="_strNewTabRef">Mã</param>
        /// <param name="_strNewTabTitle"></param>
        private void SyncCategoryTab(string _strOldTabRef, string _strNewTabRef, string _strNewTabTitle)
        {
            PortalDefinition _objPortal = PortalDefinition.Load();

            PortalDefinition.Tab _objCurrentCategoryTab = _objPortal.GetTab(_strOldTabRef);

            if (_objCurrentCategoryTab != null)
            {
                _objCurrentCategoryTab.title     = _strNewTabTitle;
                _objCurrentCategoryTab.reference = _strNewTabRef;
                _objPortal.Save();
            }
        }
Example #4
0
        protected void OnCancel(object sender, EventArgs args)
        {
            PortalDefinition pd = PortalDefinition.Load();

            PortalDefinition.Tab t = pd.GetTab(CurrentReference);

            if (Cancel != null)
            {
                Cancel(this, t);
            }

            LoadData(CurrentReference);
            ShowModulesList();
        }
Example #5
0
        public void LoadData(string tabRef, string moduleRef)
        {
            CurrentTabReference = tabRef;
            CurrentReference    = moduleRef;

            PortalDefinition pd = PortalDefinition.Load();

            PortalDefinition.Tab t = pd.GetTab(CurrentTabReference);
            _module = t.GetModule(CurrentReference);

            // Load Module Common Properties
            txtTitle.Text     = HttpUtility.HtmlDecode(_module.title);
            txtReference.Text = _module.reference;
            txtCacheTime.Text = _module.CacheTime.ToString();

            cboPath.ClearSelection();
            cbType.ClearSelection();
            //lay ve duong dan den file module tinh tu RootModule
            string strModule = _module.type, strPth = "";

            string[] strModulePath = strModule.Split("/".ToCharArray());
            if (strModulePath.Length == 2)
            {
                strPth    = strModulePath[0];
                strModule = strModulePath[1];
            }
            ListItem pli = cboPath.Items.FindByValue(strPth);

            if (pli != null)
            {
                pli.Selected = true;
            }
            //goi load du lieu cho type
            LoadModuleTypes(strPth);
            ListItem li = cbType.Items.FindByValue(strModule);

            if (li != null)
            {
                li.Selected = true;
            }

            // Load Roles List
            RolesCtrl.LoadData(_module.roles);
            RolesCtrl.ShowRoleType = false;
            // Load Module's Runtime Properties
            _module.LoadModuleSettings();
            _module.LoadRuntimeProperties();
            rptRuntimeProperties.DataSource = _module.GetRuntimePropertiesSource(true);
            rptRuntimeProperties.DataBind();
        }
Example #6
0
        protected void OnDeleteTab(object sender, EventArgs args)
        {
            PortalDefinition.Tab t = PortalDefinition.GetCurrentTab();
            PortalDefinition.DeleteTab(t.reference);

            if (t.parent == null)
            {
                Response.Redirect(Helper.GetTabLink(""));
            }
            else
            {
                Response.Redirect(Helper.GetTabLink(t.parent.reference));
            }
        }
Example #7
0
		override public void LoadData(PortalDefinition.Tab t)
		{
			CurrentTab = t;

			txtTitle.Text = HttpUtility.HtmlDecode(t.title);
			txtReference.Text = CurrentTab.reference;
      txtImagePathI.Text = HttpUtility.HtmlDecode(t.imgPathInactive);
      txtImagePathA.Text = HttpUtility.HtmlDecode(t.imgPathActive);

			RolesCtrl.LoadData(t.roles);
			ModuleListCtrl_Left.LoadData(t.left);
			ModuleListCtrl_Middle.LoadData(t.middle);
			ModuleListCtrl_Right.LoadData(t.right);
		}
Example #8
0
        override public void LoadData(PortalDefinition.Tab t)
        {
            CurrentTab = t;

            txtTitle.Text      = HttpUtility.HtmlDecode(t.title);
            txtReference.Text  = CurrentTab.reference;
            txtImagePathI.Text = HttpUtility.HtmlDecode(t.imgPathInactive);
            txtImagePathA.Text = HttpUtility.HtmlDecode(t.imgPathActive);

            RolesCtrl.LoadData(t.roles);
            ModuleListCtrl_Left.LoadData(t.left);
            ModuleListCtrl_Middle.LoadData(t.middle);
            ModuleListCtrl_Right.LoadData(t.right);
        }
Example #9
0
        protected void OnDelete(object sender, EventArgs args)
        {
            if (Parent is Tab)
            {
                PortalDefinition        pd = PortalDefinition.Load();
                PortalDefinition.Tab    t  = pd.GetTab(CurrentTabReference);
                PortalDefinition.Column _objColumnBeingDeleted = pd.GetColumn(CurrentColumnReference);

                if (_objColumnBeingDeleted != null)
                {
                    t.DeleteColumn(CurrentColumnReference);

                    pd.Save();

                    if (Delete != null)
                    {
                        Delete(CurrentColumnReference,
                               _objColumnBeingDeleted.ColumnParent == null
                                   ? Guid.NewGuid().ToString()
                                   : _objColumnBeingDeleted.ColumnReference);
                    }
                }
            }
            else if (Parent is Template)
            {
                TemplateDefinition          td = TemplateDefinition.Load();
                TemplateDefinition.Template t  = td.GetTemplate(CurrentTabReference);
                PortalDefinition.Column     _objColumnBeingDeleted = td.GetColumn(CurrentColumnReference);

                if (_objColumnBeingDeleted != null)
                {
                    t.DeleteColumn(CurrentColumnReference);

                    td.Save();

                    if (Delete != null)
                    {
                        Delete(CurrentColumnReference,
                               _objColumnBeingDeleted.ColumnParent == null
                                   ? Guid.NewGuid().ToString()
                                   : _objColumnBeingDeleted.ColumnReference);
                    }
                }
            }


            // Hopefully we where redirected here!
        }
        public void LoadData(string tabRef)
        {
            CurrentReference = tabRef;

            PortalDefinition pd = PortalDefinition.Load();

            PortalDefinition.Tab t = pd.GetTab(CurrentReference);

            txtTitle.Text     = t.title;
            txtReference.Text = CurrentReference;

            RolesCtrl.LoadData(t.roles);
            ModuleListCtrl_Left.LoadData(t.left);
            ModuleListCtrl_Middle.LoadData(t.middle);
            ModuleListCtrl_Right.LoadData(t.right);
        }
Example #11
0
        /// <summary>
        /// Thủ tục áp nội dung thẻ mẫu vào nội dung thẻ đã chọn
        /// </summary>
        /// <param name="_strTabRef"></param>
        private void ApplyCustomTab(string _strTabRef)
        {
            PortalDefinition _objPortal = PortalDefinition.Load();

            PortalDefinition.Tab _objSelectedTab     = _objPortal.GetTab(_strTabRef);
            ArrayList            _arrTemplateContent = _objPortal.CloneToTemplateTab(_objPortal.TemplateColumns) as ArrayList;

            if (_objSelectedTab != null && _objSelectedTab.reference != _objPortal.TemplateReference && _arrTemplateContent != null)
            {
                ReGenModuleID(ref _arrTemplateContent);

                _objSelectedTab.Columns = _arrTemplateContent;

                _objPortal.Save();
            }
        }
Example #12
0
        protected void OnDelete(object sender, EventArgs args)
        {
            PortalDefinition pd = PortalDefinition.Load();

            PortalDefinition.Tab t = pd.GetTab(CurrentTabReference);

            t.DeleteModule(CurrentReference);

            pd.Save();

            if (Delete != null)
            {
                Delete(this, new EventArgs());
            }

            // Hopefully we where redirected here!
        }
Example #13
0
        private void UpdateTabs(TemplateApplyingMode _objGenerateMode)
        {
            PortalDefinition _objPortal = PortalDefinition.Load();

            EditionTypeRow[] _arrAllEditionTypes = null;

            using (MainDB _objDB = new MainDB())
            {
                _arrAllEditionTypes = _objDB.EditionTypeCollection.GetAll();
            }

            if (_arrAllEditionTypes != null)
            {
                foreach (EditionTypeRow _objEdition in _arrAllEditionTypes)
                {
                    PortalDefinition.Tab _objCurrentEdition  = _objPortal.GetTab(_objEdition.EditionDisplayURL);
                    ArrayList            _arrTemplateColumns = _objPortal.CloneToTemplateTab(_objPortal.TemplateColumns) as ArrayList;
                    ReGenModuleID(ref _arrTemplateColumns);

                    if (_objCurrentEdition != null)
                    {
                        // Nếu cho phép cập nhật chuyên san thì cần xét thêm chuyên san phải khác với chuyên san mẫu
                        if (_objGenerateMode.EditionType && _objCurrentEdition.reference != _objPortal.TemplateReference)
                        {
                            _objCurrentEdition.Columns = _arrTemplateColumns;
                            _objCurrentEdition.title   = _objEdition.EditionName;
                        }
                        AddCategoryTab(_objPortal, _objCurrentEdition.tabs, _objEdition.EditionType_ID.ToString(), null, _objEdition.EditionDisplayURL, _objGenerateMode);
                    }
                    else
                    {
                        PortalDefinition.Tab      _objNewEditionTab = PortalDefinition.Tab.Create(_objEdition.EditionDisplayURL);
                        PortalDefinition.ViewRole _objViewRole      = new PortalDefinition.ViewRole();
                        _objViewRole.name = Config.EveryoneRoles;
                        _objNewEditionTab.roles.Add(_objViewRole);
                        _objNewEditionTab.Columns = _arrTemplateColumns;
                        _objPortal.tabs.Add(_objNewEditionTab);

                        AddCategoryTab(_objPortal, _objNewEditionTab.tabs, _objEdition.EditionType_ID.ToString(), null, _objEdition.EditionDisplayURL, _objGenerateMode);
                    }
                }
            }

            _objPortal.Save();
            Response.Redirect(Request.Url.PathAndQuery);
        }
Example #14
0
        protected void OnSave(object sender, EventArgs args)
        {
            try
            {
                if (!Page.IsValid)
                {
                    return;
                }

                PortalDefinition     pd = PortalDefinition.Load();
                PortalDefinition.Tab t  = pd.GetTab(CurrentReference);

                t.title     = HttpUtility.HtmlEncode(txtTitle.Text);
                t.reference = txtReference.Text;
                t.SkinName  = ddrSkins.SelectedValue;
                t.IsHidden  = chkIsHidden.Checked;
                t.roles     = RolesCtrl.GetData();

                if (!string.Empty.Equals(ddrTemplateList.SelectedValue))
                {
                    //get information about selected template
                    TemplateDefinition          td       = TemplateDefinition.Load();
                    TemplateDefinition.Template template = td.GetTemplate(ddrTemplateList.SelectedValue);

                    //apply template to tab by replace columns's tab by columns'template
                    t.Columns = (ArrayList)template.Columns.Clone();
                }

                pd.Save();

                CurrentReference = t.reference;

                if (Save != null)
                {
                    Save(this, t);
                }

                ShowModulesList();
                LoadData(CurrentReference);
            }
            catch (Exception e)
            {
                lbError.Text = e.Message;
            }
        }
        /// <summary>
        /// Thủ tục cập nhật lại mã tham chiếu của thẻ tương ứng với đề mục đã sửa
        /// Thủ tục này được gọi khi người sử dụng thay đổi đường dẫn hiển thị trên URL của một đề mục nào đó.
        /// </summary>
        /// <param name="_strOldTabRef">Mã tham chiếu cũ, dùng để tìm ra thẻ hiện thời ứng với đề mục cần sửa</param>
        /// <param name="_strNewTabRef">Mã</param>
        /// <param name="_strNewTabTitle"></param>
        public void SyncCategoryTab(string _strOldTabRef, string _strNewTabRef, string _strNewTabTitle, string _EditionRef, string _ParentRef, string _NewRef, string _NewTabTitle)
        {
            PortalDefinition _objPortal = PortalDefinition.Load();

            PortalDefinition.Tab _objCurrentCategoryTab = _objPortal.GetTab(_strOldTabRef);

            if (_objCurrentCategoryTab != null)
            {
                _objCurrentCategoryTab.title     = _strNewTabTitle;
                _objCurrentCategoryTab.reference = _strNewTabRef;
                _objPortal.Save();
            }
            else
            {
                //neu truong hop khong ton tai tab thi tao tab do ra
                AddCategoryTab(_EditionRef, _ParentRef, _NewRef, _NewTabTitle);
            }
        }
        protected void btnSaveLayout_Click(object sender, EventArgs e)
        {
            string tab = (string)ViewState["TabReference"];

            string html = "<tables>" + HiddenField1.Value + "</tables>";

            // hotfix
            html = html.Replace("<br style=\"clear: both;\">", string.Empty);
            html = html.Replace("<BR style=\"CLEAR: both\">", string.Empty);


            XmlDocument layout = convertHTMLtoXML(html);

            if (layout != null)
            {
                PortalDefinition     pd = PortalDefinition.Load();
                PortalDefinition.Tab t  = pd.GetTab(tab);
                // remove all old column
                while (t.Columns.Count > 0)
                {
                    t.DeleteColumn(((PortalDefinition.Column)t.Columns[0]).ColumnReference);
                }

                // add new column
                XmlNodeList htmlTables = layout.SelectNodes("tables/table");
                if (htmlTables.Count == 0)
                {
                    htmlTables = layout.SelectNodes("tables/TABLE");                                        // fix ie: UPPERCASE all tag
                }
                PortalDefinition.Column newColumn;

                int countTable = 0;
                foreach (XmlNode htmlTable in htmlTables)
                {
                    newColumn = PortalDefinition.Column.Create(t);
                    saveTable(ref newColumn, htmlTable, countTable++);
                    t.Columns.Add(newColumn);
                }
                pd.Save();
                RenderTables(t.Columns, workarea);
            }
        }
        /// <summary>
        /// Ermittelt die Definition des Modules des angegebenene Tabs.
        /// </summary>
        /// <param name="szTab"></param>
        /// <param name="szCtrl"></param>
        /// <returns></returns>
        private PortalDefinition.Module GetModule(string szTab, string szCtrl)
        {
            PortalDefinition.Module SelectedModule = null;

            if ((szTab != null) && (szCtrl != null))
            {
                PortalDefinition     PortDef = PortalDefinition.Load();
                PortalDefinition.Tab NewsTab = PortDef.GetTab(szTab);
                if (UserManagement.HasViewRights(Page.User, NewsTab.roles))
                {
                    PortalDefinition.Module Md = NewsTab.GetModule(szCtrl);
                    if (UserManagement.HasViewRights(Page.User, Md.roles))
                    {
                        SelectedModule = Md;
                    }
                }
            }

            return(SelectedModule);
        }
        public void SelectTab(string reference)
        {
            PortalDefinition pd = PortalDefinition.Load();

            CurrentReference = reference;
            if (reference == "")            // Root Node
            {
                CurrentParentReference = "";
                TabCtrl.Visible        = false;
                TabListCtrl.LoadData(pd);
            }
            else
            {
                PortalDefinition.Tab t = pd.GetTab(reference);
                CurrentParentReference = t.parent != null ? t.parent.reference : "";
                TabListCtrl.LoadData(t);
                TabCtrl.Visible = true;
                TabCtrl.LoadData(reference);
            }
        }
        protected void OnAddColumn(object sender, CommandEventArgs e)
        {
            if (Parent is Tab)
            {
                PortalDefinition     pd = PortalDefinition.Load();
                PortalDefinition.Tab t  = pd.GetTab(e.CommandArgument.ToString());

                if (t != null)
                {
                    PortalDefinition.Column _objNewColumn = PortalDefinition.Column.Create(t);

                    t.Columns.Add(_objNewColumn);

                    pd.Save();

                    if (AddColumn != null)
                    {
                        AddColumn(this, _objNewColumn);
                    }
                }
            }
            else if (Parent is Template)
            {
                TemplateDefinition          td = TemplateDefinition.Load();
                TemplateDefinition.Template t  = td.GetTemplate(e.CommandArgument.ToString());

                if (t != null)
                {
                    PortalDefinition.Column _objNewColumn = PortalDefinition.Column.Create(t);

                    t.Columns.Add(_objNewColumn);

                    td.Save();

                    if (AddColumn != null)
                    {
                        AddColumn(this, _objNewColumn);
                    }
                }
            }
        }
        public void AddTab()
        {
            PortalDefinition pd = PortalDefinition.Load();
            PortalDefinition.Tab t = new PortalDefinition.Tab();
            t.reference = Guid.NewGuid().ToString();

            if(CurrentReference == "") // Root Node
            {
                pd.tabs.Add(t);
            }
            else
            {
                PortalDefinition.Tab pt = pd.GetTab(CurrentReference);
                pt.tabs.Add(t);
            }

            pd.Save();

            BuildTree();
            SelectTab(t.reference);
        }
        public void AddTab()
        {
            PortalDefinition pd = PortalDefinition.Load();

            PortalDefinition.Tab t = PortalDefinition.Tab.Create();

            if (CurrentReference == "") // Root Node
            {
                pd.tabs.Add(t);
            }
            else
            {
                PortalDefinition.Tab pt = pd.GetTab(CurrentReference);
                pt.tabs.Add(t);
            }

            pd.Save();

            BuildTree();
            SelectTab(t.reference);
        }
        protected void OnSave(object sender, EventArgs args)
        {
            PortalDefinition pd = PortalDefinition.Load();

            PortalDefinition.Tab t = pd.GetTab(CurrentReference);

            t.title     = txtTitle.Text;
            t.reference = txtReference.Text;
            t.roles     = RolesCtrl.GetData();

            CurrentReference = t.reference;

            pd.Save();

            if (Save != null)
            {
                Save(this, new EventArgs());
            }

            ShowModulesList();
        }
Example #23
0
        protected void OnSave(object sender, EventArgs args)
        {
            if (Page.IsValid)
            {
                // Save
                PortalDefinition        pd = PortalDefinition.Load();
                PortalDefinition.Tab    t  = pd.GetTab(CurrentTabReference);
                PortalDefinition.Module m  = t.GetModule(CurrentReference);

                m.reference = txtReference.Text;
                m.title     = txtTitle.Text;
                m.type      = cbType.SelectedItem.Value;
                m.roles     = RolesCtrl.GetData();

                pd.Save();

                if (Save != null)
                {
                    Save(this, new EventArgs());
                }
            }
        }
Example #24
0
        public void LoadData(string tabRef, string moduleRef)
        {
            CurrentTabReference = tabRef;
            CurrentReference    = moduleRef;

            PortalDefinition pd = PortalDefinition.Load();

            PortalDefinition.Tab    t = pd.GetTab(CurrentTabReference);
            PortalDefinition.Module m = t.GetModule(CurrentReference);

            txtTitle.Text     = m.title;
            txtReference.Text = m.reference;

            cbType.ClearSelection();
            ListItem li = cbType.Items.FindByValue(m.type);

            if (li != null)
            {
                li.Selected = true;
            }

            RolesCtrl.LoadData(m.roles);
        }
        /// <summary>
        /// Add new tab to Portal.config [bacth, 10:11 AM 5/26/2008]
        /// </summary>
        /// <param name="tabRef">new tab reference</param>
        /// <param name="parentTabRef">parent tab reference</param>
        /// <param name="title">new tab title</param>
        /// <param name="cloneTabRef">layout tab copied</param>
        /// <returns></returns>
        public static bool AddNewTab(string tabRef, string parentTabRef, string title, string cloneTabRef)
        {
            //string config1 = HttpContext.Current.Server.MapPath("~/settings/Portal.config"); // current application
            //string config2 = @"D:\shared\Portal.config"; // synchronous other file

            PortalDefinition portal = PortalDefinition.Load();

            PortalDefinition.Tab newTab    = portal.GetTab(tabRef);
            PortalDefinition.Tab parentTab = portal.GetTab(parentTabRef);
            if (newTab == null)
            {
                // add new tab
                newTab           = PortalDefinition.Tab.Create();
                newTab.reference = tabRef;
                newTab.title     = title;
                parentTab.tabs.Add(newTab);
                // tab roles
                PortalDefinition.ViewRole role = new PortalDefinition.ViewRole();
                role.name = Portal.API.Config.EveryoneRoles;
                newTab.roles.Add(role);
                // tab layout
                if (!string.IsNullOrEmpty(cloneTabRef))
                {
                    PortalDefinition.Tab cloneTab = portal.GetTab(cloneTabRef);
                    if (cloneTab != null)
                    {
                        newTab.Columns = cloneTab.CloneColumns();
                        foreach (PortalDefinition.Column c in newTab.Columns)
                        {
                            getNewRef(c);
                        }
                    }
                }
            }
            portal.Save();
            return(true);
        }
        /// <summary>
        /// Nạp chồng Thủ tục khởi tạo các điều khiển con
        /// </summary>
        override protected void CreateChildControls()
        {
            // Lấy thông tin Tab hiện thời
            PortalDefinition.Tab tab = PortalDefinition.GetCurrentTab();
            if (tab == null)
            {
                return;
            }

            // Kiểm tra quyền của người sử dụng
            ChannelUsers objuser = new ChannelUsers();


            if (objuser.HasViewRights(Page.User, tab.roles))
            {
                // Tiến hành sinh mã cho các cột của Tab
                // Vùng bắt đầu là DisplayRegion.
                RenderColumns(tab, tab.Columns, DisplayRegion);
            }
            else
            {
                // Add by tqdat
                Cache  cache           = new Cache(HttpContext.Current.Application);
                string path            = HttpContext.Current.Request.Url.AbsolutePath.ToLower();
                string _strCacheKey    = Config.GetPortalUniqueCacheKey() + path + "_" + HttpContext.Current.User.Identity.Name;
                string _strCacheRawKey = Config.GetPortalUniqueCacheKey() + "_Raw" + HttpContext.Current.Request.RawUrl + "_" + HttpContext.Current.User.Identity.Name;
                cache[_strCacheKey]    = null;
                cache[_strCacheRawKey] = null;
                Session["lastPath"]    = HttpContext.Current.Request.RawUrl;


                // Neu khong duoc fep access vao hoac Mat Session thi redirect ve trang Login

                Response.Redirect("/login.aspx");
            }
        }
        protected void Page_Load(object sender, System.EventArgs e)
        {
            PortalDefinition.Tab currentTab = PortalDefinition.CurrentTab;
            if (currentTab == null || currentTab.tabs == null)
            {
                return;
            }

            ArrayList tabList = new ArrayList();

            foreach (PortalDefinition.Tab t in currentTab.tabs)
            {
                if (UserManagement.HasViewRights(Page.User, t.roles))
                {
                    DisplayTabItem dt = new DisplayTabItem();
                    tabList.Add(dt);

                    dt.m_Text = t.title;
                    dt.m_URL  = "../../" + Portal.API.Config.GetTabUrl(t.reference);
                }
            }
            Tabs.DataSource = tabList;
            Tabs.DataBind();
        }
Example #28
0
        /// <summary>
        /// Thủ tục tạo và sắp xếp các cột của một Tab
        /// </summary>
        /// <param name="_objCurrentTab">Đối tượng chứa thông tin về Tab hiện thời</param>
        /// <param name="_arrColumns">Mảng chứa danh sách cột xuất phát</param>
        /// <param name="_htcContainer">Điều khiển sẽ chứa các cột trong danh sách cột xuất phát</param>
        private void RenderColumns(PortalDefinition.Tab _objCurrentTab, ArrayList _arrColumns, HtmlTableCell _htcContainer)
        {
            // Nếu không có cột nào trong danh sách xuất phát thì kết thúc thủ tục
            if (_arrColumns == null || _arrColumns.Count == 0)
            {
                return;
            }
            // Khai báo mảng chứa các bảng dùng để chứa cột
            ArrayList _arrTableIndexes = new ArrayList();

            PortalDefinition.Column _objColumn;
            SortableHtmlTable       _objTable;
            HtmlTableRow            _objTableRow;
            HtmlTableCell           _objCellContainer;

            // Duyệt danh sách các cột xuất phát
            for (int _intColumnCount = 0; _intColumnCount < _arrColumns.Count; _intColumnCount++)
            {
                // Lấy thông tin về cột đang xét
                _objColumn   = _arrColumns[_intColumnCount] as PortalDefinition.Column;
                _objTable    = null;
                _objTableRow = null;
                // Duyệt danh sách các bảng đã tạo
                // Các cột có cùng cấp độ sẽ nằm cùng một bảng
                foreach (SortableHtmlTable _tblContainer in _arrTableIndexes)
                {
                    // Kiểm tra cấp độ của cột đang xét
                    if (_tblContainer.Attributes["level"] == _objColumn.ColumnLevel.ToString())
                    {
                        // Nếu bảng đang xét có cùng cấp độ với cột đang xét
                        // thì lấy tham chiếu đến bảng và dòng đầu tiên của bảng
                        _objTable = _tblContainer;
                        //_objTableHeaderRow = _tblContainer.Rows[0];
                        _objTableRow = _tblContainer.Rows[0];
                        break;
                    }
                }

                // Nếu bảng chưa có tham chiếu (cấp độ hiện thời của cột là cấp độ mới (chưa được xét)
                if (_objTable == null)
                {
                    // Khởi tạo bảng
                    _objTable             = new SortableHtmlTable();
                    _objTable.CellPadding = 0;
                    _objTable.CellSpacing = 0;
                    _objTable.Border      = 0;

                    // Lưu trữ cấp độ của bảng (chứa các cột có cùng cấp độ)
                    _objTable.Attributes.Add("level", _objColumn.ColumnLevel.ToString());

                    // Tạo dòng chứa tiêu đề các cột
                    //_objTableHeaderRow = new HtmlTableRow();
                    //_objTable.Rows.Add(_objTableHeaderRow);

                    // Tạo dòng chứa các cột
                    _objTableRow = new HtmlTableRow();
                    _objTable.Rows.Add(_objTableRow);

                    // Lưu lại bảng đại diện cho cột vào mảng các bảng
                    _arrTableIndexes.Add(_objTable);
                }

                // Khởi tạo điều khiển đại diện cho 1 cột
                _objCellContainer        = new HtmlTableCell();
                _objCellContainer.VAlign = "top";
                _objCellContainer.Attributes.Add("id", "Cell" + _objColumn.ColumnReference.Replace('-', '_'));
                _objCellContainer.Attributes.Add("class", IsAdmin ? "Portal_Column" : "Portal_NormalColumn");

                if (_objColumn.ColumnCustomStyle != null && _objColumn.ColumnCustomStyle != "")
                {
                    _objCellContainer.Attributes.Add("style", _objColumn.ColumnCustomStyle);
                }

                // Kiểm tra xem độ rộng cột có được thiết lập hay không
                if (_objColumn.ColumnWidth != "")
                {
                    // Nếu được thiết lập thì xác định thông số width của cột
                    _objCellContainer.Attributes.Add("width", _objColumn.ColumnWidth.ToString());

                    // Nếu thiết lập là 100%, có nghĩa là chỉ có 1 cột --> bảng chứa cột này cần được để lên 100%
                    if (_objColumn.ColumnWidth == "100%")
                    {
                        _objTable.Attributes.Add("width", "100%");
                    }
                }
                // Thêm TD vừa tạo vào TR của bảng trong danh sách
                _objTableRow.Cells.Add(_objCellContainer);

                // Sắp xếp các Module đã được thiết lập cho cột (TD) đang xét
                RenderModules(_objCellContainer, _objCurrentTab, _objColumn.ModuleList);

                // Thực hiện sinh mã cho các cột con
                RenderColumns(_objCurrentTab, _objColumn.Columns, _objCellContainer);
            }

            // Thêm danh sách bảng có được vào vùng chứa hiện thời
            if (_arrTableIndexes != null && _arrTableIndexes.Count > 0)
            {
                //try
                //{
                // Sắp xếp lại các cột theo đúng thứ tự Level đã định
                _arrTableIndexes.Sort();

                // Duyệt danh sách các bảng đã tạo ra
                foreach (HtmlTable _objIndexedTable in _arrTableIndexes)
                {
                    // Tính lại độ rộng của các cột trong bảng
                    ReCalculateCellsWidth(_objIndexedTable);

                    // Kiểm tra cấp độ của bảng
                    if (Convert.ToInt32(_objIndexedTable.Attributes["level"]) == -1)
                    {
                        // Nếu là cấp độ mặc định (-1)
                        // tức là bảng nằm ở cuối danh sách các điều khiển của cột
                        _htcContainer.Controls.Add(_objIndexedTable);
                    }
                    else
                    {
                        int _intColumnLevel = Convert.ToInt32(_objIndexedTable.Attributes["level"]);

                        // Chèn khung hiển thị vào cột cha đang xét
                        // Kiểm tra vị trí chèn có hợp lệ không (phải chèn vào trong danh sách, không được chèn ra ngoài)
                        if (_htcContainer.Controls.Count > _intColumnLevel)
                        {
                            // Đặt khung vào vị trí đã định
                            _htcContainer.Controls.AddAt(_intColumnLevel, _objIndexedTable);
                        }
                        else
                        {
                            // Nếu vị trí chèn nằm ngoài danh sách thì sử dụng lệnh thêm vào cuối danh sách thay vì chèn
                            _htcContainer.Controls.Add(_objIndexedTable);
                        }
                    }
                }
                //}
                //catch (Exception ex)
                //{
                //    Console.WriteLine(ex.Message);
                //    // Nếu có lỗi thì kết thúc thủ tục
                //    return;
                //}
            }
        }
Example #29
0
		protected override void LoadViewState(object bag)
		{
			base.LoadViewState(bag);
			CurrentTab = Helper.GetEditTab((string)ViewState["CurrentTab"]);
		}
Example #30
0
		protected void OnSave(object sender, EventArgs args)
		{
			try
			{
				if(!Page.IsValid) return;

				PortalDefinition pd = PortalDefinition.Load();
				PortalDefinition.Tab t = CurrentTab;

				t.title = HttpUtility.HtmlEncode(txtTitle.Text);
				t.reference = txtReference.Text;
        t.imgPathInactive = HttpUtility.HtmlEncode(txtImagePathI.Text);
        t.imgPathActive = HttpUtility.HtmlEncode(txtImagePathA.Text);
				t.roles = RolesCtrl.GetData();

				pd.Save();

				CurrentTab = t;

				if(Save != null)
				{
					Save(this, t);
				}

				ShowModulesList();
			}
			catch(Exception e)
			{
				lbError.Text = e.Message;
			}
		}
Example #31
0
        /// <summary>

        /// Hàm đưa module vào TD theo ID của TD
        /// </summary>
        /// <param name="tdDisplay">Table tổng chứa các TD có các ID cần đưa</param>
        /// <param name="td_id_module">Các module tương úng với các TD</param>
        /// <param name="tab">Tab hiện thời</param>
        private void GenerateModuleToColumn(HtmlTableCell tdDisplay, Dictionary <string, ArrayList> td_id_module, PortalDefinition.Tab tab)
        {
            HtmlTableCell td;
            ArrayList     modules;

            //duyệt qua mảng các ID của TD cần đưa module vào
            foreach (KeyValuePair <string, ArrayList> td_id in td_id_module)
            {
                //tìm ra các TD cần đưa module vào
                td = tdDisplay.FindControl(td_id.Key) as HtmlTableCell;
                //lấy ra module tương ứng với ID của TD đó
                modules = td_id.Value;
                if (td != null)
                {
                    //nếu TD đó có chứ module , tức là không phải để chứa cột khác , thì đưa module vào
                    if (modules != null && modules.Count > 0)
                    {
                        RenderModules(td, tab, modules);
                    }
                }
            }
        }
Example #32
0
        /// <summary>
        /// Thủ tục khởi tạo Module và chèn Module vào cột đã định.
        /// </summary>
        /// <param name="td">Ô (hay cột) chứa Module</param>
        /// <param name="tab">Tab chứa Module (cần để lấy thêm thông tin về Tab)</param>
        /// <param name="modules">Danh sách Module đã được định nghĩa thuộc cột này</param>
        private void RenderModules(HtmlTableCell td, PortalDefinition.Tab tab, ArrayList modules)
        {
            //if (Request.HttpMethod == "GET")
            //{

            // Kiểm tra nếu không có Module nào trong cột thì chèn khoảng trắng để lưu vị trí cột
            if (modules.Count == 0)
            {
                _arrAllEmptyColumn.Add(td);
            }
            // Duyệt danh sách Module
            PortalDefinition.Module _objModuleDefinition;
            ChannelUsers            objUser = new ChannelUsers();
            // Khởi tạo Module
            Module       _objModuleControl;
            CachedModule _objCachedModuleControl;

            for (int _intModuleCount = 0; _intModuleCount < modules.Count; _intModuleCount++)
            {
                _objModuleDefinition = modules[_intModuleCount] as PortalDefinition.Module;
                //DuongNA tạm thời bỏ Kiểm tra người dùng có quyền hiển thị Module hay không
                //if (objUser.HasViewRights(Page.User, _objModuleDefinition.roles))
                {
                    _objModuleControl       = null;
                    _objCachedModuleControl = null;
                    // Nạp các thông số về Module
                    _objModuleDefinition.LoadModuleSettings();
                    //DuongNA tạm thời bỏ trycatch
                    //try
                    {
                        // Kiểm tra xem có thông số nào được xác lập không
                        // Xây dựng chuỗi đường dẫn đến tệp ASCX
                        string _strModuleSrc = Config.GetModuleVirtualPath(_objModuleDefinition.type);
                        if (_objModuleDefinition.moduleSettings == null)
                        {
                            string[] strModulePath = _objModuleDefinition.type.Split("/".ToCharArray());
                            string   strModule;
                            if (strModulePath.Length == 2)
                            {
                                strModule = strModulePath[1];
                            }
                            else
                            {
                                strModule = strModulePath[0];
                            }
                            _strModuleSrc += strModule + ".ascx";
                        }
                        else
                        {
                            _strModuleSrc += _objModuleDefinition.moduleSettings.ctrl;
                        }


                        //DuongNA tạm thời bỏ Kiểm tra xem Module có được phép hiển thị hay không
                        //if((_objModuleControl != null && _objModuleControl.IsVisible() || (_objCachedModuleControl != null && _objCachedModuleControl.IsVisible())))
                        {
                            // Kiểm tra xem trang hiện thời có nằm trong trạng thái cho phép kéo thả hay không
                            // Nếu ở trạng thái hỗ trợ kéo thả thì tạo các khung chứa (Snap) để chứa nội dung của các Module
                            // (nội dung này sẽ được nạp sử dụng Ajax khi người sử dụng mở rộng khung hoặc chế độ tự động mở rộng khung dc bật)

                            if (_objModuleDefinition.CacheTime <= 0)
                            {
                                // Nếu Module không sử dụng Cache
                                _objModuleControl = (Module)LoadModule(_strModuleSrc);

                                // Khởi tạo nội dung Module
                                _objModuleControl.InitModule(tab.reference,
                                                             _objModuleDefinition.reference,
                                                             _objModuleDefinition.type,
                                                             Config.GetModuleVirtualPath(_objModuleDefinition.type),
                                                             true);
                            }
                            else
                            {
                                // Nếu Module có sử dụng Cache
                                _objCachedModuleControl = new CachedModule();
                                _objCachedModuleControl.ModuleCacheTime = _objModuleDefinition.CacheTime;

                                // Khởi tạo nội dung Module
                                _objCachedModuleControl.InitModule(tab.reference,
                                                                   _objModuleDefinition.reference,
                                                                   _objModuleDefinition.type,
                                                                   Config.GetModuleVirtualPath(_objModuleDefinition.type),
                                                                   true,
                                                                   _strModuleSrc);
                            }

                            if ((_objModuleControl != null && _objModuleControl.IsVisible() || (_objCachedModuleControl != null && _objCachedModuleControl.IsVisible())))
                            {
                                // Hiển thị nội dung Module theo cách trình bày bình thường không hỗ trợ kéo thả
                                HtmlTable _objSimpleModuleContainer = new HtmlTable();
                                _objSimpleModuleContainer.Width       = "100%";
                                _objSimpleModuleContainer.CellPadding = 0;
                                _objSimpleModuleContainer.CellSpacing = 0;
                                _objSimpleModuleContainer.Rows.Add(new HtmlTableRow());

                                // Nạp dữ liệu của Module vào ô chứa Module
                                HtmlTableCell _objCellContainer = new HtmlTableCell();
                                _objSimpleModuleContainer.Rows[0].Cells.Add(_objCellContainer);
                                _objCellContainer.Attributes.Add("class", "Module_Simple_Block");
                                _objCellContainer.VAlign = "top";
                                if (_objModuleControl != null)
                                {
                                    _objCellContainer.Controls.Add(_objModuleControl);
                                }
                                else
                                {
                                    _objCellContainer.Controls.Add(_objCachedModuleControl);
                                }
                                //cách giữa header và body
                                _objCellContainer.Attributes.Add("style", "padding-bottom:0px;");
                                td.Controls.Add(_objSimpleModuleContainer);
                            }

                            //}
                        }
                    }
                    //catch (Exception e)
                    //{
                    //    Console.WriteLine(e.Message + e.StackTrace);
                    //}
                }
            }
        }
Example #33
0
 public void LoadData(PortalDefinition.Tab tab)
 {
     LoadData(tab.tabs);
 }
Example #34
0
        /// <summary>
        /// Hàm trợ giúp lấy mã của Category trong Tab hiện thời khi người sử dụng chọn xem một Category
        /// </summary>
        /// <returns>Mã tham chiếu đến Category hiện thời</returns>
        public static string GetCurrentCategoryID()
        {
            Cache cache = new Cache(HttpContext.Current.Application);
            // Biến lưu trữ mã của chuyên san hiện thời
            int    _intCurrentCategoryID = 0, _intCurrParent = 0;
            string _strCurrentTabRef = HttpContext.Current.Request.QueryString["TabRef"];

            if (HttpContext.Current.Request.QueryString["RealRef"] != null)
            {
                _strCurrentTabRef = HttpContext.Current.Request.QueryString["RealRef"];
            }
            string mrs = Config.GetPortalUniqueCacheKey() + "CurrentCategoryID_" + (_strCurrentTabRef == null ? "" : _strCurrentTabRef);
            string nrs = Config.GetPortalUniqueCacheKey() + "CurrentParentID_" + (_strCurrentTabRef == null ? "" : _strCurrentTabRef);

            // Tìm kiếm trong Cache
            if (cache[mrs] != null && cache[nrs] != null)
            {
                _intCurrentCategoryID = (int)cache[mrs];
                _intCurrParent        = (int)cache[nrs];
            }
            if (_intCurrentCategoryID > 0)
            {
                return(_intCurrParent + "," + _intCurrentCategoryID);
            }

            // Lấy thông tin về Tab hiện thời
            PortalDefinition.Tab _objCurrentTab = PortalDefinition.getTabByRef(_strCurrentTabRef);//PortalDefinition.GetCurrentTab();

            if (_objCurrentTab != null)
            {
                // Lấy mã tham chiếu của Tab
                string _strTabRef = _objCurrentTab.reference;
                string _strCategoryRef = "", _strParentRef = "";

                // Tìm vị trí dấu chấm cuối
                int _intLastDotPos = _strTabRef.LastIndexOf('.');

                if (_intLastDotPos > 0)
                {
                    // Cắt lấy phần tên đại diện trên URL của Category
                    _strCategoryRef = _objCurrentTab.reference.Substring(_intLastDotPos + 1);
                    _strParentRef   = _objCurrentTab.reference.Substring(0, _intLastDotPos);
                    // Lấy thông tin về Category đã chọn
                    CategoryRow _objCurrentCategory = null;
                    using (MainDB _objDB = new MainDB()) {
                        _objCurrentCategory = _objDB.CategoryCollection.GetRow("Cat_DisplayURL = '" + _strCategoryRef + "'");
                    }

                    if (_objCurrentCategory != null)
                    {
                        _intCurrentCategoryID = _objCurrentCategory.Cat_ID;
                        _intCurrParent        = _objCurrentCategory.Cat_ParentID;
                    }
                    else
                    {
                        _intLastDotPos = _strParentRef.LastIndexOf('.');
                        _strParentRef  = _strParentRef.Substring(_intLastDotPos + 1);
                        using (MainDB _objDB = new MainDB()) {
                            _objCurrentCategory = _objDB.CategoryCollection.GetRow("Cat_DisplayURL = '" + _strParentRef + "'");
                        }
                        if (_objCurrentCategory != null)
                        {
                            _intCurrentCategoryID = _objCurrentCategory.Cat_ID;
                            _intCurrParent        = _objCurrentCategory.Cat_ParentID;
                        }
                    }
                }
            }

            // Lưu mã của chuyên san hiện thời vào Cache
            cache[mrs] = _intCurrentCategoryID;
            cache[nrs] = _intCurrParent;
            // Trả về 0 nếu không tìm thấy Category
            return(_intCurrParent + "," + _intCurrentCategoryID);//0
        }