Small tweaks and fixes

This commit is contained in:
Sipke Schoorstra 2018-12-29 15:29:44 +01:00
parent 7fe60063c4
commit 313e0cf704
6 changed files with 26 additions and 11 deletions

View file

@ -9,6 +9,7 @@ namespace Flowsharp.Serialization.Tokenizers
{
Task<JToken> TokenizeWorkflowAsync(Workflow value, CancellationToken cancellationToken);
Task<Workflow> DetokenizeWorkflowAsync(JToken token, CancellationToken cancellationToken);
Task<JToken> TokenizeActivityAsync(IActivity value, CancellationToken cancellationToken);
Task<IActivity> DetokenizeActivityAsync(JToken token, CancellationToken cancellationToken);
}
}

View file

@ -25,7 +25,7 @@ namespace Flowsharp.Serialization.Tokenizers
jsonSerializer = JsonSerializer.Create(new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() });
}
public Task<JToken> TokenizeWorkflowAsync(Workflow value, CancellationToken cancellationToken)
public async Task<JToken> TokenizeWorkflowAsync(Workflow value, CancellationToken cancellationToken)
{
var workflow = value;
var activityTuples = workflow.Activities.Select(x => new { Activity = x, Id = x.Id }).ToList();
@ -40,14 +40,14 @@ namespace Flowsharp.Serialization.Tokenizers
{
{ "metadata", JToken.FromObject(workflow.Metadata, jsonSerializer) },
{ "status", workflow.Status.ToString() },
{ "activities", SerializeActivities(context) },
{ "activities", await SerializeActivitiesAsync(context, cancellationToken) },
{ "connections", SerializeConnections(context, workflow) },
{ "haltedActivities", SerializeHaltedActivities(context, workflow) },
{ "scopes", SerializeScopes(context, scopeIdLookup) },
{ "currentScope", SerializeCurrentScope(workflow, scopeIdLookup) }
};
return Task.FromResult<JToken>(token);
return token;
}
public async Task<Workflow> DetokenizeWorkflowAsync(JToken token, CancellationToken cancellationToken)
@ -83,6 +83,12 @@ namespace Flowsharp.Serialization.Tokenizers
return workflow;
}
public Task<JToken> TokenizeActivityAsync(IActivity value, CancellationToken cancellationToken)
{
var activityModel = JObject.FromObject(value, jsonSerializer);
return Task.FromResult<JToken>(activityModel);
}
public async Task<IActivity> DetokenizeActivityAsync(JToken token, CancellationToken cancellationToken)
{
@ -163,16 +169,15 @@ namespace Flowsharp.Serialization.Tokenizers
return connectionModels;
}
private JArray SerializeActivities(WorkflowTokenizationContext context)
private async Task<JArray> SerializeActivitiesAsync(WorkflowTokenizationContext context, CancellationToken cancellationToken)
{
var activityModels = new JArray();
foreach (var item in context.ActivityIdLookup)
{
var activity = item.Key;
var activityModel = JObject.FromObject(activity, new JsonSerializer { ContractResolver = new CamelCasePropertyNamesContractResolver() });
var activityModel = await TokenizeActivityAsync(activity, cancellationToken);
activityModel["name"] = activity.Name;
activityModels.Add(activityModel);
}

View file

@ -11,10 +11,12 @@ namespace Flowsharp {
private formElement: JQuery<HTMLFormElement>;
private activityName: string;
private deferred: JQuery.Deferred<any>;
private saveButtonElement: JQuery<HTMLElement>;
constructor(container: HTMLElement) {
this.containerElement = $(container);
this.titleElement = this.containerElement.find('.modal-title');
this.saveButtonElement = this.containerElement.find('.save-button');
this.contentElement = this.containerElement.find('.modal-body');
this.formElement = <JQuery<HTMLFormElement>>this.containerElement.find('form');
@ -27,9 +29,13 @@ namespace Flowsharp {
public display = (activityName: string, activity: IActivity): JQuery.Promise<any> => {
this.activityName = activityName;
this.deferred = jQuery.Deferred<any>();
const action = activity == null ? 'create' : 'edit';
const isNew = activity == null;
const action = isNew ? 'create' : 'edit';
const saveButtonText = isNew ? 'Add' : 'Save';
const activityJson: string = activity == null ? null : JSON.stringify(activity);
this.saveButtonElement.text(saveButtonText);
$.ajax({
type: 'POST',
url: `/activity/${action}/${activityName}`,

View file

@ -29,7 +29,7 @@
-moz-transition: -moz-box-shadow 0.15s ease-in;
-o-transition: -o-box-shadow 0.15s ease-in;
transition: box-shadow 0.15s ease-in;
&.activity-start, &.activity-blocking {
background-color: #f1f1f1;
color: #3d3d3d;
@ -40,7 +40,7 @@
h4 {
font-size: 1.4em;
.fa {
.fa, .far {
margin-right: 0.5em;
}
}

View file

@ -42,11 +42,14 @@ namespace Flowsharp.Web.ViewComponents.Controllers
activity.Id = Guid.NewGuid().ToString().Replace("-", "");
var editorShape = await displayManager.BuildEditorAsync(activity, this, false);
var activityToken = await workflowTokenizer.TokenizeActivityAsync(activity, cancellationToken);
var model = new ActivityEditorEditViewModel
{
ActivityJson = JsonConvert.SerializeObject(activity),
ActivityJson = activityToken.ToString(),
ActivityEditorShape = editorShape,
};
return View("Edit", model);
}

View file

@ -13,7 +13,7 @@
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Add</button>
<button type="submit" class="btn btn-primary save-button">Add</button>
</div>
</form>
</div>