@@ -4,36 +4,38 @@ Import SourceControl.Git
44Class SourceControl .Git .Extension Extends %Studio .Extension .Base
55{
66
7+ Parameter DOMAIN = " Studio" ;
8+
79XData 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+
6791Method 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
128130Method 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+
0 commit comments