Skip to content

Commit a3b1120

Browse files
authored
Improvements for portal-based interoperability editors (#55)
* Improvements for portal-based interoperability editors Support/use localization to get display names in menus Incorporate Ens_SourceControl.js Fixes #53, #54 Bumps version
1 parent 715569f commit a3b1120

File tree

8 files changed

+126
-95
lines changed

8 files changed

+126
-95
lines changed

cls/SourceControl/Git/Extension.cls

Lines changed: 66 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,38 @@ Import SourceControl.Git
44
Class SourceControl.Git.Extension Extends %Studio.Extension.Base
55
{
66

7+
Parameter DOMAIN = "Studio";
8+
79
XData Menu
810
{
911
<MenuBase>
1012
<Menu Name="%SourceMenu" Type="0">
11-
<MenuItem Name="%Settings" />
12-
<MenuItem Name="%Init" />
13+
<MenuItem Name="Settings" />
14+
<MenuItem Name="Init" />
15+
<MenuItem Name="GitWebUI" />
1316
<MenuItem Separator="true"/>
14-
<MenuItem Name="%GitWebUI" />
17+
<MenuItem Name="AddToSC" />
18+
<MenuItem Name="RemoveFromSC"/>
19+
<MenuItem Name="Revert" />
20+
<MenuItem Name="Commit" />
1521
<MenuItem Separator="true"/>
16-
<MenuItem Name="%Export" />
17-
<MenuItem Name="%ExportForce" />
18-
<MenuItem Name="%Import" />
19-
<MenuItem Name="%ImportForce" />
22+
<MenuItem Name="Push" />
23+
<MenuItem Name="Fetch" />
24+
<MenuItem Name="Pull" />
2025
<MenuItem Separator="true"/>
21-
<MenuItem Name="%AddToSC" />
22-
<MenuItem Name="%RemoveFromSC"/>
23-
<MenuItem Name="%NewBranch" />
24-
<MenuItem Name="%SwitchBranch" />
25-
<MenuItem Name="%Revert" />
26-
<MenuItem Name="%Commit" />
26+
<MenuItem Name="NewBranch" />
27+
<MenuItem Name="SwitchBranch" />
2728
<MenuItem Separator="true"/>
28-
<MenuItem Name="%Push" />
29-
<MenuItem Name="%Fetch" />
30-
<MenuItem Name="%Pull" />
29+
<MenuItem Name="Export" />
30+
<MenuItem Name="ExportForce" />
31+
<MenuItem Name="Import" />
32+
<MenuItem Name="ImportForce" />
3133
</Menu>
3234
<Menu Name="%SourceContext" Type="1">
33-
<MenuItem Name="%AddToSC" />
34-
<MenuItem Name="%RemoveFromSC"/>
35-
<MenuItem Name="%Revert" />
36-
<MenuItem Name="%Commit" />
35+
<MenuItem Name="AddToSC" />
36+
<MenuItem Name="RemoveFromSC"/>
37+
<MenuItem Name="Revert" />
38+
<MenuItem Name="Commit" />
3739
</Menu>
3840
</MenuBase>
3941
}
@@ -64,58 +66,58 @@ Method AfterUserAction(Type As %Integer, Name As %String, InternalName As %Strin
6466
quit ec
6567
}
6668

69+
Method LocalizeName(name As %String) As %String
70+
{
71+
Quit $Case(name,
72+
"Settings":$$$Text("@Settings@Settings"),
73+
"Init":$$$Text("@Init@Initialize"),
74+
"GitWebUI":$$$Text("@GitWebUI@Launch Git UI"),
75+
"Export":$$$Text("@Export@Export All"),
76+
"ExportForce":$$$Text("@ExportForce@Export All (Force)"),
77+
"Import":$$$Text("@Import@Import All"),
78+
"ImportForce":$$$Text("@ImportForce@Import All (Force)"),
79+
"AddToSC":$$$Text("@AddToSC@Add"),
80+
"RemoveFromSC":$$$Text("@RemoveFromSC@Remove"),
81+
"NewBranch":$$$Text("@NewBranch@Create a new branch"),
82+
"SwitchBranch":$$$Text("@SwitchBranch@Check out an existing branch"),
83+
"Revert":$$$Text("@Revert@Discard changes to file"),
84+
"Commit":$$$Text("@Commit@Commit changes to file"),
85+
"Push":$$$Text("@Push@Push to remote branch"),
86+
"Fetch":$$$Text("@Fetch@Fetch from remote"),
87+
"Pull":$$$Text("@Pull@Pull changes from remote branch"),
88+
:name)
89+
}
90+
6791
Method OnSourceMenuItem(name As %String, ByRef Enabled As %String, ByRef DisplayName As %String, InternalName As %String) As %Status
6892
{
69-
if name = "%Settings" {
70-
// We always show Settings
71-
set DisplayName = "Settings"
93+
if name = "Settings" {
7294
quit $$$OK
7395
}
7496
if ##class(Utils).NeedSettings() {
7597
set Enabled = -1
7698
quit $$$OK
7799
}
100+
set Enabled = 1
78101
if ##class(Utils).IsNamespaceInGit() {
79-
if name = "%GitWebUI" {
80-
set DisplayName = "Launch Git UI"
81-
} elseif name = "%Export" {
82-
set DisplayName = "Export All"
83-
} elseif name="%ExportForce" {
84-
set DisplayName = "Export All Force"
85-
} elseif name = "%Import" {
86-
set DisplayName = "Import All"
87-
} elseif name = "%ImportForce" {
88-
set DisplayName = "Import All Force"
89-
} elseif $ListFind($ListBuild("%AddToSC","%RemoveFromSC","%Revert","%Commit"),name) {
102+
if name = "GitWebUI" {
103+
} elseif name = "Export" {
104+
} elseif name = "ExportForce" {
105+
} elseif name = "Import" {
106+
} elseif name = "ImportForce" {
107+
} elseif $ListFind($ListBuild("AddToSC","RemoveFromSC","Revert","Commit"),name) {
90108
quit ..OnSourceMenuContextItem(InternalName,name,.Enabled,.DisplayName)
91-
} elseif name = "%RepoStatus" && ##class(Utils).GitBinExists() {
92-
set DisplayName = "Check for modifications"
93-
} elseif name = "%NewBranch" {
94-
set DisplayName = "Create a new branch"
95-
set Enabled = 1
96-
} elseif name = "%SwitchBranch" {
97-
set DisplayName = "Check out an existing branch"
98-
set Enabled = 1
99-
} elseif name = "%Push" {
100-
// TODO: Only display if there are no files checked out by other users
101-
set Enabled = 1
102-
set DisplayName = "Push to remote branch"
103-
} elseif name = "%Fetch" {
104-
set Enabled = 1
105-
set DisplayName = "Fetch from remote"
106-
} elseif name = "%Pull" {
107-
set Enabled = 1
108-
set DisplayName = "Pull changes from remote branch"
109-
} elseif ##class(Utils).IsMenuGitCommand(name) && ##class(Utils).GitBinExists() {
110-
set DisplayName = $case(name,"%StashSave":"Stash save",
111-
"%StashPop":"Stash pop",
112-
:$Extract(name, 2, *))
109+
} elseif name = "NewBranch" {
110+
} elseif name = "SwitchBranch" {
111+
} elseif name = "Push" {
112+
} elseif name = "Fetch" {
113+
} elseif name = "Pull" {
114+
} elseif name = "" {
115+
// enable separators if namespace is in git
113116
} else {
114117
set Enabled = -1
115118
}
116119
} elseif ##class(Utils).GitBinExists() {
117-
if name = "%Init" {
118-
set DisplayName = "Initialize"
120+
if name = "Init" {
119121
} else {
120122
set Enabled = -1
121123
}
@@ -127,31 +129,26 @@ Method OnSourceMenuItem(name As %String, ByRef Enabled As %String, ByRef Display
127129

128130
Method OnSourceMenuContextItem(itemName As %String, menuItemName As %String, ByRef Enabled As %String, ByRef DisplayName As %String) As %Status
129131
{
130-
set:menuItemName="%AddToSC" DisplayName = "Add"
131-
set:menuItemName="%RemoveFromSC" DisplayName = "Remove"
132-
set:menuItemName="%Revert" DisplayName = "Discard changes to file"
133-
set:menuItemName="%Commit" DisplayName = "Commit changes to file"
134-
135132
if (itemName = "") || '##class(Utils).IsNamespaceInGit() {
136133
set Enabled = -1
137134
} elseif $F(itemName,",") > 0 { //if more than one item is selected, we can only add/remove, no diff or blame
138-
set Enabled = $case(menuItemName,"%AddToSC":1,"%RemoveFromSC":1,:-1)
139-
} elseif menuItemName = "%Revert" {
135+
set Enabled = $case(menuItemName,"AddToSC":1,"RemoveFromSC":1,:-1)
136+
} elseif menuItemName = "Revert" {
140137
set Enabled = 1
141138
do ..GetStatus(itemName, .isInSourceControl, .isEditable,.isCheckedOut,.userCheckedOut)
142139
if '(##class(Change).IsUncommitted(##class(Utils).FullExternalName(itemName))) || ($username '= userCheckedOut) {
143140
set Enabled = 0
144141
}
145-
} elseif menuItemName = "%Commit" {
142+
} elseif menuItemName = "Commit" {
146143
set Enabled = 1
147144
do ..GetStatus(itemName, .isInSourceControl, .isEditable,.isCheckedOut,.userCheckedOut)
148145
if '(##class(Change).IsUncommitted(##class(Utils).FullExternalName(itemName))) || ($username '= userCheckedOut) {
149146
set Enabled = 0
150147
}
151148
} elseif ##class(Utils).IsInSourceControl(itemName) {
152-
set Enabled = $Case(menuItemName, "%AddToSC":-1,:1)
149+
set Enabled = $Case(menuItemName, "AddToSC":-1,:1)
153150
} else {
154-
set Enabled = $Case(menuItemName, "%AddToSC":1,:-1)
151+
set Enabled = $Case(menuItemName, "AddToSC":1,:-1)
155152
}
156153
quit $$$OK
157154
}
@@ -300,3 +297,4 @@ Method GetStatus(InternalName As %String, ByRef IsInSourceControl As %Boolean, B
300297
}
301298

