Skip to content

Commit

Permalink
adding the validation for ticketform.
Browse files Browse the repository at this point in the history
summary and owner are the must-have fields.
  • Loading branch information
seanchen committed Feb 4, 2013
1 parent e44f60b commit 109cc82
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 20 deletions.
2 changes: 1 addition & 1 deletion wp-trac-client/actions.php
Expand Up @@ -142,7 +142,7 @@ function wptc_analyze_workflow_action() {
$attributes['status'] = 'assigned';
// set owner to selected user.
$attributes['owner'] =
$_POST['action_reassign_reassign_owner'];
$_POST['field_owner'];
break;
}

Expand Down
86 changes: 75 additions & 11 deletions wp-trac-client/js/trac-wikitoolbar.js
Expand Up @@ -127,7 +127,7 @@ jQuery(document).ready(function($) {

// username auto complete for re-assign action.
var wptc_username_ac = "wptc_username_autocomplete"
$("#action_reassign_reassign_owner").autocomplete({
var username_ac_data = {
source: function(request, response) {
$.getJSON(WptcAjaxObj.url + "?callback=?&action=" +
wptc_username_ac, request, response);
Expand All @@ -139,22 +139,86 @@ jQuery(document).ready(function($) {
// ui.item.id, ui.item.value.
// testing...
//alert (ui.item.value);
},
search: function(event, ui) {
$("#field_owner").blur();
},
close: function(event, ui) {
$("#field_owner").blur();
}
};

$("#field_owner").autocomplete(username_ac_data);

$(":input[type=submit]").click(function() {
$("#field_owner").focus().blur();
});

$("#field_owner").autocomplete({
source: function(request, response) {
$.getJSON(WptcAjaxObj.url + "?callback=?&action=" +
wptc_username_ac, request, response);
},
minLength: 2,
select: function(event, ui) {
// selected value could get from ui param.
// ui.item.id, ui.item.value.
//alert (ui.item.value);
$("#ticketform").submit(function() {
// some validation here!

// summary is a must-have field.
if($.trim($("#field_summary").val()) == "") {
alert("We need at lease a SUMMARY to create a ticket");
$("#field_summary").focus();
return false;
}

owner = $("#field_owner");
if(owner.attr("disabled")) {
// skip the owner validation.
return true;
}

$("#field_owner").blur();
if($.trim($("#field_owner").val()) == "") {
alert("We need a OWNER for a ticket");
$("#field_owner").focus();
return false;
}

// make sure the invalid fields are empty.
fields = $.trim($("#invalidFields").val());
if (fields.length > 0) {
names = fields.split(" ");
for (var i = 0; i < names.length; i++) {

}
// show the alert message.
alert("Owner \"" + $("#field_owner").val() +
"\" is not a valid username");
$("#field_owner").focus().select();
return false;
}
});

$("#field_owner").blur(function() {
// now let't make sure the owner is a valid username.
var data = {
"action" : "wptc_valid_username",
"username" : this.value,
};
jQuery.post(WptcAjaxObj.url, data, function(response) {
//alert(response);
var res = JSON.parse(response);
if(!res.valid) {
$("#field_owner").focus();
//$("#field_owner").select();
//alert("\"" + res.username +
// "\" is not a valid user name");
old = $.trim($("#invalidFields").val());
// check if this field is already exist.
if (old.indexOf("field_owner") < 0) {
newValue = $.trim(old + " " + "field_owner");
$("#invalidFields").val(newValue);
}
} else {
var old = $.trim($("#invalidFields").val());
newV = $.trim(old.replace("field_owner", ""));
$("#invalidFields").val(newV);
}
});
});

// only enable control elements for
// the currently selected action
Expand Down
20 changes: 12 additions & 8 deletions wp-trac-client/widgets.php
Expand Up @@ -322,9 +322,9 @@ function wptc_widget_ticket_fieldset($ticket) {
<legend>Ticket Properties</legend>
<table><tbody>
<tr>
<th><label for="field-summary">Summary:</label></th>
<th><label for="field_summary">Summary:</label></th>
<td class="fullrow" colspan="3">
<input type="text" id="field-summary" name="field_summary"
<input type="text" id="field_summary" name="field_summary"
value="{$ticket['summary']}" size="70">
</td>
</tr>
Expand Down Expand Up @@ -512,8 +512,8 @@ function wptc_widget_action_reassign($action) {
// </select>
$select = <<<EOT
to
<input name="action_reassign_reassign_owner"
id="action_reassign_reassign_owner" disabled="">
<input name="field_owner"
id="field_owner" disabled="">
EOT;

return apply_filters('wptc_widget_action_reassign', $select);
Expand Down Expand Up @@ -820,13 +820,15 @@ function wptc_widget_new_ticket_form() {
echo <<<EOT
<div>
<h1 id="ticket-title">Create New Ticket</h1>
<form method="post" id="propertyform">
<form method="post" id="ticketform">
<div id="modify">
EOT;
echo wptc_widget_ticket_fieldset($ticket);
echo <<<EOT
</div>
<div class="buttons">
<input type="hidden" id="invalidFields"
name="invalidFields" value="">
<input type="submit" id="descsubmit"
name="submit" value="Submit changes">
</div>
Expand All @@ -849,7 +851,7 @@ function wptc_widget_ticket_form($ticket, $actions) {

// the editing form, it should only show up for
// logged in users.
echo "<form method='post'>";
echo "<form method='post' id='ticketform'>";
// the ticket editing form
echo <<<EOT
<div class="collapsed">
Expand Down Expand Up @@ -884,8 +886,10 @@ function wptc_widget_ticket_form($ticket, $actions) {
//$ts = $now->format('Y-m-d H:i:sP');
echo <<<EOT
<div class="buttons">
<input type="hidden" name="ts" value="{$ticket['_ts']}">
<input type="hidden" name="id" value="{$ticket['id']}">
<input type="hidden" id="ts" name="ts" value="{$ticket['_ts']}">
<input type="hidden" id="id" name="id" value="{$ticket['id']}">
<input type="hidden" id="invalidFields"
name="invalidFields" value="">
<!-- input type="submit" name="preview" value="Preview" -->&nbsp;
<input type="submit" id="wikisubmit" name="submit" value="Submit changes">
</div>
Expand Down

0 comments on commit 109cc82

Please sign in to comment.