@ -23,3 +23,11 @@ RUN set -x \
&& rm -rf /tmp/* /var/lib/apt/lists/*
RUN phantomjs --version
# Install Google Chrome
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
RUN apt-get update
&& apt-get install -y google-chrome-stable
@ -65,12 +65,20 @@ module.exports = function (config) {
*/
singleRun: true,
customLaunchers: {
ChromeCustom: {
base: 'ChromeHeadless',
// We must disable the Chrome sandbox (Chrome's sandbox needs more permissions than Docker allows by default)
flags: ['--no-sandbox']
}
},
/**
* Run with chrome because phantom js does not provide all types, e.g. DragEvent
*
* available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['ChromeHeadless']
browsers: ['ChromeCustom']
};
config.set(_config);
@ -1,7 +1,7 @@
<div class="assets-container" [class.disabled]="isDisabled">
<div class="row">
<div class="col-4 drop-area-container">
<div class="drop-area" dnd-droppable (onDropSuccess)="onAssetDropped($event.dragData)" [allowDrop]="canDrop()" (sqxFileDrop)="addFiles($event)" (click)="selectorModal.show()">
<div class="drop-area" (sqxFileDrop)="addFiles($event)" (click)="selectorModal.show()">
Drop files here to add them.
</div>
@ -79,14 +79,6 @@ export class AssetsEditorComponent implements ControlValueAccessor {
public canDrop() {
const component = this;
return (dragData: any) => {
return !component.isDisabled && dragData instanceof AssetDto && !component.oldAssets.find(a => a.id === dragData.id);
public onAssetsSelected(assets: AssetDto[]) {
for (let asset of assets) {
this.oldAssets = this.oldAssets.push(asset);
@ -23,7 +23,7 @@
</ng-container>
<ng-container footer>
<button type="reset" class="float-left btn btn-secondary" (click)="complete()" [disabled]="editFormSubmitted">Cancel</button>
<button type="reset" class="float-left btn btn-secondary" (click)="complete()" [disabled]="editForm.submitted | async">Cancel</button>
<button type="submit" class="float-right btn btn-primary">Save</button>
</sqx-modal-dialog>
@ -1,4 +1,4 @@
<sqx-title message="{app} | Plans | Settings" parameter1="app" [value1]="ctx.appName"></sqx-title>
<sqx-title message="{app} | Plans | Settings" parameter1="app" [value1]="appsState.appName"></sqx-title>
<sqx-panel desiredWidth="61rem">
<div class="panel-header">
@ -3,7 +3,7 @@
<textarea class="form-control" #editor></textarea>
<div class="file-drop drag drop-area" [class.dragging]="draggedOver" dnd-droppable (onDropSuccess)="onItemDropped($event)">
<div class="file-drop drag drop-area">
<div class="drop-text">Drop assets here to add them.</div>
@ -7,10 +7,6 @@ $background: #fff;
height: 30rem;
.drop-area {
@include absolute(80px, 30px, 66px, 30px);
.fullscreen {
@include fixed(0, 0, 0, 0);
border: 0;
<div class="drop-container">
<div class="editor" #editor></div>
@ -6,7 +6,3 @@
border: 1px solid $color-input;
@include absolute(100px, 30px, 66px, 30px);
@ -112,7 +112,7 @@ export class AssetsState extends State<Snapshot> {
public search(query: string): Observable<any> {
this.next(s => ({ ...s, assetsPager: new Pager(0), assetsQuery: query }));
this.next(s => ({ ...s, assetsPager: new Pager(0, 0, 30), assetsQuery: query }));
return this.loadAssets();
@ -163,7 +163,7 @@ describe('SchemasState', () => {
expectToBeModified(schema_1);
});
describe('without selection', () => {
describe('with selection', () => {
beforeEach(() => {
schemasState.selectSchema(schema.name).subscribe();