Fixed following:

- Base font size changed from 0.815rem to 0.875rem, for navbar from 0.875rem to 0.925rem.
- Dialog sizes made consistent throughout the application. Now there are 3 size options for width and height each - sm, md, lg. Combination of any of these to be used hereafter
- Alignment fix for controls of Node properties dialogs which includes showing text and label in one line without dialog size change, checkbox alignment, switch control alignment at places and other minor improvements in other dialogs
- Error message design change in dialogs validation
- SQL Editor data grid editor popup design changes which were missed
- Design change for dashboard server activity grid
- Login page language dropdown color fix
- Properties accordion collapse design fix
- Help, Info icon fixed across all dialogs which were not working if clicked exactly on the text
- Added missing icon with buttons at few places
- Shadow behind the dialogs is increased to make it look clearly separated and depth.
- Control Alignment fix in maintenance dialog
- Min height of alertify dialogs set for better UX
- File dialog design fix when no files found
- Grant wizard fixes - Scroll bar visibility on first page, use full space for SQL generated on the last page
- Browser toolbar buttons changed to sync with SQL editor toolbar buttons
- Rounded corners for docker floating dialog (no properties)
- Renaming file in file dialog should show original file name
- SQL data grid text edit popup buttons behaviour was swapped. This is fixed.
- Import/Export dialog changes as per new design.
This commit is contained in:
Aditya Toshniwal
2019-01-02 15:05:15 +05:30
committed by Akshay Joshi
parent 1b9c841c15
commit 86ecf9c84e
65 changed files with 512 additions and 341 deletions

View File

@@ -20,7 +20,8 @@ define(
},
setup: function() {
return {
buttons:[{ text: gettext('OK'), key: 27, className: 'btn btn-primary' }],
buttons:[{ text: gettext('OK'), key: 27,
className: 'btn btn-primary fa fa-lg fa-check pg-alertify-button' }],
options: {
modal: false,
resizable: true,
@@ -44,7 +45,7 @@ define(
function(data) {
alertify.aboutDialog(
S(gettext('About %s')).sprintf(pgAdmin.Browser.utils.app_name).value(), data
).resizeTo(800, 450);
).resizeTo(pgAdmin.Browser.stdW.md, pgAdmin.Browser.stdH.md);
});
},
};

View File

@@ -220,14 +220,14 @@ define('pgadmin.node.language', [
},
}, {
id: 'lanacl', label: gettext('Privileges'), type: 'collection',
group: 'security', control: 'unique-col-collection', mode: ['edit', 'create'],
group: gettext('Security'), control: 'unique-col-collection', mode: ['edit', 'create'],
model: pgBrowser.Node.PrivilegeRoleModel.extend({
privileges: ['U'],
}), canAdd: true, canDelete: true, uniqueCol : ['grantee'],
},{
id: 'seclabels', label: gettext('Security Labels'), mode: ['edit', 'create'],
model: pgBrowser.SecLabelModel, editable: false,
type: 'collection', group: 'security', min_version: 90200,
type: 'collection', group: gettext('Security'), min_version: 90200,
canAdd: true, canEdit: false, canDelete: true,
control: 'unique-col-collection',
},

View File

