Exemplo n.º 1
0
        protected void OnSave(object sender, EventArgs args)
        {
            try
            {
                if (!Page.IsValid)
                {
                    return;
                }

                TemplateDefinition          td = TemplateDefinition.Load();
                TemplateDefinition.Template t  = td.GetTemplate(CurrentTemplateReference);

                t.reference = txtReference.Text;
                t.type      = ddrTemplateType.SelectedValue;

                td.Save();

                CurrentTemplateReference = t.reference;

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

                ShowModulesList();
                LoadData(CurrentTemplateReference);
            }
            catch (Exception e)
            {
                lbError.Text = e.Message;
            }
        }
        public void SelectTemplate(string reference)
        {
            TemplateDefinition td = TemplateDefinition.Load();

            CurrentTemplateReference = reference;
            if (reference == "") // Root Node
            {
                //Hidden TabEdit and TemplateEdit when Load first time
                TemplateCtrl.Visible     = false;
                TemplateListCtrl.Visible = true;

                //Load data to TemplateList
                TemplateListCtrl.LoadData(td);
            }
            else
            {
                //Hidden TabEdit and TabList control when Edit Template
                TabListCtrl.Visible = false;
                TabCtrl.Visible     = false;

                //Show TemplateEdit but hidden TemplateList
                TemplateDefinition.Template t = td.GetTemplate(reference);
                TemplateListCtrl.Visible = false;
                TemplateCtrl.Visible     = true;
                TemplateCtrl.LoadData(reference);
            }
        }
