diff --git a/include/nitro.hrl b/include/nitro.hrl index 9e030c2..9cb7edc 100644 --- a/include/nitro.hrl +++ b/include/nitro.hrl @@ -67,7 +67,7 @@ -record(checkbox, {?ELEMENT_BASE(element_checkbox), autofocus, checked=false, disabled, form, name, required, value}). -record(color, {?ELEMENT_BASE(element_color), autocomplete, autofocus, disabled, form, list, name, value}). -record(date, {?ELEMENT_BASE(element_date), autocomplete, autofocus, disabled, form, list, max, min, name, step, readonly, required, value}). --record(calendar, {?ELEMENT_BASE(element_calendar), autocomplete, autofocus, disabled, form, list, maxDate, minDate, format, name, step, readonly, required, value, placeholder, onSelect, disableDayFn}). +-record(calendar, {?ELEMENT_BASE(element_calendar), autocomplete, autofocus, disabled, form, list, maxDate, minDate, format, name, step, readonly, required, value, placeholder, onSelect, disableDayFn, position,reposition}). -record(datetime, {?ELEMENT_BASE(element_datetime), autocomplete, autofocus, disabled, form, list, max, min, name, step, readonly, required, value}). -record(datetime_local, {?ELEMENT_BASE(element_datetime_local), autocomplete, autofocus, disabled, form, list, max, min, name, step, readonly, required, value}). -record(email, {?ELEMENT_BASE(element_email), autocomplete, autofocus, disabled, form, list, maxlength, multiple, name, pattern, placeholder, readonly, required, size, value}). diff --git a/src/elements/element_calendar.erl b/src/elements/element_calendar.erl index 5f8b663..c00e23b 100644 --- a/src/elements/element_calendar.erl +++ b/src/elements/element_calendar.erl @@ -47,7 +47,7 @@ render_element(Record) -> ], wf_tags:emit_tag(<<"input">>, nitro:render(Record#calendar.body), List). -init(Id,#calendar{minDate=Min,maxDate=Max,lang=Lang,format=Form,value=Value,onSelect=SelectFn,disableDayFn=DisDayFn}) -> +init(Id,#calendar{minDate=Min,maxDate=Max,lang=Lang,format=Form,value=Value,onSelect=SelectFn,disableDayFn=DisDayFn, position=Pos,reposition=Repos}) -> ID = nitro:to_list(Id), I18n = case Lang of undefined -> "clLangs.ua"; Lang -> "clLangs."++nitro:to_list(Lang) end, Format = case Form of undefined -> "YYYY-MM-DD"; Form -> Form end, @@ -56,6 +56,8 @@ init(Id,#calendar{minDate=Min,maxDate=Max,lang=Lang,format=Form,value=Value,onSe MaxDate = case Max of {Y1,M1,D1} -> nitro:f("new Date(~s,~s,~s)",[nitro:to_list(Y1),nitro:to_list(M1-1),nitro:to_list(D1)]); _ -> "new Date(2087, 4, 13)" end, OnSelect = case SelectFn of undefined -> "null"; _ -> SelectFn end, DisDay = case DisDayFn of undefined -> "null"; _ -> nitro:f("function(thisDate){return ~s(thisDate);}",[DisDayFn]) end, + Position = case Pos of undefined -> "bottom left"; _ -> nitro:to_list(Pos) end, + Reposition = case Repos of undefined -> "true"; _ -> nitro:to_list(Repos) end, nitro:wire(nitro:f( "pickers['~s'] = new Pikaday({ field: document.getElementById('~s'), @@ -67,7 +69,9 @@ init(Id,#calendar{minDate=Min,maxDate=Max,lang=Lang,format=Form,value=Value,onSe maxDate: ~s, format: '~s', onSelect: ~s, - disableDayFn: ~s + disableDayFn: ~s, + position: '~s', + reposition: ~s });", - [ID,ID,I18n,DefaultDate,MinDate,MaxDate,Format,OnSelect,DisDay] + [ID,ID,I18n,DefaultDate,MinDate,MaxDate,Format,OnSelect,DisDay,Position,Reposition] )). \ No newline at end of file