mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-20 11:48:31 -06:00
1) Add New Server Connection > Server options keep loading(For empty Server group). 2) After clicking indent/Unindent(for all operations) for large query option left as it is till operation completes 3) Check sign beside options in Execute Option/Copy Header is little bit big 4) In explain > Analysis tab does not show ROWS column 5) In explain > Explain > analysis previous explain output is NOT cleared. New rows are appended. Same applies to the statistics tab. 6) Update new query tool connection tool tip. Fixes #7289 7) Explain-Analyze > Loops column is empty. 8) Explain-Analyze with Verbose & Costs > in ROW X columns upward arrows are missing. 9) Explain-Analyze with all option checked > background colors are missing for timing. 10) Explain-Analyze > Additional bullet is added before Hash Cond. 11) Browser Tree > Filtered rows icon is not working. 12) Create table with timestamp and default value as function now() > Add new row > Enter mandatory columns except column where default value is function(now()) > Click Save > New row added but column with default value has value [default]. not updated to actual value. / Default values are not considered for any column while adding a new entry. 13) Disable execute options in View/Edit data. 14) The Boolean column always shows null. 15) In Query history Remove & Remove all buttons are stuck to each other. 16) On Remove all, the right panel is empty. 17) Create a column with boolean[]/ text[], Try to add a new entry from data grid, enter “” quotes > Click Ok > Now try edit cell > You can not change value. 18) In query history - Select queries are suffixed by ’Save Data’ icon 19) Edit any table with PK > Try to insert duplicate PK > Error thrown > Correct pK value > Still old error shown > Not able to add new entry (This works when focus is moved from edited cell) 20) Clicking arrows after opening dropdown options, does not collapse dropdown. refs #6131
47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
import _ from 'lodash';
|
|
|
|
export default class EventBus {
|
|
constructor() {
|
|
this._eventListeners = [];
|
|
}
|
|
|
|
registerListener(event, callback, once=false) {
|
|
this._eventListeners = this._eventListeners || [];
|
|
this._eventListeners.push({
|
|
event: event,
|
|
callback: callback,
|
|
fired: once ? 'pending' : 'ignore',
|
|
});
|
|
}
|
|
|
|
deregisterListener(event, callback) {
|
|
if(callback) {
|
|
this._eventListeners = this._eventListeners.filter((e)=>{
|
|
if(e.event === event) {
|
|
return e.callback.toString()!=callback.toString();
|
|
}
|
|
return true;
|
|
});
|
|
} else {
|
|
this._eventListeners = this._eventListeners.filter((e)=>e.event!=event);
|
|
}
|
|
}
|
|
|
|
fireEvent(event, ...args) {
|
|
let self = this;
|
|
Promise.resolve(0).then(()=>{
|
|
let allListeners = _.filter(this._eventListeners, (e)=>e.event==event);
|
|
if(allListeners) {
|
|
for(const listener of allListeners) {
|
|
Promise.resolve(0).then(()=>{
|
|
listener.callback(...args);
|
|
if(listener.fired == 'pending') {
|
|
self.deregisterListener(event, listener.callback);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|