diff --git a/client/package-lock.json b/client/package-lock.json index c5f81e8da40e16f62a982cdb5c9be65131176ef5..d490f65d5542a085d80c4959ce9ddddc4f2f09fb 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -122,9 +122,9 @@ } }, "@angular/animations": { - "version": "7.2.14", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.2.14.tgz", - "integrity": "sha512-K+wdq7TslmvDhrbwy65x7owE8wezI0fDdO+8SO9RU4m/w6R6vo4QS3uSdc5I2pxwm4QSXSc5eKhoWJkq0muTbQ==", + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.2.15.tgz", + "integrity": "sha512-8oBt3HLgd2+kyJHUgsd7OzKCCss67t2sch15XNoIWlOLfxclqU+EfFE6t/vCzpT8/+lpZS6LU9ZrTnb+UBj5jg==", "requires": { "tslib": "^1.9.0" } diff --git a/client/package.json b/client/package.json index a2bc8916f2d9152834f7dcaf967476aecc445273..867e63a50853a1b9c53c6329ddc1b6e7a932ac51 100644 --- a/client/package.json +++ b/client/package.json @@ -11,8 +11,8 @@ }, "private": true, "dependencies": { - "@angular/animations": "~7.2.0", - "@angular/cdk": "~7.3.7", + "@angular/animations": "^7.2.15", + "@angular/cdk": "^7.3.7", "@angular/common": "~7.2.0", "@angular/compiler": "~7.2.0", "@angular/core": "~7.2.0", diff --git a/client/src/app/app-routing.module.ts b/client/src/app/app-routing.module.ts index 278de4a288e4100e4de5673af5ee1cbdb09adc65..5754c121728e2d9ee3ba3eb5530311b08f0132fa 100644 --- a/client/src/app/app-routing.module.ts +++ b/client/src/app/app-routing.module.ts @@ -6,6 +6,7 @@ import {KataComponent} from './kata/kata.component'; import {ProgramCreateComponent} from './program-create/program-create.component'; import {KataCreateComponent} from './kata-create/kata-create.component'; + const routerOptions: ExtraOptions = { useHash: false, anchorScrolling: 'enabled' diff --git a/client/src/app/app.module.ts b/client/src/app/app.module.ts index 32ab379c4f667a9bfec61dc59a3396c7de916d02..1f38cdf27b090f67d9f80318148179973c4ca22d 100644 --- a/client/src/app/app.module.ts +++ b/client/src/app/app.module.ts @@ -7,7 +7,15 @@ import {TerminalAssertComponent} from './terminal-assert/terminal-assert.compone import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; import {MainLeftSideNavComponent} from './main-left-side-nav/main-left-side-nav.component'; import {LayoutModule} from '@angular/cdk/layout'; -import {MatToolbarModule, MatButtonModule, MatSidenavModule, MatIconModule, MatListModule} from '@angular/material'; +import { + MatToolbarModule, + MatButtonModule, + MatSidenavModule, + MatIconModule, + MatListModule, + MatStepperModule, + MatOptionModule, MatSelectModule +} from '@angular/material'; import {AppRoutingModule} from './app-routing.module'; import {RouterModule} from '@angular/router'; import {KataDisplayerComponent} from './kata-displayer/kata-displayer.component'; @@ -16,11 +24,13 @@ import {KataComponent} from './kata/kata.component'; import {AceEditorModule} from 'ng2-ace-editor'; import {KataCreateComponent} from './kata-create/kata-create.component'; import {ProgramCreateComponent} from './program-create/program-create.component'; -import {FormsModule} from '@angular/forms'; +import {FormsModule, ReactiveFormsModule} from '@angular/forms'; import {HttpClientModule} from '@angular/common/http'; import {RNotFoundComponent} from './rnot-found/rnot-found.component'; import {NgxUiLoaderModule} from 'ngx-ui-loader'; -import { AlertModule } from 'ngx-alerts'; +import {AlertModule} from 'ngx-alerts'; +import {MatInputModule} from '@angular/material'; +import {MatFormFieldModule} from '@angular/material/form-field'; @NgModule({ @@ -34,7 +44,7 @@ import { AlertModule } from 'ngx-alerts'; KataComponent, KataCreateComponent, ProgramCreateComponent, - RNotFoundComponent + RNotFoundComponent, ], imports: [ @@ -46,6 +56,13 @@ import { AlertModule } from 'ngx-alerts'; MatSidenavModule, MatIconModule, MatListModule, + MatStepperModule, + FormsModule, + ReactiveFormsModule, + MatFormFieldModule, + MatInputModule, + MatOptionModule, + MatSelectModule, AppRoutingModule, RouterModule, AceEditorModule, diff --git a/client/src/app/kata-create/kata-create.component.html b/client/src/app/kata-create/kata-create.component.html index 1837926e6f02b3e4d2287c88fafc38cadaeb59d2..1a7bbaaf1fe91d4b6c1b0c8f0d65faa270529d45 100644 --- a/client/src/app/kata-create/kata-create.component.html +++ b/client/src/app/kata-create/kata-create.component.html @@ -40,6 +40,59 @@ </div> </div> + <!-- <mat-horizontal-stepper [linear]="false" #stepper> + <mat-step [stepControl]="firstFormGroup"> + <form [formGroup]="firstFormGroup"> + <ng-template matStepLabel>Kata's options</ng-template> + <mat-form-field> + <mat-label>Display assert box</mat-label> + <mat-select (change)="UpdateChoice($event)" matNativeControl required> + <mat-option value="true">yes</mat-option> + <mat-option value="false">no</mat-option> + </mat-select> + </mat-form-field><br/> + <mat-form-field> + <input matInput autocomplete="off" placeholder="Kata's title" [(ngModel)]="title" required> + </mat-form-field><br/> + <mat-form-field> + <input matInput type="number" [(ngModel)]="numberOfAttempt" placeholder="Unlock solution at (n) attempt" required> + </mat-form-field> + + <div> + <button mat-button matStepperNext>Next</button> + </div> + </form> + </mat-step> + <mat-step [stepControl]="secondFormGroup"> + <form [formGroup]="secondFormGroup"> + <ng-template matStepLabel>Kata's instructions</ng-template> + + <textarea [(ngModel)]="rules" formControlName="secondCtrl" required></textarea> + + <br/> + <div> + <button mat-button matStepperPrevious>Back</button> + <button mat-button matStepperNext>Next</button> + </div> + </form> + </mat-step> + <mat-step [stepControl]="thirdFormGroup"> + <form [formGroup]="thirdFormGroup"> + <ng-template matStepLabel>Kata</ng-template> + <app-terminal-code [code]="solution" [type]="language" (new)="OnNewEventSolution($event)"></app-terminal-code> + <app-terminal-code style="margin-left: 20px;" [code]="assert" [type]="language" (new)="OnNewEventAssert($event)"></app-terminal-code><br/> + <app-terminal-code [code]="canva" [type]="language" (new)="OnNewEventCanva($event)"></app-terminal-code> + <textarea [ngClass]="{'success':status === 0,'error':status === 1,'':status === 2}" + style="white-space: pre-wrap" disabled>{{result}}</textarea><br/> + <div> + <button mat-button (click)="try()" type="button">Try my solution</button> + <button mat-button (click)="publish()" type="button">Create kata</button> + <button mat-button matStepperPrevious>Back</button> + <button mat-button (click)="stepper.reset()">Reset</button> + </div> + </form> + </mat-step> + </mat-horizontal-stepper>--> </div> diff --git a/client/src/app/program-create/program-create.component.html b/client/src/app/program-create/program-create.component.html index 31faa130fa9a2242f54471f37b696998be4faec2..63c9287b791488ec5ba2dc3c1d9cd648b6247636 100644 --- a/client/src/app/program-create/program-create.component.html +++ b/client/src/app/program-create/program-create.component.html @@ -2,7 +2,7 @@ <div class="d-flex flex-column"> <fieldset> <legend>New program</legend> - <div class="p-2"><label>Title</label><input placeholder="Some title.." type="text" [(ngModel)]="programTitle"/> + <div class="p-2"><label>Title</label><input matInput placeholder="Some title.." type="text" [(ngModel)]="programTitle"/> </div> <div class="p-2"><label>Targeted language</label><select (change)="update($event)"> <option value="python">python</option> @@ -10,7 +10,7 @@ </select></div> <div class="p-2"><label>Program description</label><textarea [(ngModel)]="programDescr" placeholder="Some text.."></textarea></div> - <div class="p-2"><label>Tags</label><input type="text" [(ngModel)]="programTags" + <div class="p-2"><label>Tags (_,_)</label><input type="text" [(ngModel)]="programTags" placeholder=" arrays,writeable,.."/></div> <div class="p-2"> diff --git a/client/src/app/program-create/program-create.component.scss b/client/src/app/program-create/program-create.component.scss index 1f3449f079f2951692132438119dbeb6e4e6cd00..e7c857dcc702d27c55fe3636fc34f135778a8d4f 100644 --- a/client/src/app/program-create/program-create.component.scss +++ b/client/src/app/program-create/program-create.component.scss @@ -1,3 +1,4 @@ + input[type=text]{ width: 100%; background-color: rgba(43, 47, 57, 1); diff --git a/client/src/styles.scss b/client/src/styles.scss index e7d6f82b6881e40f9b481b2cbf0cf186d596128f..4959ba18e965bce4615d95d6214d0b7a5b86cfd5 100644 --- a/client/src/styles.scss +++ b/client/src/styles.scss @@ -1,5 +1,4 @@ /* You can add global styles to this file, and also import other style files */ - html, body { height: 100%; --color-cloud: rgba(236, 240, 241, 1); @@ -37,6 +36,10 @@ body { } +button:focus{ +outline: none; +} + .button:hover { background-color: var(--color-button-hover); } diff --git a/server_rest/.idea/workspace.xml b/server_rest/.idea/workspace.xml index ee65090bc03369f5f927b1a1b2867b6b0e19f1a4..e01421b86db378773b02c8b9196313976e65bbe0 100644 --- a/server_rest/.idea/workspace.xml +++ b/server_rest/.idea/workspace.xml @@ -2,26 +2,9 @@ <project version="4"> <component name="ChangeListManager"> <list default="true" id="e6a1f2e5-4f60-4227-82bb-83eb10fa94a5" name="Default Changelist" comment=""> - <change beforePath="$PROJECT_DIR$/../client/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/../client/package-lock.json" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/../client/package.json" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/app.module.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/app.module.ts" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/kata-create/kata-create.component.html" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/kata-create/kata-create.component.html" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/kata-create/kata-create.component.scss" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/kata-create/kata-create.component.scss" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/kata-create/kata-create.component.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/kata-create/kata-create.component.ts" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/kata-displayer/kata-displayer.component.html" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/kata-displayer/kata-displayer.component.html" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/kata-displayer/kata-displayer.component.scss" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/kata-displayer/kata-displayer.component.scss" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/kata/kata.component.html" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/kata/kata.component.html" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/kata/kata.component.scss" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/kata/kata.component.scss" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/kata/kata.component.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/kata/kata.component.ts" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/languages_canvas.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/languages_canvas.ts" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/main-left-side-nav/main-left-side-nav.component.html" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/main-left-side-nav/main-left-side-nav.component.html" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/main-left-side-nav/main-left-side-nav.component.scss" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/main-left-side-nav/main-left-side-nav.component.scss" afterDir="false" /> <change beforePath="$PROJECT_DIR$/../client/src/app/program-create/program-create.component.html" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/program-create/program-create.component.html" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/program-create/program-create.component.scss" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/program-create/program-create.component.scss" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/program-create/program-create.component.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/program-create/program-create.component.ts" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/program-displayer/program-displayer.component.html" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/program-displayer/program-displayer.component.html" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/app/program-displayer/program-displayer.component.scss" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/program-displayer/program-displayer.component.scss" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/../client/src/styles.scss" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/styles.scss" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/target/classes/app.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/app.class" afterDir="false" /> </list> <ignored path="$PROJECT_DIR$/out/" /> <ignored path="$PROJECT_DIR$/target/" /> @@ -48,8 +31,8 @@ <file pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/src/main/java/app.java"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="243"> - <caret line="52" lean-forward="true" selection-start-line="52" selection-end-line="52" /> + <state relative-caret-position="153"> + <caret line="46" column="13" lean-forward="true" selection-start-line="46" selection-start-column="13" selection-end-line="46" selection-end-column="13" /> <folding> <element signature="imports" expanded="true" /> </folding> @@ -157,8 +140,8 @@ <foldersAlwaysOnTop value="true" /> </navigator> <panes> - <pane id="ProjectPane" /> <pane id="Scope" /> + <pane id="ProjectPane" /> <pane id="PackagesPane" /> </panes> </component> @@ -229,11 +212,13 @@ <workItem from="1557298032818" duration="4720000" /> <workItem from="1557322451462" duration="202000" /> <workItem from="1557327228313" duration="707000" /> + <workItem from="1557340241267" duration="154000" /> + <workItem from="1557383112195" duration="510000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="48450000" /> + <option name="totallyTimeSpent" value="49114000" /> </component> <component name="TodoView"> <todo-panel id="selected-file"> @@ -245,10 +230,10 @@ </todo-panel> </component> <component name="ToolWindowManager"> - <frame x="0" y="23" width="1920" height="1121" extended-state="0" /> + <frame x="0" y="23" width="1920" height="1121" extended-state="6" /> <editor active="true" /> <layout> - <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.2736954" /> + <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.1970181" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Image Layers" order="2" /> <window_info id="Designer" order="3" /> @@ -257,7 +242,7 @@ <window_info id="Favorites" order="6" side_tool="true" /> <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Find" order="1" /> - <window_info anchor="bottom" id="Run" order="2" weight="0.3595724" /> + <window_info anchor="bottom" id="Run" order="2" weight="0.35939643" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.39941692" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> @@ -490,8 +475,8 @@ </entry> <entry file="file://$PROJECT_DIR$/src/main/java/app.java"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="243"> - <caret line="52" lean-forward="true" selection-start-line="52" selection-end-line="52" /> + <state relative-caret-position="153"> + <caret line="46" column="13" lean-forward="true" selection-start-line="46" selection-start-column="13" selection-end-line="46" selection-end-column="13" /> <folding> <element signature="imports" expanded="true" /> </folding> diff --git a/server_rest/target/classes/app.class b/server_rest/target/classes/app.class index 4330328ec39ca3c488dd2ea4f9dae24083eb77d9..1c9802a0ba2547a05908d5756ebce45a16bfac3e 100644 Binary files a/server_rest/target/classes/app.class and b/server_rest/target/classes/app.class differ