From 72ed7254e8f3c10241179d9cf4d01f39c26938f9 Mon Sep 17 00:00:00 2001 From: lsv Date: Thu, 14 Jan 2021 11:07:31 +0500 Subject: [PATCH] Job pgpro_scheduler refresh. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Дабавлено для заданий "время устаревания" в 5 мин. По истечении этого интервала времени при щелчке на задании оно будет обновлено. --- frm/events.cpp | 1 + include/pro_scheduler/pgproJob.h | 4 +++- include/schema/pgObject.h | 6 +++++- pro_scheduler/pgproJob.cpp | 13 +++++++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/frm/events.cpp b/frm/events.cpp index ef01865..e58b0e2 100644 --- a/frm/events.cpp +++ b/frm/events.cpp @@ -511,6 +511,7 @@ void frmMain::execSelChange(wxTreeItemId item, bool currentNode) else { int settingRefreshOnClick = settings->GetRefreshOnClick(); + if (currentObject->NeedRefresh()) settingRefreshOnClick = REFRESH_OBJECT_ONLY; if (settingRefreshOnClick != REFRESH_OBJECT_NONE && refresh diff --git a/include/pro_scheduler/pgproJob.h b/include/pro_scheduler/pgproJob.h index ca842ef..b7eb6ce 100644 --- a/include/pro_scheduler/pgproJob.h +++ b/include/pro_scheduler/pgproJob.h @@ -48,6 +48,7 @@ public: bool DropObject(wxFrame *frame, ctlTree *browser, bool cascaded); wxString GetTranslatedMessage(int kindOfMessage) const; wxString GetSql(ctlTree *browser); + bool NeedRefresh(); wxString GetCrontab() const { @@ -322,10 +323,11 @@ public: { return wxT("pgagent-jobs"); } - + private: bool enabled; wxDateTime finished, changed, nextrun, lastrun,sched_min; + wxDateTime nextrefresh; wxString message, crontab, runas, commands,status,rule,tryname; bool _d[31], _h[24], _mi[60], _wd[7], _mon[12]; long recId; diff --git a/include/schema/pgObject.h b/include/schema/pgObject.h index d18af0f..cb2003e 100644 --- a/include/schema/pgObject.h +++ b/include/schema/pgObject.h @@ -93,7 +93,11 @@ public: static bool findUserPrivs(wxString &, wxString &, wxString &); static int GetTypeId(const wxString &typname); - + + virtual bool NeedRefresh() + { + return false; + } pgaFactory *GetFactory() { return factory; diff --git a/pro_scheduler/pgproJob.cpp b/pro_scheduler/pgproJob.cpp index f5f80d9..9517dc1 100644 --- a/pro_scheduler/pgproJob.cpp +++ b/pro_scheduler/pgproJob.cpp @@ -185,6 +185,19 @@ void pgproJob::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *prop } } +bool pgproJob::NeedRefresh() +{ + wxDateTime t = wxDateTime::Now(); + if (t >= nextrefresh) { + + wxTimeSpan m(0, 5); + + t.Add(m); + nextrefresh = t; + return true; + } + return false; +} pgObject *pgproJob::Refresh(ctlTree *browser, const wxTreeItemId item)