Skip to content

Commit

Permalink
Merge branch 'vvilerio-mergeableOneOf'
Browse files Browse the repository at this point in the history
  • Loading branch information
EricWittmann committed Oct 29, 2021
2 parents 4edcb38 + 0f4ea32 commit a16f766
Show file tree
Hide file tree
Showing 33 changed files with 1,804 additions and 85 deletions.
14 changes: 10 additions & 4 deletions front-end/studio/src/app/editor.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,15 @@ import {AddTagDialogComponent} from "./pages/apis/{apiId}/editor/_components/dia
import {CloneDefinitionDialogComponent} from "./pages/apis/{apiId}/editor/_components/dialogs/clone-definition.component";
import {ClonePathDialogComponent} from "./pages/apis/{apiId}/editor/_components/dialogs/clone-path.component";
import {PropertyRowComponent} from "./pages/apis/{apiId}/editor/_components/forms/definition/property-row.component";
import {OneOfRowComponent} from "./pages/apis/{apiId}/editor/_components/forms/definition/oneof-row.component";
import {ServersSectionComponent} from "./pages/apis/{apiId}/editor/_components/forms/shared/servers-section.component";
import {DefinitionItemComponent} from "./pages/apis/{apiId}/editor/_components/forms/definition-item.component";
import {DefinitionFormComponent} from "./pages/apis/{apiId}/editor/_components/forms/definition-form.component";
import {PathFormComponent} from "./pages/apis/{apiId}/editor/_components/forms/path-form.component";
import {ChannelFormComponent} from "./pages/apis/{apiId}/editor/_components/forms/channel-form.component";
import {MessageTraitFormComponent} from "./pages/apis/{apiId}/editor/_components/forms/messagetrait-form.component";
import {MessageFormComponent} from "./pages/apis/{apiId}/editor/_components/forms/message-form.component";
import {MessageItemComponent} from "./pages/apis/{apiId}/editor/_components/forms/message-item.component";
import {MessageTraitItemComponent} from "./pages/apis/{apiId}/editor/_components/forms/messagetrait-item.component";
import {OperationTraitFormComponent} from "./pages/apis/{apiId}/editor/_components/forms/operationtrait-form.component";
import {OperationTraitItemComponent} from "./pages/apis/{apiId}/editor/_components/forms/operationtrait-item.component";
Expand Down Expand Up @@ -156,6 +159,9 @@ import {HttpHeadersComponent} from "./pages/apis/{apiId}/editor/_components/form
import {HeaderRowComponent} from "./pages/apis/{apiId}/editor/_components/forms/shared/header-row.component";
import {AddHeaderDialogComponent} from "./pages/apis/{apiId}/editor/_components/dialogs/add-header.component";
import {CloneChannelDialogComponent} from "./pages/apis/{apiId}/editor/_components/dialogs/clone-channel.component";
import {MessageEditorComponent} from "./pages/apis/{apiId}/editor/_components/editors/message-editor.component";
import {OneOfInMessageEditorComponent} from "./pages/apis/{apiId}/editor/_components/editors/oneof-in-message-editor.component";
import {AddOneOfInMessageDialogComponent} from "./pages/apis/{apiId}/editor/_components/dialogs/add-message-reference.component";

