mirror of
				https://github.com/MindWorkAI/AI-Studio.git
				synced 2025-11-04 03:20:21 +00:00 
			
		
		
		
	Implemented possibility to preselect agenda options
This commit is contained in:
		
							parent
							
								
									7e49c3c68c
								
							
						
					
					
						commit
						d74a0c1a7b
					
				@ -118,6 +118,37 @@ public partial class AssistantAgenda : AssistantBaseCore
 | 
			
		||||
    
 | 
			
		||||
    private readonly List<string> contentLines = [];
 | 
			
		||||
 | 
			
		||||
    #region Overrides of ComponentBase
 | 
			
		||||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        if (this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)
 | 
			
		||||
        {
 | 
			
		||||
            this.inputTopic = this.SettingsManager.ConfigurationData.Agenda.PreselectTopic;
 | 
			
		||||
            this.inputName = this.SettingsManager.ConfigurationData.Agenda.PreselectName;
 | 
			
		||||
            this.inputDuration = this.SettingsManager.ConfigurationData.Agenda.PreselectDuration;
 | 
			
		||||
            this.inputStartTime = this.SettingsManager.ConfigurationData.Agenda.PreselectStartTime;
 | 
			
		||||
            this.inputObjective = this.SettingsManager.ConfigurationData.Agenda.PreselectObjective;
 | 
			
		||||
            this.inputModerator = this.SettingsManager.ConfigurationData.Agenda.PreselectModerator;
 | 
			
		||||
            this.selectedTargetLanguage = this.SettingsManager.ConfigurationData.Agenda.PreselectedTargetLanguage;
 | 
			
		||||
            this.customTargetLanguage = this.SettingsManager.ConfigurationData.Agenda.PreselectedOtherLanguage;
 | 
			
		||||
            this.introduceParticipants = this.SettingsManager.ConfigurationData.Agenda.PreselectIntroduceParticipants;
 | 
			
		||||
            this.isMeetingVirtual = this.SettingsManager.ConfigurationData.Agenda.PreselectIsMeetingVirtual;
 | 
			
		||||
            this.inputLocation = this.SettingsManager.ConfigurationData.Agenda.PreselectLocation;
 | 
			
		||||
            this.goingToDinner = this.SettingsManager.ConfigurationData.Agenda.PreselectJointDinner;
 | 
			
		||||
            this.doingSocialActivity = this.SettingsManager.ConfigurationData.Agenda.PreselectSocialActivity;
 | 
			
		||||
            this.needToArriveAndDepart = this.SettingsManager.ConfigurationData.Agenda.PreselectArriveAndDepart;
 | 
			
		||||
            this.durationLunchBreak = this.SettingsManager.ConfigurationData.Agenda.PreselectLunchTime;
 | 
			
		||||
            this.durationBreaks = this.SettingsManager.ConfigurationData.Agenda.PreselectBreakTime;
 | 
			
		||||
            this.activeParticipation = this.SettingsManager.ConfigurationData.Agenda.PreselectActiveParticipation;
 | 
			
		||||
            this.numberParticipants = this.SettingsManager.ConfigurationData.Agenda.PreselectNumberParticipants;
 | 
			
		||||
            this.providerSettings = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.SettingsManager.ConfigurationData.Agenda.PreselectedProvider);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #endregion
 | 
			
		||||
 | 
			
		||||
    private void OnContentChanged(string content)
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
@ -138,6 +138,34 @@
 | 
			
		||||
            <ConfigurationProviderSelection Data="@this.availableProviders" Disabled="@(() => !this.SettingsManager.ConfigurationData.TextSummarizer.PreselectOptions)" SelectedValue="@(() => this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedProvider)" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedProvider = selectedValue)"/>
 | 
			
		||||
        </MudPaper>
 | 
			
		||||
 | 
			
		||||
        <MudText Typo="Typo.h5" Class="mb-3">Agenda Options</MudText>
 | 
			
		||||
        <MudPaper Class="pa-3 mb-8 border-dashed border rounded-lg">
 | 
			
		||||
            <ConfigurationOption OptionDescription="Preselect agenda options?" LabelOn="Agenda options are preselected" LabelOff="No agenda options are preselected" State="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.Agenda.PreselectOptions = updatedState)" OptionHelp="When enabled, you can preselect most agenda options. This is might be useful when you need to create similar agendas often."/>
 | 
			
		||||
            <ConfigurationText OptionDescription="Preselect a name?" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" Icon="@Icons.Material.Filled.Tag" Text="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectName)" TextUpdate="@(updatedText => this.SettingsManager.ConfigurationData.Agenda.PreselectName = updatedText)" />
 | 
			
		||||
            <ConfigurationText OptionDescription="Preselect a topic?" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" Icon="@Icons.Material.Filled.EventNote" Text="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectTopic)" TextUpdate="@(updatedText => this.SettingsManager.ConfigurationData.Agenda.PreselectTopic = updatedText)" />
 | 
			
		||||
            <ConfigurationText OptionDescription="Preselect an objective?" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" Icon="@Icons.Material.Filled.Flag" Text="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectObjective)" TextUpdate="@(updatedText => this.SettingsManager.ConfigurationData.Agenda.PreselectObjective = updatedText)" />
 | 
			
		||||
            <ConfigurationText OptionDescription="Preselect a moderator?" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" Icon="@Icons.Material.Filled.Person3" Text="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectModerator)" TextUpdate="@(updatedText => this.SettingsManager.ConfigurationData.Agenda.PreselectModerator = updatedText)" />
 | 
			
		||||
            <ConfigurationText OptionDescription="Preselect a duration?" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" Icon="@Icons.Material.Filled.Schedule" Text="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectDuration)" TextUpdate="@(updatedText => this.SettingsManager.ConfigurationData.Agenda.PreselectDuration = updatedText)" />
 | 
			
		||||
            <ConfigurationText OptionDescription="Preselect a start time?" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" Icon="@Icons.Material.Filled.Schedule" Text="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectStartTime)" TextUpdate="@(updatedText => this.SettingsManager.ConfigurationData.Agenda.PreselectStartTime = updatedText)" />
 | 
			
		||||
            <ConfigurationOption OptionDescription="Preselect whether the participants should get to know each other" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" LabelOn="Participants should get to know each other" LabelOff="Participants do not need to get to know each other" State="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectIntroduceParticipants)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.Agenda.PreselectIntroduceParticipants = updatedState)" />
 | 
			
		||||
            <ConfigurationSelect OptionDescription="Preselect the number of participants" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" SelectedValue="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectNumberParticipants)" Data="@ConfigurationSelectDataFactory.GetNumberParticipantsData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.Agenda.PreselectNumberParticipants = selectedValue)" OptionHelp="How many participants should be preselected?"/>
 | 
			
		||||
            <ConfigurationOption OptionDescription="Preselect whether the participants should actively involved" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" LabelOn="Participants should be actively involved" LabelOff="Participants do not need to be actively involved" State="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectActiveParticipation)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.Agenda.PreselectActiveParticipation = updatedState)" />
 | 
			
		||||
            <ConfigurationOption OptionDescription="Preselect whether the meeting is virtual" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" LabelOn="Meeting is virtual" LabelOff="Meeting is in person" State="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectIsMeetingVirtual)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.Agenda.PreselectIsMeetingVirtual = updatedState)" />
 | 
			
		||||
            <ConfigurationText OptionDescription="Preselect a location?" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" Icon="@Icons.Material.Filled.MyLocation" Text="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectLocation)" TextUpdate="@(updatedText => this.SettingsManager.ConfigurationData.Agenda.PreselectLocation = updatedText)" />
 | 
			
		||||
            <ConfigurationOption OptionDescription="Preselect whether there is a joint dinner" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" LabelOn="There is a joint dinner" LabelOff="There is no joint dinner" State="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectJointDinner)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.Agenda.PreselectJointDinner = updatedState)" />
 | 
			
		||||
            <ConfigurationOption OptionDescription="Preselect whether there is a social event" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" LabelOn="There is a social event" LabelOff="There is no social event" State="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectSocialActivity)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.Agenda.PreselectSocialActivity = updatedState)" />
 | 
			
		||||
            <ConfigurationOption OptionDescription="Preselect whether participants needs to arrive and depart" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" LabelOn="Participants need to arrive and depart" LabelOff="Participants do not need to arrive and depart" State="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectArriveAndDepart)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.Agenda.PreselectArriveAndDepart = updatedState)" />
 | 
			
		||||
            <ConfigurationSlider T="int" OptionDescription="Preselect the approx. lunch time" Min="30" Max="120" Step="5" Unit="minutes" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" Value="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectLunchTime)" ValueUpdate="@(updatedValue => this.SettingsManager.ConfigurationData.Agenda.PreselectLunchTime = updatedValue)" />
 | 
			
		||||
            <ConfigurationSlider T="int" OptionDescription="Preselect the approx. break time" Min="10" Max="60" Step="5" Unit="minutes" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" Value="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectBreakTime)" ValueUpdate="@(updatedValue => this.SettingsManager.ConfigurationData.Agenda.PreselectBreakTime = updatedValue)" />
 | 
			
		||||
            
 | 
			
		||||
            <ConfigurationSelect OptionDescription="Preselect the agenda language" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" SelectedValue="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectedTargetLanguage)" Data="@ConfigurationSelectDataFactory.GetCommonLanguagesTranslationData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.Agenda.PreselectedTargetLanguage = selectedValue)" OptionHelp="Which agenda language should be preselected?"/>
 | 
			
		||||
            @if (this.SettingsManager.ConfigurationData.Agenda.PreselectedTargetLanguage is CommonLanguages.OTHER)
 | 
			
		||||
            {
 | 
			
		||||
                <ConfigurationText OptionDescription="Preselect another agenda language" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" Icon="@Icons.Material.Filled.Translate" Text="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectedOtherLanguage)" TextUpdate="@(updatedText => this.SettingsManager.ConfigurationData.Agenda.PreselectedOtherLanguage = updatedText)"/>
 | 
			
		||||
            }
 | 
			
		||||
            <ConfigurationProviderSelection Data="@this.availableProviders" Disabled="@(() => !this.SettingsManager.ConfigurationData.Agenda.PreselectOptions)" SelectedValue="@(() => this.SettingsManager.ConfigurationData.Agenda.PreselectedProvider)" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.Agenda.PreselectedProvider = selectedValue)"/>
 | 
			
		||||
        </MudPaper>
 | 
			
		||||
 | 
			
		||||
        <MudText Typo="Typo.h4" Class="mb-3">LLM Agent Options</MudText>
 | 
			
		||||
 | 
			
		||||
        <MudText Typo="Typo.h5" Class="mb-3">Text Content Cleaner Agent</MudText>
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,4 @@
 | 
			
		||||