Exemplo n.º 3
0
        protected void OnSaveTemplate(object sender, EventArgs args)
        {
            //Load PortalDefinition to get current Tab and Load TemplateDefinition to Save template
            PortalDefinition _objPortal = PortalDefinition.Load();

            PortalDefinition.Tab _objCurrentTab = _objPortal.GetTab(CurrentReference);

            if (_objCurrentTab != null)
            {
                try
                {
                    //Save to PortalDefinition
                    _objPortal.TemplateColumns   = _objCurrentTab.Columns;
                    _objPortal.TemplateReference = _objCurrentTab.reference;
                    _objPortal.Save();

                    //Save to TemplateDefinition
                    TemplateDefinition          _objTemplate = TemplateDefinition.Load();
                    TemplateDefinition.Template t            = new TemplateDefinition.Template();

                    t.reference = txtReference.Text;
                    t.type      = Definition.CT_TYPE_TEMPLATE;
                    t.Columns   = _objCurrentTab.Columns;
                    _objTemplate.templates.Add(t);

                    _objTemplate.Save();
                }
                catch (Exception e)
                {
                    lbError.Text = e.Message;
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Thủ tục thêm một Module mới
        /// </summary>
        /// <param name="_strColumnRef">Mã tham chiếu đến cột sẽ chứa Module</param>
        internal void AddModule(string _strColumnRef)
        {
            // Nạp cấu trúc portal
            TemplateDefinition td = TemplateDefinition.Load();

            // Tìm cột sẽ chứa Module mới
            PortalDefinition.Column _objColumnContainer = td.GetColumn(_strColumnRef);

            if (_objColumnContainer != null)
            {
                // Tạo Module mới
                PortalDefinition.Module _objNewModule = PortalDefinition.Module.Create();

                // Thêm Module mới vào danh sách Module của cột
                _objColumnContainer.ModuleList.Add(_objNewModule);

                // Lưu cấu trúc Portal
                td.Save();

                // Nạp lại thông tin Tab hiện thời
                LoadData(CurrentTemplateReference);

                // Hiển thị form sửa thông tin Module
                EditModule(_objNewModule.reference);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Thủ tục thực hiện chuyển vị trí của Module đã chọn xuống 1 mức
        /// </summary>
        /// <param name="idx">Vị trí hiện thời</param>
        /// <param name="list">Danh sách Module</param>
        internal void MoveModuleDown(int idx, ModuleList list)
        {
            // Nạp cấu trúc Portal
            TemplateDefinition td = TemplateDefinition.Load();

            // Lấy thông tin cột chứa Module hiện thời
            PortalDefinition.Column _objColumnContainer = td.GetColumn(list.ContainerColumnReference);

            // Lấy danh sách Module của cột
            ArrayList _arrModuleList = _objColumnContainer.ModuleList;

            // Nếu Module đang ở mức cuối cùng thì kết thúc thủ tục
            if (idx >= _arrModuleList.Count - 1)
            {
                return;
            }

            // Lấy thông tin Module hiện thời từ danh sách Module
            PortalDefinition.Module m = (PortalDefinition.Module)_arrModuleList[idx];

            // Gỡ Module ra khỏi vị trí hiện thời
            _arrModuleList.RemoveAt(idx);

            // Chèn Module vào vị trí mới
            _arrModuleList.Insert(idx + 1, m);

            // Lưu cấu trúc Portal
            td.Save();

            // Rebind
            LoadData(CurrentTemplateReference);
            ShowCurrentEditingColumn();
        }
Exemplo n.º 6
0
        private void ShowCurrentEditingParentColumn()
        {
            TemplateDefinition td = TemplateDefinition.Load();

            PortalDefinition.Column _objCurrentColumn = td.GetColumn(CurrentColumnReference);

            if (_objCurrentColumn != null && _objCurrentColumn.ColumnParent != null)
            {
                EditColumn(_objCurrentColumn.ColumnParent.ColumnReference);
            }
        }
        public void It_renders_its_child_parts()
        {
            var a = new TemplateDefinition("a");
            a.Load(new Part[] { new LiteralText("b") });
            var writer = new StringWriter();
            var context = new RenderContext(new Template(), null, writer, null);

            a.Render(context);

            Assert.AreEqual("b", writer.GetStringBuilder().ToString());
        }
Exemplo n.º 8
0
        protected void OnDelete(object sender, EventArgs args)
        {
            TemplateDefinition td = TemplateDefinition.Load();

            TemplateDefinition.Template t = td.GetTemplate(CurrentTemplateReference);
            TemplateDefinition.DeleteTemplate(CurrentTemplateReference);

            if (Delete != null)
            {
                Delete(this, t);
            }
        }
        public void It_renders_its_child_parts()
        {
            var a = new TemplateDefinition("a");

            a.Load(new Part[] { new LiteralText("b") });
            var writer  = new StringWriter();
            var context = new RenderContext(new Template(), null, writer, null);

            a.Render(context);

            Assert.AreEqual("b", writer.GetStringBuilder().ToString());
        }
Exemplo n.º 10
0
        public void AddTemplate()
        {
            TemplateDefinition td = TemplateDefinition.Load();

            TemplateDefinition.Template t = TemplateDefinition.Template.Create();

            td.templates.Add(t);

            td.Save();

            SelectTemplate(t.reference);
        }
Exemplo n.º 11
0
        protected void OnCancel(object sender, EventArgs args)
        {
            TemplateDefinition td = TemplateDefinition.Load();

            TemplateDefinition.Template t = td.GetTemplate(CurrentTemplateReference);

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

            LoadData(CurrentTemplateReference);
            ShowModulesList();
        }
Exemplo n.º 12
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!
        }
        private void LoadData(string strTemplateReference)
        {
            TemplateDefinition td = TemplateDefinition.Load();

            TemplateDefinition.Template t = td.GetTemplate(strTemplateReference);

            //Add HTML Table Cell
            //Start with columns whose level is minimum : -1, then end of template.
            int _iMaxColumnLevel_0 = t.GetMaxLevelOfColumnsInTemplate();
            int _iMinColumnLevel_0 = t.GetMinLevelOfColumnsInTemplate();

            for (int currentColumnLevel_0 = _iMinColumnLevel_0; currentColumnLevel_0 <= _iMaxColumnLevel_0; currentColumnLevel_0++)
            {
                //lay ve tat ca cac column co cung level ma se duoc chua tren cung 1 dong
                ArrayList _arrayListColumns = t.GetArrayColumnWithLevel(currentColumnLevel_0);

                //khoi tao dong moi
                TableRow parentRow = new TableRow();
                parentRow.Width = Unit.Percentage(100);

                //khoi tao cell moi trong dong moi
                TableCell parentCell = CreateTableCell("", "", "", "");
                parentCell.Width = parentRow.Width;
                parentRow.Cells.Add(parentCell);

                //Khoi tao mot bang moi trong cell moi (khong dung colspan hoac rowspan) de khong anh huong cau truc cua dong tiep theo
                Table childrenTable = new Table();
                childrenTable.Width = parentCell.Width;
                parentCell.Controls.Add(childrenTable);

                TableRow childrenRow = new TableRow();
                childrenRow.Width = childrenTable.Width;
                childrenTable.Rows.Add(childrenRow);

                foreach (PortalDefinition.Column column in _arrayListColumns)
                {
                    TableCell cellColumn = AnalyseColumn(column);
                    if (_arrayListColumns.Count == 1)
                    {
                        cellColumn.Width = childrenRow.Width;
                    }
                    childrenRow.Cells.Add(cellColumn);
                }

                //Them dong moi vao bang
                Table1.Rows.Add(parentRow);
            }
        }
Exemplo n.º 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;
            }
        }
Exemplo n.º 15
0
        /// <summary>
        /// Hàm nạp dữ liệu về một cột
        /// </summary>
        /// <param name="_strColumnRef">Mã tham chiếu của cột cần sửa</param>
        /// <param name="_strTabRef">Mã tham chiếu của Tab chứa cột</param>
        public void LoadData(string _strColumnRef, string _strTabRef)
        {
            PortalDefinition.Column _objColumn = null;

            if (Parent is Tab)
            {
                // Lấy thông tin về cột cần sửa
                PortalDefinition pd = PortalDefinition.Load();
                _objColumn = pd.GetColumn(_strColumnRef);
            }
            else if (Parent is Template)
            {
                TemplateDefinition td = TemplateDefinition.Load();
                _objColumn = td.GetColumn(_strColumnRef);
            }


            if (_objColumn != null)
            {
                // Hiển thị thông tin về cột
                txtTitle.Text                 = _objColumn.ColumnName;
                txtColWidth.Text              = _objColumn.ColumnWidth.ToString();
                ltrColumnReference.Text       = _objColumn.ColumnReference;
                chkDefaultColumnWidth.Checked = _objColumn.ColumnWidth == "";
                //txtColWidth.ReadOnly = _objColumn.ColumnWidth == "";
                txtCustomStyle.Text = _objColumn.ColumnCustomStyle;

                // Nạp danh sách các cấp độ có thể có cho cột hiện thời
                drdColumnLevel.DataSource = LoadAvaiableColumnLevels(_objColumn);
                drdColumnLevel.DataBind();
                drdColumnLevel.SelectedIndex = (drdColumnLevel.Items.FindByValue(_objColumn.ColumnLevel.ToString()) !=
                                                null)
                                                   ? drdColumnLevel.Items.IndexOf(
                    drdColumnLevel.Items.FindByValue(
                        _objColumn.ColumnLevel.ToString()))
                                                   : 0;

                CurrentColumnReference   = _strColumnRef;
                CurrentTabReference      = _strTabRef;
                CurrentTemplateReference = _strTabRef;

                chkDefaultColumnWidth.Attributes.Add("onclick", txtColWidth.ClientID + ".readOnly = this.checked;");
            }
        }
Exemplo n.º 16
0
        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);
                    }
                }
            }
        }