@NgModule({
imports: [
Expand All @@ -167,11 +173,11 @@ import {CloneChannelDialogComponent} from "./pages/apis/{apiId}/editor/_componen
ChannelOperationInfoSectionComponent, MessageSectionComponent, PayloadTabComponent, HeadersTabComponent,
SetLicenseDialogComponent, ClonePathDialogComponent,
CloneDefinitionDialogComponent, ScopesInputComponent, AddTagDialogComponent, UndoIconComponent, SchemaTypeEditorComponent,
NoOperationComponent, ContentComponent, HttpHeadersComponent, PropertyRowComponent, PathFormComponent, ChannelFormComponent,
MessageTraitFormComponent, MessageTraitItemComponent, OperationTraitFormComponent, OperationTraitItemComponent,
NoOperationComponent, ContentComponent, HttpHeadersComponent, PropertyRowComponent, OneOfRowComponent, PathFormComponent, ChannelFormComponent,
MessageTraitFormComponent, MessageFormComponent, MessageTraitItemComponent, MessageItemComponent, OperationTraitFormComponent, OperationTraitItemComponent,
QueryParamRowComponent, SectionComponent, RequestBodySectionComponent, DefinitionItemComponent, DefinitionFormComponent,
FormDataParamRowComponent, ResponseTab30Component, EditorMasterComponent, AsyncApiEditorMasterComponent, ApiEditorComponent,
AddPathDialogComponent, AddChannelDialogComponent, ParameterEditorComponent, AddResponseDialogComponent,
AddPathDialogComponent, AddChannelDialogComponent, AddOneOfInMessageDialogComponent, ParameterEditorComponent, AddResponseDialogComponent,
CloneResponseDialogComponent, RedoIconComponent, PathInfoSectionComponent, OperationTraitEditorComponent,
ChannelInfoSectionComponent, ResponseTabComponent, AddMediaTypeDialogComponent, AddHeaderDialogComponent, MainFormComponent, AsyncApiMainFormComponent,
RenameEntityDialogComponent, AddExampleDialogComponent, EditExampleDialogComponent, AddExample20DialogComponent,
Expand All @@ -187,7 +193,7 @@ import {CloneChannelDialogComponent} from "./pages/apis/{apiId}/editor/_componen
InlineExampleEditorComponent, DefinitionExampleSectionComponent, PropertyEditorComponent, HeaderParamRowComponent,
HeaderParamsSectionComponent, OperationsSectionComponent, ChannelOperationsSectionComponent, MediaTypeRowComponent,
HeaderRowComponent, CollaboratorAggregateComponent, CollaboratorOverlayComponent, CookieParamsSectionComponent, CookieParamRowComponent,
ResponseEditorComponent, MessageTraitEditorComponent, ResponseFormComponent, CloneResponseDefinitionDialogComponent,
ResponseEditorComponent, MessageTraitEditorComponent, MessageEditorComponent, OneOfInMessageEditorComponent, ResponseFormComponent, CloneResponseDefinitionDialogComponent,
AsyncApiEditorComponent, GraphQLEditorComponent, PropertiesSectionComponent, InheritanceSchemasSectionComponent,
SchemaRowComponent, AddSchemaDialogComponent, CloneChannelDialogComponent
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,14 @@ import {ComponentType} from "../editor/_models/component-type.model";
import {DataTableColumn, DataTableRow} from "../../../../components/common/data-table.component";
import * as moment from "moment";
import {
AaiComponents,
CombinedVisitorAdapter,
Components,
Document,
DocumentType,
IDefinition,
Library,
NodeCompat,
TraverserDirection
} from "apicurio-data-models";

Expand Down Expand Up @@ -416,6 +419,8 @@ class ComponentFinder extends CombinedVisitorAdapter {
return "#/components/securitySchemes/";
case ComponentType.link:
return "#/components/links/";
case ComponentType.message:
return "#/components/messages/";
case ComponentType.messageTrait:
return "#/components/messageTraits";
}
Expand All @@ -433,6 +438,20 @@ class ComponentFinder extends CombinedVisitorAdapter {
}
}

visitComponents(node: Components): void {
if (this.type == ComponentType.message) {
let messages: Components = (<AaiComponents>node)?.messages;

if(NodeCompat.isDefined(messages)){
Object.keys(messages).forEach((messageName)=>{
this.componentFound(messages[messageName])

})
}

}
}

visitMessageTraitDefinition(node: IDefinition): void {
if (this.type == ComponentType.messageTrait) {
this.componentFound(node);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,43 @@
margin-right: 4px;
}

.aai-editor .editor-master .editor-outline .api-message {
padding-left: 15px;
font-size: 14px;
}
.aai-editor .editor-master .editor-outline .api-message.hover {
cursor: pointer;
background-color: #d1eaf7;
}
.aai-editor .editor-master .editor-outline .api-message.selected {
background-color: #a5d6ef;
border-left: 2px solid #39a5dc;
}
.aai-editor .editor-master .editor-outline .api-message.contexted,
.aai-editor .editor-master .editor-outline .api-message.contexted:hover {
background-color: #FFCC87;
border-left: 2px dotted #E89F3D;
}
.aai-editor .editor-master .editor-outline .api-message.selected .label {
-webkit-transition: border-color 350ms, box-shadow 350ms;
-moz-transition: border-color 350ms, box-shadow 350ms;
-ms-transition: border-color 350ms, box-shadow 350ms;
-o-transition: border-color 350ms, box-shadow 350ms;
transition: border-color 350ms, box-shadow 350ms;
}
.aai-editor .editor-master .editor-outline .api-message.selected .label:hover {
box-shadow: 0 0 3px #646464;
border: 1px solid #666;
}
.aai-editor .editor-master .editor-outline .api-message.selected .label.selected {
border: 1px solid black;
box-shadow: 0 0 3px #141414;
}

.api-message-item > * {
margin-right: 4px;
}

.editor-master .editor-outline .master-entity-list {
border: 1px solid transparent;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,25 @@
</li>
</ul>

<!-- Message Context Menu -->
<ul id="message-context-menu" class="dropdown-menu context-menu" *ngIf="contextMenuType === 'message'"
(window:keydown)="onGlobalKeyDown($event)"
[style.left]="contextMenuPos.left" [style.top]="contextMenuPos.top">
<li>
<a href="#" onclick="return false" (click)="renameMessage()">
<span class="fa fa-pencil-square-o"></span>
<span>Rename</span>
</a>
</li>
<li class="divider"></li>
<li>
<a href="#" onclick="return false" (click)="deleteMessage()">
<span class="pficon pficon-delete"></span>
<span>Delete</span>
</a>
</li>
</ul>

<!-- Search - Used to Filter Channels and Data Type -->
<div class="editor-search">
<search [placeholder]="'Search everything...'" [searchId]="'masterSearch'" (onSearch)="filterAll($event)"></search>
Expand Down Expand Up @@ -133,6 +152,28 @@
</div>
</section>

<!-- Messages Section -->
<section type="message" label="Messages" [counterItems]="messages()" [inForm]="false"
collaborationNodePath="/components/messages"
contextHelp="Reusable message properties (headers, correlationId, contentType, ...) can be defined through Messages.">
<span actions>
<icon-button (onClick)="openAddMessageEditor()" [pullRight]="true" type="add" title="Create Message"></icon-button>
<icon-button *ngIf="importsEnabled()" (onClick)="importMessages()" [pullRight]="true" type="import" title="Import Messages"></icon-button>
</span>
<div body tabindex="0" class="message-list master-entity-list" (keydown)="onDefinitionsKeypress($event)" #msgList>
<signpost *ngIf="!hasMessages()">
<span>No messages have been created.</span>
<a (click)="openAddMessageEditor()">Add a message</a>
</signpost>

<div class="api-message {{ messageClasses(message) }}" *ngFor="let message of messages()">
<div class="api-message-item" message-item [message]="message"
(click)="msgList.focus() ; selectMessage(message)"
(contextmenu)="showMessageContextMenu($event, message)"></div>
</div>
</div>
</section>

<!-- Operation Traits Section -->
<section type="operationtrait" label="Operation Traits" [counterItems]="operationTraits()" [inForm]="false"
collaborationNodePath="/components/operationTraits"
Expand Down Expand Up @@ -205,4 +246,12 @@
validationPattern="[a-zA-Z0-9\.\-_]+"
validationError="Enter a valid name (only alpha-numeric characters are allowed - no whitespace)."
(onRename)="renameMessageTrait($event)"></rename-entity-dialog>

<rename-entity-dialog #renameMessageDialog
type="Message"
title="Rename Message"
warning="Renaming a Message will also update any references to the message elsewhere in the API (e.g. operation payloads)."
validationPattern="[a-zA-Z0-9\.\-_]+"
validationError="Enter a valid name (only alpha-numeric characters are allowed - no whitespace)."
(onRename)="renameMessage($event)"></rename-entity-dialog>
</div>
Loading

0 comments on commit a16f766

Please sign in to comment.