summaryrefslogtreecommitdiffstats
path: root/base/server/share/webapps
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2014-03-24 13:37:46 -0400
committerEndi S. Dewata <edewata@redhat.com>2014-03-29 18:19:55 -0400
commit34ac0dd388ec9b18a0b29ea4ecb5d6038e26992f (patch)
tree31a2ffb8e8deadf43917418bf492ffd3cba8624c /base/server/share/webapps
parent6427715b25f1c7c1d8a316e216b4c33c8c4c554d (diff)
downloadpki-34ac0dd388ec9b18a0b29ea4ecb5d6038e26992f.tar.gz
pki-34ac0dd388ec9b18a0b29ea4ecb5d6038e26992f.tar.xz
pki-34ac0dd388ec9b18a0b29ea4ecb5d6038e26992f.zip
Added details page for TPS profiles.
A new page has been added to view TPS profile details. The properties are displayed in a table which provides pagination and search functionality. Currently the page is read-only. The edit functionality will be added separately later. Previously the ProfileData had a problem with JSON mapping because it incorrectly included a PropertyNames attribute. To fix the problem the class has been modified to require explicit JAXB mapping by setting the @XmlAccessorType to NONE. New CSS classes have been added to format the details page. Ticket #654
Diffstat (limited to 'base/server/share/webapps')
-rw-r--r--base/server/share/webapps/pki/css/pki-ui.css9
-rw-r--r--base/server/share/webapps/pki/js/pki-ui.js67
2 files changed, 76 insertions, 0 deletions
diff --git a/base/server/share/webapps/pki/css/pki-ui.css b/base/server/share/webapps/pki/css/pki-ui.css
index dfab67c4e..ee82aca24 100644
--- a/base/server/share/webapps/pki/css/pki-ui.css
+++ b/base/server/share/webapps/pki/css/pki-ui.css
@@ -78,10 +78,19 @@ table tfoot tr th {
padding: 0 0 0 13px;
}
+.pki-property-name-column {
+ width: 500px;
+}
+
.pagination {
margin: 4px;
}
+.pki-fields fieldset label {
+ min-width: 100px;
+ display: inline-block;
+}
+
.pki-table-actions {
padding: 1px;
border-top: none;
diff --git a/base/server/share/webapps/pki/js/pki-ui.js b/base/server/share/webapps/pki/js/pki-ui.js
index 6b12ca010..e64938206 100644
--- a/base/server/share/webapps/pki/js/pki-ui.js
+++ b/base/server/share/webapps/pki/js/pki-ui.js
@@ -680,3 +680,70 @@ var Table = Backbone.View.extend({
self.render();
}
});
+
+var PropertiesTableItem = TableItem.extend({
+ initialize: function(options) {
+ var self = this;
+ PropertiesTableItem.__super__.initialize.call(self, options);
+ },
+ id: function() {
+ var self = this;
+ return self.property.name;
+ },
+ renderColumn: function(td) {
+ var self = this;
+ td.text(self.property.value);
+ }
+});
+
+var PropertiesTable = Table.extend({
+ initialize: function(options) {
+ var self = this;
+ options.tableItem = options.tableItem || PropertiesTableItem;
+ PropertiesTable.__super__.initialize.call(self, options);
+ self.properties = options.properties;
+ },
+ render: function() {
+ var self = this;
+
+ // perform manual filter
+ var filter = self.searchField.val();
+ if (filter === "") {
+ self.entries = self.properties;
+
+ } else {
+ self.entries = [];
+ _(self.properties).each(function(item, index) {
+ // select properties whose names or values contain the filter
+ if (item.name.indexOf(filter) >= 0 || item.value.indexOf(filter) >= 0) {
+ self.entries.push(item);
+ }
+ });
+ }
+
+ self.renderControls();
+
+ _(self.items).each(function(item, index) {
+ self.renderRow(item, index);
+ });
+ },
+ totalEntries: function() {
+ var self = this;
+ return self.entries.length;
+ },
+ open: function(item) {
+ },
+ renderRow: function(item, index) {
+ var self = this;
+ var i = (self.page - 1) * self.pageSize + index;
+ if (i < self.entries.length) {
+ // show entry in existing row
+ item.property = self.entries[i];
+ item.render();
+
+ } else {
+ // clear unused row
+ item.reset();
+ }
+ }
+});