From 5eef63c0683ea6e5b248d53a6d5c8de16d9fa5f6 Mon Sep 17 00:00:00 2001 From: Harshal Dhumal Date: Fri, 3 Jun 2016 16:13:42 +0530 Subject: [PATCH] Added support for the password cell. --- web/pgadmin/static/css/overrides.css | 23 +++++++++++ .../static/js/backgrid/backgrid.pgadmin.js | 39 +++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/web/pgadmin/static/css/overrides.css b/web/pgadmin/static/css/overrides.css index fe76751e0..6ebb3d7af 100755 --- a/web/pgadmin/static/css/overrides.css +++ b/web/pgadmin/static/css/overrides.css @@ -1241,3 +1241,26 @@ form[name="change_password_form"] .help-block { .dashboard-tab-container .backgrid-filter .clear { z-index: 10 !important; } + +.backgrid .string-cell.editor input[type=password] { + text-align: left; +} + +.backgrid td.editor input[type=password] { + display: block; + width: 100%; + height: 100%; + padding: 0 5px; + margin: 0; + background-color: transparent; + border: 0; + outline: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; +} diff --git a/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js b/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js index b87e84c5d..b6797a972 100644 --- a/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js +++ b/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js @@ -845,6 +845,45 @@ } }); + /** + Formatter for PasswordCell. + + @class Backgrid.PasswordFormatter + @extends Backgrid.CellFormatter + @constructor + */ + var PasswordFormatter = Backgrid.PasswordFormatter = function () {}; + PasswordFormatter.prototype = new Backgrid.CellFormatter(); + _.extend(PasswordFormatter.prototype, { + fromRaw: function (rawValue, model) { + + if (_.isUndefined(rawValue) || _.isNull(rawValue)) return ''; + + var pass = ''; + for(var i = 0; i < rawValue.length; i++) { + pass += '*'; + } + return pass; + } + }); + + var PasswordCell = Backgrid.Extension.PasswordCell = Backgrid.StringCell.extend({ + + formatter: PasswordFormatter, + + editor: Backgrid.InputCellEditor.extend({ + attributes: { + type: "password" + }, + + render: function () { + var model = this.model; + this.$el.val(model.get(this.column.get("name"))); + return this; + } + }) + }); + return Backgrid; }));