/// <summary>
        /// Builds the pages from view reference.
        /// </summary>
        public override void BuildPagesFromViewReference()
        {
            SyncConflictsPageModelController pageModelController = new SyncConflictsPageModelController();
            UPMOrganizer syncConflictOrganizer = new UPMOrganizer(StringIdentifier.IdentifierWithStringId("SyncConflictOrganizer"))
            {
                ExpandFound                  = true,
                DisplaysTitleText            = true,
                LineCountAdditionalTitletext = 1,
                SubtitleText                 = LocalizedString.TextSyncConflictsTitle,
                TitleText           = this.SyncConflict.MainField.StringValue,
                AdditionalTitleText = (string)this.SyncConflict.DetailField?.FieldValue
            };

            this.ShouldShowTabsForSingleTab = false;
            if (this.IsDiscardAllowed())
            {
                UPMOrganizerAction discardAction = new UPMOrganizerAction(StringIdentifier.IdentifierWithStringId("action.discard"))
                {
                    LabelText = LocalizedString.Localize(LocalizationKeys.TextGroupBasic,
                                                         LocalizationKeys.KeyBasicSyncConflictsActionDiscardChanges, "DISCARD CONFLICT"),
                    IconName = "Icon:Trash"
                };

                discardAction.SetTargetAction(this, this.DiscardError);
                this.AddOrganizerHeaderActionItem(discardAction);
            }

            this.AddPageModelController(pageModelController);
            syncConflictOrganizer.AddPage(pageModelController.Page);
            this.TopLevelElement = syncConflictOrganizer;
        }
Esempio n. 2
0
        /// <summary>
        /// Builds the pages from view reference.
        /// </summary>
        public override void BuildPagesFromViewReference()
        {
            SyncConflictsPageModelController pageModelController = new SyncConflictsPageModelController();
            UPMOrganizer syncConflictOrganizer = new UPMOrganizer(StringIdentifier.IdentifierWithStringId("SyncConflictsOrganizer"))
            {
                ExpandFound  = true,
                SubtitleText = LocalizedString.TextSyncConflictsTitle
            };

            this.ShouldShowTabsForSingleTab = false;
            UPMOrganizerAction retryAction       = new UPMOrganizerAction(StringIdentifier.IdentifierWithStringId("action.retry"));
            UPMOrganizerAction reportErrorAction = new UPMOrganizerAction(StringIdentifier.IdentifierWithStringId("action.report"));
            string             retryText         = LocalizedString.Localize(LocalizationKeys.TextGroupBasic, LocalizationKeys.KeyBasicSyncConflictsRetryAll, "Retry All");

            retryAction.LabelText = retryText;
            retryAction.IconName  = "Icon:Record";
            retryAction.SetTargetAction(this, this.RetryAll);
            this.AddOrganizerHeaderActionItem(retryAction);
            IOfflineStorage offlineStorage = UPOfflineStorage.DefaultStorage;

            if (!string.IsNullOrEmpty(ConfigurationUnitStore.DefaultStore.ConfigValue("Sync.ConflictEmailAddress")) &&
                offlineStorage.ConflictRequests?.Count > 1 &&
                !string.IsNullOrEmpty(offlineStorage.OfflineRequestXml()))
            {
                string sendRequestXmlText = LocalizedString.Localize(LocalizationKeys.TextGroupBasic, LocalizationKeys.KeyBasicSyncConflictsReportAllErrors, "Report all errors");
                reportErrorAction.LabelText = sendRequestXmlText;
                reportErrorAction.SetTargetAction(this, this.ReportAllErrors);
                this.AddOrganizerHeaderActionItem(reportErrorAction);
            }

            this.AddPageModelController(pageModelController);
            syncConflictOrganizer.AddPage(pageModelController.Page);
            this.TopLevelElement = syncConflictOrganizer;
        }
        /// <summary>
        /// Builds the detail organizer pages.
        /// </summary>
        public void BuildDetailOrganizerPages()
        {
            UPMOrganizer detailOrganizer = new UPMOrganizer(StringIdentifier.IdentifierWithStringId("Details"));

            this.TopLevelElement        = detailOrganizer;
            detailOrganizer.ExpandFound = true;
            IConfigurationUnitStore configStore = ConfigurationUnitStore.DefaultStore;
            string          configName          = this.ViewReference.ContextValueForKey("LayoutName");
            WebConfigLayout layout = configStore.WebConfigLayoutByName(configName);

            if (layout == null)
            {
                return;
            }

            string organizerColorKey = this.ViewReference.ContextValueForKey("OrganizerColor");

            if (!string.IsNullOrEmpty(organizerColorKey))
            {
                this.Organizer.OrganizerColor = AureaColor.ColorWithString(organizerColorKey);
            }

            string         headerName = this.ViewReference.ContextValueForKey("HeaderName");
            UPConfigHeader header     = null;

            if (!string.IsNullOrEmpty(headerName))
            {
                header = configStore.HeaderByName(headerName);
            }

            if (header == null)
            {
                headerName = "SYSTEMINFO.Expand";
                header     = configStore.HeaderByName(headerName);
            }

            if (header != null)
            {
                detailOrganizer.SubtitleText = header.Label;
                this.AddActionButtonsFromHeaderRecordIdentification(header, null);
            }
            else
            {
                detailOrganizer.SubtitleText = LocalizedString.TextSettings;
                UPMOrganizerAction action = new UPMOrganizerAction(StringIdentifier.IdentifierWithStringId("action.edit"));
                action.SetTargetAction(this, this.SwitchToEdit);
                action.LabelText = LocalizedString.TextEdit;
                action.IconName  = "Button:Edit";
                this.AddOrganizerHeaderActionItem(action);
            }

            SettingsViewPageModelController detailPageModelController = new SettingsViewPageModelController(this.ViewReference);
            Page overviewPage = detailPageModelController.Page;

            this.AddPageModelController(detailPageModelController);
            detailOrganizer.AddPage(overviewPage);
        }
