Skip to content

Commit

Permalink
Cloud hacks for persona manager
Browse files Browse the repository at this point in the history
  • Loading branch information
rhennigan committed Jan 16, 2024
1 parent 45c306d commit 3fb0c75
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 12 deletions.
42 changes: 32 additions & 10 deletions Source/Chatbook/CloudToolbar.wl
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ BeginPackage[ "Wolfram`Chatbook`CloudToolbar`" ];

HoldComplete[
`makeChatCloudDockedCellContents;
`forceRefreshCloudPreferences;
];

Begin[ "`Private`" ];
Expand Down Expand Up @@ -84,7 +85,7 @@ cloudPreferencesButton[ ] := Enclose[
Infinity
];

button = Button[ buttonIcon, togglePreferences @ EvaluationNotebook[ ], Method -> "Queued" ];
button = Button[ buttonIcon, toggleCloudPreferences @ EvaluationNotebook[ ], Method -> "Queued" ];

cloudPreferencesButton[ ] = Pane[ button, FrameMargins -> { { 0, 10 }, { 0, 0 } } ]
],
Expand All @@ -95,30 +96,30 @@ cloudPreferencesButton // endDefinition;

(* ::**************************************************************************************************************:: *)
(* ::Subsubsection::Closed:: *)
(*togglePreferences*)
togglePreferences // beginDefinition;
(*toggleCloudPreferences*)
toggleCloudPreferences // beginDefinition;

togglePreferences[ nbo_NotebookObject ] :=
togglePreferences[ nbo, Flatten @ List @ CurrentValue[ nbo, DockedCells ] ];
toggleCloudPreferences[ nbo_NotebookObject ] :=
toggleCloudPreferences[ nbo, Flatten @ List @ CurrentValue[ nbo, DockedCells ] ];

togglePreferences[ nbo_NotebookObject, { cell_Cell } ] :=
toggleCloudPreferences[ nbo_NotebookObject, { cell_Cell } ] :=
SetOptions[ nbo, DockedCells -> { cell, $cloudPreferencesCell } ];

togglePreferences[ nbo_NotebookObject, { Inherited|$Failed } ] := SetOptions[
toggleCloudPreferences[ nbo_NotebookObject, { Inherited|$Failed } ] := SetOptions[
nbo,
DockedCells -> {
Cell[ BoxData @ DynamicBox @ ToBoxes @ MakeChatCloudDockedCellContents[ ], Background -> None ],
$cloudPreferencesCell
}
];

togglePreferences[ nbo_NotebookObject, { cell_Cell, _Cell } ] :=
toggleCloudPreferences[ nbo_NotebookObject, { cell_Cell, _Cell } ] :=
SetOptions[ nbo, DockedCells -> { cell } ];

togglePreferences[ nbo_NotebookObject, _ ] :=
toggleCloudPreferences[ nbo_NotebookObject, _ ] :=
SetOptions[ nbo, DockedCells -> Inherited ];

togglePreferences // endDefinition;
toggleCloudPreferences // endDefinition;

(* ::**************************************************************************************************************:: *)
(* ::Subsubsubsection::Closed:: *)
Expand Down Expand Up @@ -195,6 +196,27 @@ $chatEnabledNotebookLabel := Grid[
Spacings -> 0.5
];

(* ::**************************************************************************************************************:: *)
(* ::Section::Closed:: *)
(*Utilities*)

(* ::**************************************************************************************************************:: *)
(* ::Subsection::Closed:: *)
(*forceRefreshCloudPreferences*)
forceRefreshCloudPreferences // beginDefinition;

forceRefreshCloudPreferences[ ] /; ! TrueQ @ $cloudNotebooks := Null;

forceRefreshCloudPreferences[ ] := forceRefreshCloudPreferences @ EvaluationNotebook[ ];

forceRefreshCloudPreferences[ nbo_NotebookObject ] := (
SetOptions[ nbo, DockedCells -> Inherited ];
Pause[ 0.5 ];
toggleCloudPreferences @ nbo
);

forceRefreshCloudPreferences // endDefinition;

(* ::**************************************************************************************************************:: *)
(* ::Section::Closed:: *)
(*Package Footer*)
Expand Down
11 changes: 9 additions & 2 deletions Source/Chatbook/PersonaManager.wl
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ BeginPackage[ "Wolfram`Chatbook`PersonaManager`" ];
Begin[ "`Private`" ];

Needs[ "Wolfram`Chatbook`" ];
Needs[ "Wolfram`Chatbook`CloudToolbar`" ];
Needs[ "Wolfram`Chatbook`Common`" ];
Needs[ "Wolfram`Chatbook`Dialogs`" ];
Needs[ "Wolfram`Chatbook`Personas`" ];
Expand Down Expand Up @@ -57,13 +58,15 @@ CreatePersonaManagerPanel[ ] := DynamicModule[{favorites, delimColor},
"Install from",
Button[
grayDialogButtonLabel[ "Prompt Repository \[UpperRightArrow]" ],
If[ $CloudEvaluation, SetOptions[ EvaluationNotebook[ ], DockedCells -> Inherited ] ];
ResourceInstallFromRepository[ "Prompt" ],
Appearance -> "Suppressed",
BaselinePosition -> Baseline,
Method -> "Queued"
],
Button[
grayDialogButtonLabel[ "URL" ],
If[ $CloudEvaluation, SetOptions[ EvaluationNotebook[ ], DockedCells -> Inherited ] ];
Block[ { PrintTemporary }, ResourceInstallFromURL[ "Prompt" ] ],
Appearance -> "Suppressed",
BaselinePosition -> Baseline,
Expand Down Expand Up @@ -278,7 +281,7 @@ addRemovePersonaListingCheckbox[ name_String ] :=
CurrentChatSettings[ $FrontEnd, "VisiblePersonas" ] = With[
{ current = Replace[ CurrentChatSettings[ $FrontEnd, "VisiblePersonas" ], Except[ { ___String } ] :> core ] },
If[ #1, Union[ current, { name } ], Complement[ current, { name } ] ]
]
]
]
]
];
Expand All @@ -298,7 +301,11 @@ uninstallButton[ name_String, installedQ_, pacletName_String ] :=
StringTemplate["This persona cannot be uninstalled because it is provided by the `1` paclet."][pacletName]]},
Dynamic[Which[!installedQ, "Disabled", CurrentValue["MouseOver"], "Hover", True, "Default"]],
ImageSize -> Automatic],
Block[ { PrintTemporary }, ResourceUninstall[ "Prompt", name ]; GetPersonaData[] ],
Block[ { PrintTemporary },
ResourceUninstall[ "Prompt", name ];
GetPersonaData[ ];
forceRefreshCloudPreferences[ ]
],
Appearance -> "Suppressed",
Enabled -> installedQ,
ImageMargins -> {{0, 13}, {0, 0}},
Expand Down

0 comments on commit 3fb0c75

Please sign in to comment.