Current section

Files

Jump to
form src form.erl
Raw

src/form.erl

-module(form).
-behaviour(supervisor).
-behaviour(application).
-include_lib("form/include/meta.hrl").
-compile(export_all).
-export([start/0,
start/1,
start/2,
stop/1,
new/2,
new/3,
init/1,
id/0,
dispatch/2]).
-export([steps/3, caption/3, fields/3, buttons/3]).
-export([field/3, field/1]).
-define(M,
application:get_env(form, module, form_backend)).
% FORM API
sources(Object) -> sources(Object, []).
sources(Object, Options) ->
(?M):sources(Object, Options).
type(Object) -> (?M):type(Object).
kind(Options) -> (?M):kind(Options).
pos(Object, X) -> (?M):pos(Object, X).
extract(Object, X, Opt) -> (?M):extract(Object, X, Opt).
extract(Object, X, Ref, Opt) ->
(?M):extract(Object, X, Ref, Opt).
evoke(Object, X, Value) -> (?M):evoke(Object, X, Value).
id() -> fun (X) -> X end.
atom(List) when is_list(List) ->
string:join([nitro:to_list(L) || L <- List], "_");
atom(Scalar) -> nitro:to_list(Scalar).
dispatch(Object, Options) ->
(?M):dispatch(Object, Options).
new(A, B) -> new(A, B, []).
new(Doc = #document{}, Object, Opt) ->
(?M):new(Doc, Object, Opt);
new(Document, _O, _) -> Document.
steps(Doc, Obj, Opt) -> (?M):steps(Doc, Obj, Opt).
caption(Doc, Obj, Opt) -> (?M):caption(Doc, Obj, Opt).
fields(Doc, Obj, Opt) -> (?M):fields(Doc, Obj, Opt).
field(Field, Obj, Opt) -> (?M):field(Field, Obj, Opt).
field(Field) -> (?M):field(Field).
buttons(Doc, Obj, Opt) -> (?M):buttons(Doc, Obj, Opt).
translate(A, B) -> (?M):translate(A, B).
translate(A) -> (?M):translate(A).
val(A, B) -> (?M):val(A, B).
fieldType(A, B, C, D, E) ->
(?M):fieldType(A, B, C, D, E).
fieldType(A, B, C, D) -> (?M):fieldType(A, B, C, D).
proto(A) -> (?M):proto(A).
update(A) -> (?M):update(A).
% OTP
stop(_) -> ok.
start() -> start(normal, []).
start(_) -> start().
init([]) -> {ok, {{one_for_one, 5, 10}, []}}.
start(_, _) ->
supervisor:start_link({local, form}, form, []).