@@ -4,36 +4,38 @@ Import SourceControl.Git
4
4
Class SourceControl .Git .Extension Extends %Studio .Extension .Base
5
5
{
6
6
7
+ Parameter DOMAIN = " Studio" ;
8
+
7
9
XData Menu
8
10
{
9
11
<MenuBase >
10
12
<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" />
13
16
<MenuItem Separator =" true" />
14
- <MenuItem Name =" %GitWebUI" />
17
+ <MenuItem Name =" AddToSC" />
18
+ <MenuItem Name =" RemoveFromSC" />
19
+ <MenuItem Name =" Revert" />
20
+ <MenuItem Name =" Commit" />
15
21
<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" />
20
25
<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" />
27
28
<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" />
31
33
</Menu >
32
34
<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" />
37
39
</Menu >
38
40
</MenuBase >
39
41
}
@@ -64,58 +66,58 @@ Method AfterUserAction(Type As %Integer, Name As %String, InternalName As %Strin
64
66
quit ec
65
67
}
66
68
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
+
67
91
Method OnSourceMenuItem (name As %String , ByRef Enabled As %String , ByRef DisplayName As %String , InternalName As %String ) As %Status
68
92
{
69
- if name = " %Settings" {
70
- // We always show Settings
71
- set DisplayName = " Settings"
93
+ if name = " Settings" {
72
94
quit $$$OK
73
95
}
74
96
if ##class (Utils ).NeedSettings () {
75
97
set Enabled = -1
76
98
quit $$$OK
77
99
}
100
+ set Enabled = 1
78
101
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 ) {
90
108
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
113
116
} else {
114
117
set Enabled = -1
115
118
}
116
119
} elseif ##class (Utils ).GitBinExists () {
117
- if name = " %Init" {
118
- set DisplayName = " Initialize"
120
+ if name = " Init" {
119
121
} else {
120
122
set Enabled = -1
121
123
}
@@ -127,31 +129,26 @@ Method OnSourceMenuItem(name As %String, ByRef Enabled As %String, ByRef Display
127
129
128
130
Method OnSourceMenuContextItem (itemName As %String , menuItemName As %String , ByRef Enabled As %String , ByRef DisplayName As %String ) As %Status
129
131
{
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
-
135
132
if (itemName = " " ) || '##class (Utils ).IsNamespaceInGit () {
136
133
set Enabled = -1
137
134
} 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" {
140
137
set Enabled = 1
141
138
do ..GetStatus (itemName , .isInSourceControl , .isEditable ,.isCheckedOut ,.userCheckedOut )
142
139
if '(##class (Change ).IsUncommitted (##class (Utils ).FullExternalName (itemName ))) || ($username '= userCheckedOut ) {
143
140
set Enabled = 0
144
141
}
145
- } elseif menuItemName = " % Commit" {
142
+ } elseif menuItemName = " Commit" {
146
143
set Enabled = 1
147
144
do ..GetStatus (itemName , .isInSourceControl , .isEditable ,.isCheckedOut ,.userCheckedOut )
148
145
if '(##class (Change ).IsUncommitted (##class (Utils ).FullExternalName (itemName ))) || ($username '= userCheckedOut ) {
149
146
set Enabled = 0
150
147
}
151
148
} elseif ##class (Utils ).IsInSourceControl (itemName ) {
152
- set Enabled = $Case (menuItemName , " % AddToSC" :-1 ,:1 )
149
+ set Enabled = $Case (menuItemName , " AddToSC" :-1 ,:1 )
153
150
} else {
154
- set Enabled = $Case (menuItemName , " % AddToSC" :1 ,:-1 )
151
+ set Enabled = $Case (menuItemName , " AddToSC" :1 ,:-1 )
155
152
}
156
153
quit $$$OK
157
154
}
@@ -300,3 +297,4 @@ Method GetStatus(InternalName As %String, ByRef IsInSourceControl As %Boolean, B
300
297
}
301
298
302
299
}
300
+
0 commit comments