FCF - Full Stack Javascript Framework
OpenSource is a full stack development framework designed to simplify the development of WEB projects of various complexity levels.
It is based on unique technologies that open up new opportunities in development approaches with NODEJS.
Revisión | c6b8610094e153fd3f6d702e6d94b5e94a96341a (tree) |
---|---|
Tiempo | 2021-04-08 22:50:08 |
Autor | Vladimir Markin <v.o.markin221@gmai...> |
Commiter | Vladimir Markin |
save
@@ -26,10 +26,10 @@ | ||
26 | 26 | class="${{decor.textEditClass}}$" |
27 | 27 | style='width:100%' |
28 | 28 | onclick="fcf.getWrapper(this).onClick(event)" |
29 | - oninput="fcf.getWrapper(this).onInput(event)" | |
29 | + oninput="if (fcf.getWrapper(this)) fcf.getWrapper(this).onInput(event)" | |
30 | 30 | value="@{{fcf.encodeHtml(fcf.dateFormat(args.value, args.format))}}@" |
31 | 31 | ></input> |
32 | 32 | </td> |
33 | 33 | </tr> |
34 | 34 | </table> |
35 | -<input name="dtsel" style="display:none" oninput="fcf.getWrapper(this).onInputDT(event)"/> | |
35 | +<input name="dtsel" style="display:none" oninput="if (fcf.getWrapper(this)) fcf.getWrapper(this).onInputDT(event)"/> |
@@ -33,7 +33,7 @@ | ||
33 | 33 | @{{!args.enable ? "readonly" : ""}}@ |
34 | 34 | class="${{decor.textEditClass}}$" |
35 | 35 | style='width:100%' |
36 | - oninput="fcf.getWrapper(this).onInput(event)" | |
36 | + oninput="if (fcf.getWrapper(this)) fcf.getWrapper(this).onInput(event)" | |
37 | 37 | value="@{{fcf.encodeHtml(args.value)}}@" |
38 | 38 | > |
39 | 39 | </td> |
@@ -33,7 +33,7 @@ | ||
33 | 33 | @{{!args.enable ? "readonly" : ""}}@ |
34 | 34 | class="${{decor.textEditClass}}$" |
35 | 35 | style='width:100%' |
36 | - oninput="fcf.getWrapper(this).onInput(event)" | |
36 | + oninput="if (fcf.getWrapper(this)) fcf.getWrapper(this).onInput(event)" | |
37 | 37 | value="@{{fcf.encodeHtml(args.value)}}@" |
38 | 38 | > |
39 | 39 | </td> |
@@ -1,60 +0,0 @@ | ||
1 | -fcf.module({ | |
2 | - name: "fcfControls:templates/password.hooks.js", | |
3 | - dependencies: [], | |
4 | - module: function(){ | |
5 | - return { | |
6 | - // | |
7 | - // void hookBeforeBuild(a_taskInfo) | |
8 | - // The hook is executed before assembling the template arguments | |
9 | - // | |
10 | - // hookBeforeBuild: function(a_taskInfo) { | |
11 | - // }, | |
12 | - | |
13 | - // | |
14 | - // void hookAfterBuild(a_taskInfo) | |
15 | - // The hook is executed after assembling the template arguments | |
16 | - // | |
17 | - // hookAfterBuild: function(a_taskInfo) { | |
18 | - // }, | |
19 | - | |
20 | - // | |
21 | - // void hookAfterBuild(a_taskInfo) | |
22 | - // The hook is executed after building the template's system arguments | |
23 | - // | |
24 | - // hookAfterSystemBuild: function(a_taskInfo) { | |
25 | - // }, | |
26 | - | |
27 | - // | |
28 | - // Object of hooks for programmatically populated arguments | |
29 | - // | |
30 | - // hooksProgramableArgument: { | |
31 | - // // | |
32 | - // // @result Returns the value of an argument or a Promise object | |
33 | - // // | |
34 | - // "ARG_NAME": function(a_taskInfo){ | |
35 | - // } | |
36 | - // }, | |
37 | - | |
38 | - // | |
39 | - // Object of the hooks preprocessing of the template arguments | |
40 | - // | |
41 | - // hooksBeforeArgument: { | |
42 | - // // | |
43 | - // // @result Can return the value of an argument or Promise or undefined | |
44 | - // // | |
45 | - // "ARG_NAME": function(a_taskInfo) { | |
46 | - // } | |
47 | - // }, | |
48 | - | |
49 | - // | |
50 | - // Object of the hooks postprocessing of the template arguments | |
51 | - // hooksAfterArgument: { | |
52 | - // // | |
53 | - // // @result Can return the value of an argument or Promise or undefined | |
54 | - // // | |
55 | - // "ARG_NAME": function(a_taskInfo) { | |
56 | - // } | |
57 | - // }, | |
58 | - }; | |
59 | - } | |
60 | -}); |
@@ -1,6 +1,7 @@ | ||
1 | 1 | //~OPTIONS |
2 | 2 | { |
3 | - extends: "@controls:text-edit" | |
3 | + extends: "@controls:text-edit", | |
4 | + clientRendering: true, | |
4 | 5 | } |
5 | 6 | |
6 | 7 | //~ARGUMENTS |
@@ -23,7 +24,7 @@ | ||
23 | 24 | @{{!args.enable ? "readonly" : ""}}@ |
24 | 25 | class="${{decor.textEditClass}}$" |
25 | 26 | style='width:100%' |
26 | - oninput="fcf.getWrapper(this).onInput(event)" | |
27 | + oninput="if (fcf.getWrapper(this)) fcf.getWrapper(this).onInput(event)" | |
27 | 28 | value="@{{typeof args.value === "boolean" ? "*******" : fcf.encodeHtml(args.value)}}@" |
28 | 29 | > |
29 | 30 | </td> |
@@ -31,7 +31,7 @@ | ||
31 | 31 | @{{ args.search ? "" : "readonly" }}@ |
32 | 32 | @{{ args.enable ? "" : "disabled" }}@ |
33 | 33 | value="@{{fcf.encodeHtml(args.data)}}@" |
34 | - oninput="fcf.getWrapper(this).onInput(event);" | |
34 | + oninput="if (fcf.getWrapper(this)) fcf.getWrapper(this).onInput(event);" | |
35 | 35 | > |
36 | 36 | </input> |
37 | 37 | </td> |
@@ -30,7 +30,7 @@ | ||
30 | 30 | @{{!args.enable ? "readonly" : ""}}@ |
31 | 31 | class="${{decor.textEditClass}}$" |
32 | 32 | style='width:100%' |
33 | - oninput="fcf.getWrapper(this).onInput(event)" | |
33 | + oninput="if (fcf.getWrapper(this)) fcf.getWrapper(this).onInput(event)" | |
34 | 34 | value="@{{fcf.encodeHtml(args.value)}}@" |
35 | 35 | ></input> |
36 | 36 | </td> |
@@ -10,6 +10,6 @@ | ||
10 | 10 | <textarea @{{args.autofocus ? "autofocus" : ""}}@ |
11 | 11 | style="@{{fcf.styleElement("width", args.width)}}@ @{{fcf.styleElement("height", args.height)}}@" |
12 | 12 | class="@{{decor.textareaClass}}@" |
13 | - oninput="fcf.getWrapper(this).onInput(event)" | |
13 | + oninput="if (fcf.getWrapper(this)) fcf.getWrapper(this).onInput(event)" | |
14 | 14 | onkeypress="fcf.getWrapper(this).onKeyPress(event)" |
15 | 15 | >%{{ render.write(fcf.encodeHtml(args.value)); }}%</textarea> |