Esempio n. 4
0
        /// <summary>
        /// Adds the organizer actions.
        /// </summary>
        public override void AddOrganizerActions()
        {
            UPMOrganizerAction cancelAction = new UPMOrganizerAction(StringIdentifier.IdentifierWithStringId("action.cancel"));

            cancelAction.SetTargetAction(this, this.Cancel);
            cancelAction.LabelText = LocalizedString.TextCancel;
            this.AddLeftNavigationBarActionItem(cancelAction);
            UPMOrganizerAction saveAction = new UPMOrganizerAction(StringIdentifier.IdentifierWithStringId("action.save"));

            saveAction.SetTargetAction(this, this.Save);
            saveAction.LabelText  = LocalizedString.TextSave;
            saveAction.MainAction = true;
            this.AddRightNavigationBarActionItem(saveAction);
            this.SaveActionItems.Add(saveAction);
        }
        /// <summary>
        /// Adds the organizer actions.
        /// </summary>
        public override void AddOrganizerActions()
        {
            if (this.ConflictHandlingMode)
            {
                UPMOrganizerAction cancelAction = new UPMOrganizerAction(StringIdentifier.IdentifierWithStringId("action.cancel"));
                cancelAction.SetTargetAction(this, this.Cancel);
                cancelAction.LabelText = LocalizedString.TextCancel;
                this.AddLeftNavigationBarActionItem(cancelAction);
            }

            this.RightAction           = new UPMOrganizerAction(StringIdentifier.IdentifierWithStringId("action.create"));
            this.RightAction.LabelText = this.OfflineRequest != null ? LocalizedString.TextSave : LocalizedString.TextClose;
            this.RightAction.SetTargetAction(this, this.Save);
            this.AddRightNavigationBarActionItem(this.RightAction);
        }
        private void AddCategoriesFromResultToPage(AnalysisResult result, UPMGridPage gridPage)
        {
            AnalysisCategory currentCategory = result.Settings.Category;

            gridPage.AddCategory(new UPMGridCategory(currentCategory.Label, null, true));
            foreach (AnalysisCategory category in result.CategoryOptions)
            {
                UPMOrganizerAction action = new UPMOrganizerAction(StringIdentifier.IdentifierWithStringId($"action.{category.Key}"));
                action.SetTargetAction(this, this.PerformAnalysisWithCategory);
                action.ViewReference = new ViewReference(new Dictionary <string, object> {
                    { "Category", category.Key }
                }, "PerformAnalysis");
                action.LabelText = category.Label;
                gridPage.AddCategory(new UPMGridCategory(category.Label, action, false));
            }
        }
        /// <summary>
        /// Builds the additional actions for record identification.
        /// </summary>
        /// <param name="recordIdentification">The record identification.</param>
        /// <returns></returns>
        public List <object> BuildAdditionalActionsForRecordIdentification(string recordIdentification)
        {
            var configStore  = ConfigurationUnitStore.DefaultStore;
            var buttonsArray = new List <object>();
            var buttonName   = this.FieldControlConfig.ValueForAttribute($"action{this.TabIndex + 1}");
            var buttons      = new List <string>();

            if (!string.IsNullOrEmpty(buttonName))
            {
                buttons.AddRange(buttonName.Split(';'));
            }

            buttonName = this.TabConfig.ValueForAttribute("action");
            if (!string.IsNullOrEmpty(buttonName))
            {
                buttons.AddRange(buttonName.Split(';'));
            }

            foreach (var bName in buttons)
            {
                var buttonDef = configStore.ButtonByName(bName);
                if (buttonDef == null || buttonDef.IsHidden)
                {
                    continue;
                }

                var iconName = string.Empty;
                if (!string.IsNullOrEmpty(buttonDef.ImageName))
                {
                    iconName = configStore.FileNameForResourceName(buttonDef.ImageName);
                }

                UPMOrganizerAction action = null;

                if (buttonDef.ViewReference != null)
                {
                    action = new UPMOrganizerAction(StringIdentifier.IdentifierWithStringId($"action.{bName}"));
                    action.SetTargetAction(this, action.PerformAction);
                    action.ViewReference = buttonDef.ViewReference.ViewReferenceWith(recordIdentification);
                    if (!string.IsNullOrEmpty(iconName))
                    {
                        action.IconName = iconName;
                    }

                    if (action.Identifier.Equals(StringIdentifier.IdentifierWithStringId(Core.Constants.ActionIdToggleFavorite)))
                    {
                        action.IconName       = "Icon:StarEmpty";
                        action.ActiveIconName = "Icon:Star";
                        action.LabelText      = LocalizedString.TextProcessAddToFavorites;
                    }
                    else
                    {
                        action.LabelText = buttonDef.Label;
                    }
                }

                if (action != null)
                {
                    action.Invalid = true;
                    buttonsArray.Add(action);
                }
            }

            return(buttonsArray);
        }
