Merge remote-tracking branch 'origin/netcore/dev' into netcore/dev
This commit is contained in:
@@ -2,17 +2,17 @@
|
||||
* @ngdoc service
|
||||
* @name umbraco.services.macroService
|
||||
*
|
||||
*
|
||||
*
|
||||
* @description
|
||||
* A service to return macro information such as generating syntax to insert a macro into an editor
|
||||
*/
|
||||
function macroService() {
|
||||
|
||||
return {
|
||||
|
||||
|
||||
/** parses the special macro syntax like <?UMBRACO_MACRO macroAlias="Map" /> and returns an object with the macro alias and it's parameters */
|
||||
parseMacroSyntax: function (syntax) {
|
||||
|
||||
|
||||
//This regex will match an alias of anything except characters that are quotes or new lines (for legacy reasons, when new macros are created
|
||||
// their aliases are cleaned an invalid chars are stripped)
|
||||
var expression = /(<\?UMBRACO_MACRO (?:.+?)?macroAlias=["']([^\"\'\n\r]+?)["'][\s\S]+?)(\/>|>.*?<\/\?UMBRACO_MACRO>)/i;
|
||||
@@ -24,9 +24,9 @@ function macroService() {
|
||||
|
||||
//this will leave us with just the parameters
|
||||
var paramsChunk = match[1].trim().replace(new RegExp("UMBRACO_MACRO macroAlias=[\"']" + alias + "[\"']"), "").trim();
|
||||
|
||||
|
||||
var paramExpression = /(\w+?)=['\"]([\s\S]*?)['\"]/g;
|
||||
|
||||
|
||||
var paramMatch;
|
||||
var returnVal = {
|
||||
macroAlias: alias,
|
||||
@@ -42,11 +42,11 @@ function macroService() {
|
||||
* @ngdoc function
|
||||
* @name umbraco.services.macroService#generateMacroSyntax
|
||||
* @methodOf umbraco.services.macroService
|
||||
* @function
|
||||
* @function
|
||||
*
|
||||
* @description
|
||||
* generates the syntax for inserting a macro into a rich text editor - this is the very old umbraco style syntax
|
||||
*
|
||||
*
|
||||
* @param {object} args an object containing the macro alias and it's parameter values
|
||||
*/
|
||||
generateMacroSyntax: function (args) {
|
||||
@@ -72,7 +72,7 @@ function macroService() {
|
||||
var encoded = encodeURIComponent(json);
|
||||
keyVal = key + "=\"" + encoded + "\" ";
|
||||
}
|
||||
|
||||
|
||||
macroString += keyVal;
|
||||
});
|
||||
|
||||
@@ -82,38 +82,38 @@ function macroService() {
|
||||
|
||||
return macroString;
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* @ngdoc function
|
||||
* @name umbraco.services.macroService#generateMvcSyntax
|
||||
* @methodOf umbraco.services.macroService
|
||||
* @function
|
||||
* @function
|
||||
*
|
||||
* @description
|
||||
* generates the syntax for inserting a macro into an mvc template
|
||||
*
|
||||
*
|
||||
* @param {object} args an object containing the macro alias and it's parameter values
|
||||
*/
|
||||
generateMvcSyntax: function (args) {
|
||||
|
||||
var macroString = "@Umbraco.RenderMacro(\"" + args.macroAlias + "\"";
|
||||
var macroString = "@await Umbraco.RenderMacroAsync(\"" + args.macroAlias + "\"";
|
||||
|
||||
var hasParams = false;
|
||||
var paramString;
|
||||
if (args.macroParamsDictionary) {
|
||||
|
||||
|
||||
paramString = ", new {";
|
||||
|
||||
_.each(args.macroParamsDictionary, function(val, key) {
|
||||
|
||||
hasParams = true;
|
||||
|
||||
|
||||
var keyVal = key + "=\"" + (val ? val : "") + "\", ";
|
||||
|
||||
paramString += keyVal;
|
||||
});
|
||||
|
||||
//remove the last ,
|
||||
|
||||
//remove the last ,
|
||||
paramString = paramString.trimEnd(", ");
|
||||
|
||||
paramString += "}";
|
||||
|
||||
@@ -62,7 +62,7 @@ describe('macro service tests', function () {
|
||||
expect(result.macroParamsDictionary.test2).not.toBeUndefined();
|
||||
expect(result.macroParamsDictionary.test2).toBe("hello");
|
||||
});
|
||||
|
||||
|
||||
it('can parse syntax for macros with body', function () {
|
||||
|
||||
var result = macroService.parseMacroSyntax("<?UMBRACO_MACRO macroAlias='Map' test1=\"asdf\" test2='hello' ><img src='blah.jpg'/></?UMBRACO_MACRO>");
|
||||
@@ -108,7 +108,7 @@ describe('macro service tests', function () {
|
||||
toBe("<?UMBRACO_MACRO macroAlias=\"myMacro\" />");
|
||||
|
||||
});
|
||||
|
||||
|
||||
it('can generate syntax for MVC', function () {
|
||||
|
||||
var syntax = macroService.generateMvcSyntax({
|
||||
@@ -121,11 +121,11 @@ describe('macro service tests', function () {
|
||||
});
|
||||
|
||||
expect(syntax).
|
||||
toBe("@Umbraco.RenderMacro(\"myMacro\", new {param1=\"value1\", param2=\"value2\", param3=\"value3\"})");
|
||||
toBe("@await Umbraco.RenderMacroAsync(\"myMacro\", new {param1=\"value1\", param2=\"value2\", param3=\"value3\"})");
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
it('can generate syntax for MVC with no params', function () {
|
||||
|
||||
var syntax = macroService.generateMvcSyntax({
|
||||
@@ -134,7 +134,7 @@ describe('macro service tests', function () {
|
||||
});
|
||||
|
||||
expect(syntax).
|
||||
toBe("@Umbraco.RenderMacro(\"myMacro\")");
|
||||
toBe("@await Umbraco.RenderMacroAsync(\"myMacro\")");
|
||||
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user