Rename validators, Make forms resizable
This commit is contained in:
@@ -6,16 +6,22 @@ note
|
||||
|
||||
class
|
||||
WSF_AGENT_VALIDATOR [G]
|
||||
|
||||
inherit
|
||||
|
||||
WSF_VALIDATOR [G]
|
||||
rename
|
||||
make as make_validator
|
||||
end
|
||||
|
||||
create
|
||||
make_with_agent
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make_with_agent (h:like handler; e: STRING)
|
||||
make (h: like handler; e: STRING)
|
||||
do
|
||||
make (e)
|
||||
make_validator (e)
|
||||
handler := h
|
||||
end
|
||||
|
||||
@@ -23,10 +29,9 @@ feature
|
||||
|
||||
is_valid (input: G): BOOLEAN
|
||||
do
|
||||
|
||||
Result := handler.item ( [input])
|
||||
Result := handler.item ([input])
|
||||
end
|
||||
|
||||
handler: FUNCTION [ANY, TUPLE [G], BOOLEAN]
|
||||
|
||||
handler: FUNCTION[ANY,TUPLE[G],BOOLEAN]
|
||||
end
|
||||
|
||||
@@ -10,13 +10,16 @@ class
|
||||
inherit
|
||||
|
||||
WSF_REGEXP_VALIDATOR
|
||||
rename
|
||||
make as make_regexp_validator
|
||||
end
|
||||
|
||||
create
|
||||
make_decimal_validator
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make_decimal_validator (e: STRING)
|
||||
make (e: STRING)
|
||||
-- Initialize with specified error message which will be displayed on validation failure
|
||||
do
|
||||
make_regexp_validator ("^[0-9]+(\.[0-9]*)?$|^\.[0-9]+$", e)
|
||||
|
||||
@@ -10,13 +10,16 @@ class
|
||||
inherit
|
||||
|
||||
WSF_REGEXP_VALIDATOR
|
||||
rename
|
||||
make as make_regexp_validator
|
||||
end
|
||||
|
||||
create
|
||||
make_email_validator
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make_email_validator (e: STRING)
|
||||
make (e: STRING)
|
||||
-- Initialize with specified error message which will be displayed on validation failure
|
||||
do
|
||||
make_regexp_validator ("^[a-zA-Z0-9._%%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$", e)
|
||||
|
||||
@@ -5,24 +5,26 @@ note
|
||||
revision: "$Revision$"
|
||||
|
||||
class
|
||||
WSF_MAX_VALIDATOR [G->FINITE[ANY]]
|
||||
WSF_MAX_VALIDATOR [G -> FINITE [ANY]]
|
||||
|
||||
inherit
|
||||
|
||||
WSF_VALIDATOR [G]
|
||||
rename
|
||||
make as make_validator
|
||||
redefine
|
||||
state
|
||||
end
|
||||
|
||||
create
|
||||
make_max_validator
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make_max_validator (m: INTEGER; e: STRING)
|
||||
make (m: INTEGER; e: STRING)
|
||||
-- Initialize with specified maximum and error message which will be displayed on validation failure
|
||||
do
|
||||
make (e)
|
||||
make_validator (e)
|
||||
max := m
|
||||
end
|
||||
|
||||
|
||||
@@ -5,24 +5,26 @@ note
|
||||
revision: "$Revision$"
|
||||
|
||||
class
|
||||
WSF_MIN_VALIDATOR [G->FINITE[ANY]]
|
||||
WSF_MIN_VALIDATOR [G -> FINITE [ANY]]
|
||||
|
||||
inherit
|
||||
|
||||
WSF_VALIDATOR [G]
|
||||
rename
|
||||
make as make_validator
|
||||
redefine
|
||||
state
|
||||
end
|
||||
|
||||
create
|
||||
make_min_validator
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make_min_validator (m: INTEGER; e: STRING)
|
||||
make (m: INTEGER; e: STRING)
|
||||
-- Initialize with specified minimum and error message which will be displayed on validation failure
|
||||
do
|
||||
make (e)
|
||||
make_validator (e)
|
||||
min := m
|
||||
end
|
||||
|
||||
|
||||
@@ -10,6 +10,9 @@ class
|
||||
inherit
|
||||
|
||||
WSF_REGEXP_VALIDATOR
|
||||
rename
|
||||
make as make_regexp_validator
|
||||
end
|
||||
|
||||
create
|
||||
make_with_message
|
||||
|
||||
@@ -10,19 +10,21 @@ class
|
||||
inherit
|
||||
|
||||
WSF_VALIDATOR [STRING]
|
||||
rename
|
||||
make as make_validator
|
||||
redefine
|
||||
state
|
||||
end
|
||||
|
||||
create
|
||||
make_regexp_validator
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make_regexp_validator (r, e: STRING)
|
||||
make (r, e: STRING)
|
||||
-- Initialize with specified regular expression and error message which will be displayed on validation failure
|
||||
do
|
||||
make (e)
|
||||
make_validator (e)
|
||||
regexp_string := r
|
||||
create regexp
|
||||
end
|
||||
|
||||
@@ -9,23 +9,41 @@ class
|
||||
|
||||
inherit
|
||||
|
||||
WSF_STATELESS_MULTI_CONTROL [WSF_CONTROL]
|
||||
WSF_STATELESS_MULTI_CONTROL [WSF_STATELESS_CONTROL]
|
||||
rename
|
||||
make as make_multi_control
|
||||
redefine
|
||||
add_control
|
||||
end
|
||||
|
||||
WSF_VALIDATABLE
|
||||
|
||||
create
|
||||
make
|
||||
make, make_with_label_width
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make
|
||||
-- Initialize
|
||||
do
|
||||
make_with_label_width (2)
|
||||
end
|
||||
|
||||
make_with_label_width (w: INTEGER)
|
||||
do
|
||||
make_multi_control
|
||||
tag_name := "form"
|
||||
label_width := w
|
||||
end
|
||||
|
||||
feature
|
||||
|
||||
add_control (c: WSF_STATELESS_CONTROL)
|
||||
do
|
||||
Precursor (c)
|
||||
if attached {WSF_FORM_ELEMENT_CONTROL[ANY]} c as fec then
|
||||
fec.set_label_width (label_width)
|
||||
end
|
||||
end
|
||||
|
||||
feature -- Validation
|
||||
@@ -49,4 +67,8 @@ feature -- Validation
|
||||
is_valid: BOOLEAN
|
||||
-- Tells whether the last validation was valid
|
||||
|
||||
feature
|
||||
|
||||
label_width: INTEGER
|
||||
|
||||
end
|
||||
|
||||
@@ -48,6 +48,13 @@ feature {NONE} -- Initialization
|
||||
error := ""
|
||||
end
|
||||
|
||||
feature
|
||||
|
||||
set_label_width (w: INTEGER)
|
||||
do
|
||||
label_width := w
|
||||
end
|
||||
|
||||
feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- State management
|
||||
|
||||
load_state (new_states: JSON_OBJECT)
|
||||
@@ -138,9 +145,9 @@ feature -- Implementation
|
||||
do
|
||||
body := ""
|
||||
if not label.is_empty then
|
||||
body.append ("<label class=%"col-lg-2 control-label%" for=%"" + value_control.control_name + "%">" + label + "</label>")
|
||||
body.append ("<label class=%"col-lg-"+label_width.out+" control-label%" for=%"" + value_control.control_name + "%">" + label + "</label>")
|
||||
end
|
||||
body.append ("<div class=%"col-lg-10%">")
|
||||
body.append ("<div class=%"col-lg-"+(12-label_width).out+"%">")
|
||||
body.append (value_control.render)
|
||||
body.append ("</div>")
|
||||
Result := render_tag (body, "")
|
||||
@@ -200,4 +207,6 @@ feature -- Properties
|
||||
error: STRING
|
||||
-- The error message that is displayed when client side validation fails
|
||||
|
||||
label_width: INTEGER
|
||||
|
||||
end
|
||||
|
||||
@@ -359,7 +359,7 @@ class WSF_INPUT_CONTROL extends WSF_CONTROL
|
||||
if state.text?
|
||||
@state['text'] = state.text
|
||||
@$el.val(state.text)
|
||||
|
||||
|
||||
class WSF_PASSWORD_CONTROL extends WSF_INPUT_CONTROL
|
||||
|
||||
class WSF_NAVLIST_ITEM_CONTROL extends WSF_BUTTON_CONTROL
|
||||
@@ -489,7 +489,7 @@ class WSF_FORM_ELEMENT_CONTROL extends WSF_CONTROL
|
||||
if message.length>0
|
||||
@$el.addClass("has-error")
|
||||
errordiv = $("<div />").addClass('help-block').addClass('validation').text(message)
|
||||
@$el.find(".col-lg-10").append(errordiv)
|
||||
@$el.children("div").append(errordiv)
|
||||
|
||||
update: (state) ->
|
||||
if state.error?
|
||||
|
||||
@@ -817,7 +817,7 @@ WSF_FORM_ELEMENT_CONTROL = (function(_super) {
|
||||
if (message.length > 0) {
|
||||
this.$el.addClass("has-error");
|
||||
errordiv = $("<div />").addClass('help-block').addClass('validation').text(message);
|
||||
return this.$el.find(".col-lg-10").append(errordiv);
|
||||
return this.$el.children("div").append(errordiv);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -35,13 +35,13 @@ feature
|
||||
--Number 1
|
||||
create textbox1.make ("1")
|
||||
create n1_container.make ("Number1", textbox1)
|
||||
n1_container.add_validator (create {WSF_DECIMAL_VALIDATOR}.make_decimal_validator ("Invalid Number"))
|
||||
n1_container.add_validator (create {WSF_DECIMAL_VALIDATOR}.make ("Invalid Number"))
|
||||
n1_container.add_validator (create {OWN_VALIDATOR}.make_own)
|
||||
form.add_control (n1_container)
|
||||
--Number 2
|
||||
create textbox2.make ("2")
|
||||
create n2_container.make ("Number2", textbox2)
|
||||
n2_container.add_validator (create {WSF_DECIMAL_VALIDATOR}.make_decimal_validator ("Invalid Number"))
|
||||
n2_container.add_validator (create {WSF_DECIMAL_VALIDATOR}.make ("Invalid Number"))
|
||||
form.add_control (n2_container)
|
||||
--Flag autocomplete
|
||||
create autocompletion1.make (create {FLAG_AUTOCOMPLETION}.make)
|
||||
@@ -61,8 +61,8 @@ feature
|
||||
cklist.add_control (create {WSF_CHECKBOX_CONTROL}.make ("Operating Systems", "os"))
|
||||
cklist.add_control (create {WSF_CHECKBOX_CONTROL}.make ("Formal Methods and Functional Programming", "fmfp"))
|
||||
create cats_container.make ("Categories", cklist)
|
||||
cats_container.add_validator (create {WSF_MIN_VALIDATOR [LIST[STRING]]}.make_min_validator (1, "Choose at least one category"))
|
||||
cats_container.add_validator (create {WSF_MAX_VALIDATOR [LIST[STRING]]}.make_max_validator (2, "Choose at most two category"))
|
||||
cats_container.add_validator (create {WSF_MIN_VALIDATOR [LIST[STRING]]}.make (1, "Choose at least one category"))
|
||||
cats_container.add_validator (create {WSF_MAX_VALIDATOR [LIST[STRING]]}.make (2, "Choose at most two category"))
|
||||
form.add_control (cats_container)
|
||||
--Button 1
|
||||
create button1.make ("Update")
|
||||
|
||||
Reference in New Issue
Block a user