Esempio n. 8
0
        /// <summary>
        /// Method Loads tiles and subviews into Details Organizer Page
        /// </summary>
        private void ContinueBuildDetailsOrganizerPageTilesLoaded()
        {
            var configStore     = ConfigurationUnitStore.DefaultStore;
            var detailOrganizer = (UPMOrganizer)TopLevelElement;
            var recordTiles     = GetUPMTiles();

            detailOrganizer.Tiles       = recordTiles;
            Organizer.OrganizerColor    = ColorForInfoAreaWithId(InfoAreaId);
            Organizer.DisplaysTitleText = true;
            Organizer.ExpandFound       = true;
            RefreshTableCaption();

            if (string.IsNullOrWhiteSpace(VirtualInfoAreaId) || string.IsNullOrWhiteSpace(ExpandConfig.UnitName))
            {
                return;
            }

            var additionalParameters = new Dictionary <string, object>
            {
                { nameof(VirtualInfoAreaId), VirtualInfoAreaId },
                { "CurrentExpandName", ExpandConfig.UnitName }
            };

            var detailPageModelController = new DetailPageModelController(ViewReference.ViewReferenceWith(additionalParameters));

            detailPageModelController.Init();
            var overviewPage = detailPageModelController.Page;

            overviewPage.Parent = detailOrganizer;
            AddPageModelController(detailPageModelController);
            detailOrganizer.AddPage(overviewPage);
            var expandHeader = configStore.HeaderByNameFromGroup(HeaderNameExpand, ExpandConfig.HeaderGroupName);

            if (expandHeader != null)
            {
                UPMOrganizerAddPages(expandHeader, detailOrganizer, overviewPage);
                AddActionButtonsFromHeaderRecordIdentification(expandHeader, RecordIdentification);
                var offline = UPCRMDataStore.DefaultStore.RecordExistsOffline(RecordIdentification);
                if (!offline)
                {
                    OnlineData       = true;
                    SyncRecordAction = new UPMOrganizerAction(StringIdentifier.IdentifierWithStringId(ActionSyncRecord));
                    SyncRecordAction.SetTargetAction(this, PerformAction);
                    var parameter = new List <string> {
                        "RecordId", "Value", "uid"
                    };
                    var parameters = new List <object> {
                        parameter
                    };
                    var definition = new List <object> {
                        string.Empty, "Action:syncRecord", parameters
                    };
                    var syncRecordViewReference = new ViewReference(definition, ButtonSyncRecordText);
                    SyncRecordAction.ViewReference = syncRecordViewReference.ViewReferenceWith(RecordIdentification);
                }
                else
                {
                    OnlineData       = false;
                    SyncRecordAction = null;
                }
            }

            Organizer.DisplaysImage = IsOrganizerHeaderImageConfigured();
            Organizer.LineCountAdditionalTitletext = LinecountOrganizerHeaderSubLabelConfigured();
            UpdateActionItemsStatus();
            InformAboutDidChangeTopLevelElement(Organizer, Organizer, null, UPChangeHints.ChangeHintsWithHint(HintAlternateExpandFound));
        }