Преглед изворни кода

Codefixed for simple targeting

master
Safet Purkovic пре 4 година
родитељ
комит
c233a32c4b

+ 7
- 19
src/core.js Прегледај датотеку

import {TransformsFactory} from "./transforms-factory"; import {TransformsFactory} from "./transforms-factory";
import parameters from "./parameters/parameters"; import parameters from "./parameters/parameters";
import $ from 'jquery'; import $ from 'jquery';
import { NoValueParameter } from "./parameters/no-value-parameter";


function core(){ function core(){


// atribute parameters // atribute parameters
// code = ' ' // code = ' '
for(let i = 0; i < parametars.length; i++){ 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);
} }


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();
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 // 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();
}
} }
// print // print
// prepare print (optioning) // prepare print (optioning)

+ 0
- 18
src/parameters/no-value-parameter.js Прегледај датотеку

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}]`);
}
}

+ 0
- 38
src/parameters/one-value-parameter.js Прегледај датотеку

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;
}
}
}

+ 7
- 8
src/parameters/parameter.js Прегледај датотеку

{ {
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);
}
fillTargets(){
} }
} }

+ 10
- 10
src/parameters/parameters.js Прегледај датотеку

import { NoValueParameter } from "./no-value-parameter";
import { OneValueParameter } from "./one-value-parameter";
import { Param } from "./parameter"; import { Param } from "./parameter";




const parameters = () => const parameters = () =>
{ {
// var parametarsFiles = readeFiles('/parameters');
// parametarsFiles.map(p => new Param(p));
return [ 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"])
]; ];
} }



+ 2
- 5
src/transformations/border-color-transformation/border-color-transformation.js Прегледај датотеку

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");
} }

+ 2
- 4
src/transformations/color-transformation/color-transforamtion.js Прегледај датотеку

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");
} }

+ 2
- 2
src/transformations/color-transformation/color-transformation.css Прегледај датотеку

/* @media print { */
@media print {
.color-transform{ .color-transform{
color: blue; color: blue;
} }
/* } */
}

+ 2
- 5
src/transformations/hide-transform.js Прегледај датотеку

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();
} }

+ 3
- 5
src/transformations/remove-table-column-transform.js Прегледај датотеку



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 () {

+ 2
- 3
src/transformations/remove-table-header-transform.js Прегледај датотеку



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();

+ 3
- 5
src/transformations/remove-table-row-transform.js Прегледај датотеку



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();

+ 4
- 6
src/transformations/show-number-rows-transformation.js Прегледај датотеку



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++)

+ 14
- 0
src/transformations/transform.js Прегледај датотеку

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(){};
} }

+ 9
- 8
src/transforms-factory.js Прегледај датотеку

import { BorderColorTransform } from "./transformations/border-color-transformation/border-color-transformation"; import { BorderColorTransform } from "./transformations/border-color-transformation/border-color-transformation";
import { RemoveTableHeaderTransform } from "./transformations/remove-table-header-transform"; import { RemoveTableHeaderTransform } from "./transformations/remove-table-header-transform";
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 RemoveTableHeaderTransform(object);
return new RemoveTableHeaderTransform(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;
} }

Loading…
Откажи
Сачувај