Added account status into user search facet.

The user search facet has been modified to show the account status.
The IPA.boolean_format has been converted into a class to allow
behavior customization.

Ticket #1996
This commit is contained in:
Endi Sukma Dewata
2012-01-05 09:10:11 -06:00
committed by Petr Vobornik
parent 1b1aad2b02
commit 2a00393712
7 changed files with 119 additions and 47 deletions

View File

@@ -42,7 +42,7 @@ IPA.hbac.rule_entity = function(spec) {
'cn',
{
name: 'ipaenabledflag',
format: IPA.boolean_format
format: IPA.boolean_format()
},
'description'
]

View File

@@ -46,7 +46,16 @@ IPA.hbac.test_entity = function(spec) {
columns: [
'uid',
'givenname',
'sn'
'sn',
{
name: 'nsaccountlock',
format: IPA.boolean_format({
true_value: IPA.messages.objects.user.active,
false_value: IPA.messages.objects.user.inactive,
invert_value: true
}),
label: IPA.messages.objects.user.account_status
}
]
}).
facet({
@@ -62,7 +71,7 @@ IPA.hbac.test_entity = function(spec) {
{
name: 'has_keytab',
label: IPA.messages.objects.host.enrolled,
format: IPA.boolean_format
format: IPA.boolean_format()
}
]
}).
@@ -91,7 +100,7 @@ IPA.hbac.test_entity = function(spec) {
{
name: 'has_keytab',
label: IPA.messages.objects.host.enrolled,
format: IPA.boolean_format
format: IPA.boolean_format()
}
]
}).
@@ -106,7 +115,7 @@ IPA.hbac.test_entity = function(spec) {
'cn',
{
name: 'ipaenabledflag',
format: IPA.boolean_format
format: IPA.boolean_format()
},
'description'
]
@@ -123,11 +132,11 @@ IPA.hbac.test_entity = function(spec) {
{
name: 'matched',
label: IPA.messages.objects.hbactest.matched,
format: IPA.boolean_format
format: IPA.boolean_format()
},
{
name: 'ipaenabledflag',
format: IPA.boolean_format
format: IPA.boolean_format()
},
'description'
]

View File

@@ -40,7 +40,7 @@ IPA.host.entity = function(spec) {
{
name: 'has_keytab',
label: IPA.messages.objects.host.enrolled,
format: IPA.boolean_format
format: IPA.boolean_format()
}
]
}).
@@ -466,30 +466,42 @@ IPA.field_factories['host_dnsrecord_entity_link'] = IPA.host_dnsrecord_entity_li
IPA.widget_factories['host_dnsrecord_entity_link'] = IPA.link_widget;
/* Take an LDAP format date in UTC and format it */
IPA.utc_date_column_format = function(value){
if (!value) {
return "";
}
if (value.length != "20101119025910Z".length){
return value;
}
/* We only handle GMT */
if (value.charAt(value.length -1) !== 'Z'){
return value;
}
IPA.utc_date_column_format = function(spec) {
var date = new Date();
spec = spec || {};
date.setUTCFullYear(
value.substring(0, 4), // YYYY
value.substring(4, 6)-1, // MM (0-11)
value.substring(6, 8)); // DD (1-31)
date.setUTCHours(
value.substring(8, 10), // HH (0-23)
value.substring(10, 12), // MM (0-59)
value.substring(12, 14)); // SS (0-59)
var formated = date.toString();
return formated;
var that = IPA.format(spec);
that.format = function(value) {
if (!value) return '';
// verify length
if (value.length != '20101119025910Z'.length) {
return value;
}
/* We only handle GMT */
if (value.charAt(value.length -1) !== 'Z') {
return value;
}
var date = new Date();
date.setUTCFullYear(
value.substring(0, 4), // YYYY
value.substring(4, 6)-1, // MM (0-11)
value.substring(6, 8)); // DD (1-31)
date.setUTCHours(
value.substring(8, 10), // HH (0-23)
value.substring(10, 12), // MM (0-59)
value.substring(12, 14)); // SS (0-59)
return date.toString();
};
return that;
};

View File

@@ -122,7 +122,7 @@ IPA.rule_association_table_widget = function(spec) {
name: that.external,
label: IPA.messages.objects.sudorule.external,
entity: that.other_entity,
format: IPA.boolean_format,
format: IPA.boolean_format(),
width: '200px'
});
}

View File

@@ -40,7 +40,7 @@ IPA.sudo.rule_entity = function(spec) {
'cn',
{
name: 'ipaenabledflag',
format: IPA.boolean_format
format: IPA.boolean_format()
},
'description'
]

View File

@@ -40,6 +40,15 @@ IPA.user.entity = function(spec) {
'uid',
'givenname',
'sn',
{
name: 'nsaccountlock',
format: IPA.boolean_format({
true_value: IPA.messages.objects.user.active,
false_value: IPA.messages.objects.user.inactive,
invert_value: true
}),
label: IPA.messages.objects.user.account_status
},
'uidnumber',
'mail',
'telephonenumber',

View File

@@ -927,25 +927,67 @@ IPA.textarea_widget = function (spec) {
return that;
};
IPA.boolean_format = function(value) {
IPA.format = function(spec) {
if (value === undefined || value === null) return '';
spec = spec || {};
if (value instanceof Array) {
value = value[0];
}
var that = {};
var normalized_value = typeof value === 'string' ? value.toLowerCase() : '';
that.format = function(value) {
return value;
};
if (value === false || normalized_value === 'false') {
return IPA.messages['false'];
}
return that;
};
if (value === true || normalized_value === 'true') {
return IPA.messages['true'];
}
IPA.boolean_format = function(spec) {
return value;
spec = spec || {};
var that = IPA.format(spec);
that.true_value = spec.true_value || IPA.messages['true'];
that.false_value = spec.false_value || IPA.messages['false'];
that.show_false = spec.show_false;
that.invert_value = spec.invert_value;
that.format = function(value) {
if (value === undefined || value === null) return '';
if (value instanceof Array) {
value = value[0];
}
if (typeof value === 'string') {
value = value.toLowerCase();
if (value === 'true') {
value = true;
} else if (value === 'false') {
value = false;
} // leave other values unchanged
}
if (typeof value === 'boolean') {
if (that.invert_value) value = !value;
if (value) {
value = that.true_value;
} else {
if (that.show_false) {
value = that.false_value;
} else {
value = '';
}
}
}
return value;
};
return that;
};
/*
@@ -978,8 +1020,8 @@ IPA.column = function (spec) {
container.empty();
var value = record[that.name];
if (that.format && value) {
value = that.format(value);
if (that.format) {
value = that.format.format(value);
}
value = value ? value.toString() : '';