diff --git a/%SourceControl/Git.cls.xml b/%SourceControl/Git.cls.xml index 13b5756..0541a49 100644 --- a/%SourceControl/Git.cls.xml +++ b/%SourceControl/Git.cls.xml @@ -22,10 +22,8 @@ - - @@ -36,6 +34,8 @@ + + @@ -89,10 +89,10 @@ set DisplayName = "Import All" } elseif name = "%ImportForce" { set DisplayName = "Import All Force" - }elseif name = "%RepoStatus" && ##class(Utils).GitBinExists() { - set DisplayName = "Check for modifications" }elseif name = "%OpenRepoFolder" { set DisplayName = "Open Repo Folder" + }elseif name = "%Sources" { + set DisplayName = "Sources: "_$case(##class(Utils).GetTypeOfSources(), 1:"XML", 0:"UDL", :"") } elseif ##class(Utils).IsMenuGitCommand(name) && ##class(Utils).GitBinExists() { set DisplayName = $case(name,"%StashSave":"Stash save", @@ -111,7 +111,7 @@ set Enabled = -1 } } else { - set Enabled = -1 + set Enabled = -1 } quit $$$OK ]]> diff --git a/%SourceControl/Git/UDL.cls.xml b/%SourceControl/Git/UDL.cls.xml new file mode 100644 index 0000000..0ebfbfb --- /dev/null +++ b/%SourceControl/Git/UDL.cls.xml @@ -0,0 +1,354 @@ + + + +%occStatus,%occErrors +64476,66997.781615 + + +1 +InternalName,filename +%Status + + + + +1 +InternalName:%String,filename:%String +%Status + + + + +1 +InternalName:%String,filename:%String,ext +%Status + routine + /*set routineName = $extract(InternalName, 0, $find(InternalName, ".") - 2) + + if ext = "mac" { + do fileStream.WriteLine("ROUTINE " _ routineName) + } elseif ext = "inc" { + do fileStream.WriteLine("ROUTINE " _ routineName _ " [Type=INC]") + } elseif ext = "int" { + do fileStream.WriteLine("ROUTINE " _ routineName _ " [Type=INT,Generated]") + }*/ + + while 'rtn.Code.AtEnd { + do fileStream.WriteLine(rtn.Code.ReadLine()) + } + + set sc = fileStream.%Save() + + quit sc +]]> + + + +1 +InternalName:%String,filename:%String +%Status + + + + +1 +InternalName:%String,filename:%String +%Status + + + + +1 +InternalName:%String,filename:%String +%Status + + + + +1 +InternalName,filename + + + + +1 +InternalName,filename + + + + +1 +InternalName,filename + + + + +1 +InternalName,filename + + + + +1 + +%Status + + + + +1 + +%Status += 10 { //values in leaves + if $data(@mappingsNode@(type), folder) { + set folder = ##class(Utils).NormalizeFolder(folder) + set newItem = $piece(newItem,folder,2) + } elseif $find(newItem,$translate("csp/","/",slash)){ + if $data(@mappingsNode@("csp"), folder) { + set folder = ##class(Utils).NormalizeFolder(folder) + set newItem = $piece(newItem,folder,2) + set $Piece(newItem, slash, 1) = $system.CSP.GetDefaultApp(namespace) + set newItem = $piece($translate(newItem,slash,"/"),"/",2,*) + } + } + + } + + if $extract(newItem, 1) = slash { + set newItem = $piece(newItem, slash, 2, *) + } + + if type = "cls" { + set newItem = $translate( newItem, slash, ".") + + } elseif groupByFolder { + // If groupByFolder = 1 then we put inc, mac, int in corresponding folder, not in root. + // For example project.include.inc will be placed in project\include.inc.xml + set sep = $case(type, "dfi" : "-", : ".") + set newItem = $translate(newItem, slash, sep) + } + + set newItem = $translate( newItem, "_", " ") + + set itemList(newItem_extensionSuffix) = "" + } + + quit sc +]]> + + + diff --git a/%SourceControl/Git/Utils.cls.xml b/%SourceControl/Git/Utils.cls.xml index ad95a39..65ad195 100644 --- a/%SourceControl/Git/Utils.cls.xml +++ b/%SourceControl/Git/Utils.cls.xml @@ -170,6 +170,7 @@ Returns root temp folder set @..#Storage@("settings","namespaceTemp") = ..AddSlash(settings("namespaceTemp")) set @..#Storage@("settings","groupByFolder") = $case(settings("groupByFolder"), "":"", :1) + set @..#Storage@("settings","typeOfSources") = 1 // 1 - XML, 0 - UDL quit $$$OK ]]> @@ -215,6 +216,23 @@ Returns root temp folder ]]> + + +Type: +0 - UDL +1 - XML +1 +menuItemName:%String +%Boolean + + + 1 @@ -269,6 +287,8 @@ Returns root temp folder }elseif (menuItemName = "%OpenRepoFolder") { set Action = 3 set Target = ..TempFolder() + }elseif (menuItemName = "%Sources") { + set @..#Storage@("settings","typeOfSources") = '..GetTypeOfSources() }elseif ..IsMenuGitCommand(menuItemName) { set Action = 3 #dim command As %String = $ZConvert($Extract(menuItemName, 2, *), "L") @@ -397,7 +417,11 @@ adds last slash if not present
]]> // write "name=",name,! // write "external name = ", $Translate(name," *?","___")_".xml", ! - quit $Translate(name," *?","___")_".xml" + if ..GetTypeOfSources() { + quit $Translate(name," *?","___")_".xml" + } else { + quit $Translate(name," *?","___") + } ]]>
@@ -921,7 +945,12 @@ if force = 1 then imports in any case.]]> #dim sc As %Status = $$$OK if ..IsRoutineOutdated(InternalName) || force { - set sc = $system.OBJ.Load(filename,"-l-d") + if ..GetTypeOfSources() { + set sc = $system.OBJ.Load(filename,"-l-d") + } else { + set sc = ##class(UDL).Import(InternalName, filename) + } + if sc { set sc = ..UpdateRoutineTSH(InternalName, fileTSH) if ..Type(InternalName) = "prj" { @@ -945,7 +974,11 @@ if force = 1 then imports in any case.]]> %Status force = 1 then imports in any case.]]> #dim filename As %String = ..FullExternalName(InternalName) write "exporting new version of ", InternalName, " to ", filename,! - $$$QuitOnError($system.OBJ.Export(InternalName, filename,"-d/diff")) + if ..GetTypeOfSources() { + $$$QuitOnError($system.OBJ.Export(InternalName, filename,"-d/diff")) + } else { + $$$QuitOnError(##class(UDL).Export(InternalName, filename)) + } $$$QuitOnError(..UpdateRoutineTSH(InternalName, $Horolog)) } else { write !,InternalName, " is not newer than on-disk version, skipping export"