| @@ -1,7 +1,6 @@ | |||
| import {TransformsFactory} from "./transforms-factory"; | |||
| import parameters from "./parameters/parameters"; | |||
| import $ from 'jquery'; | |||
| import { NoValueParameter } from "./parameters/no-value-parameter"; | |||
| function core(){ | |||
| @@ -12,7 +11,9 @@ function core(){ | |||
| // atribute parameters | |||
| // code = ' ' | |||
| for(let i = 0; i < parametars.length; i++){ | |||
| parametars[i].fillTargets(); | |||
| parametars[i].targets = $(`[code*="${parametars[i].code}"]`); | |||
| // console.log("Results for " + `[code*="${parametars[i].code}"]`) | |||
| // console.log(parametars[i].targets); | |||
| } | |||
| @@ -31,30 +32,17 @@ function core(){ | |||
| for(let i=0;i<par.targets.length;i++) | |||
| { | |||
| const transformFactory = new TransformsFactory(); | |||
| console.log(par.targets[i]); // Namerno ostavljeno zbog demonstracije problema | |||
| let selector = (par.targets[i]).tagName; | |||
| // Problem koji je izbio kod value i no value | |||
| if(selector === undefined) | |||
| selector =(par.targets[i][0]).tagName; | |||
| // Provera da li selector odgovara listi selektora za taj code | |||
| if(par.checkSelector(selector)) | |||
| { | |||
| try{ | |||
| const arrayCode = (par.targets[i][0].getAttribute("code")).split('-'); | |||
| if(arrayCode.length > 2) | |||
| par.value = arrayCode[2]; | |||
| } | |||
| catch{} | |||
| 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) | |||
| @@ -1,18 +0,0 @@ | |||
| import { Param } from "./parameter"; | |||
| import $ from 'jquery'; | |||
| export class NoValueParameter extends Param | |||
| { | |||
| constructor(code,selectors) | |||
| { | |||
| super(code,selectors); | |||
| } | |||
| // Check for selector exists in array of selectors | |||
| // If exists return true, else return false | |||
| checkSelector(selector) { | |||
| return (this.selectors.indexOf(selector.toLowerCase()) > -1); | |||
| } | |||
| fillTargets(){ | |||
| this.targets = $(`[code=${this.code}]`); | |||
| } | |||
| } | |||
| @@ -1,38 +0,0 @@ | |||
| import { Param } from "./parameter"; | |||
| import $ from 'jquery'; | |||
| export class OneValueParameter extends Param | |||
| { | |||
| constructor(code,selectors) | |||
| { | |||
| super(code,selectors); | |||
| } | |||
| // Check for selector exists in array of selectors | |||
| // If exists return true, else return false | |||
| checkSelector(selector) { | |||
| return (this.selectors.indexOf(selector.toLowerCase()) > -1); | |||
| } | |||
| fillTargets(){ | |||
| let code = ""; | |||
| for(let j = 0;j < this.selectors.length;j++){ | |||
| let thisCode = this.code; | |||
| let targets=[]; | |||
| const result = ($(this.selectors[j]) | |||
| .filter(function() { | |||
| if(this.hasAttribute("code")){ | |||
| const regex = new RegExp(`^(${thisCode}-)([0-9])+$`,'g'); | |||
| code = this.getAttribute("code"); | |||
| const arrayThisCode = thisCode.split('-'); | |||
| const arrayCode = code.split('-'); | |||
| if(arrayThisCode[0] == arrayCode[0] && arrayThisCode[1] == arrayCode[1]) | |||
| { | |||
| targets.push($(`${this.tagName.toLowerCase()}[code=${code}]`)); | |||
| } | |||
| return this.getAttribute("code").match(regex); | |||
| } | |||
| return false; | |||
| })); | |||
| if(result.length > 0) | |||
| this.targets = targets; | |||
| } | |||
| } | |||
| } | |||
| @@ -3,16 +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); | |||
| } | |||
| fillTargets(){ | |||
| } | |||
| } | |||
| @@ -1,19 +1,19 @@ | |||
| import { NoValueParameter } from "./no-value-parameter"; | |||
| import { OneValueParameter } from "./one-value-parameter"; | |||
| import { Param } from "./parameter"; | |||
| const parameters = () => | |||
| { | |||
| // var parametarsFiles = readeFiles('/parameters'); | |||
| // parametarsFiles.map(p => new Param(p)); | |||
| return [ | |||
| new NoValueParameter("br-size",["p","span"]), | |||
| new OneValueParameter("br-shownumberrows",["table"]), | |||
| new OneValueParameter("br-removerow",["table"]), | |||
| new NoValueParameter("br-removeheader",["table"]), | |||
| new OneValueParameter("br-removecolumn",["table"]), | |||
| new NoValueParameter("br-hide",["table","p","span"]), | |||
| new NoValueParameter("br-color",["h1","p","h4"]), | |||
| new NoValueParameter("br-bordercolor",["table","div"]) | |||
| new Param("br-size",["p","span"]), | |||
| new Param("br-shownumberrows",["table"]), | |||
| new Param("br-removerow",["table"]), | |||
| new Param("br-removeheader",["table"]), | |||
| new Param("br-removecolumn",["table"]), | |||
| new Param("br-hide",["table","p","span"]), | |||
| new Param("br-color",["h1","p","h4"]), | |||
| new Param("br-bordercolor",["table","div"]) | |||
| ]; | |||
| } | |||
| @@ -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(); | |||
| @@ -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(){}; | |||
| } | |||
| @@ -7,26 +7,27 @@ import { ShowNumberRowsTransformation } from "./transformations/show-number-rows | |||
| import { BorderColorTransform } from "./transformations/border-color-transformation/border-color-transformation"; | |||
| import { RemoveTableHeaderTransform } from "./transformations/remove-table-header-transform"; | |||
| export class TransformsFactory{ | |||
| produce(code,object,value) | |||
| produce(code,object,selectors) | |||
| { | |||
| 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 RemoveTableHeaderTransform(object); | |||
| return new RemoveTableHeaderTransform(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; | |||
| } | |||