302299
}
300+

cls/SourceControl/Git/Settings.cls

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Method %Save() As %Status
4343
if (..gitBinPath '= "") {
4444
set @sysStorage@("%gitBinPath") = ..gitBinPath
4545
}
46-
kill @sysStorage@("%gitBinExists")
46+
kill ^||GitVersion
4747

4848
set @storage@("settings","namespaceTemp") = ##class(SourceControl.Git.Utils).AddSlash(..namespaceTemp)
4949
set @storage@("settings","user",$username,"gitUserName") = ..gitUserName

cls/SourceControl/Git/StreamServer.cls

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,11 @@ Class SourceControl.Git.StreamServer Extends %CSP.StreamServer
77
ClassMethod OnPage() As %Status
88
{
99
if (%stream '= $$$NULLOREF) && $data(%base)#2 {
10+
set sourceControlInclude = ##class(SourceControl.Git.Utils).GetSourceControlInclude()
1011
while '%stream.AtEnd {
11-
write $Replace(%stream.Read(),"{{baseHref}}",..EscapeHTML(%base))
12+
set text = %stream.Read()
13+
set text = $Replace(text,"{{baseHref}}",..EscapeHTML(%base))
14+
write $Replace(text,"{{sourceControlInclude}}",sourceControlInclude)
1215
}
1316
quit $$$OK
1417
}

0 commit comments

Comments
 (0)