Index: pgaSchedule.cpp =================================================================== RCS file: /projects/pgadmin3/src/agent/pgaSchedule.cpp,v retrieving revision 1.19 retrieving revision 1.20 diff -Lsrc/agent/pgaSchedule.cpp -Lsrc/agent/pgaSchedule.cpp -u -w -r1.19 -r1.20 --- src/agent/pgaSchedule.cpp +++ src/agent/pgaSchedule.cpp @@ -39,7 +39,7 @@ bool pgaSchedule::DropObject(wxFrame *frame, wxTreeCtrl *browser, bool cascaded) { - return GetDatabase()->ExecuteVoid(wxT("DELETE FROM pgagent.pga_schedule WHERE jscid=") + NumToStr(GetJobId())); + return GetDatabase()->ExecuteVoid(wxT("DELETE FROM pgagent.pga_schedule WHERE jscid=") + NumToStr(GetScheduleId())); } @@ -55,7 +55,7 @@ CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); - properties->AppendItem(_("ID"), GetJobId()); + properties->AppendItem(_("ID"), GetScheduleId()); properties->AppendItem(_("Enabled"), GetEnabled()); properties->AppendItem(_("Start date"), GetStart()); @@ -104,7 +104,7 @@ { schedule = new pgaSchedule(collection, schedules->GetVal(wxT("jscname"))); - schedule->iSetJobId(schedules->GetLong(wxT("jscid"))); + schedule->iSetScheduleId(schedules->GetLong(wxT("jscid"))); schedule->iSetDatabase(collection->GetDatabase()); schedule->iSetStart(schedules->GetDateTime(wxT("jscstart"))); schedule->iSetEnd(schedules->GetDateTime(wxT("jscend"))); @@ -160,13 +160,14 @@ { size_t x = 0; bool isWildcard = true; - wxString res; + wxString res, tmp; for (x=0; x <= minutes.Length();x++) { if (minutes[x] == 't') { - res.Printf(wxT("%s%d, "), res, x); + tmp.Printf(wxT("%.2d, "), x); + res += tmp; isWildcard = false; } } @@ -191,13 +192,14 @@ { size_t x = 0; bool isWildcard = true; - wxString res; + wxString res, tmp; for (x=0; x <= hours.Length();x++) { if (hours[x] == 't') { - res.Printf(wxT("%s%d, "), res, x); + tmp.Printf(wxT("%.2d, "), x); + res += tmp; isWildcard = false; } } @@ -287,14 +289,17 @@ { size_t x = 0; bool isWildcard = true; - wxString res; + wxString res, tmp; for (x=0; x <= monthdays.Length();x++) { if (monthdays[x] == 't') { if (x < 31) - res.Printf(wxT("%s%d, "), res, x + 1); + { + tmp.Printf(wxT("%.2d, "), x); + res += tmp; + } else { res += _("Last day"); Index: dlgSchedule.cpp =================================================================== RCS file: /projects/pgadmin3/src/agent/dlgSchedule.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -Lsrc/agent/dlgSchedule.cpp -Lsrc/agent/dlgSchedule.cpp -u -w -r1.17 -r1.18 --- src/agent/dlgSchedule.cpp +++ src/agent/dlgSchedule.cpp @@ -24,37 +24,35 @@ // pointer to controls +#define txtID CTRL_TEXT("txtID") #define chkEnabled CTRL_CHECKBOX("chkEnabled") -#define cbKind CTRL_COMBOBOX("cbKind") -#define timInterval CTRL_TIME("timInterval") #define calStart CTRL_CALENDAR("calStart") #define timStart CTRL_TIME("timStart") #define calEnd CTRL_CALENDAR("calEnd") #define timEnd CTRL_TIME("timEnd") -#define calSchedule CTRL_CALENDAR("calSchedule") -#define timSchedule CTRL_TIME("timSchedule") -#define pnlSchedule CTRL_PANEL("pnlSchedule") -#define lstIntervals CTRL_TIME("lstIntervals") -#define timOffset CTRL_TIME("timOffset") -#define btnAddInterval CTRL_BUTTON("btnAddInterval") -#define btnChangeInterval CTRL_BUTTON("btnChangeInterval") -#define btnRemoveInterval CTRL_BUTTON("btnRemoveInterval") +#define chkWeekDays CTRL_CHECKLISTBOX("chkWeekDays") +#define chkMonthDays CTRL_CHECKLISTBOX("chkMonthDays") +#define chkMonths CTRL_CHECKLISTBOX("chkMonths") +#define chkHours CTRL_CHECKLISTBOX("chkHours") +#define chkMinutes CTRL_CHECKLISTBOX("chkMinutes") +#define lstExceptions CTRL_LISTCTRL("lstExceptions") +#define timExceptionTime CTRL_TIME("timExceptionTime") +#define calExceptionTime CTRL_CALENDAR("calExceptionTime") +#define btnAddException CTRL_BUTTON("btnAddException") +#define btnChangeException CTRL_BUTTON("btnChangeException") +#define btnRemoveException CTRL_BUTTON("btnRemoveException") BEGIN_EVENT_TABLE(dlgSchedule, dlgAgentProperty) EVT_CHECKBOX(XRCID("chkEnabled"), dlgProperty::OnChange) - EVT_COMBOBOX(XRCID("cbKind"), dlgSchedule::OnChangeKind) - EVT_SPIN(XRCID("timInterval"), dlgSchedule::OnChangeSpin) EVT_CALENDAR_SEL_CHANGED(XRCID("calStart"), dlgSchedule::OnChangeCal) EVT_SPIN(XRCID("timStart"), dlgSchedule::OnChangeSpin) EVT_CALENDAR_SEL_CHANGED(XRCID("calEnd"), dlgSchedule::OnChangeCal) EVT_SPIN(XRCID("timEnd"), dlgSchedule::OnChangeSpin) - EVT_CALENDAR_SEL_CHANGED(XRCID("calSchedule"), dlgSchedule::OnChangeCal) - EVT_SPIN(XRCID("timSchedule"), dlgSchedule::OnChangeSpin) - EVT_LIST_ITEM_SELECTED(XRCID("lstIntervals"), dlgSchedule::OnSelChangeInterval) - EVT_BUTTON(XRCID("btnAddInterval"), dlgSchedule::OnAddInterval) - EVT_BUTTON(XRCID("btnChangeInterval"), dlgSchedule::OnChangeInterval) - EVT_BUTTON(XRCID("btnRemoveInterval"), dlgSchedule::OnRemoveInterval) + EVT_LIST_ITEM_SELECTED(XRCID("lstExceptions"), dlgSchedule::OnSelChangeException) + EVT_BUTTON(XRCID("btnAddException"), dlgSchedule::OnAddException) + EVT_BUTTON(XRCID("btnChangeException"), dlgSchedule::OnChangeException) + EVT_BUTTON(XRCID("btnRemoveException"), dlgSchedule::OnRemoveException) END_EVENT_TABLE(); @@ -70,10 +68,10 @@ else jobId=0; - timInterval->SetMax(365*24*60*60 -1, true); + btnChangeException->Disable(); + btnRemoveException->Disable(); - btnChangeInterval->Disable(); - btnRemoveInterval->Disable(); + txtID->Disable(); } @@ -88,6 +86,7 @@ if (schedule) { // edit mode + txtID->SetValue(NumToStr(schedule->GetScheduleId())); chkEnabled->SetValue(schedule->GetEnabled()); calStart->SetDate(schedule->GetStart()); timStart->SetTime(schedule->GetStart()); @@ -100,7 +99,6 @@ timEnd->Disable(); wxNotifyEvent ev; - OnChangeKind(ev); } else { @@ -120,45 +118,6 @@ } -void dlgSchedule::OnChangeKind(wxCommandEvent &ev) -{ - switch (cbKind->GetSelection()) - { - case 0: // repeat - timInterval->Enable(); - pnlSchedule->Disable(); - break; - case 1: // single - timInterval->Disable(); - pnlSchedule->Disable(); - break; - case 2: // day - timOffset->SetMax(24*60*60-1); - timInterval->Disable(); - pnlSchedule->Enable(); - break; - case 3: // week - timOffset->SetMax(7*24*60*60-1, true); - timInterval->Disable(); - pnlSchedule->Enable(); - break; - case 4: // month - timOffset->SetMax(31*24*60*60-1, true); - timInterval->Disable(); - pnlSchedule->Enable(); - break; - case 5: // year - timOffset->SetMax(365*24*60*60-1, true); - timInterval->Disable(); - pnlSchedule->Enable(); - break; - default: - break; - } - - CheckChange(); -} - void dlgSchedule::OnChangeCal(wxCalendarEvent &ev) { CheckChange(); @@ -192,27 +151,27 @@ } -void dlgSchedule::OnSelChangeInterval(wxListEvent &ev) +void dlgSchedule::OnSelChangeException(wxListEvent &ev) { - btnChangeInterval->Enable(); - btnRemoveInterval->Enable(); + btnChangeException->Enable(); + btnRemoveException->Enable(); } -void dlgSchedule::OnAddInterval(wxCommandEvent &ev) +void dlgSchedule::OnAddException(wxCommandEvent &ev) { } -void dlgSchedule::OnChangeInterval(wxCommandEvent &ev) +void dlgSchedule::OnChangeException(wxCommandEvent &ev) { } -void dlgSchedule::OnRemoveInterval(wxCommandEvent &ev) +void dlgSchedule::OnRemoveException(wxCommandEvent &ev) { - btnChangeInterval->Disable(); - btnRemoveInterval->Disable(); + btnChangeException->Disable(); + btnRemoveException->Disable(); } @@ -228,20 +187,17 @@ if (!schedule) { wxString name=GetName(); - wxString kind = wxT("nsdwmy")[cbKind->GetSelection()]; wxString jscjobid, list=wxT("NULL"); if (jobId) jscjobid = NumToStr(jobId); else jscjobid = wxT(""); - sql = wxT("INSERT INTO pgagent.pga_jobschedule (jscjobid, jscname, jscdesc, jscenabled, jsckind, ") - wxT("jscstart, jscend, jscschedule, jsclist)\n") + sql = wxT("INSERT INTO pgagent.pga_jobschedule (jscjobid, jscname, jscdesc, jscenabled, jscstart, jscend)\n") wxT("VALUES(") + jscjobid + wxT(", ") + qtString(name) + wxT(", ") + qtString(txtComment->GetValue()) + wxT(", ") - + BoolToStr(chkEnabled->GetValue()) + wxT(", ") + qtString(kind) + wxT(", ") + + BoolToStr(chkEnabled->GetValue()) + DateToAnsiStr(calStart->GetDate() + timStart->GetValue()) + wxT(", ") - + DateToAnsiStr(calEnd->GetDate() + timEnd->GetValue()) + wxT(", ") - + DateToAnsiStr(calSchedule->GetDate() + timSchedule->GetValue()) + wxT(", ") - + list + wxT(")"); + + DateToAnsiStr(calEnd->GetDate() + timEnd->GetValue()) + + wxT(")"); } return sql; @@ -253,7 +209,7 @@ wxString sql, name; name=GetName(); - if (job) + if (schedule) { // edit mode } Index: pgaSchedule.h =================================================================== RCS file: /projects/pgadmin3/src/agent/include/pgaSchedule.h,v retrieving revision 1.13 retrieving revision 1.14 diff -Lsrc/agent/include/pgaSchedule.h -Lsrc/agent/include/pgaSchedule.h -u -w -r1.13 -r1.14 --- src/agent/include/pgaSchedule.h +++ src/agent/include/pgaSchedule.h @@ -42,8 +42,8 @@ void iSetStart(const wxDateTime &d) { start=d; } wxDateTime GetEnd() const { return end; } void iSetEnd(const wxDateTime &d) { end=d; } - long GetJobId() const { return jobId; } - void iSetJobId(const long l) { jobId=l; } + long GetScheduleId() const { return scheduleId; } + void iSetScheduleId(const long l) { scheduleId=l; } wxString GetMinutes() const { return minutes; } wxString GetMinutesString(); @@ -68,7 +68,7 @@ private: bool enabled; wxDateTime start, end; - long jobId; + long scheduleId; wxString minutes, hours, weekdays, monthdays, months; }; Index: dlgSchedule.h =================================================================== RCS file: /projects/pgadmin3/src/agent/include/dlgSchedule.h,v retrieving revision 1.10 retrieving revision 1.11 diff -Lsrc/agent/include/dlgSchedule.h -Lsrc/agent/include/dlgSchedule.h -u -w -r1.10 -r1.11 --- src/agent/include/dlgSchedule.h +++ src/agent/include/dlgSchedule.h @@ -42,11 +42,10 @@ void OnChangeCal(wxCalendarEvent &ev); void OnChangeSpin(wxSpinEvent &ev); - void OnChangeKind(wxCommandEvent &ev); - void OnSelChangeInterval(wxListEvent &ev); - void OnAddInterval(wxCommandEvent &ev); - void OnChangeInterval(wxCommandEvent &ev); - void OnRemoveInterval(wxCommandEvent &ev); + void OnSelChangeException(wxListEvent &ev); + void OnAddException(wxCommandEvent &ev); + void OnChangeException(wxCommandEvent &ev); + void OnRemoveException(wxCommandEvent &ev); DECLARE_EVENT_TABLE(); }; Index: dlgSchedule.xrc =================================================================== RCS file: /projects/pgadmin3/src/ui/common/dlgSchedule.xrc,v retrieving revision 1.8 retrieving revision 1.9 diff -Lsrc/ui/common/dlgSchedule.xrc -Lsrc/ui/common/dlgSchedule.xrc -u -w -r1.8 -r1.9 --- src/ui/common/dlgSchedule.xrc +++ src/ui/common/dlgSchedule.xrc @@ -14,13 +14,14 @@ 70,5d 135,-1d - - + + 5,22d - + 70,20d 135,-1d + @@ -32,111 +33,276 @@ 12,12d - - - 5,52d - - - 0 - 70,50d - 135,12d - - repeat - single - daily - weekly - monthly - yearly - - - - - - 5,67d - - - 70,65d - 65,-1d - - - - 140,65d - 65,-1d - - - - 5,82d - - - 70,80d - 135,-1d - - - 5,97d + 5,52d - 70,95d - 65,-1d + 70,50d + 65,12d - 140,95d - 65,-1d + 140,50d + 65,12d - 5,112d + 5,67d - 70,110d - 65,-1d + 70,65d + 65,12d - 140,110d - 65,-1d + 140,65d + 65,12d - 5,1270d + 5,82d - 70,1250d - 135,72d + 70,82d + 135,112d 1 - - - + + + + + 5,7d + + + + Sunday + Monday + Tuesday + Wednesday + Thursday + Friday + Saturday + + 70,5d + 135,59d + + + + 5,72d + + + + 1st + 2nd + 3rd + 4th + 5th + 6th + 7th + 8th + 9th + 10th + 11th + 12th + 13th + 14th + 15th + 16th + 17th + 18th + 19th + 20th + 21st + 22nd + 23rd + 24th + 25th + 26th + 27th + 28th + 29th + 30th + 31st + Last day + + 70,70d + 135,59d + + + + 5,138d + + + + January + February + March + April + May + June + July + August + September + October + November + December + + 70,136d + 135,59d + + + + + + + + + 5,7d + + + + 00 + 01 + 02 + 03 + 04 + 05 + 06 + 07 + 08 + 09 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + + 70,5d + 135,91d + + + + 5,106d + + + + 00 + 01 + 02 + 03 + 04 + 05 + 06 + 07 + 08 + 09 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 + 34 + 35 + 36 + 37 + 38 + 39 + 40 + 41 + 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50 + 51 + 52 + 53 + 54 + 55 + 55 + 56 + 57 + 58 + 59 + + 70,104d + 135,91d + + + + + + + 5,5d 200,155d - - - 5,167d - - - 5,180d - 65,-1d + + + 5,166d + + + 33,164d + 65,12d + + + + 5,182d + + + 33,180d + 65,15d + - + 100,163d 50,-1d - + 100,180d 50,-1d - + 155,180d 50,-1d @@ -160,6 +326,5 @@ 166,220d 218,238d - \ No newline at end of file