| const parametars = parameters(); | const parametars = parameters(); | ||||
| // Izvlacenje targets iz DOM strane | // Izvlacenje targets iz DOM strane | ||||
| // atribute parameters | // atribute parameters | ||||
| // 1 atribut: | |||||
| // code = ' ' | |||||
| // code = ' ' | |||||
| for(let i = 0; i < parametars.length; i++){ | 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 | // css class parameters | ||||
| // TODO | |||||
| // TODO Igor | |||||
| // for (let i = 0; i < parametars.length; i++) { | |||||
| // const param = parametars[i]; | |||||
| // param.targets = $(`.${param.code}`); | |||||
| // inicijalizacija transformacija | // inicijalizacija transformacija | ||||
| let transforms = []; | let transforms = []; | ||||
| for(let i=0;i<par.targets.length;i++) | for(let i=0;i<par.targets.length;i++) | ||||
| { | { | ||||
| const transformFactory = new TransformsFactory(); | 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 | // perform transform | ||||
| for(let i = 0; i < transforms.length; i++){ | for(let i = 0; i < transforms.length; i++){ | ||||
| const transform = transforms[i]; | const transform = transforms[i]; | ||||
| if(transform.validate()){ | |||||
| transform.execute(); | transform.execute(); | ||||
| } | |||||
| } | } | ||||
| // prepare print (optioning) | // prepare print (optioning) |
| { | { | ||||
| constructor(code,selectors) | constructor(code,selectors) | ||||
| { | { | ||||
| // br-removecolumn | |||||
| this.code = code; | this.code = code; | ||||
| // br-removecolumn-2 | |||||
| this.codeFull=''; | |||||
| // true | |||||
| this.codeHaveVars; | |||||
| // table | |||||
| this.selectors = selectors; | this.selectors = selectors; | ||||
| // <table></table>,<table></table>...] | |||||
| this.targets = []; | 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; | |||||
| } | } | ||||
| } | } |
| const parameters = () => | const parameters = () => | ||||
| { | { | ||||
| // var parametarsFiles = readeFiles('/parameters'); | |||||
| // parametarsFiles.map(p => new Param(p)); | |||||
| return [ | return [ | ||||
| new Param("br-size",["p","span"]), | new Param("br-size",["p","span"]), | ||||
| new Param("br-shownumberrows",["table"]), | new Param("br-shownumberrows",["table"]), |
| import $ from "jquery"; | import $ from "jquery"; | ||||
| export class BorderColorTransform extends Transform { | export class BorderColorTransform extends Transform { | ||||
| constructor(object){ | |||||
| super(); | |||||
| this.object = object; | |||||
| constructor(param){ | |||||
| super(param); | |||||
| } | } | ||||
| execute(){ | execute(){ | ||||
| $(this.object).addClass("border-red"); | $(this.object).addClass("border-red"); | ||||
| } | } | ||||
| rolback(){ | rolback(){ | ||||
| $(this.object).removeClass("border-red"); | $(this.object).removeClass("border-red"); | ||||
| } | } |
| import $ from "jquery"; | import $ from "jquery"; | ||||
| export class ColorTransform extends Transform { | export class ColorTransform extends Transform { | ||||
| constructor(object){ | |||||
| super(); | |||||
| this.object = object; | |||||
| constructor(param){ | |||||
| super(param); | |||||
| } | } | ||||
| execute(){ | execute(){ | ||||
| $(this.object).addClass("color-transform"); | $(this.object).addClass("color-transform"); | ||||
| } | } |
| /* @media print { */ | |||||
| @media print { | |||||
| .color-transform{ | .color-transform{ | ||||
| color: blue; | color: blue; | ||||
| } | } | ||||
| /* } */ | |||||
| } |
| import $ from "jquery"; | import $ from "jquery"; | ||||
| export class HideTransform extends Transform { | export class HideTransform extends Transform { | ||||
| constructor(object){ | |||||
| super(); | |||||
| this.object = object; | |||||
| constructor(param){ | |||||
| super(param); | |||||
| } | } | ||||
| execute(){ | execute(){ | ||||
| // Zbog !important u CSS React app morali smo odraditi na ovaj nacin | // Zbog !important u CSS React app morali smo odraditi na ovaj nacin | ||||
| $(this.object).attr("style", "display: none !important"); | $(this.object).attr("style", "display: none !important"); | ||||
| // $(this.object).hide(); | // $(this.object).hide(); | ||||
| } | } | ||||
| rolback(){ | rolback(){ | ||||
| $(this.object).show(); | $(this.object).show(); | ||||
| } | } |
| export class RemoveTableColumnTransform extends Transform | export class RemoveTableColumnTransform extends Transform | ||||
| { | { | ||||
| constructor(object,column) | |||||
| constructor(param) | |||||
| { | { | ||||
| super(); | |||||
| this.object = object; | |||||
| this.column = column; | |||||
| super(param); | |||||
| } | } | ||||
| execute(){ | execute(){ | ||||
| const column = this.column; | |||||
| const column = this.value; | |||||
| // (`${this.object}`).find("tbody").find("tr").each(function () { | // (`${this.object}`).find("tbody").find("tr").each(function () { | ||||
| (($(this.object).find("thead")).find("tr")).find("th").eq(column).remove(); | (($(this.object).find("thead")).find("tr")).find("th").eq(column).remove(); | ||||
| ($(this.object).find("tbody")).find("tr").each(function () { | ($(this.object).find("tbody")).find("tr").each(function () { |
| export class RemoveTableHeaderTransform extends Transform | export class RemoveTableHeaderTransform extends Transform | ||||
| { | { | ||||
| constructor(object) | |||||
| constructor(param) | |||||
| { | { | ||||
| super(); | |||||
| this.object = object; | |||||
| super(param); | |||||
| } | } | ||||
| execute(){ | execute(){ | ||||
| // ($(this.object).find("tbody")).find("tr").eq(this.row).remove(); | // ($(this.object).find("tbody")).find("tr").eq(this.row).remove(); |
| export class RemoveTableRowTransform extends Transform | export class RemoveTableRowTransform extends Transform | ||||
| { | { | ||||
| constructor(object,row) | |||||
| constructor(param) | |||||
| { | { | ||||
| super(); | |||||
| this.object = object; | |||||
| this.row = row; | |||||
| super(param); | |||||
| } | } | ||||
| execute(){ | execute(){ | ||||
| const row = this.row; | |||||
| const row = this.value; | |||||
| // ($(this.object).find("tbody")).find("tr").eq(this.row).remove(); | // ($(this.object).find("tbody")).find("tr").eq(this.row).remove(); | ||||
| $(this.object).find("tbody").each(function () { | $(this.object).find("tbody").each(function () { | ||||
| $(this).find('tr').eq(row).remove(); | $(this).find('tr').eq(row).remove(); |
| 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' ); | |||||
| } | |||||
| } |
| export class ShowNumberRowsTransformation extends Transform | export class ShowNumberRowsTransformation extends Transform | ||||
| { | { | ||||
| constructor(object,rows) | |||||
| constructor(param) | |||||
| { | { | ||||
| super(); | |||||
| this.object = object; | |||||
| this.rows = rows; | |||||
| super(param); | |||||
| } | } | ||||
| execute(){ | execute(){ | ||||
| const rows = this.rows; | |||||
| const rows = this.value; | |||||
| const count = ($(this.object).find("tbody")).children('tr').length; | const count = ($(this.object).find("tbody")).children('tr').length; | ||||
| $this.object.find("tbody").each(function () { | $this.object.find("tbody").each(function () { | ||||
| for(let i=rows;i<count;i++) | for(let i=rows;i<count;i++) | ||||
| }); | }); | ||||
| }; | }; | ||||
| rolback(){ | rolback(){ | ||||
| const rows = this.rows; | |||||
| const rows = this.value; | |||||
| const count = ($(this.object).find("tbody")).children('tr').length; | const count = ($(this.object).find("tbody")).children('tr').length; | ||||
| $this.object.find("tbody").each(function () { | $this.object.find("tbody").each(function () { | ||||
| for(let i=rows;i<count;i++) | for(let i=rows;i<count;i++) |
| export class Transform{ | 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(){}; | execute(){}; | ||||
| rolback(){}; | rolback(){}; | ||||
| } | } |
| import { RemoveTableRowTransform } from "./transformations/remove-table-row-transform"; | import { RemoveTableRowTransform } from "./transformations/remove-table-row-transform"; | ||||
| import { ShowNumberRowsTransformation } from "./transformations/show-number-rows-transformation"; | import { ShowNumberRowsTransformation } from "./transformations/show-number-rows-transformation"; | ||||
| import { BorderColorTransform } from "./transformations/border-color-transformation/border-color-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{ | export class TransformsFactory{ | ||||
| produce(code,object,value) | |||||
| produce(code,object,selectors) | |||||
| { | { | ||||
| if(code == null){ | |||||
| if(code == null){ | |||||
| return null; | return null; | ||||
| } | } | ||||
| const param = {code: code, object: object, selectors: selectors}; | |||||
| if(code === ("br-hide")){ | if(code === ("br-hide")){ | ||||
| // Ovo ne sme nikako preko atributa | // Ovo ne sme nikako preko atributa | ||||
| return new HideTransform(object); | |||||
| return new HideTransform(param); | |||||
| } else if(code === ("br-color")){ | } else if(code === ("br-color")){ | ||||
| return new ColorTransform(object); | |||||
| return new ColorTransform(param); | |||||
| } else if(code === ("br-removecolumn")){ | } else if(code === ("br-removecolumn")){ | ||||
| return new RemoveTableColumnTransform(object,value); | |||||
| return new RemoveTableColumnTransform(param); | |||||
| } else if(code === ("br-removerow")){ | } else if(code === ("br-removerow")){ | ||||
| return new RemoveTableRowTransform(object,value); | |||||
| return new RemoveTableRowTransform(param); | |||||
| } else if(code === ("br-removeheader")){ | } else if(code === ("br-removeheader")){ | ||||
| return new RemoveTableRowTransform(object,0); | |||||
| return new RemoveTableHeaderTransform(param); | |||||
| } else if(code === ("br-removetablestyles")){ | } else if(code === ("br-removetablestyles")){ | ||||
| return new RemoveTableStylesTransform(object,value); | |||||
| return new RemoveTableStylesTransform(param); | |||||
| } else if(code === ("br-shownumberrows")){ | } else if(code === ("br-shownumberrows")){ | ||||
| return new ShowNumberRowsTransformation(object,value); | |||||
| return new ShowNumberRowsTransformation(param); | |||||
| } else if(code === ("br-bordercolor")){ | } else if(code === ("br-bordercolor")){ | ||||
| return new BorderColorTransform(object); | |||||
| return new BorderColorTransform(param); | |||||
| } | } | ||||
| return null; | return null; | ||||
| } | } |