using AIStudio.Components.Pages.Agenda;
 | 
			
		||||
using AIStudio.Components.Pages.Coding;
 | 
			
		||||
using AIStudio.Components.Pages.IconFinder;
 | 
			
		||||
using AIStudio.Components.Pages.TextSummarizer;
 | 
			
		||||
@ -72,6 +73,15 @@ public static class ConfigurationSelectDataFactory
 | 
			
		||||
            yield return new(language.Name(), language);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public static IEnumerable<ConfigurationSelectData<CommonLanguages>> GetCommonLanguagesTranslationData()
 | 
			
		||||
    {
 | 
			
		||||
        foreach (var language in Enum.GetValues<CommonLanguages>())
 | 
			
		||||
            if(language is CommonLanguages.AS_IS)
 | 
			
		||||
                yield return new("Not yet specified", language);
 | 
			
		||||
            else
 | 
			
		||||
                yield return new(language.Name(), language);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public static IEnumerable<ConfigurationSelectData<CommonCodingLanguages>> GetCommonCodingLanguagesData()
 | 
			
		||||
    {
 | 
			
		||||
        foreach (var language in Enum.GetValues<CommonCodingLanguages>())
 | 
			
		||||
@ -83,4 +93,10 @@ public static class ConfigurationSelectDataFactory
 | 
			
		||||
        foreach (var complexity in Enum.GetValues<Complexity>())
 | 
			
		||||
            yield return new(complexity.Name(), complexity);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public static IEnumerable<ConfigurationSelectData<NumberParticipants>> GetNumberParticipantsData()
 | 
			
		||||
    {
 | 
			
		||||
        foreach (var number in Enum.GetValues<NumberParticipants>())
 | 
			
		||||
            yield return new(number.Name(), number);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -36,4 +36,6 @@ public sealed class Data
 | 
			
		||||
    public DataTextSummarizer TextSummarizer { get; init; } = new();
 | 
			
		||||
 | 
			
		||||
    public DataTextContentCleaner TextContentCleaner { get; init; } = new();
 | 
			
		||||
    
 | 
			
		||||
    public DataAgenda Agenda { get; init; } = new();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										59
									
								
								app/MindWork AI Studio/Settings/DataModel/DataAgenda.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								app/MindWork AI Studio/Settings/DataModel/DataAgenda.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,59 @@
 | 
			
		||||
using AIStudio.Components.Pages.Agenda;
 | 
			
		||||
using AIStudio.Tools;
 | 
			
		||||
 | 
			
		||||
namespace AIStudio.Settings.DataModel;
 | 
			
		||||
 | 
			
		||||
public sealed class DataAgenda
 | 
			
		||||
{
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// Preselect any agenda options?
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public bool PreselectOptions { get; set; }
 | 
			
		||||
 | 
			
		||||
    public string PreselectName { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
    public string PreselectTopic { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
    public string PreselectObjective { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
    public string PreselectModerator { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
    public string PreselectDuration { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
    public string PreselectStartTime { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
    public bool PreselectIntroduceParticipants { get; set; }
 | 
			
		||||
 | 
			
		||||
    public NumberParticipants PreselectNumberParticipants { get; set; } = NumberParticipants.NOT_SPECIFIED;
 | 
			
		||||
 | 
			
		||||
    public bool PreselectActiveParticipation { get; set; }
 | 
			
		||||
 | 
			
		||||
    public bool PreselectIsMeetingVirtual { get; set; } = true;
 | 
			
		||||
 | 
			
		||||
    public string PreselectLocation { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
    public bool PreselectJointDinner { get; set; }
 | 
			
		||||
 | 
			
		||||
    public bool PreselectSocialActivity { get; set; }
 | 
			
		||||
 | 
			
		||||
    public bool PreselectArriveAndDepart { get; set; }
 | 
			
		||||
 | 
			
		||||
    public int PreselectLunchTime { get; set; }
 | 
			
		||||
 | 
			
		||||
    public int PreselectBreakTime { get; set; }
 | 
			
		||||
    
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// Preselect the target language?
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public CommonLanguages PreselectedTargetLanguage { get; set; }
 | 
			
		||||
    
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// Preselect any other language?
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public string PreselectedOtherLanguage { get; set; } = string.Empty;
 | 
			
		||||
    
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// Preselect a agenda provider?
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public string PreselectedProvider { get; set; } = string.Empty;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user