silex-website-builder-goodevent
Version:
Free and easy website builder for everyone.
86 lines (76 loc) • 2 kB
text/typescript
/**
* Silex, live web creation
* http://projects.silexlabs.org/?/silex/
*
* Copyright (c) 2012 Silex Labs
* http://www.silexlabs.org/
*
* Silex is available under the GPL license
* http://www.silexlabs.org/silex/silex-licensing/
*/
/**
* @fileoverview A controller listens to a view element,
* and call the main {silex.controller.Controller} controller's methods
*
*/
import {Model} from '../types';
import {View} from '../types';
import {ControllerBase} from './controller-base';
/**
* @param view view class which holds the other views
*/
export class PropertyToolController extends ControllerBase {
constructor(model: Model, view: View) {
super(model, view);
}
/**
* add the provided elements to a given page
*/
addToPage(elements: HTMLElement[], opt_name = this.model.page.getCurrentPage()) {
// undo checkpoint
this.undoCheckPoint();
elements.forEach((element) => {
this.model.page.addToPage(element, opt_name);
});
}
/**
* remove the provided elements from a given page
*/
removeFromPage(elements: HTMLElement[], name: string) {
// undo checkpoint
this.undoCheckPoint();
elements.forEach((element) => {
this.model.page.removeFromPage(element, name);
});
}
/**
* add provided elements to all pages
*/
visibleOnAllPages(elements: HTMLElement[]) {
// undo checkpoint
this.undoCheckPoint();
elements.forEach((element) => {
this.model.page.removeFromAllPages(element);
});
}
/**
* add link to the provided elements
*/
addLink(elements: HTMLElement[], name: string) {
// undo checkpoint
this.undoCheckPoint();
elements.forEach((element) => {
this.model.element.setLink(element, name);
});
}
/**
* remove link from the provided elements
*/
removeLink(elements: HTMLElement[]) {
// undo checkpoint
this.undoCheckPoint();
elements.forEach((element) => {
this.model.element.setLink(element);
});
}
}