Browse Source

Scripting fix.

pull/539/head
Sebastian 6 years ago
parent
commit
2fb0f2cdf2
  1. 4
      backend/src/Squidex.Domain.Apps.Entities/Assets/AssetChangedTriggerHandler.cs
  2. 4
      backend/src/Squidex.Domain.Apps.Entities/Comments/CommentTriggerHandler.cs
  3. 4
      backend/src/Squidex.Domain.Apps.Entities/Contents/ContentChangedTriggerHandler.cs
  4. 4
      backend/src/Squidex.Domain.Apps.Entities/Contents/DynamicContentWorkflow.cs
  5. 9
      backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/Steps/ScriptContent.cs
  6. 4
      backend/src/Squidex.Domain.Apps.Entities/Schemas/SchemaChangedTriggerHandler.cs
  7. 8
      backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Counter/CounterJintExtensionTests.cs
  8. 13
      backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Queries/ScriptContentTests.cs
  9. 8
      frontend/app/shared/components/notifo.component.html
  10. 4
      frontend/app/shared/components/notifo.component.ts

4
backend/src/Squidex.Domain.Apps.Entities/Assets/AssetChangedTriggerHandler.cs

@ -75,12 +75,12 @@ namespace Squidex.Domain.Apps.Entities.Assets
return true;
}
var context = new ScriptVars
var vars = new ScriptVars
{
["event"] = @event
};
return scriptEngine.Evaluate(context, trigger.Condition);
return scriptEngine.Evaluate(vars, trigger.Condition);
}
}
}

4
backend/src/Squidex.Domain.Apps.Entities/Comments/CommentTriggerHandler.cs

@ -76,12 +76,12 @@ namespace Squidex.Domain.Apps.Entities.Comments
return true;
}
var context = new ScriptVars
var vars = new ScriptVars
{
["event"] = @event
};
return scriptEngine.Evaluate(context, trigger.Condition);
return scriptEngine.Evaluate(vars, trigger.Condition);
}
}
}

4
backend/src/Squidex.Domain.Apps.Entities/Contents/ContentChangedTriggerHandler.cs

@ -144,12 +144,12 @@ namespace Squidex.Domain.Apps.Entities.Contents
return true;
}
var context = new ScriptVars
var vars = new ScriptVars
{
["event"] = @event
};
return scriptEngine.Evaluate(context, schema.Condition);
return scriptEngine.Evaluate(vars, schema.Condition);
}
}
}

4
backend/src/Squidex.Domain.Apps.Entities/Contents/DynamicContentWorkflow.cs

@ -115,12 +115,12 @@ namespace Squidex.Domain.Apps.Entities.Contents
if (!string.IsNullOrWhiteSpace(condition?.Expression))
{
var context = new ScriptVars
var vars = new ScriptVars
{
["data"] = data
};
return scriptEngine.Evaluate(context, condition.Expression);
return scriptEngine.Evaluate(vars, condition.Expression);
}
return true;

9
backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/Steps/ScriptContent.cs

@ -46,7 +46,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries.Steps
private async Task TransformAsync(Context context, string script, ContentEntity content)
{
var scriptContext = new ScriptVars
var vars = new ScriptVars
{
ContentId = content.Id,
Data = content.Data,
@ -55,7 +55,12 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries.Steps
User = context.User
};
content.Data = await scriptEngine.TransformAsync(scriptContext, script);
var options = new ScriptOptions
{
AsContext = true
};
content.Data = await scriptEngine.TransformAsync(vars, script, options);
}
private static bool ShouldEnrich(Context context)

4
backend/src/Squidex.Domain.Apps.Entities/Schemas/SchemaChangedTriggerHandler.cs

@ -76,12 +76,12 @@ namespace Squidex.Domain.Apps.Entities.Schemas
return true;
}
var context = new ScriptVars
var vars = new ScriptVars
{
["event"] = @event
};
return scriptEngine.Evaluate(context, trigger.Condition);
return scriptEngine.Evaluate(vars, trigger.Condition);
}
}
}

8
backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Counter/CounterJintExtensionTests.cs

@ -51,12 +51,12 @@ namespace Squidex.Domain.Apps.Entities.Contents.Counter
return resetCounter('my', 4);
";
var context = new ScriptVars
var vars = new ScriptVars
{
["appId"] = appId
};
var result = sut.Execute(context, script).ToString();
var result = sut.Execute(vars, script).ToString();
Assert.Equal("3", result);
}
@ -76,12 +76,12 @@ namespace Squidex.Domain.Apps.Entities.Contents.Counter
return incrementCounter('my');
";
var context = new ScriptVars
var vars = new ScriptVars
{
["appId"] = appId
};
var result = sut.Execute(context, script).ToString();
var result = sut.Execute(vars, script).ToString();
Assert.Equal("3", result);
}

13
backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Queries/ScriptContentTests.cs

@ -67,7 +67,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries
await sut.EnrichAsync(ctx, new[] { content }, schemaProvider);
A.CallTo(() => scriptEngine.TransformAsync(A<ScriptVars>._, A<string>._, default))
A.CallTo(() => scriptEngine.TransformAsync(A<ScriptVars>._, A<string>._, ScriptOptions()))
.MustNotHaveHappened();
}
@ -80,7 +80,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries
await sut.EnrichAsync(ctx, new[] { content }, schemaProvider);
A.CallTo(() => scriptEngine.TransformAsync(A<ScriptVars>._, A<string>._, default))
A.CallTo(() => scriptEngine.TransformAsync(A<ScriptVars>._, A<string>._, ScriptOptions()))
.MustNotHaveHappened();
}
@ -93,7 +93,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries
var content = new ContentEntity { SchemaId = schemaWithScriptId, Data = oldData };
A.CallTo(() => scriptEngine.TransformAsync(A<ScriptVars>._, "my-query", default))
A.CallTo(() => scriptEngine.TransformAsync(A<ScriptVars>._, "my-query", ScriptOptions()))
.Returns(new NamedContentData());
await sut.EnrichAsync(ctx, new[] { content }, schemaProvider);
@ -106,8 +106,13 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries
ReferenceEquals(x.Data, oldData) &&
x.ContentId == content.Id),
"my-query",
A<ScriptOptions>._))
ScriptOptions()))
.MustHaveHappened();
}
private ScriptOptions ScriptOptions()
{
return A<ScriptOptions>.That.Matches(x => x.AsContext);
}
}
}

8
frontend/app/shared/components/notifo.component.html

@ -1 +1,7 @@
<span #element></span>
<span #element></span>
<ng-container *ngIf="showOnboarding">
<sqx-onboarding-tooltip helpId="notifo" [for]="element" position="left-top" after="30000">
Click this button to subscribe to all changes and to receive push notifications.
</sqx-onboarding-tooltip>
</ng-container>

4
frontend/app/shared/components/notifo.component.ts

@ -28,6 +28,10 @@ export class NotifoComponent implements AfterViewInit, OnChanges, OnDestroy {
@ViewChild('element', { static: false })
public element: ElementRef<Element>;
public get showOnboarding() {
return !!this.notifoApiUrl && !!this.topic;
}
constructor(resourceLoader: ResourceLoaderService, uiOptions: UIOptions, authService: AuthService,
private readonly renderer: Renderer2
) {

Loading…
Cancel
Save