Exemplo n.º 17
0
        /// <summary>
        /// Thủ tục nạp dữ liệu về Tab đang sửa
        /// </summary>
        /// <param name="tabRef">Mã tham chiếu đến Tab đang sửa</param>
        public void LoadData(string templateRef)
        {
            CurrentTemplateReference = templateRef;

            TemplateDefinition td = TemplateDefinition.Load();

            TemplateDefinition.Template t = td.GetTemplate(CurrentTemplateReference);

            txtReference.Text = CurrentTemplateReference;


            string[] _arrTemplateType = new string[1] {
                ""
            };
            ArrayList _arrTemplateTypeList = new ArrayList();
            int       _intSelectedIndex    = 0;

            for (int i = 0; i < _arrTemplateType.Length; i++)
            {
                _arrTemplateTypeList.Add(_arrTemplateType[i]);
                if (t.type.Equals(_arrTemplateType[i]))
                {
                    _intSelectedIndex = i;
                }
            }
            ddrTemplateType.DataSource = _arrTemplateTypeList;
            ddrTemplateType.DataBind();


            if (_arrTemplateTypeList.Count > 0)
            {
                ddrTemplateType.SelectedIndex = _intSelectedIndex;
            }

            // Đọc danh sách Columns của Template
            // Hiển thị danh sách các Module được gắn vào từng Column
            lstColumns.LoadColumnList(t);

            ShowColumnsList();
        }