@@ -72,7 +72,7 @@ define('pgadmin.node.schema', [
var grid = self.grid = new Backgrid.Grid({
columns: self.grid_columns,
collection: self.model.get(self.field.get('name')),
className: 'backgrid table-bordered',
className: 'backgrid table-bordered table-noouter-border table-hover',
});
// render grid
@@ -120,6 +120,8 @@ define('pgadmin.node.schema', [
// Extend the browser's collection class for VacuumSettingsModel
Backform.VacuumSettingsSchema = [{
id: 'spacer_ctrl', group: gettext('Table'), mode: ['edit', 'create'], type: 'spacer',
},{
id: 'autovacuum_custom', label: gettext('Custom auto-vacuum?'),
group: gettext('Table'), mode: ['edit', 'create'],
type: 'switch',
@@ -184,6 +186,8 @@ define('pgadmin.node.schema', [
],
}),
deps: ['autovacuum_enabled'],
},{
id: 'spacer_ctrl', group: gettext('Toast Table'), mode: ['edit', 'create'], type: 'spacer',
},{
id: 'toast_autovacuum', label: gettext('Custom auto-vacuum?'),
group: gettext('Toast Table'), mode: ['edit', 'create'],

View File

@@ -228,7 +228,6 @@ define('pgadmin.node.index', [
hasDepends: true,
hasStatistics: true,
statsPrettifyFields: ['Size', 'Index size'],
width: '45%',
Init: function() {
/* Avoid mulitple registration of menus */
if (this.initialized)

View File

@@ -44,7 +44,7 @@ define('pgadmin.node.table', [
sqlCreateHelp: 'sql-createtable.html',
dialogHelp: url_for('help.static', {'filename': 'table_dialog.html'}),
hasScriptTypes: ['create', 'select', 'insert', 'update', 'delete'],
width: '60%',
width: '650px',
Init: function() {
/* Avoid multiple registration of menus */
if (this.initialized)

View File

@@ -187,6 +187,15 @@ define('pgadmin.node.pga_schedule', [
},
});
var CustomInfoControl = Backform.Control.extend({
template: _.template([
'<div>',
' <%=infotext%>',
'</div>',
].join('\n')),
className: 'pgadmin-control-group',
});
pgBrowser.Nodes['pga_schedule'] = pgBrowser.Node.extend({
parent_type: 'pga_job',
type: 'pga_schedule',
@@ -335,6 +344,10 @@ define('pgadmin.node.pga_schedule', [
return this;
},
}), mode: ['properties'],
},{
type: 'control', mode: ['create', 'edit'], group: gettext('Repeat'),
infotext: gettext('Schedules are specified using a <b>cron-style</b> format.<br/><ul><li>For each selected time or date element, the schedule will execute.<br/>e.g. To execute at 5 minutes past every hour, simply select 05 in the Minutes list box.<br/></li><li>Values from more than one field may be specified in order to further control the schedule.<br/>e.g. To execute at 12:05 and 14:05 every Monday and Thursday, you would click minute 05, hours 12 and 14, and weekdays Monday and Thursday.</li><li>For additional flexibility, the Month Days check list includes an extra Last Day option. This matches the last day of the month, whether it happens to be the 28th, 29th, 30th or 31st.</li></ul>'),
control: CustomInfoControl,
},{
type: 'nested', label: gettext('Days'), group: gettext('Repeat'),
mode: ['create', 'edit'],
@@ -344,11 +357,11 @@ define('pgadmin.node.pga_schedule', [
this, arguments
);
this.$el.prepend(
'<div class="set-group">' +
gettext('Schedules are specified using a <b>cron-style</b> format.<br/><ul><li>For each selected time or date element, the schedule will execute.<br/>e.g. To execute at 5 minutes past every hour, simply select 05 in the Minutes list box.<br/></li><li>Values from more than one field may be specified in order to further control the schedule.<br/>e.g. To execute at 12:05 and 14:05 every Monday and Thursday, you would click minute 05, hours 12 and 14, and weekdays Monday and Thursday.</li><li>For additional flexibility, the Month Days check list includes an extra Last Day option. This matches the last day of the month, whether it happens to be the 28th, 29th, 30th or 31st.</li></ul>') +
'</div>'
);
// $(
// '<div>' +
// gettext('Schedules are specified using a <b>cron-style</b> format.<br/><ul><li>For each selected time or date element, the schedule will execute.<br/>e.g. To execute at 5 minutes past every hour, simply select 05 in the Minutes list box.<br/></li><li>Values from more than one field may be specified in order to further control the schedule.<br/>e.g. To execute at 12:05 and 14:05 every Monday and Thursday, you would click minute 05, hours 12 and 14, and weekdays Monday and Thursday.</li><li>For additional flexibility, the Month Days check list includes an extra Last Day option. This matches the last day of the month, whether it happens to be the 28th, 29th, 30th or 31st.</li></ul>') +
// '</div>'
// ).insertBefore(this.$el);
return res;
},

View File

@@ -68,18 +68,19 @@ define('pgadmin.node.role', [
var RoleCustomSwitchControl = Backform.SwitchControl.extend({
template: _.template([
'<label class="control-label"><%=label%></label>',
'<div class="pgadmin-controls">',
' <div class="checkbox" style="float:right">',
'<label class="control-label pg-el-sm-10 pg-el-12"><%=label%></label>',
'<div class="pgadmin-controls pg-el-sm-2 pg-el-12">',
' <div class="checkbox">',
' <label>',
' <input type="checkbox" class="<%=extraClasses.join(\' \')%>" name="<%=name%>" <%=value ? "checked=\'checked\'" : ""%> <%=disabled ? "disabled" : ""%> <%=required ? "required" : ""%> />',
' </label>',
' </div>',
' <% if (helpMessage && helpMessage.length) { %>',
' <span class="<%=Backform.helpMessageClassName%>"><%=helpMessage%></span>',
' <% } %>',
'</div>',
'<% if (helpMessage && helpMessage.length) { %>',
' <span class="<%=Backform.helpMessageClassName%>"><%=helpMessage%></span>',
'<% } %>',
].join('\n')),
className: 'pgadmin-control-group form-group pg-el-12 row',
});
var RoleMembersControl = Backform.Control.extend({

View File

@@ -9,4 +9,4 @@
.change_password {
padding-left: 7px;
}
}

View File

@@ -302,7 +302,7 @@ define('pgadmin.node.tablespace', [
};
});
}
Alertify.move_objects_dlg(true).resizeTo('40%','50%');
Alertify.move_objects_dlg(true).resizeTo(pgBrowser.stdW.md,pgBrowser.stdH.md);
},
},
model: pgBrowser.Node.Model.extend({

View File

@@ -9,8 +9,8 @@ define('pgadmin.node.server_group', [
type: 'server_group',
dialogHelp: url_for('help.static', {'filename': 'server_group_dialog.html'}),
label: gettext('Server Group'),
width: '350px',
height: '250px',
width: '250px',
height: '150px',
is_collection: true,
Init: function() {
/* Avoid multiple registration of menus */

View File

@@ -44,30 +44,11 @@
width: 140px;
}
.wizard-right-panel_content {
padding: 0.5rem 0rem;
}
/* Wizard Footer CSS */
.pgadmin-wizard .footer .row {
margin: 0 -6px 3px -6px;
}
/* Wizard Button CSS */
.pgadmin-wizard .wizard-buttons button.wizard-next i.fa {
padding-left: 5px;
}
.pgadmin-wizard .wizard-buttons button.wizard-back i.fa,
.pgadmin-wizard .wizard-buttons button.wizard-cancel i.fa {
padding-right: 5px;
}
.pgadmin-wizard .wizard-buttons .wizard-finish {
margin-right: 0 !important;
}
.wizard-header .wizard-cancel-event {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAdklEQVQ4jd2SwQnAIAxF36GH0pOTFHEgF3IkR5LO0F4SCGJVEHroAy/f/E+igV+yAa6hO7nrcgAZuIBg9CBalppXEnDL0RA1q556ASdQqhBrLlLTxVch1uxHZiU2AuKs2Vdt23GGHSy/wfIvzOzBPhpjaRO/5wG/szevJ+ZXzAAAAABJRU5ErkJggg==) no-repeat center center;
padding: 10px;

View File

@@ -108,6 +108,19 @@ define('pgadmin.browser', [
// It will be used to register extensions, tools, child node scripts,
// etc.
scripts: {},
// Standard Widths and Height for dialogs in px
stdW: {
sm: 500,
md: 700,
lg: 900,
default: 500,
},
stdH: {
sm: 200,
md: 400,
lg: 550,
default: 550,
},
// Default panels
panels: {
// Panel to keep the left hand browser tree

View File

@@ -313,18 +313,19 @@ define('pgadmin.browser.node', [
}
var onSessionInvalid = function(msg) {
var alertMessage = '\
<div class="media error-in-footer bg-danger-light border-danger text-danger text-14">\
<div class="media-body media-middle">\
<div class="alert-icon error-icon">\
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>\
</div>\
<div class="alert-text">' + msg + '</div>\
<div class="close-error-bar">\
<a class="close-error">x</a>\
</div>\
</div>\
</div>';
var alertMessage = `
<div class="error-in-footer">
<div class="d-flex px-2 py-1">
<div class="pr-2">
<i class="fa fa-exclamation-triangle text-danger" aria-hidden="true"></i>
</div>
<div class="alert-text">${msg}</div>
<div class="ml-auto close-error-bar">
<a class="close-error fa fa-times text-danger"></a>
</div>
</div>
</div>`;
if (!_.isUndefined(that.statusBar)) {
that.statusBar.html(alertMessage).css('visibility', 'visible');
that.statusBar.find('a.close-error').bind('click', function() {
@@ -558,12 +559,43 @@ define('pgadmin.browser.node', [
d.body.insertBefore(el, d.body.firstChild);
var pW = screen.width < 800 ? '95%' : '500px',
pH = screen.height < 600 ? '95%' : '550px',
w = pgAdmin.toPx(el, self.width || pW, 'width', true),
h = pgAdmin.toPx(el, self.height || pH, 'height', true),
x = (b.offsetWidth - w) / 2,
y = (b.offsetHeight - h) / 2;
let w, h, x, y;
if(screen.width < 800) {
w= pgAdmin.toPx(el, '95%', 'width', true);
} else {
w= pgAdmin.toPx(el, self.width || pgBrowser.stdW.default+'px', 'width', true);
/* Fit to standard sizes */
if(w <= pgBrowser.stdW.sm) {
w = pgBrowser.stdW.sm;
} else {
if(w <= pgBrowser.stdW.md) {
w = pgBrowser.stdW.md;
} else {
w = pgBrowser.stdW.lg;
}
}
}
if(screen.height < 600) {
h = pgAdmin.toPx(el, '95%', 'height', true);
} else {
h = pgAdmin.toPx(el, self.height || pgBrowser.stdH.default+'px', 'height', true);
/* Fit to standard sizes */
if(h <= pgBrowser.stdH.sm) {
h = pgBrowser.stdH.sm;
} else {
if(h <= pgBrowser.stdH.md) {
h = pgBrowser.stdH.md;
} else {
h = pgBrowser.stdH.lg;
}
}
}
x = (b.offsetWidth - w) / 2,
y = (b.offsetHeight - h) / 4;
var p = pgBrowser.docker.addPanel(
'node_props', wcDocker.DOCK.FLOAT, undefined, {
@@ -1319,7 +1351,7 @@ define('pgadmin.browser.node', [
var btnGroup = this.find('.pg-prop-btn-group'),
btnSave = btnGroup.find('button.btn-primary'),
btnReset = btnGroup.find('button.btn-warning');
btnReset = btnGroup.find('button.btn-secondary[type="reset"]');
if (hasError || !modified) {
btnSave.prop('disabled', true);

View File

@@ -142,10 +142,10 @@ define(
p.pgResizeTimeout = null;
/** Calculations based on https://getbootstrap.com/docs/4.1/layout/grid/#grid-options **/
if (w < 576) {
if (w < 480) {
w = 'xs';
}
if (w >= 576) {
if (w >= 480) {
w = 'sm';
}
if (w >= 768) {

View File

@@ -13,6 +13,7 @@ let _defaultToolBarButtons = [
text: '',
toggled: false,
toggleClass: '',
parentClass: 'pg-toolbar-btn',
enabled: false,
},
{
@@ -21,6 +22,7 @@ let _defaultToolBarButtons = [
text: '',
toggled: false,
toggleClass: '',
parentClass: 'pg-toolbar-btn',
enabled: false,
},
{
@@ -29,6 +31,7 @@ let _defaultToolBarButtons = [
text: '',
toggled: false,
toggleClass: '',
parentClass: 'pg-toolbar-btn',
enabled: false,
},
];

View File

@@ -106,20 +106,19 @@ define([
' </div>' +
' </div>' +
' <div class="wizard-footer pg-prop-footer">' +
' <div class="pg-prop-status-bar" style="visibility:hidden">' +
' <div class="media error-in-footer bg-danger-light border-danger text-danger text-14">' +
' <div class="media-body media-middle">' +
' <div class="alert-icon error-icon">' +
' <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>' +
' </div>' +
' <div class="alert-text">' +
' </div>' +
' <div class="close-error-bar">' +
' <a class="close-error">x</a>' +
' </div>' +
' </div>' +
' </div>' +
' </div>' +
' <div class="pg-prop-status-bar" style="visibility:hidden">' +
' <div class="error-in-footer"> ' +
' <div class="d-flex px-2 py-1"> ' +
' <div class="pr-2"> ' +
' <i class="fa fa-exclamation-triangle text-danger" aria-hidden="true"></i> ' +
' </div> ' +
' <div class="alert-text"></div> ' +
' <div class="ml-auto close-error-bar"> ' +
' <a class="close-error fa fa-times text-danger"></a> ' +
' </div> ' +
' </div> ' +
' </div> ' +
' </div>' +
' <div class="wizard-buttons d-flex">' +
' <div>' +
' <button title = "' + gettext('Help for this dialog.') + '"' +
@@ -128,14 +127,14 @@ define([
' </div>' +
' <div class="ml-auto">' +
' <button class="btn btn-secondary wizard-cancel" <%=this.options.disable_cancel ? "disabled" : ""%>>' +
' <i class="fa fa-lg fa-close"></i>' + gettext('Cancel') + '</button>' +
' <i class="fa fa-close"></i>&nbsp;' + gettext('Cancel') + '</button>' +
' <button class="btn btn-secondary wizard-back" <%=this.options.disable_prev ? "disabled" : ""%>>' +
' <i class="fa fa-backward"></i>' + gettext('Back') + '</button>' +
' <i class="fa fa-backward"></i>&nbsp;' + gettext('Back') + '</button>' +
' <button class="btn btn-secondary wizard-next" <%=this.options.disable_next ? "disabled" : ""%>>' +
' ' + gettext('Next') +
' <i class="fa fa-forward"></i></button>' +
' &nbsp;<i class="fa fa-forward"></i></button>' +
' <button class="btn btn-primary wizard-finish" <%=this.options.disable_finish ? "disabled" : ""%>>' +
' ' + gettext('Finish') + '</button>' +
' <i class="fa fa-check"></i>&nbsp;' + gettext('Finish') + '</button>' +
' </div>' +
' </div>' +
' </div>' +

View File

@@ -46,3 +46,8 @@ samp,
text-align: center;
color: $loading-fg;
}
.pg-toolbar-btn {
margin-left: 0.25rem;
border: $input-btn-border-width solid $btn-secondary-border;
}

View File

@@ -82,7 +82,7 @@ $bgproc-container-pad: 2px;
.ajs-bg-bgprocess > .pg-bg-bgprocess > .pg-bg-status.bg-failed {
color: $color-fg;
background-color: $color-danger-light;
background-color: $color-danger-lighter;
}
.pg-panel-content div.bg-process-watcher {

View File

@@ -236,10 +236,8 @@ a.dz-remove {
.file_listing .no_folder_found {
text-align: center;
position: absolute;
top: 50px;
width: 100%;
font-size: 14px;
padding: 0.5rem;
}
div.change_file_types span {

View File

@@ -29,9 +29,9 @@ define('misc.file_manager', [
// Call dialogs subject to dialog_type param
show_dialog: function(params) {
if (params.dialog_type == 'create_file') {
Alertify.createModeDlg(params).resizeTo('60%', '80%');
Alertify.createModeDlg(params).resizeTo(pgAdmin.Browser.stdW.md,pgAdmin.Browser.stdH.lg);
} else {
Alertify.fileSelectionDlg(params).resizeTo('60%', '80%');
Alertify.fileSelectionDlg(params).resizeTo(pgAdmin.Browser.stdW.md,pgAdmin.Browser.stdH.lg);
}
},
};

View File

@@ -576,7 +576,7 @@ define([
result += '</ul>';
} else {
result += '<table id="contents" class="table table-bordered table-noouter-border table-hover tablesorter">';
result += '<table id="contents" class="table table-bordered table-noouter-border table-bottom-border table-hover tablesorter">';
result += '<thead><tr><th>';
result += '<span>' + lg.name + '</span></th>';
result += '<th><span>' + lg.size + '</span></th><th>';
@@ -659,16 +659,15 @@ define([
if ($('.fileinfo').data('view') == 'grid') {
result += '<ul id="contents" class="grid"></ul>';
} else {
result += '<table id="contents" class="list tablesorter">';
result += '<thead><tr><th><span>' +
lg.name + '</span></th><th><span>' + lg.size +
'</span></th><th><span>' + lg.modified +
'</span></th></tr></thead>';
result += '<tbody>';
result += '<table id="contents" class="table table-bordered table-noouter-border table-empty-rows ablesorter">';
result += '<thead><tr><th><span>' + lg.name + '</span></th>' +
'<th><span>' + lg.size + '</span></th>' +
'<th><span>' + lg.modified + '</span></th>' +
'</tr></thead>';
result += '</tbody>';
result += '</table>';
}
result += '<h1 class="no_folder_found">' +
lg.could_not_retrieve_folder + '</h1>';
result += '<div class="no_folder_found">' + lg.could_not_retrieve_folder + '</div>';
var cap_no_folders = ['upload', 'create'];
data.Capabilities = cap_no_folders;
@@ -691,7 +690,7 @@ define([
if ($('.fileinfo').data('view') == 'grid') {
e.stopPropagation();
$this = $('.file_manager').find('#contents li.selected p');
orig_value = decodeURI($this.find('span').attr('title'));
orig_value = decodeURI($this.find('span.less_text').attr('title'));
newvalue = orig_value.substring(0, orig_value.indexOf('.'));
if (newvalue === '') {
@@ -715,7 +714,7 @@ define([
$this = $('.fileinfo').find(
'table#contents tbody tr.selected td:first-child p'
);
orig_value = decodeURI($this.find('span').html()),
orig_value = decodeURI($this.find('span.less_text').html()),
newvalue = orig_value.substring(0, orig_value.lastIndexOf('.'));
if (orig_value.lastIndexOf('/') == orig_value.length - 1 || newvalue === '') {
@@ -1137,7 +1136,7 @@ define([
<input type='checkbox' id='show_hidden' onclick='pgAdmin.FileUtils.handleClick(this)' tabindex='11'>
</div>
<div class="ml-auto">
<label>${gettext('Format')}</label>
<label class="my-auto">${gettext('Format')}</label>
<select name='type' tabindex='12'>${fileFormats}</select>
<div>`;
}

View File

@@ -142,6 +142,9 @@
.allowed_file_types {
border-top: $panel-border;
background: $color-bg-theme;
z-index: 5;
padding: 0.25rem;
}
.upload_file{
@@ -211,10 +214,10 @@
}
.fileinfo .fm_dimmer {
height: calc(100% - 32px);
display: none;
top: 0px;
background:$color-fg;
top: 0;
bottom: 0;
background: $loading-bg;
opacity: 0.5;
width: 100%;
position: absolute;
@@ -223,10 +226,8 @@
.fileinfo .delete_item, .fileinfo .replace_file {
display: none;
padding: 15px 15px;
border: 1px solid $color-gray-light;
border-left: 0;
border-right: 0;
padding: 1rem;
border-bottom: $panel-border;
background: $color-bg-theme;
position: absolute;
top: 0;
@@ -235,15 +236,6 @@
z-index: 4;
}
.fileinfo .delete_item span.pull-right .btn,
.fileinfo .replace_file span.pull-right .btn {
padding: 0px 5px;
color: $color-fg;
background: $color-bg;
font-size: 12px;
margin-right: 4px;
}
.upload_file .dz_cross_btn {
color: $color-fg-theme;
right: 0px;

View File

@@ -64,16 +64,16 @@
<div class='fm_dimmer'></div>
<div class='delete_item'>
<span>{{ _('Are you sure you want to delete this item?') }}</span>
<span class="pull-right">
<button type='button' class='btn btn_yes' tabindex="13">{{ _('Yes') }}</button>
<button type='button' class='btn btn_no' tabindex="14">{{ _('No') }}</button>
</span>
<span class="pull-right">
<button type='button' class='btn btn-secondary btn_no' tabindex="14">{{ _('No') }}</button>
<button type='button' class='btn btn-primary btn_yes' tabindex="13">{{ _('Yes') }}</button>
</span>
</div>
<div class='replace_file'>
<span>{{ _('Are you sure you want to replace this file?') }}</span>
<span class="pull-right">
<button type='button' class='btn btn_yes' tabindex="15">{{ _('Yes') }}</button>
<button type='button' class='btn btn_no' tabindex="16">{{ _('No') }}</button>
<button type='button' class='btn btn-secondary btn_no' tabindex="16">{{ _('No') }}</button>
<button type='button' class='btn btn-primary btn_yes' tabindex="15">{{ _('Yes') }}</button>
</span>
</div>
</div>

View File

@@ -6,11 +6,11 @@
cursor: pointer;
}
.pg-explain-zoom-btn {
.pg-explain-zoom-btn,
.pg-explain-download-btn {
top: 5px;
min-width: 25px;
cursor: pointer;
border: 1px solid transparent;
font-size: 0.75rem;
}
@@ -72,10 +72,3 @@ td.explain-tooltip-val {
left: 79px;
opacity: 0.5;
}
.pg-explain-download-btn {
top: 5px;
min-width: 25px;
border: 1px solid transparent;
font-size: 0.75rem;
}

View File

@@ -307,12 +307,6 @@ define('pgadmin.preferences', [
/*
* Clear the existing html in the preferences content
*/
// Keyboard short cuts and nodes wiull have striped divs
if (d.label.toLowerCase() == 'keyboard shortcuts' || d.label.toLowerCase() == 'nodes')
$container.find('.preferences_content').addClass('striped-divs');
else
$container.find('.preferences_content').removeClass('striped-divs');
$container.find('.preferences_content');
renderPreferencePanel(d.preferences);
@@ -477,7 +471,7 @@ define('pgadmin.preferences', [
},
show: function() {
Alertify.preferencesDlg(true).resizeTo('60%', '60%');
Alertify.preferencesDlg(true).resizeTo(pgAdmin.Browser.stdW.lg,pgAdmin.Browser.stdH.lg);
},
};

View File

@@ -3,22 +3,13 @@
padding-top: 2px;
height: 100%;
overflow: auto;
border-right: 2px solid $color-gray-light;
background-image: $color-gray-lighter;
}
.preferences_content {
&.striped-divs > {
div.pgadmin-control-group:nth-of-type(odd) {
background: $color-gray-light;
padding-top: 6px;
}
div.pgadmin-control-group:nth-of-type(even) {
background: $color-bg-theme;
}
}
border-right: $panel-border;
}
.btn-checkbox {
padding: $btn-checkbox-padding;
& input[type="checkbox"]{
margin-top: 0px !important;
}
}

View File

@@ -197,10 +197,10 @@ define([
this.pgResizeTimeout = null;
/** Calculations based on https://getbootstrap.com/docs/4.1/layout/grid/#grid-options **/
if (w < 576) {
if (w < 480) {
w = 'xs';
}
if (w >= 576) {
if (w >= 480) {
w = 'sm';
}
if (w >= 768) {

View File

@@ -2288,7 +2288,7 @@ define([
'<div class="input-group">',
'<input type="<%=type%>" class="form-control <%=extraClasses.join(\' \')%>" name="<%=name%>" min="<%=min%>" max="<%=max%>"maxlength="<%=maxlength%>" value="<%-value%>" placeholder="<%-placeholder%>" <%=disabled ? "disabled" : ""%> <%=required ? "required" : ""%> />',
'<div class="input-group-append">',
'<button class="btn btn-outline-secondary fa fa-ellipsis-h select_item" <%=disabled ? "disabled" : ""%> ></button>',
'<button class="btn btn-secondary fa fa-ellipsis-h select_item" <%=disabled ? "disabled" : ""%> ></button>',
'</div>',
'</div>',
'<% if (helpMessage && helpMessage.length) { %>',

View File

@@ -36,7 +36,13 @@
function getButtons(editable) {
var $buttons = $('<div class=\'pg_buttons\' />'),
label = editable ? 'Cancel' : 'OK',
button_type = editable ? 'btn-danger' : 'btn-primary';
button_type = editable ? 'btn-secondary' : 'btn-primary',
button_icon = editable ? 'fa-times' : 'fa-check';
$('<button class=\'btn ' + button_type + ' long_text_editor pg-alertify-button\' data-label="'+label+'">' +
'<span class="fa '+ button_icon +' pg-alertify-button"></span>&nbsp;'+ label +
'</button>')
.appendTo($buttons);
if (editable) {
$('<button class=\'btn btn-primary long_text_editor\' data-label="Save">'+
@@ -44,11 +50,6 @@
'</button>')
.appendTo($buttons);
}
$('<button class=\'btn ' + button_type + ' long_text_editor pg-alertify-button\' data-label="'+label+'">' +
'<span class="fa fa-save pg-alertify-button"></span>&nbsp;'+ label +
'</button>')
.appendTo($buttons);
return $buttons;
}
@@ -140,8 +141,8 @@
$input = getTextArea().appendTo($wrapper);
$buttons = getButtons(true).appendTo($wrapper);
$buttons.find('button:first').on('click', this.save);
$buttons.find('button:last').on('click', this.cancel);
$buttons.find('button:first').on('click', this.cancel);
$buttons.find('button:last').on('click', this.save);
$input.on('keydown', this.handleKeyDown);
scope.position(args.position);

View File

@@ -112,19 +112,17 @@ let FilterDialog = {
this.__internal.buttons[2].element.disabled = true;
// Status bar
this.statusBar = $('<div class=\'pg-prop-status-bar pg-el-xs-12 d-none\'>' +
' <div class=\'media error-in-footer bg-danger-light border-danger text-danger text-14\'>' +
' <div class=\'media-body media-middle\'>' +
' <div class=\'alert-icon error-icon\'>' +
' <i class=\'fa fa-exclamation-triangle\' aria-hidden=\'true\'></i>' +
' </div>' +
' <div class=\'alert-text\'>' +
' </div>' +
' </div>' +
' </div>' +
'</div>', {
text: '',
}).appendTo($container);
this.statusBar = $(
'<div class=\'pg-prop-status-bar pg-el-xs-12 d-none\'>' +
' <div class="error-in-footer"> ' +
' <div class="d-flex px-2 py-1"> ' +
' <div class="pr-2"> ' +
' <i class="fa fa-exclamation-triangle text-danger" aria-hidden="true"></i> ' +
' </div> ' +
' <div class="alert-text"></div> ' +
' </div> ' +
' </div> ' +
'</div>').appendTo($container);
// To show progress on filter Saving/Updating on AJAX
this.showFilterProgress = $(
@@ -259,7 +257,7 @@ let FilterDialog = {
};
});
Alertify.filterDialog(title).resizeTo('65%', '60%');
Alertify.filterDialog(title).resizeTo(pgAdmin.Browser.stdW.md,pgAdmin.Browser.stdH.md);
})
.fail(function(e) {
handleQueryToolAjaxError(pgAdmin, handler, e, '_show_filter', [], true);

View File

@@ -88,14 +88,15 @@ let queryToolNotifications = {
// Set up the grid
let notifications_grid = new Backgrid.Grid({
emptyText: 'No data found',
columns: gridCols,
collection: queryToolNotifications.collection,
className: 'backgrid table-bordered presentation table backgrid-striped',
className: 'backgrid presentation table table-bordered table-hover table-noouter-border table-bottom-border',
});
// Render the grid
if (notifications_grid)
notifications_panel.$container.append(notifications_grid.render().el);
notifications_panel.$container.find('.sql-editor-notifications').append(notifications_grid.render().el);
},
// This function is used to raise notify messages and update the

View File

@@ -3,7 +3,7 @@
}
.aciTree .aciTreeText {
font-family: $font-family-primary;
font-size: 12px;
font-size: 0.815rem;
}
.aciTree.aciTreeFocus .aciTreeFocus > .aciTreeLine {
background-color: $color-primary-light;

View File

@@ -104,25 +104,17 @@
}
.alert-text {
flex-grow: 1;
border: 1px solid $color-danger-light;
padding: 6px 12px 6px 10px;
border-left: none;
-moz-user-select: text;
-khtml-user-select: text;
-webkit-user-select: text;
-ms-user-select: text;
user-select: text;
width: 100%;
}
.error-in-footer {
border-radius: 5px;
border: 1px solid transparent;
.alert-text {
border-color: $color-danger-light;
}
border-radius: $border-radius;
border: 1px solid $color-danger-light;
background: $color-danger-lighter;
}
.success-in-footer {

View File

@@ -32,7 +32,7 @@
border-top-left-radius: $panel-border-radius;
border-top-right-radius: $panel-border-radius;
& .ajs-content {
top: 0;
top: 0 !important;
border-radius: inherit;
}
}
@@ -48,7 +48,8 @@
}
}
.ajs-body .ajs-content {
top: $title-height;
top: $title-height !important;
bottom: $footer-height-calc !important;
}
/* Removes padding from alertify footer */
@@ -114,6 +115,10 @@
}
}
.alertify.ajs-frameless .ajs-body .ajs-content {
bottom: 0px !important;
}
.alertify.ajs-maximized .ajs-commands,
.alertify.ajs-resizable .ajs-commands {
margin: 2px 0px 0 0;
@@ -180,11 +185,9 @@
}
.pg-alertify-icon-button {
//refered - $input-btn-padding-y, $input-btn-padding-x
padding: 0.275rem $input-btn-padding-x;
&:before {
font-size: 1.3em !important;
line-height: 1.3;
line-height: 1.2;
font-family: $font-family-icon;
}
}
@@ -195,7 +198,7 @@
}
.ajs-message.ajs-error.ajs-visible {
background: $color-danger-light;
background: $color-danger-lighter;
border: $border-width solid $color-danger;
@extend .ajs-text-smoothing;
}
@@ -215,3 +218,7 @@
.ajs-message > .media > .media-body.media-middle {
display: flex;
}
.alertify .ajs-dimmer {
background-color: $loading-bg;
}

View File

@@ -1,6 +1,6 @@
.has-error {
.pgadmin-controls .form-control {
border-color: $color-danger;
border-color: $color-danger-light;
}
.form-control {
@@ -11,15 +11,15 @@
color: $color-danger;
}
.control-label:before {
.control-label::before {
font: normal normal normal 16px/1 FontAwesome;
content: "\f071";
text-decoration: inherit;
position: absolute;
color: $color-danger;
right: 6px;
padding-top: 6px;
right: 0.5rem;
z-index: 1;
line-height: inherit;
}
}
@@ -36,10 +36,14 @@
}
}
.backform-tab .tab-pane {
padding: 7px;
padding: 0.5rem;
&.SQL {
height: 100%;
padding: 0px 7px 0px 0px;
padding: 0px;
& .pgadmin-controls.SQL {
padding: 0px;
}
}
}

View File

@@ -1,6 +1,7 @@
.backgrid th, .backgrid td {
font-weight: normal!important;
text-align: left;
line-height: $line-height-base;
}
.backgrid.backgrid-striped tbody {
@@ -223,6 +224,10 @@ span.form-control:disabled {
background-color: $color-bg;
border: 1px solid $border-color;
border-radius: $panel-border-radius;
& .tab-pane {
padding: 0.5rem;
}
}
.subnode-footer {
height: 38px;

View File

@@ -18,6 +18,10 @@ iframe {
border-width: 0;
}
legend {
margin-bottom: 0rem;
}
/* Padding for the treeview */
.browser-browser-pane {
padding-left: 0;
@@ -134,13 +138,19 @@ iframe {
border-left: 5px solid;
border-top: 5px solid transparent;
}
/* 25px is for showing error icon */
.control-label {
display: inline-block;
margin: 0px;
padding: 5px 25px 5px 5px;
padding: 5px 25px 5px 5px !important;
vertical-align: middle;
}
.form-check {
padding-left: 0rem;
padding-right: 0.5rem;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
color: $text-muted;
}
@@ -259,6 +269,7 @@ td.switch-cell > div.bootstrap-switch {
font-weight: bold;
&.active {
border-bottom: $active-border !important;
color: $color-primary;
}
}
}
@@ -311,3 +322,17 @@ td.switch-cell > div.bootstrap-switch {
.bootstrap-datetimepicker-widget thead th {
background-color: $color-bg;
}
.input-group {
& .input-group-text {
background: $input-bg;
}
}
/* bootstrap-switch */
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary, .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {
background: $color-primary;
}
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success, .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {
background: $color-success;
}

View File

@@ -24,9 +24,6 @@
.user-language div{
float:left;
}
.user-language select{
height: 25px !important;
}
.Resizer {
background: $color-gray-lighter;
@@ -142,7 +139,7 @@
}
.alertify .ajs-body {
min-height: $footer-height-calc*2;
min-height: $footer-height-calc*1.5;
}
@@ -248,6 +245,10 @@
margin-bottom: 33px;
}
.pg-prop-btn-group-above {
border-bottom: $panel-border;
}
.has-pg-prop-btn-group {
top: 45px;
height: calc(100% - 45px);
@@ -323,9 +324,10 @@
}
.pgadmin-controls {
padding-right: 3px;
padding-left: 3px;
padding-right: 0px;
padding-left: 0px;
}
.pgadmin-controls.SQL {
padding-right: 3px;
padding-left: 1px;
@@ -372,6 +374,11 @@
border-radius: 0rem;
border-top-left-radius: $card-border-radius;
border-top-right-radius: $card-border-radius;
&.collapsed {
border-bottom: none !important;
border-radius: $card-border-radius;
}
}
.obj_properties .badge .caret {
@@ -502,15 +509,17 @@ fieldset.inline-fieldset > div {
padding: 15px;
}
.pgadmin-control-group.sql {
margin: 0px;
padding: 0px;
height: 100%;
.pgadmin-control-group{
&.sql, &.sqltab {
margin: 0px;
padding: 0px;
height: 100%;
}
}
.pgadmin-controls input[type="checkbox"]{
margin-left: 0 !important;
margin-top: 0px !important;
margin-top: 10px !important;
}
.pgadmin-controls.sql_field_layout {
@@ -520,14 +529,14 @@ fieldset.inline-fieldset > div {
z-index: 1;
}
.pgadmin-controls.focused {
border-color: $color-primary-light;
.pgadmin-controls.focused,
.pgadmin-controls:focus {
border-color: $input-focus-border-color !important;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba($color-primary, .6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba($color-primary, .6);
-webkit-box-shadow: $input-focus-box-shadow;
box-shadow: $input-focus-box-shadow;
}
.dashboard-tab-container,
.pg-panel-statistics-container,
.pg-panel-depends-container,
@@ -742,14 +751,7 @@ form[name="change_password_form"] .help-block {
}
}
.close-error-bar {
background: $color-danger;
padding: 5px;
border-radius: 0px 4px 4px 0px;
}
.close-error-bar a {
color: $color-danger-fg !important;
.close-error {
cursor: pointer;
}
@@ -831,6 +833,15 @@ table.table-bottom-border {
}
}
table.table-empty-rows{
thead th:last-of-type,tr:last-of-type{
& td, & th {
border-bottom: $panel-border;
}
}
}
.context-menu-list .context-menu-submenu:after {
font-family: $font-family-icon;
content: "\f054" !important;
@@ -852,14 +863,21 @@ table.table-bottom-border {
padding-bottom: 1.0rem;
}
& .panel-body {
padding-botttom: 0.8rem;
padding-bottom: 0.8rem;
}
& .btn-login {
background-color: $security-btn-color;
}
& .user-language select {
background-color: transparent;
color: $security-text-color;
& .user-language {
& select{
background-color: $color-primary;
color: $security-text-color;
& option{
background-color: $color-primary;
color: $security-text-color;
}
}
}
& .pg-icon {
width: 28px;
@@ -917,7 +935,6 @@ table.table-bottom-border {
}
}
.backform-tab{
& > .nav.nav-tabs {
position: absolute;
@@ -928,7 +945,7 @@ table.table-bottom-border {
& > .tab-content {
position: absolute;
top: $title-height;
bottom: 50px;
bottom: $footer-height-calc;
}
}
.ajs-content {

View File

@@ -30,18 +30,14 @@
height: 100%;
}
.select2-container--default.select2-container--focus
.select2-selection--multiple {
border: 1px solid $color-gray-light !important;
outline: 0 none;
}
.select2-container--default.select2-container--focus {
border-color: $color-primary-light;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba($color-primary, .6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba($color-primary, .6);
& .select2-selection--single,
& .select2-selection--multiple {
border-color: $input-focus-border-color !important;
outline: 0;
-webkit-box-shadow: $input-focus-box-shadow;
box-shadow: $input-focus-box-shadow;
}
}

View File

@@ -29,8 +29,8 @@
}
.wcFrameButton {
width: 25px;
height: 20px;
width: 24px;
height: 22px;
display: flex;
border-radius: $btn-border-radius;
margin: auto;
@@ -85,6 +85,66 @@
.wcFloating {
box-shadow: $box-shadow;
z-index: 1050 !important;
&.wcFrame, & .wcPanelBackground {
border-bottom-left-radius: $card-border-radius;
border-bottom-right-radius: $card-border-radius;
}
& .pg-panel-content {
border-bottom: $card-border-radius;
}
& .wcFrameCornerNE,
& .wcFrameCornerNW,
& .wcFrameCornerSE,
& .wcFrameCornerSW {
height: $card-border-radius*2;
width: $card-border-radius*2;
background: transparent;
}
& .wcFrameCornerNE {
border: $panel-border;
border-left: none !important;
border-bottom: none !important;
border-radius: none;
border-top-right-radius: $card-border-radius;
}
& .wcFrameCornerNW {
border: $panel-border;
border-right: none !important;
border-bottom: none !important;
border-radius: none;
border-top-left-radius: $card-border-radius;
}
& .wcFrameCornerSE {
border: $panel-border;
border-top: none !important;
border-left: none !important;
border-radius: none;
border-bottom-right-radius: $card-border-radius;
}
& .wcFrameCornerSW {
border: $panel-border;
border-right: none !important;
border-top: none !important;
border-radius: none;
border-bottom-left-radius: $card-border-radius;
}
.wcFrameEdgeH {
left: $card-border-radius !important;
right: $card-border-radius !important;
}
.wcFrameEdgeV {
top: $card-border-radius !important;
bottom: $card-border-radius !important;
}
}
.wcFloating .wcPanelTabActive {

View File

@@ -22,6 +22,10 @@
&-light {
background-color: $color-danger-light;
}
&-lighter {
background-color: $color-danger-lighter;
}
}
.bg-success {
@@ -81,6 +85,10 @@
&-light {
border-color: $color-danger-light;
}
&-lighter {
border-color: $color-danger-lighter;
}
}
.border-success {

View File

@@ -19,7 +19,8 @@ $color-secondary: $white !default;
$color-danger: #e53935 !default;
$color-danger-fg: $white !default;
$color-danger-light: #FBE1E1;
$color-danger-light: #F39999;
$color-danger-lighter: #FAECEC;
$color-success: #43a047 !default;
$color-success-fg: $black !default;
@@ -51,7 +52,7 @@ $font-family-editor: 'Source Code Pro' !default;
$font-family-icon: 'FontAwesome' !default;
$border-width: 1px;
$border-color: rgba($color-gray, 0.5);
$border-color: #dde0e6;
$border-color-dark: $color-gray;
$box-shadow: 0 0.5rem 3rem $color-gray-dark;
@@ -59,7 +60,8 @@ $box-shadow: 0 0.5rem 3rem $color-gray-dark;
$gray-600: $color-gray-dark;
$gray-900: $color-fg-theme;
$body-color: $color-fg-theme;
$font-size-base: 0.815rem;
$font-size-base: 0.875rem;
$line-height-base: 1.5; // no change
$grid-gutter-width: 15px;
$border-radius: 0.25rem; //no change
@@ -122,9 +124,19 @@ $input-border-radius: $border-radius; //no change
$input-disabled-bg: $color-gray-lighter;
$input-btn-border-width: $border-width; //no change
$input-border-width: $input-btn-border-width; //no change
$input-btn-padding-y: .375rem; //no change
$input-btn-padding-y: .25rem;
$input-btn-padding-x: .75rem; //no change
$component-active-bg: $color-primary; //no change
$input-btn-focus-width: .2rem !default; //no change
$input-btn-focus-color: rgba($component-active-bg, .25) !default; //no change
$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default; //no change
$input-focus-bg: $input-bg !default; //no change
$input-focus-border-color: lighten($component-active-bg, 25%) !default; //no change
$input-focus-color: $input-color !default; //no change
$input-focus-width: $input-btn-focus-width !default; //no change
$input-focus-box-shadow: $input-btn-focus-box-shadow !default; //no change
$btn-border-radius: $border-radius; //no change
/***************/
@@ -136,12 +148,12 @@ $panel-border-radius: $border-radius;
$panel-border: $panel-border-width solid $panel-border-color !important;
$panel-border-dark: $panel-border-width solid $border-color-dark !important;
$tabs-padding: 5px 10px 2px;
$title-height: 37px * $font-size-base/1rem;
$title-height: ($line-height-base*16px) + 5px + 2px + $border-width;
$footer-padding: 0.5rem;
$footer-min-height: 2.18rem;
$footer-min-height: 2rem;
$footer-height-calc: $footer-min-height+$footer-padding*2;
$navbar-font-size: 0.875rem;
$navbar-user-font-size: 0.815rem;
$navbar-font-size: 0.925rem;
$navbar-user-font-size: 0.875rem;
$navbar-dropdown-top: 100%;
$dropdown-submenu-top: -$dropdown-spacer;
@@ -160,7 +172,7 @@ $sql-gutters-bg: $color-gray-light;
$sql-history-detail-bg: $color-gray-lighter;
$sql-history-success-bg: $color-primary-light;
$sql-history-success-fg: $color-primary;
$sql-history-error-bg: $color-danger-light;
$sql-history-error-bg: $color-danger-lighter;
$sql-history-error-fg: $color-danger;
$negative-bg: $color-gray-light;
@@ -175,7 +187,7 @@ $btn-secondary-hover-bg: $color-gray-light;
$card-header-padding : 0.25rem 0.5rem;
$no-border-radius: 0px !important;
$btn-checkbox-padding: 0.3rem 0.8rem;
$btn-checkbox-padding: $input-btn-padding-y $input-btn-padding-x;
$security-text-color: $white;
$security-btn-color: #038bba;

View File

@@ -404,7 +404,6 @@
var SpacerControl = Backform.SpacerControl = Control.extend({
template: _.template([
'<label class="<%=Backform.controlLabelClassName%>">&nbsp;</label>',
'<div class="<%=Backform.controlsClassName%>"></div>'
].join("\n"))
});
@@ -558,7 +557,7 @@
},
template: _.template([
'<label class="<%=Backform.controlLabelClassName%>"><%=label%></label>',
'<div class="<%=Backform.controlContainerClassName%> form-check-inline">',
'<div class="<%=Backform.controlContainerClassName%> d-flex">',
' <% for (var i=0; i < options.length; i++) { %>',
' <% var option = options[i]; %>',
' <% var id = _.uniqueId("bf_"); %>',

View File

@@ -80,10 +80,6 @@
text-align: center;
}
.backgrid td.editor {
padding: 0;
}
.backgrid td.editor,
.backgrid tbody tr:nth-child(odd) td.editor {
background-color: rgba(82, 168, 236, 0.1);

View File

@@ -4,7 +4,7 @@
type="{% if type %}{{ type }}{% else %}{{ field.type }}{% endif %}" autofocus>
{% if field.errors %}
{% for error in field.errors %}
<span class="form-text text-danger">{{ error }}</span>
<span class="form-text">{{ error }}</span>
{% endfor %}
{% endif %}
</div>

View File

@@ -14,8 +14,8 @@
{{ render_field_with_errors(login_user_form.password, "password") }}
<button class="btn btn-primary btn-block btn-login" type="submit" value="{{ _('Login') }}">{{ _('Login') }}</button>
<div class="form-group row mb-3 c user-language">
<div class="col-8"><span class="help-block">{{ _('<a href="%(url)s" class="text-white">Forgotten your password</a>?', url=url_for('browser.forgot_password')) }}</span></div>
<div class="col-4">
<div class="col-7"><span class="help-block">{{ _('<a href="%(url)s" class="text-white">Forgotten your password</a>?', url=url_for('browser.forgot_password')) }}</span></div>
<div class="col-5">
<select class="form-control" name="language" value="{{user_language}}">
{% for key, lang in config.LANGUAGES.items() %}
<option value="{{key}}" {% if user_language == key %}selected{% endif %}>{{lang}}</option>

View File

@@ -50,7 +50,7 @@ define([
' <span class="<%=Backform.helpMessageClassName%>"><%=helpMessage%></span>',
'<% } %>',
].join('\n')),
className: 'pgadmin-control-group form-group pg-el-md-6 pg-el-xs-12 row',
className: 'pgadmin-control-group form-group pg-el-md-6 pg-el-12 row',
});
//Backup Model (Server Node)
@@ -580,7 +580,7 @@ define([
alertify,
BackupModel
);
dialog.draw(action, item, {'globals': true});
dialog.draw(action, item, {'globals': true}, pgBrowser.stdW.md, pgBrowser.stdH.md);
},
start_backup_server: function(action, item) {
let dialog = new globalBackupDialog.BackupDialog(
@@ -589,7 +589,7 @@ define([
alertify,
BackupObjectModel
);
dialog.draw(action, item, {'server': true});
dialog.draw(action, item, {'server': true}, pgBrowser.stdW.md, pgBrowser.stdH.md);
},
// Callback to draw Backup Dialog for objects
backup_objects: function(action, treeItem) {
@@ -599,7 +599,7 @@ define([
alertify,
BackupObjectModel
);
dialog.draw(action, treeItem, null);
dialog.draw(action, treeItem, null, pgBrowser.stdW.md, pgBrowser.stdH.md);
},
};
return pgBrowser.Backup;

View File

@@ -28,7 +28,7 @@ export class BackupDialog extends Dialog {
});
}
draw(action, aciTreeItem, params) {
draw(action, aciTreeItem, params, width=0, height=0) {
const serverInformation = this.retrieveAncestorOfTypeServer(aciTreeItem);
if (!serverInformation) {
@@ -66,7 +66,7 @@ export class BackupDialog extends Dialog {
typeOfDialog
);
dialog(true).resizeTo('60%', '50%');
dialog(true).resizeTo(width, height);
}).catch(function() {
that.alertify.alert(
gettext('Utility not found'),

View File

@@ -379,7 +379,7 @@ define('pgadmin.datagrid', [
$.get(url_for('datagrid.filter'),
function(data) {
alertify.filterDialog('Data Filter', data, baseUrl, validateUrl)
.resizeTo(300, 200);
.resizeTo(pgBrowser.stdW.sm,pgBrowser.stdH.sm);
}
);
},

View File

@@ -951,7 +951,7 @@ define([
Alertify.debuggerInputArgsDialog(
gettext('Debugger'), debug_info, restart_debug, is_edb_proc
).resizeTo('60%', '60%');
).resizeTo(pgBrowser.stdW.md,pgBrowser.stdH.md);
};

View File

@@ -1031,6 +1031,7 @@ define([
// Render SqlTab control to generate its html markup
var sqlCtrlHtml = sqlControl.render().$el;
sqlCtrlHtml.addClass('h-100');
this.render = function() {
return {
el: sqlCtrlHtml,
@@ -1150,7 +1151,7 @@ define([
}
// Call Grant Wizard Dialog and set dimensions for wizard
Alertify.wizardDialog(true).resizeTo('55%', '75%');
Alertify.wizardDialog(true).resizeTo(pgBrowser.stdW.lg,pgBrowser.stdH.lg);
},
};

View File

@@ -29,6 +29,7 @@
height: calc(100% - 15px);
display: block;
padding: 0;
overflow-y: hidden !important;
}
.object_type_table thead {
@@ -114,8 +115,8 @@
.wizard-right-panel_content .CodeMirror {
border: 1px solid $color-gray-light;
height: 285px !important;
min-height: 285px !important;
height: 100% !important;
min-height: 100% !important;
}
.wizard-right-panel_content .CodeMirror-linenumber {
@@ -123,10 +124,6 @@
border-right: none;
}
.wizard-right-panel_content .CodeMirror-gutters {
min-height: 285px !important;
}
.grant_wizard_container {
position: relative;
overflow: hidden;

View File

@@ -496,6 +496,8 @@ Backform, commonUtils, supportedNodes
}],
options: {
modal: true,
padding: !1,
overflow: !1,
},
};
},
@@ -645,10 +647,6 @@ Backform, commonUtils, supportedNodes
}
});
// Give the dialog initial height & width
this.elements.dialog.style.minHeight = '80%';
this.elements.dialog.style.minWidth = '70%';
view.$el.attr('tabindex', -1);
// var dialogTabNavigator = pgBrowser.keyboardNavigation.getDialogTabNavigator(view);
pgBrowser.keyboardNavigation.getDialogTabNavigator(view);
@@ -682,7 +680,7 @@ Backform, commonUtils, supportedNodes
S(
gettext('Import/Export data - table \'%s\'')
).sprintf(treeInfo.table.label).value(), node, i, d
).set('resizable', true).resizeTo('70%', '80%');
).set('resizable', true).resizeTo(pgAdmin.Browser.stdW.md,pgAdmin.Browser.stdH.lg);
})
.fail(function() {
Alertify.alert(

View File

@@ -34,7 +34,7 @@ define([
' <span class="<%=Backform.helpMessageClassName%>"><%=helpMessage%></span>',
'<% } %>',
].join('\n')),
className: 'pgadmin-control-group form-group col-6',
className: 'pgadmin-control-group form-group pg-el-md-6 pg-el-12 row',
});
// Main model for Maintenance functionality
@@ -492,7 +492,8 @@ define([
return;
}
// Open the Alertify dialog
Alertify.MaintenanceDialog('Maintenance...').set('resizable', true).resizeTo('60%', '80%');
Alertify.MaintenanceDialog(gettext('Maintenance...')).set('resizable', true)
.resizeTo(pgAdmin.Browser.stdW.md,pgAdmin.Browser.stdH.md);
})
.fail(function() {
Alertify.alert(

View File

@@ -29,7 +29,7 @@ commonUtils, menuUtils, supportedNodes, restoreDialog
' <span class="<%=Backform.helpMessageClassName%>"><%=helpMessage%></span>',
'<% } %>',
].join('\n')),
className: 'pgadmin-control-group form-group pg-el-4 row',
className: 'pgadmin-control-group form-group pg-el-md-6 row',
});
//Restore Model (Objects like Database/Schema/Table)
@@ -381,7 +381,7 @@ commonUtils, menuUtils, supportedNodes, restoreDialog
let dialog = new restoreDialog.RestoreDialog(
pgBrowser, $, alertify, RestoreObjectModel
);
dialog.draw(action, treeItem);
dialog.draw(action, treeItem, pgBrowser.stdW.md, pgBrowser.stdH.md);
},
};
return pgBrowser.Restore;

View File

@@ -27,7 +27,7 @@ export class RestoreDialog extends Dialog {
});
}
draw(action, aciTreeItem) {
draw(action, aciTreeItem, width, height) {
const serverInformation = this.retrieveAncestorOfTypeServer(aciTreeItem);
@@ -69,7 +69,8 @@ export class RestoreDialog extends Dialog {
let title = sprintf(gettext('Restore (%s: %s)'), node.label, data.label);
that.createOrGetDialog(title, 'restore');
that.alertify.pg_restore(title, aciTreeItem1, data, node).resizeTo('65%', '60%');
that.alertify.pg_restore(title, aciTreeItem1, data, node)
.resizeTo(width, height);
}).catch(function() {
that.alertify.alert(
gettext('Utility not found'),

View File

@@ -310,7 +310,9 @@ input.editor-checkbox:focus {
/* For Filter status bar */
.data_sorting_dialog .pg-prop-status-bar {
position: absolute;
bottom: 40px;
left: 0;
right: 0;
bottom: 0;
z-index: 5;
}

View File

@@ -2172,7 +2172,7 @@ define('tools.querytool', [
/* If filter is applied then remove class 'btn-secondary'
* and add 'btn-warning' to change the colour of the button.
* and add 'btn-primary' to change the colour of the button.
*/
if (self.can_filter && res.data.filter_applied) {
$('#btn-filter').removeClass('btn-secondary');

View File

@@ -218,11 +218,10 @@ li.CodeMirror-hint-active {
.pg_text_editor {
z-index:10000;
position:absolute;
background: $color-bg;
padding: 7px 5px 5px 1px;
border:2px solid $color-gray;
-moz-border-radius:10px;
border-radius:10px;
background: $color-bg-theme;
padding: 0.25rem;
border: $panel-border;
box-shadow: $dropdown-box-shadow;
}
.editor-title {

View File

@@ -122,7 +122,7 @@ define([
});
}
alertify.ChangePassword(title, url).resizeTo('55%', '60%');
alertify.ChangePassword(title, url).resizeTo(pgBrowser.stdW.lg, pgBrowser.stdH.md);
},
isPgaLoginRequired(xhr) {
@@ -220,7 +220,7 @@ define([
});
}
alertify.PgaLogin(title, url).resizeTo('75%','70%');
alertify.PgaLogin(title, url).resizeTo(pgBrowser.stdW.md, pgBrowser.stdH.md);
},
// Callback to draw User Management Dialog.
@@ -625,18 +625,19 @@ define([
prepare: function() {
var footerTpl = _.template([
'<div class="pg-prop-footer" style="visibility:hidden;">',
'<div class="pg-prop-status-bar">',
'<div class="media error-in-footer bg-danger-light border-danger text-danger text-14">',
'<div class="media-body media-middle">',
'<div class="alert-icon error-icon">',
'<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>',
'</div>',
'<div class="alert-text">',
'</div>',
'<div class="close-error-bar"><a class="close-error">x</a></div>',
'</div>',
'</div>',
'</div>',
' <div class="pg-prop-status-bar">',
' <div class="error-in-footer"> ',
' <div class="d-flex px-2 py-1"> ',
' <div class="pr-2"> ',
' <i class="fa fa-exclamation-triangle text-danger" aria-hidden="true"></i> ',
' </div> ',
' <div class="alert-text"></div> ',
' <div class="ml-auto close-error-bar"> ',
' <a class="close-error fa fa-times text-danger"></a> ',
' </div> ',
' </div> ',
' </div> ',
' </div>',
'</div>',
].join('\n')),
$statusBar = $(footerTpl()),
@@ -887,7 +888,7 @@ define([
};
});
}
alertify.UserManagement(true).resizeTo('680px', '400px');
alertify.UserManagement(true).resizeTo(pgBrowser.stdW.md, pgBrowser.stdH.md);
},
};

View File

@@ -24,23 +24,4 @@
.user_management .backform-tab {
height: calc(100% - 75px);
}
.user_management .search_users {
float:right;
margin-right: 5px;
padding:0 !important;
}
.user_management .search_users input{
height:15px;
margin-top: 3px;
}
.user_management input[placeholder] {
font-size: 12px;
}
.user_management_pg-alertify-button {
line-height: 16px;
}
}

View File

@@ -40,6 +40,18 @@ describe('BackupDialog', () => {
getTreeNodeHierarchy: jasmine.createSpy('db.getTreeNodeHierarchy'),
},
},
stdW: {
sm: 500,
md: 700,
lg: 900,
default: 500,
},
stdH: {
sm: 200,
md: 400,
lg: 550,
default: 550,
},
};
pgBrowser.Nodes.server.hasId = true;
pgBrowser.Nodes.database.hasId = true;
@@ -196,10 +208,10 @@ describe('BackupDialog', () => {
});
it('displays the dialog', (done) => {
backupDialog.draw(null, [{id: 'serverTreeNode'}], null);
backupDialog.draw(null, [{id: 'serverTreeNode'}], null, pgBrowser.stdW.md, pgBrowser.stdH.md);
setTimeout(() => {
expect(alertifySpy['backup_objects']).toHaveBeenCalledWith(true);
expect(backupDialogResizeToSpy.resizeTo).toHaveBeenCalledWith('60%', '50%');
expect(backupDialogResizeToSpy.resizeTo).toHaveBeenCalledWith(pgBrowser.stdW.md, pgBrowser.stdH.md);
done();
}, 0);
});

View File

@@ -31,6 +31,18 @@ describe('GlobalServerBackupDialog', () => {
Nodes: {
server: jasmine.createSpyObj('Node[server]', ['getTreeNodeHierarchy']),
},
stdW: {
sm: 500,
md: 700,
lg: 900,
default: 500,
},
stdH: {
sm: 200,
md: 400,
lg: 550,
default: 550,
},
};
pgBrowser.Nodes.server.hasId = true;
jquerySpy = jasmine.createSpy('jquerySpy');
@@ -158,10 +170,10 @@ describe('GlobalServerBackupDialog', () => {
context('dialog for global backup', () => {
it('displays the dialog', (done) => {
backupDialog.draw(null, [serverTreeNode], {globals: true});
backupDialog.draw(null, [serverTreeNode], {globals: true}, pgBrowser.stdW.md, pgBrowser.stdH.md);
setTimeout(() => {
expect(alertifySpy['BackupDialog_globals']).toHaveBeenCalledWith(true);
expect(globalResizeToSpy.resizeTo).toHaveBeenCalledWith('60%', '50%');
expect(globalResizeToSpy.resizeTo).toHaveBeenCalledWith(pgBrowser.stdW.md, pgBrowser.stdH.md);
done();
}, 0);
});
@@ -169,10 +181,10 @@ describe('GlobalServerBackupDialog', () => {
context('dialog for server backup', () => {
it('displays the dialog', (done) => {
backupDialog.draw(null, [serverTreeNode], {server: true});
backupDialog.draw(null, [serverTreeNode], {server: true}, pgBrowser.stdW.md, pgBrowser.stdH.md);
setTimeout(() => {
expect(alertifySpy['BackupDialog_server']).toHaveBeenCalledWith(true);
expect(serverResizeToSpy.resizeTo).toHaveBeenCalledWith('60%', '50%');
expect(serverResizeToSpy.resizeTo).toHaveBeenCalledWith(pgBrowser.stdW.md, pgBrowser.stdH.md);
done();
}, 0);
});

View File

@@ -17,6 +17,21 @@ describe('fileSelectDialog', function () {
let params;
pgAdmin.Browser = {
stdW: {
sm: 500,
md: 700,
lg: 900,
default: 500,
},
stdH: {
sm: 200,
md: 400,
lg: 550,
default: 550,
},
};
describe('When dialog is called for select file', () => {
it('Select file dialog', function() {
params = {

View File

@@ -27,6 +27,18 @@ describe('RestoreDialog', () => {
server: jasmine.createSpyObj('Node[server]', ['getTreeNodeHierarchy']),
database: jasmine.createSpyObj('Node[database]', ['getTreeNodeHierarchy']),
},
stdW: {
sm: 500,
md: 700,
lg: 900,
default: 500,
},
stdH: {
sm: 200,
md: 400,
lg: 550,
default: 550,
},
};
pgBrowser.Nodes.server.hasId = true;
pgBrowser.Nodes.database.hasId = true;
@@ -185,7 +197,7 @@ describe('RestoreDialog', () => {
});
it('displays the dialog', (done) => {
restoreDialog.draw(null, [{id: 'serverTreeNode'}], {server: true});
restoreDialog.draw(null, [{id: 'serverTreeNode'}], pgBrowser.stdW.md, pgBrowser.stdH.md);
setTimeout(() => {
expect(alertifySpy['pg_restore']).toHaveBeenCalledWith(
'Restore (some-server-label: some-tree-label)',
@@ -197,7 +209,7 @@ describe('RestoreDialog', () => {
},
pgBrowser.Nodes.server
);
expect(spy.resizeTo).toHaveBeenCalledWith('65%', '60%');
expect(spy.resizeTo).toHaveBeenCalledWith(pgBrowser.stdW.md, pgBrowser.stdH.md);
done();
}, 0);
});