201 lines
6.8 KiB
JavaScript
201 lines
6.8 KiB
JavaScript
|
EJS.Helpers.prototype.date_tag = function(name, value , html_options) {
|
||
|
if(! (value instanceof Date))
|
||
|
value = new Date()
|
||
|
|
||
|
var month_names = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
||
|
var years = [], months = [], days =[];
|
||
|
var year = value.getFullYear();
|
||
|
var month = value.getMonth();
|
||
|
var day = value.getDate();
|
||
|
for(var y = year - 15; y < year+15 ; y++)
|
||
|
{
|
||
|
years.push({value: y, text: y})
|
||
|
}
|
||
|
for(var m = 0; m < 12; m++)
|
||
|
{
|
||
|
months.push({value: (m), text: month_names[m]})
|
||
|
}
|
||
|
for(var d = 0; d < 31; d++)
|
||
|
{
|
||
|
days.push({value: (d+1), text: (d+1)})
|
||
|
}
|
||
|
var year_select = this.select_tag(name+'[year]', year, years, {id: name+'[year]'} )
|
||
|
var month_select = this.select_tag(name+'[month]', month, months, {id: name+'[month]'})
|
||
|
var day_select = this.select_tag(name+'[day]', day, days, {id: name+'[day]'})
|
||
|
|
||
|
return year_select+month_select+day_select;
|
||
|
}
|
||
|
|
||
|
EJS.Helpers.prototype.form_tag = function(action, html_options) {
|
||
|
|
||
|
|
||
|
html_options = html_options || {};
|
||
|
html_options.action = action
|
||
|
if(html_options.multipart == true) {
|
||
|
html_options.method = 'post';
|
||
|
html_options.enctype = 'multipart/form-data';
|
||
|
}
|
||
|
|
||
|
return this.start_tag_for('form', html_options)
|
||
|
}
|
||
|
|
||
|
EJS.Helpers.prototype.form_tag_end = function() { return this.tag_end('form'); }
|
||
|
|
||
|
EJS.Helpers.prototype.hidden_field_tag = function(name, value, html_options) {
|
||
|
return this.input_field_tag(name, value, 'hidden', html_options);
|
||
|
}
|
||
|
|
||
|
EJS.Helpers.prototype.input_field_tag = function(name, value , inputType, html_options) {
|
||
|
|
||
|
html_options = html_options || {};
|
||
|
html_options.id = html_options.id || name;
|
||
|
html_options.value = value || '';
|
||
|
html_options.type = inputType || 'text';
|
||
|
html_options.name = name;
|
||
|
|
||
|
return this.single_tag_for('input', html_options)
|
||
|
}
|
||
|
|
||
|
EJS.Helpers.prototype.is_current_page = function(url) {
|
||
|
return (window.location.href == url || window.location.pathname == url ? true : false);
|
||
|
}
|
||
|
|
||
|
EJS.Helpers.prototype.link_to = function(name, url, html_options) {
|
||
|
if(!name) var name = 'null';
|
||
|
if(!html_options) var html_options = {}
|
||
|
|
||
|
if(html_options.confirm){
|
||
|
html_options.onclick =
|
||
|
" var ret_confirm = confirm(\""+html_options.confirm+"\"); if(!ret_confirm){ return false;} "
|
||
|
html_options.confirm = null;
|
||
|
}
|
||
|
html_options.href=url
|
||
|
return this.start_tag_for('a', html_options)+name+ this.tag_end('a');
|
||
|
}
|
||
|
|
||
|
EJS.Helpers.prototype.submit_link_to = function(name, url, html_options){
|
||
|
if(!name) var name = 'null';
|
||
|
if(!html_options) var html_options = {}
|
||
|
html_options.onclick = html_options.onclick || '' ;
|
||
|
|
||
|
if(html_options.confirm){
|
||
|
html_options.onclick =
|
||
|
" var ret_confirm = confirm(\""+html_options.confirm+"\"); if(!ret_confirm){ return false;} "
|
||
|
html_options.confirm = null;
|
||
|
}
|
||
|
|
||
|
html_options.value = name;
|
||
|
html_options.type = 'submit'
|
||
|
html_options.onclick=html_options.onclick+
|
||
|
(url ? this.url_for(url) : '')+'return false;';
|
||
|
//html_options.href='#'+(options ? Routes.url_for(options) : '')
|
||
|
return this.start_tag_for('input', html_options)
|
||
|
}
|
||
|
|
||
|
EJS.Helpers.prototype.link_to_if = function(condition, name, url, html_options, post, block) {
|
||
|
return this.link_to_unless((condition == false), name, url, html_options, post, block);
|
||
|
}
|
||
|
|
||
|
EJS.Helpers.prototype.link_to_unless = function(condition, name, url, html_options, block) {
|
||
|
html_options = html_options || {};
|
||
|
if(condition) {
|
||
|
if(block && typeof block == 'function') {
|
||
|
return block(name, url, html_options, block);
|
||
|
} else {
|
||
|
return name;
|
||
|
}
|
||
|
} else
|
||
|
return this.link_to(name, url, html_options);
|
||
|
}
|
||
|
|
||
|
EJS.Helpers.prototype.link_to_unless_current = function(name, url, html_options, block) {
|
||
|
html_options = html_options || {};
|
||
|
return this.link_to_unless(this.is_current_page(url), name, url, html_options, block)
|
||
|
}
|
||
|
|
||
|
|
||
|
EJS.Helpers.prototype.password_field_tag = function(name, value, html_options) { return this.input_field_tag(name, value, 'password', html_options); }
|
||
|
|
||
|
EJS.Helpers.prototype.select_tag = function(name, value, choices, html_options) {
|
||
|
html_options = html_options || {};
|
||
|
html_options.id = html_options.id || name;
|
||
|
html_options.value = value;
|
||
|
html_options.name = name;
|
||
|
|
||
|
var txt = ''
|
||
|
txt += this.start_tag_for('select', html_options)
|
||
|
|
||
|
for(var i = 0; i < choices.length; i++)
|
||
|
{
|
||
|
var choice = choices[i];
|
||
|
var optionOptions = {value: choice.value}
|
||
|
if(choice.value == value)
|
||
|
optionOptions.selected ='selected'
|
||
|
txt += this.start_tag_for('option', optionOptions )+choice.text+this.tag_end('option')
|
||
|
}
|
||
|
txt += this.tag_end('select');
|
||
|
return txt;
|
||
|
}
|
||
|
|
||
|
EJS.Helpers.prototype.single_tag_for = function(tag, html_options) { return this.tag(tag, html_options, '/>');}
|
||
|
|
||
|
EJS.Helpers.prototype.start_tag_for = function(tag, html_options) { return this.tag(tag, html_options); }
|
||
|
|
||
|
EJS.Helpers.prototype.submit_tag = function(name, html_options) {
|
||
|
html_options = html_options || {};
|
||
|
//html_options.name = html_options.id || 'commit';
|
||
|
html_options.type = html_options.type || 'submit';
|
||
|
html_options.value = name || 'Submit';
|
||
|
return this.single_tag_for('input', html_options);
|
||
|
}
|
||
|
|
||
|
EJS.Helpers.prototype.tag = function(tag, html_options, end) {
|
||
|
if(!end) var end = '>'
|
||
|
var txt = ' '
|
||
|
for(var attr in html_options) {
|
||
|
if(html_options[attr] != null)
|
||
|
var value = html_options[attr].toString();
|
||
|
else
|
||
|
var value=''
|
||
|
if(attr == "Class") // special case because "class" is a reserved word in IE
|
||
|
attr = "class";
|
||
|
if( value.indexOf("'") != -1 )
|
||
|
txt += attr+'=\"'+value+'\" '
|
||
|
else
|
||
|
txt += attr+"='"+value+"' "
|
||
|
}
|
||
|
return '<'+tag+txt+end;
|
||
|
}
|
||
|
|
||
|
EJS.Helpers.prototype.tag_end = function(tag) { return '</'+tag+'>'; }
|
||
|
|
||
|
EJS.Helpers.prototype.text_area_tag = function(name, value, html_options) {
|
||
|
html_options = html_options || {};
|
||
|
html_options.id = html_options.id || name;
|
||
|
html_options.name = html_options.name || name;
|
||
|
value = value || ''
|
||
|
if(html_options.size) {
|
||
|
html_options.cols = html_options.size.split('x')[0]
|
||
|
html_options.rows = html_options.size.split('x')[1];
|
||
|
delete html_options.size
|
||
|
}
|
||
|
|
||
|
html_options.cols = html_options.cols || 50;
|
||
|
html_options.rows = html_options.rows || 4;
|
||
|
|
||
|
return this.start_tag_for('textarea', html_options)+value+this.tag_end('textarea')
|
||
|
}
|
||
|
EJS.Helpers.prototype.text_tag = EJS.Helpers.prototype.text_area_tag
|
||
|
|
||
|
EJS.Helpers.prototype.text_field_tag = function(name, value, html_options) { return this.input_field_tag(name, value, 'text', html_options); }
|
||
|
|
||
|
EJS.Helpers.prototype.url_for = function(url) {
|
||
|
return 'window.location="'+url+'";'
|
||
|
}
|
||
|
EJS.Helpers.prototype.img_tag = function(image_location, alt, options){
|
||
|
options = options || {};
|
||
|
options.src = image_location
|
||
|
options.alt = alt
|
||
|
return this.single_tag_for('img', options)
|
||
|
}
|