Exemplo n.º 18
0
        public void FilterTemplateByType(string templateType)
        {
            TemplateDefinition td = TemplateDefinition.Load();

            CurrentTemplateType = templateType;
            if (templateType == "") // Don't filter
            {
                //Hidden TabEdit and TemplateEdit when Load first time
                TemplateCtrl.Visible     = false;
                TemplateListCtrl.Visible = true;

                //Load data to TemplateList
                TemplateListCtrl.LoadData(td);
            }
            else
            {
                //Hidden TabEdit and TemplateEdit when Load first time
                TemplateCtrl.Visible     = false;
                TemplateListCtrl.Visible = true;

                //Load data to TemplateList
                TemplateListCtrl.LoadData(td, templateType);
            }
        }
Exemplo n.º 19
0
        /// <summary>
        /// Thủ tục lưu các thông tin đã xác lập của 1 Cột
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        protected void OnSave(object sender, EventArgs args)
        {
            try
            {
                if (Page.IsValid)
                {
                    // Save
                    PortalDefinition.Column _objColumn = null;
                    PortalDefinition        pd         = null;
                    TemplateDefinition      td         = null;

                    if (Parent is Tab)
                    {
                        // Lấy thông tin về cột cần sửa
                        pd         = PortalDefinition.Load();
                        _objColumn = pd.GetColumn(CurrentColumnReference);
                    }
                    else if (Parent is Template)
                    {
                        td         = TemplateDefinition.Load();
                        _objColumn = td.GetColumn(CurrentColumnReference);
                    }

                    if (_objColumn != null)
                    {
                        // Cập nhật lại tên cột và độ rộng của cột
                        _objColumn.ColumnName = txtTitle.Text;

                        // Cập nhật màu nền của cột
                        _objColumn.ColumnCustomStyle = txtCustomStyle.Text;

                        // Cập nhật mức độ của cột
                        _objColumn.ColumnLevel = Convert.ToInt32(drdColumnLevel.SelectedValue);
                        //lay ve do rong cua cot
                        string strColWidth = txtColWidth.Text;
                        try
                        {
                            _objColumn.ColumnWidth = chkDefaultColumnWidth.Checked ? "" : strColWidth;
                        }
                        catch
                        {
                            // Nếu có lỗi, lấy độ rộng mặc định
                            _objColumn.ColumnWidth = "";
                        }
                    }

                    if (Parent is Tab)
                    {
                        pd.Save();
                    }
                    else if (Parent is Template)
                    {
                        td.Save();
                    }

                    CurrentColumnReference = _objColumn.ColumnReference;

                    if (Save != null)
                    {
                        Save(this, new EventArgs());
                    }
                }
            }
            catch (Exception e)
            {
                lbError.Text = e.Message;
            }
        }
