Skip to content

Commit

Permalink
Update form template
Browse files Browse the repository at this point in the history
  • Loading branch information
kekefreedog committed Dec 1, 2024
1 parent b9423b3 commit 24276f8
Show file tree
Hide file tree
Showing 2 changed files with 130 additions and 17 deletions.
11 changes: 6 additions & 5 deletions resources/Hbs/Partials/form.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
{{!-- data-type="color" --}}
{{#if item.placeholder}}placeholder="{{item.placeholder}}"{{else}}placeholder=" "{{/if}}
{{#if item.readonly}}readonly=""{{/if}}
{{#if item.default includeZero=false}}value="{{item.default}}" default="{{item.default}}"{{/if}}
{{#if item.default includeZero=false}}value="{{#is item.default "randomHex()"}}{{colorHexRandom}}{{else}}{{item.default}}{{/is}}" default="{{item.default}}"{{/if}}
{{#if item.select.[0].value includeZero=false}}min="{{item.select.[0].value}}"{{/if}}
{{#if item.select.[1].value includeZero=false}}max="{{item.select.[1].value}}"{{/if}}
{{#if item.required}}required=""{{/if}}
Expand All @@ -64,14 +64,15 @@
autocomplete="off"
{{#if item.placeholder}}placeholder="{{item.placeholder}}"{{/if}}
{{#if item.disabled}}disabled=""{{else}}{{#if ../form.onready}}disabled="loading"{{/if}}{{/if}}
{{#if item._style.select.tag}}/>{{else}}>{{#if item.select}}
{{#if item.select.url}}data-select-remote="{{JSONstringify item.select}}"{{/if}}
{{#if item._style.select.tag}}/>{{else}}>{{#if item.select}}{{#if item.select.url}}{{else}}
{{#each item.select as |option|}}<option
{{#if option.value includeZero=false}}value="{{option.value}}"{{/if}}
{{#if item.default includeZero=false}}{{#is item.default option.value}}selected=""{{/is}}{{else}}{{#if option.default}}selected=""{{/if}}{{/if}}
{{#if option.default}}default=""{{/if}}
{{#if option.disabled}}disabled=""{{/if}}
>{{option.label}}</option>{{/each}}
{{/if}}</select>{{/if}}
{{/if}}{{/if}}</select>{{/if}}

{{!-- Password Input --}}
{{else}}{{#is item.type "password"}}
Expand Down Expand Up @@ -252,11 +253,11 @@
{{!-- Submit --}}
<div class="col s12 screen-flex screen-{{#if form.confirm.align}}{{form.confirm.align}}{{else}}left{{/if}}{{#if form.confirm.invert}} screen-direction-x-desc{{/if}}">
{{!-- Reset Button --}}
{{#if form.reset}}<button class="btn waves-effect waves-light red white-text m{{#if form.confirm.invert}}l{{else}}r{{/if}}-5" type="reset" {{#if form.onready}}disabled=""{{/if}}>Reset
{{#if form.reset}}<button class="btn waves-effect waves-light red white-text m{{#if form.confirm.invert}}l{{else}}r{{/if}}-5" type="reset" {{#if form.onready}}disabled="loading"{{/if}}>Reset
<i class="material-icons right">delete_forever</i>
</button>{{/if}}
{{!-- Submit button --}}
{{#if form.confirm}}<button class="btn waves-effect waves-light green" type="submit" {{#if form.onready}}disabled=""{{/if}}>{{#isString form.confirm}}{{form.confirm}}{{else}}{{#isObject form.confirm}}{{#if form.confirm.title}}{{form.confirm.title}}{{/if}}{{else}}Save{{/isObject}}{{/isString}}
{{#if form.confirm}}<button class="btn waves-effect waves-light green" type="submit" {{#if form.onready}}disabled="loading"{{/if}}>{{#isString form.confirm}}{{form.confirm}}{{else}}{{#isObject form.confirm}}{{#if form.confirm.title}}{{form.confirm.title}}{{/if}}{{else}}Save{{/isObject}}{{/isString}}
{{#isObject form.confirm}}{{#if form.confirm.icon}}<i class="{{form.confirm.icon.class}} right">{{form.confirm.icon.text}}</i>{{/if}}{{else}}<i class="material-icons right">save</i>{{/isObject}}
</button>{{/if}}
</div>
Expand Down
136 changes: 124 additions & 12 deletions src/Front/Library/Utility/Form.ts
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ export default class Form {
let result:FormData = new FormData();

// Get all select and input on form el
let items = formEl.querySelectorAll("select, input");
let items = formEl.querySelectorAll("select[name], input[name]");

// Check items
if(items.length)
Expand All @@ -409,7 +409,7 @@ export default class Form {
itemResult = this.extractKeyValue(items[i] as HTMLElement);

// Check itemResult
if(itemResult !== null)
if(itemResult !== null && itemResult[0] !== "")

// Push value of current input
result.append(itemResult[0] as string, itemResult[1]);
Expand Down Expand Up @@ -458,6 +458,9 @@ export default class Form {
// Get formdata
let formData:FormData = this.getFormData(target);

console.log("--dev--");
console.log(formData);

// Lock form
this.lock();

Expand Down Expand Up @@ -668,7 +671,7 @@ export default class Form {
public lock = ():void => {

// Get all select and input on form el
let items = this._formEl.querySelectorAll("select, input, button[type=\"submit\"], button[type=\"reset\"]");
let items = this._formEl.querySelectorAll("select[name], input[name], button[type=\"submit\"], button[type=\"reset\"]");

// Check items
if(items.length)
Expand Down Expand Up @@ -706,7 +709,7 @@ export default class Form {
public unlock = ():void => {

// Get all select and input on form el
let items = this._formEl.querySelectorAll("select, input, button[type=\"submit\"], button[type=\"reset\"]");
let items = this._formEl.querySelectorAll("select[name], input[name], button[type=\"submit\"], button[type=\"reset\"]");

// Check items
if(items.length)
Expand All @@ -729,12 +732,19 @@ export default class Form {
// Set Read only
items[i].removeAttribute("disabled");

}else
// Chech button
if(items[i].tagName == "BUTTON" && items[i].hasAttribute("disabled") && items[i].getAttribute("disabled") == "loading"){
}else{

// Set Read only
items[i].removeAttribute("disabled");
if(items[i].tagName == "BUTTON")

console.log(items[i].tagName == "BUTTON" && items[i].hasAttribute("disabled") && items[i].getAttribute("disabled") == "loading");

// Chech button
if(items[i].tagName == "BUTTON" && items[i].hasAttribute("disabled") && items[i].getAttribute("disabled") == "loading"){

// Set Read only
items[i].removeAttribute("disabled");

}

}

Expand Down Expand Up @@ -1115,11 +1125,26 @@ export default class Form {
// Declare result
let result = null;

// Check itemEl
if("type" in itemEl && itemEl.type && typeof itemEl.type === "string" && typeof this[`${itemEl.type}Retrieve`] === "function")
// Get type
let type:string|null = null;

// Get type of input el
if("type" in itemEl && itemEl.type && typeof itemEl.type === "string")

// Set type
type = itemEl.type;

// Get type of input el
if("type" in itemEl.dataset && itemEl.dataset.type && typeof itemEl.dataset.type === "string")

// Set type
type = itemEl.dataset.type;

// Check type
if(typeof type === "string" && typeof this[`${type}Retrieve`] === "function")

// Set result
result = this[`${itemEl.type}Retrieve`](itemEl);
result = this[`${type}Retrieve`](itemEl);

// Return null
return result;
Expand Down Expand Up @@ -1155,6 +1180,93 @@ export default class Form {

}

/**
* Retrieve Select
*
* @param itemEl:HTMLElement
* @return null|Array<any>
*/
private selectRetrieve = (itemEl:HTMLElement):null|Array<any> => {

// Set result
let result:null|Array<any> = null;

// Check value
if("value" in itemEl && "name" in itemEl){

let key:string = itemEl.name as string;

// Set result
let value:string = itemEl.value as string;

// Push in result
result = [key, value];

}

// Return result
return result;

}

/**
* Retrieve Date
*
* @param itemEl:HTMLElement
* @return null|Array<any>
*/
private dateRetrieve = (itemEl:HTMLElement):null|Array<any> => {

// Set result
let result:null|Array<any> = null;

// Check value
if("value" in itemEl && "name" in itemEl){

let key:string = itemEl.name as string;

// Set result
let value:string = itemEl.value as string;

// Push in result
result = [key, value];

}

// Return result
return result;

}

/**
* Number Date
*
* @param itemEl:HTMLElement
* @return null|Array<any>
*/
private numberRetrieve = (itemEl:HTMLElement):null|Array<any> => {

// Set result
let result:null|Array<any> = null;

// Check value
if("value" in itemEl && "name" in itemEl){

let key:string = itemEl.name as string;

// Set result
let value:number = itemEl.value as number;

// Push in result
result = [key, value];

}

// Return result
return result;

}

/**
* Retrieve Email
*
Expand Down

0 comments on commit 24276f8

Please sign in to comment.