| @@ -9,20 +9,21 @@ function core(){ | |||
| const parametars = parameters(); | |||
| // Izvlacenje targets iz DOM strane | |||
| // atribute parameters | |||
| // 1 atribut: | |||
| // code = ' ' | |||
| // code = ' ' | |||
| for(let i = 0; i < parametars.length; i++){ | |||
| const param = parametars[i]; | |||
| param.targets = $(`[code=${param.code}]`); | |||
| parametars[i].targets = $(`[code*="${parametars[i].code}"]`); | |||
| // console.log("Results for " + `[code*="${parametars[i].code}"]`) | |||
| // console.log(parametars[i].targets); | |||
| } | |||
| // br-removecolumn-15 | |||
| // br-removecolumn-2 | |||
| // TODO regex find by attr | |||
| // css class parameters | |||
| // TODO | |||
| // TODO Igor | |||
| // for (let i = 0; i < parametars.length; i++) { | |||
| // const param = parametars[i]; | |||
| // param.targets = $(`.${param.code}`); | |||
| // inicijalizacija transformacija | |||
| let transforms = []; | |||
| @@ -31,22 +32,17 @@ function core(){ | |||
| for(let i=0;i<par.targets.length;i++) | |||
| { | |||
| const transformFactory = new TransformsFactory(); | |||
| const selector = (par.targets[i]).tagName; | |||
| const value = (par.targets[i]).getAttribute("val"); | |||
| par.value = value; | |||
| // Provera da li selector odgovara listi selektora za taj code | |||
| if(par.checkSelector(selector)) | |||
| { | |||
| const transform = transformFactory.produce(par.code, par.targets[i], par.value); | |||
| transforms.push(transform); | |||
| } | |||
| const transform = transformFactory.produce(par.code,par.targets[i],par.selectors); | |||
| transforms.push(transform); | |||
| } | |||
| }); | |||
| // perform transform | |||
| for(let i = 0; i < transforms.length; i++){ | |||
| const transform = transforms[i]; | |||
| if(transform.validate()){ | |||
| transform.execute(); | |||
| } | |||
| } | |||
| // prepare print (optioning) | |||
| @@ -3,17 +3,15 @@ export class Param | |||
| { | |||
| constructor(code,selectors) | |||
| { | |||
| // br-removecolumn | |||
| this.code = code; | |||
| // br-removecolumn-2 | |||
| this.codeFull=''; | |||
| // true | |||
| this.codeHaveVars; | |||
| // table | |||
| this.selectors = selectors; | |||
| // <table></table>,<table></table>...] | |||
| this.targets = []; | |||
| this.value = null; | |||
| } | |||
| // Check for selector exists in array of selectors | |||
| // If exists return true, else return false | |||
| checkSelector(selector) { | |||
| return (this.selectors.indexOf(selector.toLowerCase()) > -1); | |||
| } | |||
| calculateValue(value){ | |||
| this.value = value; | |||
| } | |||
| } | |||
| @@ -3,6 +3,8 @@ import { Param } from "./parameter"; | |||
| const parameters = () => | |||
| { | |||
| // var parametarsFiles = readeFiles('/parameters'); | |||
| // parametarsFiles.map(p => new Param(p)); | |||
| return [ | |||
| new Param("br-size",["p","span"]), | |||
| new Param("br-shownumberrows",["table"]), | |||
| @@ -3,15 +3,12 @@ import {Transform} from "../transform"; | |||
| import $ from "jquery"; | |||
| export class BorderColorTransform extends Transform { | |||
| constructor(object){ | |||
| super(); | |||
| this.object = object; | |||
| constructor(param){ | |||
| super(param); | |||
| } | |||
| execute(){ | |||
| $(this.object).addClass("border-red"); | |||
| } | |||
| rolback(){ | |||
| $(this.object).removeClass("border-red"); | |||
| } | |||
| @@ -3,11 +3,9 @@ import {Transform} from "../transform"; | |||
| import $ from "jquery"; | |||
| export class ColorTransform extends Transform { | |||
| constructor(object){ | |||
| super(); | |||
| this.object = object; | |||
| constructor(param){ | |||
| super(param); | |||
| } | |||
| execute(){ | |||
| $(this.object).addClass("color-transform"); | |||
| } | |||
| @@ -1,5 +1,5 @@ | |||
| /* @media print { */ | |||
| @media print { | |||
| .color-transform{ | |||
| color: blue; | |||
| } | |||
| /* } */ | |||
| } | |||
| @@ -2,17 +2,14 @@ import {Transform} from "./transform"; | |||
| import $ from "jquery"; | |||
| export class HideTransform extends Transform { | |||
| constructor(object){ | |||
| super(); | |||
| this.object = object; | |||
| constructor(param){ | |||
| super(param); | |||
| } | |||
| execute(){ | |||
| // Zbog !important u CSS React app morali smo odraditi na ovaj nacin | |||
| $(this.object).attr("style", "display: none !important"); | |||
| // $(this.object).hide(); | |||
| } | |||
| rolback(){ | |||
| $(this.object).show(); | |||
| } | |||
| @@ -3,14 +3,12 @@ import $ from 'jquery'; | |||
| export class RemoveTableColumnTransform extends Transform | |||
| { | |||
| constructor(object,column) | |||
| constructor(param) | |||
| { | |||
| super(); | |||
| this.object = object; | |||
| this.column = column; | |||
| super(param); | |||
| } | |||
| execute(){ | |||
| const column = this.column; | |||
| const column = this.value; | |||
| // (`${this.object}`).find("tbody").find("tr").each(function () { | |||
| (($(this.object).find("thead")).find("tr")).find("th").eq(column).remove(); | |||
| ($(this.object).find("tbody")).find("tr").each(function () { | |||
| @@ -3,10 +3,9 @@ import $ from 'jquery'; | |||
| export class RemoveTableHeaderTransform extends Transform | |||
| { | |||
| constructor(object) | |||
| constructor(param) | |||
| { | |||
| super(); | |||
| this.object = object; | |||
| super(param); | |||
| } | |||
| execute(){ | |||
| // ($(this.object).find("tbody")).find("tr").eq(this.row).remove(); | |||
| @@ -3,14 +3,12 @@ import $ from 'jquery'; | |||
| export class RemoveTableRowTransform extends Transform | |||
| { | |||
| constructor(object,row) | |||
| constructor(param) | |||
| { | |||
| super(); | |||
| this.object = object; | |||
| this.row = row; | |||
| super(param); | |||
| } | |||
| execute(){ | |||
| const row = this.row; | |||
| const row = this.value; | |||
| // ($(this.object).find("tbody")).find("tr").eq(this.row).remove(); | |||
| $(this.object).find("tbody").each(function () { | |||
| $(this).find('tr').eq(row).remove(); | |||
| @@ -0,0 +1,20 @@ | |||
| import {Transform} from "./transform"; | |||
| import $ from "jquery"; | |||
| export class RemoveTableStylesTransform extends Transform { | |||
| constructor(param){ | |||
| super(param); | |||
| this.object = param.object; | |||
| this.class = this.object.attributes.class.value; | |||
| } | |||
| execute(){ | |||
| $(this.object).removeClass(); | |||
| //$(this.object).removeAttr( 'style' ); | |||
| } | |||
| rolback(){ | |||
| $(this.object).addClass(this.class); | |||
| //$(this.object).addAttr( 'style' ); | |||
| } | |||
| } | |||
| @@ -3,14 +3,12 @@ import $ from 'jquery'; | |||
| export class ShowNumberRowsTransformation extends Transform | |||
| { | |||
| constructor(object,rows) | |||
| constructor(param) | |||
| { | |||
| super(); | |||
| this.object = object; | |||
| this.rows = rows; | |||
| super(param); | |||
| } | |||
| execute(){ | |||
| const rows = this.rows; | |||
| const rows = this.value; | |||
| const count = ($(this.object).find("tbody")).children('tr').length; | |||
| $this.object.find("tbody").each(function () { | |||
| for(let i=rows;i<count;i++) | |||
| @@ -20,7 +18,7 @@ export class ShowNumberRowsTransformation extends Transform | |||
| }); | |||
| }; | |||
| rolback(){ | |||
| const rows = this.rows; | |||
| const rows = this.value; | |||
| const count = ($(this.object).find("tbody")).children('tr').length; | |||
| $this.object.find("tbody").each(function () { | |||
| for(let i=rows;i<count;i++) | |||
| @@ -1,4 +1,18 @@ | |||
| export class Transform{ | |||
| constructor(param) | |||
| { | |||
| this.object = param.object; | |||
| this.selectors = param.selectors; | |||
| this.selector = this.object.tagName; | |||
| const arrayCode = this.object.getAttribute("code").split('-'); | |||
| if(arrayCode.length > 2) | |||
| { | |||
| this.value = arrayCode[2]; | |||
| } | |||
| } | |||
| validate(){ | |||
| return (this.selectors.indexOf(this.selector.toLowerCase()) > -1); | |||
| }; | |||
| execute(){}; | |||
| rolback(){}; | |||
| } | |||
| @@ -5,31 +5,32 @@ import { RemoveTableColumnTransform } from "./transformations/remove-table-colum | |||
| import { RemoveTableRowTransform } from "./transformations/remove-table-row-transform"; | |||
| import { ShowNumberRowsTransformation } from "./transformations/show-number-rows-transformation"; | |||
| import { BorderColorTransform } from "./transformations/border-color-transformation/border-color-transformation"; | |||
| import { RemoveTableStylesTransform } from "./transformations/remove-table-style"; | |||
| import { RemoveTableHeaderTransform } from "./transformations/remove-table-header-transform"; | |||
| import { RemoveTableStylesTransform } from "./transformations/remove-table-styles"; | |||
| export class TransformsFactory{ | |||
| produce(code,object,value) | |||
| produce(code,object,selectors) | |||
| { | |||
| if(code == null){ | |||
| if(code == null){ | |||
| return null; | |||
| } | |||
| const param = {code: code, object: object, selectors: selectors}; | |||
| if(code === ("br-hide")){ | |||
| // Ovo ne sme nikako preko atributa | |||
| return new HideTransform(object); | |||
| return new HideTransform(param); | |||
| } else if(code === ("br-color")){ | |||
| return new ColorTransform(object); | |||
| return new ColorTransform(param); | |||
| } else if(code === ("br-removecolumn")){ | |||
| return new RemoveTableColumnTransform(object,value); | |||
| return new RemoveTableColumnTransform(param); | |||
| } else if(code === ("br-removerow")){ | |||
| return new RemoveTableRowTransform(object,value); | |||
| return new RemoveTableRowTransform(param); | |||
| } else if(code === ("br-removeheader")){ | |||
| return new RemoveTableRowTransform(object,0); | |||
| return new RemoveTableHeaderTransform(param); | |||
| } else if(code === ("br-removetablestyles")){ | |||
| return new RemoveTableStylesTransform(object,value); | |||
| return new RemoveTableStylesTransform(param); | |||
| } else if(code === ("br-shownumberrows")){ | |||
| return new ShowNumberRowsTransformation(object,value); | |||
| return new ShowNumberRowsTransformation(param); | |||
| } else if(code === ("br-bordercolor")){ | |||
| return new BorderColorTransform(object); | |||
| return new BorderColorTransform(param); | |||
| } | |||
| return null; | |||
| } | |||