mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 14:15:49 -06:00
Add dialog properties for job pgpro_scheduler.
Добавлен диалог для редактрования заданий для pgpro_scheduler.
This commit is contained in:
parent
c08fe17d9f
commit
f4c32be4b7
7 changed files with 683 additions and 18 deletions
290
dlg/dlgProJob.cpp
Normal file
290
dlg/dlgProJob.cpp
Normal file
|
|
@ -0,0 +1,290 @@
|
|||
//////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// pgAdmin III - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
// dlgExtension.cpp - PostgreSQL Extension Property
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// wxWindows headers
|
||||
#include <wx/wx.h>
|
||||
|
||||
// App headers
|
||||
#include "pgAdmin3.h"
|
||||
#include "utils/misc.h"
|
||||
#include "utils/pgDefs.h"
|
||||
|
||||
#include "dlg/dlgProJob.h"
|
||||
#include "pro_scheduler/pgproJob.h"
|
||||
|
||||
|
||||
// pointer to controls
|
||||
//#define cbName CTRL_COMBOBOX("cbName")
|
||||
#define cbRunAs CTRL_COMBOBOX2("cbRunAs")
|
||||
#define txtID CTRL_TEXT("txtID")
|
||||
#define txtCron CTRL_TEXT("txtCron")
|
||||
#define txtNextrun CTRL_TEXT("txtNextrun")
|
||||
#define txtLastrun CTRL_TEXT("txtLastrun")
|
||||
|
||||
#define txtSqlBox CTRL_SQLBOX("txtSqlBox")
|
||||
#define chkEnabled CTRL_CHECKBOX("chkEnabled")
|
||||
#define chkSameTran CTRL_CHECKBOX("chkSameTran")
|
||||
|
||||
|
||||
|
||||
|
||||
dlgProperty *pgproJobFactory::CreateDialog(frmMain *frame, pgObject *node, pgObject *parent)
|
||||
{
|
||||
return new dlgProJob(this, frame, (pgproJob *)node);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_EVENT_TABLE(dlgProJob, dlgProperty)
|
||||
EVT_STC_MODIFIED(XRCID("txtSqlBox"), dlgProperty::OnChangeStc)
|
||||
EVT_TEXT(XRCID("txtCron"), dlgProperty::OnChange)
|
||||
EVT_TEXT(XRCID("txtName"), dlgProperty::OnChange)
|
||||
EVT_TEXT(XRCID("txtComment"), dlgProperty::OnChange)
|
||||
EVT_CHECKBOX(XRCID("chkEnabled"), dlgProperty::OnChange)
|
||||
EVT_CHECKBOX(XRCID("chkSameTran"), dlgProperty::OnChange)
|
||||
EVT_COMBOBOX(XRCID("cbRunAs"), dlgProperty::OnChange)
|
||||
|
||||
END_EVENT_TABLE();
|
||||
|
||||
|
||||
dlgProJob::dlgProJob(pgaFactory *f, frmMain *frame, pgproJob *node)
|
||||
: dlgProperty(f, frame, wxT("dlgProJob"))
|
||||
{
|
||||
job = node;
|
||||
}
|
||||
|
||||
|
||||
pgObject *dlgProJob::GetObject()
|
||||
{
|
||||
return job;
|
||||
}
|
||||
|
||||
|
||||
int dlgProJob::Go(bool modal)
|
||||
{
|
||||
//txtComment->Disable();
|
||||
|
||||
// add all schemas
|
||||
//cbObjectsSchema->Append(wxEmptyString);
|
||||
//pgSetIterator schemas(connection,
|
||||
// wxT("SELECT nspname FROM pg_namespace\n")
|
||||
// wxT(" ORDER BY nspname"));
|
||||
|
||||
//while (schemas.RowsLeft())
|
||||
// cbObjectsSchema->Append(schemas.GetVal(wxT("nspname")));
|
||||
//cbObjectsSchema->SetSelection(0);
|
||||
|
||||
if (job)
|
||||
{
|
||||
// edit mode
|
||||
//txtName->Append(job->GetName());
|
||||
//txtName->SetValue(job->GetTryName());
|
||||
ctlComboBoxFix* cbowner = (ctlComboBoxFix*)cbOwner;
|
||||
AddUsers(cbowner);
|
||||
cbowner->SetValue(job->GetOwner());
|
||||
ctlComboBoxFix* cbRunas = (ctlComboBoxFix*)cbRunAs;
|
||||
AddUsers(cbRunas);
|
||||
if (cbRunas)
|
||||
cbRunas->SetValue(job->GetRunAs());
|
||||
|
||||
chkEnabled->SetValue(job->GetEnabled());
|
||||
txtID->SetValue(NumToStr(job->GetRecId()));
|
||||
txtID->Disable();
|
||||
wxString t2 = job->GetCrontab();
|
||||
txtCron->SetValue(t2);
|
||||
chkSameTran->SetValue(job->GetSameTransaction());
|
||||
|
||||
int pos = 0;
|
||||
pgSetIterator cmds(connection, wxT("select unnest(commands) from schedule.get_cron() c where c.id=")+NumToStr(job->GetRecId()));
|
||||
wxString src;
|
||||
while (cmds.RowsLeft())
|
||||
{
|
||||
wxString cmd=cmds.GetVal(0);
|
||||
if (!src.IsEmpty()) src += "\n";
|
||||
src += cmd;
|
||||
|
||||
}
|
||||
|
||||
txtSqlBox->SetEOLMode(2);
|
||||
txtSqlBox->SetText(src);
|
||||
oldsrc = src;
|
||||
|
||||
wxDateTime lr = job->GetStarted();
|
||||
wxDateTime nr = job->GetNextSchedule_At(lr, 1);
|
||||
if (lr.IsValid()) {
|
||||
wxString str = lr.FormatISODate() + wxT(" ") + lr.FormatISOTime();
|
||||
wxTimeSpan sp=nr- wxDateTime::Now();
|
||||
wxLongLong d=sp.GetMilliseconds();
|
||||
txtLastrun->SetValue(str);
|
||||
str = nr.FormatISODate() + wxT(" ") + nr.FormatISOTime()+" [ "+ ElapsedTimeToStr(d) +" ]";
|
||||
txtNextrun->SetValue(str);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// create mode
|
||||
txtCron->SetValue("00 * * * *");
|
||||
}
|
||||
|
||||
return dlgProperty::Go(modal);
|
||||
}
|
||||
void fillarray(wxArrayString &arr,wxString &src)
|
||||
{
|
||||
int l = src.Length();
|
||||
wxUniChar ln = '\n';
|
||||
int pos = 0;
|
||||
int h = pos;
|
||||
bool en = false;
|
||||
while (pos<l) {
|
||||
if (en)
|
||||
{
|
||||
if (src.GetChar(pos) == ' ') {
|
||||
}
|
||||
else {
|
||||
arr.Add(src.Mid(h, pos-h-1));
|
||||
h = pos;
|
||||
}
|
||||
en = false;
|
||||
}
|
||||
if (src.GetChar(pos++) != ln) continue;
|
||||
en = true;
|
||||
}
|
||||
if (h!=pos) arr.Add(src.Mid(h));
|
||||
}
|
||||
|
||||
pgObject *dlgProJob::CreateObject(pgCollection *collection)
|
||||
{
|
||||
wxString name = txtName->GetValue();
|
||||
|
||||
pgObject *obj = projobFactory.CreateObjects(collection, 0, wxT("\n AND extname ILIKE ") + qtDbString(name));
|
||||
return obj;
|
||||
}
|
||||
|
||||
void dlgProJob::OnSelChangeCmds(wxListEvent& ev) {
|
||||
}
|
||||
void dlgProJob::OnAdd(wxCommandEvent& ev) {
|
||||
|
||||
}
|
||||
void dlgProJob::OnChange(wxCommandEvent& ev) {
|
||||
|
||||
}
|
||||
void dlgProJob::OnRemove(wxCommandEvent& ev) {
|
||||
|
||||
}
|
||||
|
||||
void dlgProJob::OnChangeName(wxCommandEvent &ev)
|
||||
{
|
||||
bool relocatable;
|
||||
|
||||
// add all versions
|
||||
//cbVersion->Clear();
|
||||
//cbVersion->Append(wxEmptyString);
|
||||
//pgSetIterator versions(connection,
|
||||
// wxT("SELECT version, relocatable FROM pg_available_extension_versions\n")
|
||||
// wxT(" WHERE name=") + qtDbString(cbName->GetValue()) + wxT(" ")
|
||||
// wxT(" ORDER BY version"));
|
||||
|
||||
//while (versions.RowsLeft())
|
||||
//{
|
||||
// relocatable = versions.GetBool(wxT("relocatable"));
|
||||
// cbVersion->Append(versions.GetVal(wxT("version")));
|
||||
//}
|
||||
|
||||
|
||||
OnChange(ev);
|
||||
}
|
||||
|
||||
|
||||
void dlgProJob::CheckChange()
|
||||
{
|
||||
bool didChange = true;
|
||||
if (job && cbRunAs->GetCount()>0)
|
||||
{
|
||||
didChange = chkEnabled->GetValue() != job->GetEnabled()
|
||||
|| txtCron->GetValue() != job->GetCrontab()
|
||||
|| chkSameTran->GetValue() != job->GetSameTransaction()
|
||||
|| txtName->GetValue() != job->GetName()
|
||||
|| txtComment->GetValue() != job->GetComment()
|
||||
|| cbRunAs->GetValue() != job->GetRunAs()
|
||||
|| txtSqlBox->GetText()!=oldsrc
|
||||
;
|
||||
EnableOK(didChange);
|
||||
}
|
||||
else
|
||||
{
|
||||
bool enable = true;
|
||||
|
||||
CheckValid(enable, !txtName->GetValue().IsEmpty(), _("Please specify name."));
|
||||
EnableOK(enable);
|
||||
}
|
||||
}
|
||||
|
||||
wxString dlgProJob::StrAttribute(const wxString &name,wxString &value)
|
||||
{
|
||||
wxString tmp = value;
|
||||
//tmp.Replace("\'", "\'\'");
|
||||
return "\"" + name + "\": \"" + tmp+"\"";
|
||||
}
|
||||
void dlgProJob::append(wxString& str, const wxString& delimiter, const wxString& what)
|
||||
{
|
||||
if (!what.IsNull())
|
||||
if(str.IsNull()) str += what;
|
||||
else
|
||||
str += delimiter + what;
|
||||
}
|
||||
wxString dlgProJob::GetSql()
|
||||
{
|
||||
wxString sql;
|
||||
|
||||
if (job)
|
||||
{
|
||||
// edit mode
|
||||
if (chkEnabled->GetValue() != job->GetEnabled())
|
||||
if (chkEnabled->GetValue()) sql = wxT("select schedule.activate_job(") + NumToStr(job->GetRecId()) + wxT(");\n");
|
||||
else
|
||||
sql = wxT("select schedule.deactivate_job(") + NumToStr(job->GetRecId()) + wxT(");\n");
|
||||
|
||||
|
||||
wxString att;
|
||||
if (txtCron->GetValue() != job->GetCrontab()) att= StrAttribute(wxT("cron"),txtCron->GetValue());
|
||||
if (txtName->GetValue() != job->GetName()) append(att, ",\n", StrAttribute(wxT("name"), txtName->GetValue()));
|
||||
if (txtComment->GetValue() != job->GetComment()) append(att, ",\n", StrAttribute(wxT("comments"), txtComment->GetValue()));
|
||||
if (cbRunAs->GetValue() != job->GetRunAs()) append(att, ",\n", StrAttribute(wxT("run_as"), cbRunAs->GetValue()));
|
||||
if (chkSameTran->GetValue() != job->GetSameTransaction()) append(att, ",\n", StrAttribute(wxT("use_same_transaction"), BoolToStr(chkSameTran->GetValue())));
|
||||
|
||||
|
||||
if (txtSqlBox->GetText() != oldsrc) {
|
||||
wxArrayString a;
|
||||
wxString tmp;
|
||||
fillarray(a, txtSqlBox->GetText());
|
||||
if (a.GetCount() > 0) {
|
||||
for (int i = 0; i < a.GetCount(); i++) append(tmp, ",\n", "\"" + a[i] + "\"");
|
||||
tmp = "[" + tmp + "]";
|
||||
}
|
||||
else tmp = "";
|
||||
tmp = "\"commands\": " + tmp;
|
||||
if (!att.IsEmpty()) att += ",\n";
|
||||
att += tmp;
|
||||
}
|
||||
if (!att.IsEmpty()) {
|
||||
sql += wxT("select schedule.set_job_attributes(") + NumToStr(job->GetRecId()) + "\n";
|
||||
att.Replace("\'", "\'\'");
|
||||
sql += wxT(",'{") + att + wxT("}');\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//sql = wxT("CREATE EXTENSION ") + qtIdent(cbName->GetValue());
|
||||
//AppendIfFilled(sql, wxT("\n SCHEMA "), qtIdent(cbObjectsSchema->GetValue()));
|
||||
//AppendIfFilled(sql, wxT("\n VERSION "), qtIdent(cbVersion->GetValue()));
|
||||
}
|
||||
|
||||
return sql;
|
||||
}
|
||||
50
include/dlg/dlgProJob.h
Normal file
50
include/dlg/dlgProJob.h
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
//////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// pgAdmin III - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
// dlgExtension.h - Extension property
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifndef __DLG_EXTENSIONPROP
|
||||
#define __DLG_EXTENSIONPROP
|
||||
|
||||
#include "dlg/dlgProperty.h"
|
||||
|
||||
class pgproJob;
|
||||
|
||||
class dlgProJob : public dlgProperty
|
||||
{
|
||||
public:
|
||||
dlgProJob(pgaFactory *factory, frmMain *frame, pgproJob *job);
|
||||
int Go(bool modal);
|
||||
|
||||
void CheckChange();
|
||||
wxString GetSql();
|
||||
pgObject *CreateObject(pgCollection *collection);
|
||||
pgObject *GetObject();
|
||||
|
||||
private:
|
||||
pgproJob *job;
|
||||
wxString oldsrc;
|
||||
ctlComboBox* cbRunas;
|
||||
wxString StrAttribute(const wxString& name, wxString& value);
|
||||
void append(wxString& str, const wxString& delimiter, const wxString& what);
|
||||
void OnChangeName(wxCommandEvent &ev);
|
||||
void OnSelChangeCmds(wxListEvent& ev);
|
||||
void OnAdd(wxCommandEvent& ev);
|
||||
void OnChange(wxCommandEvent& ev);
|
||||
void OnRemove(wxCommandEvent& ev);
|
||||
#ifdef __WXMAC__
|
||||
void OnChangeSize(wxSizeEvent &ev);
|
||||
#endif
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -50,10 +50,6 @@ public:
|
|||
wxString GetSql(ctlTree *browser);
|
||||
bool NeedRefresh();
|
||||
|
||||
wxString GetCrontab() const
|
||||
{
|
||||
return crontab;
|
||||
}
|
||||
void iSetSched(int cron, wxString &mi, wxString& h, wxString& d, wxString& wd, wxString& mon)
|
||||
{
|
||||
for (int i = 0; i < 60; i++) _mi[i] = false;
|
||||
|
|
@ -193,6 +189,10 @@ public:
|
|||
{
|
||||
sched_min = d;
|
||||
}
|
||||
wxString GetCrontab() const
|
||||
{
|
||||
return crontab;
|
||||
}
|
||||
void iSetCrontab(const wxString &s)
|
||||
{
|
||||
crontab = s;
|
||||
|
|
@ -261,11 +261,24 @@ public:
|
|||
{
|
||||
runas = s;
|
||||
}
|
||||
|
||||
void iSetSameTransaction(bool b)
|
||||
{
|
||||
use_same_transaction = b;
|
||||
}
|
||||
bool GetSameTransaction()
|
||||
{
|
||||
return use_same_transaction;
|
||||
}
|
||||
|
||||
wxString GetTryName() const
|
||||
{
|
||||
return tryname;
|
||||
}
|
||||
wxString GetFullName()
|
||||
{
|
||||
return GetName() + wxT("(") + NumToStr(recId) + wxT(")");
|
||||
}
|
||||
|
||||
void iSetTryName(const wxString &s)
|
||||
{
|
||||
tryname = s;
|
||||
|
|
@ -308,7 +321,7 @@ public:
|
|||
}
|
||||
bool CanEdit()
|
||||
{
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
bool CanDrop()
|
||||
{
|
||||
|
|
@ -325,7 +338,7 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
bool enabled;
|
||||
bool enabled, use_same_transaction;
|
||||
wxDateTime finished, changed, nextrun, lastrun,sched_min;
|
||||
wxDateTime nextrefresh;
|
||||
wxString message, crontab, runas, commands,status,rule,tryname;
|
||||
|
|
|
|||
|
|
@ -868,6 +868,7 @@
|
|||
<ClCompile Include="dlg\dlgOperator.cpp" />
|
||||
<ClCompile Include="dlg\dlgPackage.cpp" />
|
||||
<ClCompile Include="dlg\dlgPgpassConfig.cpp" />
|
||||
<ClCompile Include="dlg\dlgProJob.cpp" />
|
||||
<ClCompile Include="dlg\dlgProperty.cpp" />
|
||||
<ClCompile Include="dlg\dlgReassignDropOwned.cpp" />
|
||||
<ClCompile Include="dlg\dlgResourceGroup.cpp" />
|
||||
|
|
@ -1525,6 +1526,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="include\copyright.h" />
|
||||
<ClInclude Include="include\dlg\dlgProJob.h" />
|
||||
<ClInclude Include="include\dlg\dlgResourceGroup.h" />
|
||||
<ClInclude Include="include\pgAdmin3.h" />
|
||||
<ClInclude Include="include\postgres.h" />
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,9 @@
|
|||
<ClCompile Include="utils\diff_match_patch.cc">
|
||||
<Filter>utils</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="dlg\dlgProJob.cpp">
|
||||
<Filter>dlg</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="agent\module.mk">
|
||||
|
|
@ -3485,6 +3488,9 @@
|
|||
<ClInclude Include="utils\diff_match_patch.h">
|
||||
<Filter>utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="include\dlg\dlgProJob.h">
|
||||
<Filter>include\dlg</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<png2c Include="include\images\aggregate-sm.png">
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ void pgproJob::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *prop
|
|||
{
|
||||
CreateListColumns(properties);
|
||||
|
||||
properties->AppendItem(_("Name"), GetTryName());
|
||||
properties->AppendItem(_("Name"), GetName());
|
||||
properties->AppendItem(_("ID"), GetRecId());
|
||||
properties->AppendYesNoItem(_("Enabled"), GetEnabled());
|
||||
//properties->AppendItem(_("Host agent"), GetHostAgent());
|
||||
|
|
@ -142,6 +142,7 @@ void pgproJob::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *prop
|
|||
properties->AppendItem(_("Result"), GetStatus());
|
||||
properties->AppendItem(_("Crontab"), GetCrontab());
|
||||
//properties->AppendItem(_("Last result"), GetLastresult());
|
||||
properties->AppendItem(_("Owner"), GetOwner());
|
||||
properties->AppendItem(_("Runas"), GetRunAs());
|
||||
properties->AppendItem(_("Message"), GetMessage());
|
||||
properties->AppendItem(_("Comment"), firstLineOnly(GetComment()));
|
||||
|
|
@ -249,10 +250,11 @@ pgObject *pgproJobFactory::CreateObjects(pgCollection *collection, ctlTree *brow
|
|||
status=jobs->GetVal(wxT("status"));
|
||||
if (status.IsNull()) status = _("Not run");
|
||||
|
||||
wxString name=jobs->GetVal(wxT("name"))+wxT("(")+jobs->GetVal(wxT("id"))+wxT(")");
|
||||
job = new pgproJob(name);
|
||||
///wxString name=jobs->GetVal(wxT("name"))+wxT("(")+jobs->GetVal(wxT("id"))+wxT(")");
|
||||
|
||||
job = new pgproJob(jobs->GetVal(wxT("name")));
|
||||
job->iSetStatus(status);
|
||||
job->iSetTryName(jobs->GetVal(wxT("name")));
|
||||
job->iSetOwner(jobs->GetVal(wxT("owner")));
|
||||
job->iSetServer(collection->GetServer());
|
||||
job->iSetRecId(jobs->GetLong(wxT("id")));
|
||||
job->iSetComment(jobs->GetVal(wxT("comments")));
|
||||
|
|
@ -270,6 +272,8 @@ pgObject *pgproJobFactory::CreateObjects(pgCollection *collection, ctlTree *brow
|
|||
job->iSetCommands(tmp);
|
||||
job->iSetRunAs(jobs->GetVal(wxT("run_as")));
|
||||
job->iSetStarted(jobs->GetDateTime(wxT("started")));
|
||||
job->iSetSameTransaction(jobs->GetBool(wxT("use_same_transaction")));
|
||||
|
||||
|
||||
job->iSetFinished(jobs->GetDateTime(wxT("finished")));
|
||||
job->iSetCrontab(jobs->GetVal(wxT("crontab")));
|
||||
|
|
@ -291,6 +295,7 @@ pgObject *pgproJobFactory::CreateObjects(pgCollection *collection, ctlTree *brow
|
|||
||colname == wxT("days")
|
||||
||colname == wxT("wdays")
|
||||
||colname == wxT("hours")
|
||||
|| colname == wxT("active")
|
||||
||colname == wxT("months")
|
||||
||colname == wxT("scheduled_at_min")
|
||||
||colname==wxT("owner")) continue;
|
||||
|
|
@ -298,9 +303,9 @@ pgObject *pgproJobFactory::CreateObjects(pgCollection *collection, ctlTree *brow
|
|||
if (colname==wxT("broken")) break;
|
||||
if (columnCount)
|
||||
{
|
||||
tmp += wxT(", ");
|
||||
tmp += wxT("\n,");
|
||||
}
|
||||
if (colname==wxT("commands")) vl=vl.Mid(1,vl.Length()-2);
|
||||
if (colname==wxT("commands")) vl="["+vl.Mid(1,vl.Length()-2)+"]";
|
||||
else vl=wxT("\"")+vl+wxT("\"");
|
||||
|
||||
tmp += wxT("\"")+colname+wxT("\"")+wxT(": ")+vl;
|
||||
|
|
@ -425,10 +430,10 @@ void pgproJob::SetEnabled(ctlTree *browser, const bool b)
|
|||
UpdateIcon(browser);
|
||||
}
|
||||
|
||||
dlgProperty *pgproJobFactory::CreateDialog(frmMain *frame, pgObject *node, pgObject *parent)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
//dlgProperty *pgproJobFactory::CreateDialog(frmMain *frame, pgObject *node, pgObject *parent)
|
||||
//{
|
||||
// return 0;
|
||||
//}
|
||||
|
||||
|
||||
/////////////////////////////
|
||||
|
|
@ -440,7 +445,7 @@ dlgProperty *pgproJobFactory::CreateDialog(frmMain *frame, pgObject *node, pgObj
|
|||
#include "images/jobrun.pngc"
|
||||
|
||||
pgproJobFactory::pgproJobFactory()
|
||||
: pgServerObjFactory(__("pgAgent Job"), __("New Job"), __("Create a new Job."), job_png_img)
|
||||
: pgServerObjFactory(__("pgpro_Scheduler Job"), __("New Job"), __("Create a new Job."), job_png_img)
|
||||
{
|
||||
metaType = PGM_PROJOB;
|
||||
disabledId = addIcon(jobdisabled_png_img);
|
||||
|
|
|
|||
299
ui/dlgProJob.xrc
Normal file
299
ui/dlgProJob.xrc
Normal file
|
|
@ -0,0 +1,299 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<resource>
|
||||
<object class="wxDialog" name="dlgProJob">
|
||||
<style>wxDEFAULT_DIALOG_STYLE|wxCAPTION|wxSYSTEM_MENU|wxRESIZE_BORDER</style>
|
||||
<title></title>
|
||||
<object class="wxFlexGridSizer">
|
||||
<rows>0</rows>
|
||||
<cols>1</cols>
|
||||
<vgap>0</vgap>
|
||||
<hgap>0</hgap>
|
||||
<growablecols>0</growablecols>
|
||||
<growablerows>0</growablerows>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxEXPAND|wxALIGN_CENTER|wxALL</flag>
|
||||
<border>3</border>
|
||||
<object class="wxNotebook" name="nbNotebook">
|
||||
<object class="notebookpage">
|
||||
<label>Properties</label>
|
||||
<selected>1</selected>
|
||||
<object class="wxPanel" name="pnlProperties">
|
||||
<style>wxTAB_TRAVERSAL</style>
|
||||
<object class="wxFlexGridSizer">
|
||||
<rows>0</rows>
|
||||
<cols>2</cols>
|
||||
<vgap>5</vgap>
|
||||
<hgap>5</hgap>
|
||||
<growablecols>1</growablecols>
|
||||
<growablerows>8</growablerows>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxStaticText" name="stName">
|
||||
<label>Name</label>
|
||||
<wrap>0</wrap>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxTextCtrl" name="txtName">
|
||||
<value></value>
|
||||
<maxlength>0</maxlength>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxStaticText" name="stID">
|
||||
<label>ID</label>
|
||||
<wrap>0</wrap>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxTextCtrl" name="txtID">
|
||||
<value></value>
|
||||
<maxlength>0</maxlength>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxStaticText" name="stEnabled">
|
||||
<label>Enabled</label>
|
||||
<wrap>0</wrap>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxCheckBox" name="chkEnabled">
|
||||
<label></label>
|
||||
<checked>1</checked>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxStaticText" name="stOwner">
|
||||
<label>Owner</label>
|
||||
<wrap>0</wrap>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxALL</flag>
|
||||
<border>5</border>
|
||||
<object class="ctlComboBox" name="cbOwner">
|
||||
<style>wxCB_READONLY|wxCB_DROPDOWN</style>
|
||||
<value></value>
|
||||
<content />
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxALL</flag>
|
||||
<border>5</border>
|
||||
<object class="wxStaticText" name="stRunAs">
|
||||
<label>Run as</label>
|
||||
<wrap>0</wrap>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxALL</flag>
|
||||
<border>5</border>
|
||||
<object class="ctlComboBox" name="cbRunAs">
|
||||
<style>wxCB_READONLY|wxCB_DROPDOWN</style>
|
||||
<value></value>
|
||||
<content />
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxStaticText" name="stCrontab">
|
||||
<label>Crontab</label>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxTextCtrl" name="txtCron">
|
||||
<value></value>
|
||||
<maxlength>0</maxlength>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxStaticText" name="stNextrun">
|
||||
<label>Next run</label>
|
||||
<wrap>0</wrap>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxTextCtrl" name="txtNextrun">
|
||||
<value></value>
|
||||
<style>wxTE_READONLY</style>
|
||||
<maxlength>0</maxlength>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxStaticText" name="stLastrun">
|
||||
<label>Last run</label>
|
||||
<wrap>0</wrap>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxTextCtrl" name="txtLastrun">
|
||||
<style>wxTE_READONLY</style>
|
||||
<value></value>
|
||||
<maxlength>0</maxlength>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>4</border>
|
||||
<object class="wxStaticText" name="stComment">
|
||||
<label>Comment</label>
|
||||
<wrap>0</wrap>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
||||
<border>4</border>
|
||||
<object class="wxTextCtrl" name="txtComment">
|
||||
<style>wxTE_MULTILINE</style>
|
||||
<value></value>
|
||||
<maxlength>0</maxlength>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="notebookpage">
|
||||
<label>Commands</label>
|
||||
<selected>0</selected>
|
||||
<object class="wxPanel" name="pnlSteps">
|
||||
<style>wxTAB_TRAVERSAL</style>
|
||||
<object class="wxFlexGridSizer">
|
||||
<rows>0</rows>
|
||||
<cols>1</cols>
|
||||
<vgap>5</vgap>
|
||||
<hgap>5</hgap>
|
||||
<growablecols>0</growablecols>
|
||||
<growablerows>0</growablerows>
|
||||
<object class="sizeritem">
|
||||
<object class="ctlSQLBox" name="txtSqlBox">
|
||||
<style>wxTE_MULTILINE|wxSUNKEN_BORDER|wxTE_RICH2</style>
|
||||
</object>
|
||||
<flag>wxALL|wxEXPAND</flag>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxEXPAND|wxALIGN_CENTER_VERTICAL</flag>
|
||||
<border>0</border>
|
||||
<object class="wxFlexGridSizer">
|
||||
<rows>0</rows>
|
||||
<cols>5</cols>
|
||||
<vgap>3</vgap>
|
||||
<hgap>3</hgap>
|
||||
<growablecols>0</growablecols>
|
||||
<growablerows></growablerows>
|
||||
<object class="spacer">
|
||||
<option>0</option>
|
||||
<flag></flag>
|
||||
<border>0</border>
|
||||
<size>0,0</size>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxALL</flag>
|
||||
<border>5</border>
|
||||
<object class="wxCheckBox" name="chkSameTran">
|
||||
<label>use same transaction</label>
|
||||
<checked>0</checked>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxEXPAND|wxTOP|wxLEFT|wxRIGHT</flag>
|
||||
<border>0</border>
|
||||
<object class="wxFlexGridSizer">
|
||||
<rows>0</rows>
|
||||
<cols>4</cols>
|
||||
<vgap>0</vgap>
|
||||
<hgap>0</hgap>
|
||||
<growablecols>1</growablecols>
|
||||
<growablerows></growablerows>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxEXPAND|wxALL</flag>
|
||||
<border>3</border>
|
||||
<object class="wxButton" name="wxID_HELP">
|
||||
<label>Help</label>
|
||||
<default>0</default>
|
||||
<markup>0</markup>
|
||||
<bitmap />
|
||||
</object>
|
||||
</object>
|
||||
<object class="spacer">
|
||||
<option>0</option>
|
||||
<flag></flag>
|
||||
<border>0</border>
|
||||
<size>0,0</size>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxEXPAND|wxALL</flag>
|
||||
<border>3</border>
|
||||
<object class="wxButton" name="wxID_OK">
|
||||
<label>&OK</label>
|
||||
<default>1</default>
|
||||
<markup>0</markup>
|
||||
<bitmap />
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<option>0</option>
|
||||
<flag>wxEXPAND|wxALL</flag>
|
||||
<border>3</border>
|
||||
<object class="wxButton" name="wxID_CANCEL">
|
||||
<label>&Cancel</label>
|
||||
<default>0</default>
|
||||
<markup>0</markup>
|
||||
<bitmap />
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</resource>
|
||||
Loading…
Add table
Add a link
Reference in a new issue