Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 33 additions & 3 deletions src/sugoi/form/elements/Enum.hx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ class Enum extends FormElement<Int>
public var verticle:Bool;
public var labelRight:Bool;
var checked : Array<Bool>;
public var activatedValues:Array<Int>;


public var columns:Int;
Expand All @@ -34,6 +35,7 @@ class Enum extends FormElement<Int>

this.verticle = verticle;
this.labelRight = labelRight;


//trace("value = " + value);

Expand All @@ -44,6 +46,9 @@ class Enum extends FormElement<Int>
}

columns = 1;


this.activatedValues = new Array();
}

override function getTypedValue(str:String):Int {
Expand All @@ -62,6 +67,11 @@ class Enum extends FormElement<Int>
return Type.resolveEnum(enumName).createByIndex(value);
}

public function setActivatedValues(activatedValues:Array<Int>)
{
this.activatedValues = activatedValues;
}

override public function render():String
{
var s = "";
Expand All @@ -74,7 +84,23 @@ class Enum extends FormElement<Int>

var c = 0;

var array = Type.allEnums(Type.resolveEnum(enumName));
var array2 = Type.allEnums(Type.resolveEnum(enumName));
//Filter the Enum with activatedValues
var array = new Array();
if(this.activatedValues.length == 0)
{
array = array2;
}
else
{
for(v in this.activatedValues)
{
array.push(array2[v]);
}
}




var rowsPerColumn = Math.ceil(array.length / columns);
s = "<table style='margin-bottom:8px;'><tr>";
Expand All @@ -95,8 +121,12 @@ class Enum extends FormElement<Int>
var label;

var t = Form.translator;

label = "<label for=\"" + n + c + "\" >" + t._(Std.string(row)) +"</label>\n";
if (t == null){
label = "<label for=\"" + n + c + "\" >" + Std.string(row) +"</label>\n";
}else{
label = "<label for=\"" + n + c + "\" >" + t._(Std.string(row)) +"</label>\n";
}


if (labelRight)
{
Expand Down
37 changes: 31 additions & 6 deletions src/sugoi/form/elements/Flags.hx
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ class Flags<T> extends FormElement<Int>
var checked : Array<Bool>;

public var columns:Int;

public var flagsToRemove:Array<String>;

/**
*
Expand Down Expand Up @@ -86,11 +88,17 @@ class Flags<T> extends FormElement<Int>
}

columns = 1;

this.flagsToRemove = new Array();
}

public function setFlagsToRemove(flagsToRemove:Array<String>)
{
this.flagsToRemove = flagsToRemove;
}

override public function populate()
{

var v = Web.getParamValues(parentForm.name + "_" + name);
value = 0;

Expand All @@ -102,7 +110,6 @@ class Flags<T> extends FormElement<Int>
val.set( FakeFlag.createByIndex(Std.parseInt(vv)) );
//i++;
}

value = val.toInt();
}

Expand All @@ -118,12 +125,18 @@ class Flags<T> extends FormElement<Int>
{
var s = "";
var n = parentForm.name + "_" +name;


var array = Lambda.array(data);

var tagCss = getClasses();
var labelCss = getLabelClasses();

var c = 0;
var array = Lambda.array(data);




if (array != null)
{
//trace("L" + array.length);
Expand All @@ -142,12 +155,24 @@ class Flags<T> extends FormElement<Int>

var row:Dynamic = array[c];

var checkbox = "<input type=\"checkbox\" class=\"" + tagCss + "\" name=\""+n+"[]\" id=\""+n+c+"\" value=\""+c+"\" " + (checked[c]? "checked":"") +" ></input>\n";
var label;
var checkbox = "";
if(flagsToRemove.indexOf(row)==-1)
{
checkbox = "<input type=\"checkbox\" class=\"" + tagCss + "\" name=\""+n+"[]\" id=\""+n+c+"\" value=\""+c+"\" " + (checked[c]? "checked":"") +" ></input>\n";
}
else
{
checkbox = "<input type=\"hidden\" class=\"" + tagCss + "\" name=\""+n+"[]\" id=\""+n+c+"\" value=\""+c+"\" " + (checked[c]? "checked":"") +" ></input>\n";
}
var label = "";

var t = Form.translator;

label = "<label for=\"" + n + c + "\" class=\""+''/*labelCss*/+"\" > " + t._(row) +"</label>\n";
if(flagsToRemove.indexOf(row)==-1)
{
label = "<label for=\"" + n + c + "\" class=\""+''/*labelCss*/+"\" > " + t._(row) +"</label>\n";
}



if (labelRight)
Expand Down