Exemplo n.º 20
0
        internal void MoveColumnRight(string _strColumnReference)
        {
            // Nạp cấu trúc Portal
            TemplateDefinition _objPortal = TemplateDefinition.Load();

            // Lấy thông tin về cột cần dịch chuyển
            PortalDefinition.Column _objSelectedColumn = _objPortal.GetColumn(_strColumnReference);

            // Nếu cột cần dịch chuyển không tồn tại thì kết thúc hàm
            if (_objSelectedColumn != null)
            {
                // Tìm kiếm danh sách cột trong đó có cột đang xét
                PortalDefinition.Column _objParentColumn = _objSelectedColumn.ColumnParent;
                ArrayList _arrColumnsList = null;

                // Nếu cột cha rỗng thì cột đang xét trực thuộc Tab
                if (_objParentColumn == null)
                {
                    // Lấy thông tin Tab hiện thời
                    TemplateDefinition.Template _objCurrentTemplate = _objPortal.GetTemplate(CurrentTemplateReference);
                    if (_objCurrentTemplate != null)
                    {
                        // Lấy danh sách cột của Tab
                        _arrColumnsList = _objCurrentTemplate.Columns;
                    }
                }
                else
                {
                    // Nếu cột đang xét là cột con của 1 cột khác, thì trả về danh sách các cột đồng cấp
                    _arrColumnsList = _objParentColumn.Columns;
                }

                // Biến lưu vị trí của cột đã chọn trong danh sách
                int _intCurrentColumnIndex = 0;

                // Biến lưu trữ số cột đồng mức với cột đã chọn
                int _intSameLevelColumnsCount = 0;

                // Kiểm duyệt danh sách cột đồng cấp
                // Đếm cột có cùng Level
                for (int _intColumnCount = 0; _intColumnCount < _arrColumnsList.Count; _intColumnCount++)
                {
                    PortalDefinition.Column _objColumn = _arrColumnsList[_intColumnCount] as PortalDefinition.Column;
                    if (_objColumn.ColumnLevel == _objSelectedColumn.ColumnLevel)
                    {
                        if (_objColumn.ColumnReference == _objSelectedColumn.ColumnReference)
                        {
                            _intCurrentColumnIndex = _intSameLevelColumnsCount;
                        }
                        _intSameLevelColumnsCount++;
                    }
                }

                // Duyệt danh sách các cột cùng cấp
                if (_arrColumnsList != null && _intSameLevelColumnsCount > 0)
                {
                    // Để di chuyển sang phải --> không thể đang là vị trí cuối cùng
                    if (_intCurrentColumnIndex >= (_intSameLevelColumnsCount - 1))
                    {
                        return;
                    }
                    else
                    {
                        // Di chuyển cột đã chọn sang trái
                        _arrColumnsList.RemoveAt(_intCurrentColumnIndex);
                        _arrColumnsList.Insert(_intCurrentColumnIndex + 1, _objSelectedColumn);
                    }
                }
            }

            // Lưu cấu trúc Portal
            _objPortal.Save();

            // Nạp dữ liệu Template
            LoadData(CurrentTemplateReference);

            // Nạp dữ liệu cột
            if (CurrentColumnReference != "")
            {
                EditColumn(CurrentColumnReference);
            }
        }
Exemplo n.º 21
0
        /// <summary>
        /// Thủ tục nạp dữ liệu về Tab đang sửa
        /// </summary>
        /// <param name="tabRef">Mã tham chiếu đến Tab đang sửa</param>
        public void LoadData(string tabRef)
        {
            CurrentReference = tabRef;

            PortalDefinition pd = PortalDefinition.Load();

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

            txtTitle.Text       = HttpUtility.HtmlDecode(t.title);
            txtReference.Text   = CurrentReference;
            chkIsHidden.Checked = t.IsHidden;

            TemplateDefinition td = TemplateDefinition.Load();
            ArrayList          _arrTemplateList = new ArrayList();

            _arrTemplateList.Add(string.Empty);
            foreach (TemplateDefinition.Template template in td.templates)
            {
                _arrTemplateList.Add(template.reference);
            }
            ddrTemplateList.DataSource = _arrTemplateList;
            ddrTemplateList.DataBind();

            //string _strSkinFolder = Portal.Ultility.ConfigurationSetting.GetConfigPhysicalPath(t.reference, Config.GetAppConfigValue("SkinPrefix"), Config.GetAppConfigValue("SkinFolder"));
            string    _strSkinFolder     = Server.MapPath("");
            ArrayList _arrConfigFileList = new ArrayList();

            _arrConfigFileList.Add("Skin.Default.config");
            int _intSelectedIndex = 0;

            if (Directory.Exists(_strSkinFolder))
            {
                DirectoryInfo _difConfig = new DirectoryInfo(_strSkinFolder);
                foreach (FileInfo _objConfigFile in _difConfig.GetFiles())
                {
                    string _strFileNamePart = "" + "." + t.reference + ".";
                    if (_objConfigFile.Name.IndexOf(_strFileNamePart) >= 0)
                    {
                        if (_objConfigFile.Name == t.SkinName)
                        {
                            _intSelectedIndex = _arrConfigFileList.Count;
                        }
                        _arrConfigFileList.Add(_objConfigFile.Name);
                    }
                }
            }
            ddrSkins.DataSource = _arrConfigFileList;
            ddrSkins.DataBind();
            if (_arrConfigFileList.Count > 0)
            {
                ddrSkins.SelectedIndex = _intSelectedIndex;
            }

            RolesCtrl.LoadData(t.roles);

            // Đọc danh sách Columns của Tab
            // Hiển thị danh sách các Module được gắn vào từng Column
            lstColumns.LoadColumnList(t);

            ShowColumnsList();
        }