Log Message: ----------- Schedule UI updates. Modified Files: -------------- pgadmin3/src/agent: dlgSchedule.cpp (r1.17 -> r1.18) pgaSchedule.cpp (r1.19 -> r1.20) pgadmin3/src/agent/include: dlgSchedule.h (r1.10 -> r1.11) pgaSchedule.h (r1.13 -> r1.14) pgadmin3/src/ui/common: dlgSchedule.xrc (r1.8 -> r1.9)
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("<id>"); - 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 @@ <pos>70,5d</pos> <size>135,-1d</size> </object> - <object class="wxStaticText" name="stOID"> - <label>OID</label> + <object class="wxStaticText" name="stID"> + <label>ID</label> <pos>5,22d</pos> </object> - <object class="wxTextCtrl" name="txtOID"> + <object class="wxTextCtrl" name="txtID"> <pos>70,20d</pos> <size>135,-1d</size> + <style>wxTE_READONLY</style> </object> <object class="wxStaticText" name="stEnabled"> <label>Enabled</label> @@ -32,111 +33,276 @@ <label></label> <size>12,12d</size> </object> - <object class="wxStaticText" name="stKind"> - <label>Kind</label> - <pos>5,52d</pos> - </object> - <object class="wxComboBox" name="cbKind"> - <selection>0</selection> - <pos>70,50d</pos> - <size>135,12d</size> - <content> - <item>repeat</item> - <item>single</item> - <item>daily</item> - <item>weekly</item> - <item>monthly</item> - <item>yearly</item> - </content> - <style>wxCB_READONLY|wxCB_DROPDOWN</style> - </object> - <object class="wxStaticText" name="stSchedule"> - <label>Schedule</label> - <pos>5,67d</pos> - </object> - <object class="wxCalendarBox" name="calSchedule"> - <pos>70,65d</pos> - <size>65,-1d</size> - <style>wxCAL_MONDAY_FIRST</style> - </object> - <object class="wxTimeSpinCtrl" name="timSchedule"> - <pos>140,65d</pos> - <size>65,-1d</size> - </object> - <object class="wxStaticText" name="stInterval"> - <label>Interval</label> - <pos>5,82d</pos> - </object> - <object class="wxTimeSpinCtrl" name="timInterval"> - <pos>70,80d</pos> - <size>135,-1d</size> - <style>wxSP_WRAP</style> - </object> <object class="wxStaticText" name="stStart"> <label>Start</label> - <pos>5,97d</pos> + <pos>5,52d</pos> </object> <object class="wxCalendarBox" name="calStart"> - <pos>70,95d</pos> - <size>65,-1d</size> + <pos>70,50d</pos> + <size>65,12d</size> <style>wxCAL_MONDAY_FIRST</style> </object> <object class="wxTimeSpinCtrl" name="timStart"> - <pos>140,95d</pos> - <size>65,-1d</size> + <pos>140,50d</pos> + <size>65,12d</size> </object> <object class="wxStaticText" name="stEnd"> <label>End</label> - <pos>5,112d</pos> + <pos>5,67d</pos> </object> <object class="wxCalendarBox" name="calEnd"> - <pos>70,110d</pos> - <size>65,-1d</size> + <pos>70,65d</pos> + <size>65,12d</size> <style>wxCAL_MONDAY_FIRST</style> </object> <object class="wxTimeSpinCtrl" name="timEnd"> - <pos>140,110d</pos> - <size>65,-1d</size> + <pos>140,65d</pos> + <size>65,12d</size> </object> <object class="wxStaticText" name="stComment"> <label>Comment</label> - <pos>5,1270d</pos> + <pos>5,82d</pos> </object> <object class="wxTextCtrl" name="txtComment"> - <pos>70,1250d</pos> - <size>135,72d</size> + <pos>70,82d</pos> + <size>135,112d</size> <style>wxTE_MULTILINE</style> </object> </object> <selected>1</selected> </object> <object class="notebookpage"> - <label>Custom schedule</label> - <object class="wxPanel" name="pnlSchedule"> - <object class="wxListCtrl" name="lstIntervals"> + <label>Days</label> + <object class="wxPanel" name="pnlDays"> + <object class="wxStaticText" name="stWeekDays"> + <label>Week Days</label> + <pos>5,7d</pos> + </object> + <object class="wxCheckListBox" name="chkWeekDays"> + <content> + <item>Sunday</item> + <item>Monday</item> + <item>Tuesday</item> + <item>Wednesday</item> + <item>Thursday</item> + <item>Friday</item> + <item>Saturday</item> + </content> + <pos>70,5d</pos> + <size>135,59d</size> + </object> + <object class="wxStaticText" name="stMonthDays"> + <label>Month Days</label> + <pos>5,72d</pos> + </object> + <object class="wxCheckListBox" name="chkMonthDays"> + <content> + <item>1st</item> + <item>2nd</item> + <item>3rd</item> + <item>4th</item> + <item>5th</item> + <item>6th</item> + <item>7th</item> + <item>8th</item> + <item>9th</item> + <item>10th</item> + <item>11th</item> + <item>12th</item> + <item>13th</item> + <item>14th</item> + <item>15th</item> + <item>16th</item> + <item>17th</item> + <item>18th</item> + <item>19th</item> + <item>20th</item> + <item>21st</item> + <item>22nd</item> + <item>23rd</item> + <item>24th</item> + <item>25th</item> + <item>26th</item> + <item>27th</item> + <item>28th</item> + <item>29th</item> + <item>30th</item> + <item>31st</item> + <item>Last day</item> + </content> + <pos>70,70d</pos> + <size>135,59d</size> + </object> + <object class="wxStaticText" name="stMonths"> + <label>Months</label> + <pos>5,138d</pos> + </object> + <object class="wxCheckListBox" name="chkMonths"> + <content> + <item>January</item> + <item>February</item> + <item>March</item> + <item>April</item> + <item>May</item> + <item>June</item> + <item>July</item> + <item>August</item> + <item>September</item> + <item>October</item> + <item>November</item> + <item>December</item> + </content> + <pos>70,136d</pos> + <size>135,59d</size> + </object> + </object> + </object> + <object class="notebookpage"> + <label>Times</label> + <object class="wxPanel" name="pnlTimes"> + <object class="wxStaticText" name="stHours"> + <label>Hours</label> + <pos>5,7d</pos> + </object> + <object class="wxCheckListBox" name="chkHours"> + <content> + <item>00</item> + <item>01</item> + <item>02</item> + <item>03</item> + <item>04</item> + <item>05</item> + <item>06</item> + <item>07</item> + <item>08</item> + <item>09</item> + <item>10</item> + <item>11</item> + <item>12</item> + <item>13</item> + <item>14</item> + <item>15</item> + <item>16</item> + <item>17</item> + <item>18</item> + <item>19</item> + <item>20</item> + <item>21</item> + <item>22</item> + <item>23</item> + </content> + <pos>70,5d</pos> + <size>135,91d</size> + </object> + <object class="wxStaticText" name="stMinutes"> + <label>Minutes</label> + <pos>5,106d</pos> + </object> + <object class="wxCheckListBox" name="chkMinutes"> + <content> + <item checked="False">00</item> + <item checked="False">01</item> + <item checked="False">02</item> + <item checked="False">03</item> + <item checked="False">04</item> + <item checked="False">05</item> + <item checked="False">06</item> + <item checked="False">07</item> + <item checked="False">08</item> + <item checked="False">09</item> + <item checked="False">10</item> + <item checked="False">11</item> + <item checked="False">12</item> + <item checked="False">13</item> + <item checked="False">14</item> + <item checked="False">15</item> + <item checked="False">16</item> + <item checked="False">17</item> + <item checked="False">18</item> + <item checked="False">19</item> + <item checked="False">20</item> + <item checked="False">21</item> + <item checked="False">22</item> + <item checked="False">23</item> + <item checked="False">24</item> + <item checked="False">25</item> + <item checked="False">26</item> + <item checked="False">27</item> + <item checked="False">28</item> + <item checked="False">29</item> + <item checked="False">30</item> + <item checked="False">31</item> + <item checked="False">32</item> + <item checked="False">33</item> + <item checked="False">34</item> + <item checked="False">35</item> + <item checked="False">36</item> + <item checked="False">37</item> + <item checked="False">38</item> + <item checked="False">39</item> + <item checked="False">40</item> + <item checked="False">41</item> + <item checked="False">42</item> + <item checked="False">43</item> + <item checked="False">44</item> + <item checked="False">45</item> + <item checked="False">46</item> + <item checked="False">47</item> + <item checked="False">48</item> + <item checked="False">49</item> + <item checked="False">50</item> + <item checked="False">51</item> + <item checked="False">52</item> + <item checked="False">53</item> + <item checked="False">54</item> + <item checked="False">55</item> + <item checked="False">55</item> + <item checked="False">56</item> + <item checked="False">57</item> + <item checked="False">58</item> + <item checked="False">59</item> + </content> + <pos>70,104d</pos> + <size>135,91d</size> + </object> + </object> + </object> + <object class="notebookpage"> + <label>Exceptions</label> + <object class="wxPanel" name="pnlExceptions"> + <object class="wxListCtrl" name="lstExceptions"> <pos>5,5d</pos> <size>200,155d</size> <style>wxLC_REPORT|wxLC_SINGLE_SEL</style> </object> - <object class="wxStaticText" name="stOffset"> - <label>Time offset</label> - <pos>5,167d</pos> - </object> - <object class="wxTimeSpinCtrl" name="timOffset"> - <pos>5,180d</pos> - <size>65,-1d</size> + <object class="wxStaticText" name="stTime"> + <label>Time</label> + <pos>5,166d</pos> + </object> + <object class="wxTimeSpinCtrl" name="timExceptionTime"> + <pos>33,164d</pos> + <size>65,12d</size> + </object> + <object class="wxStaticText" name="stDate"> + <label>Date</label> + <pos>5,182d</pos> + </object> + <object class="wxCalendarBox" name="calExceptionDate"> + <pos>33,180d</pos> + <size>65,15d</size> + <style>wxCAL_MONDAY_FIRST</style> </object> - <object class="wxButton" name="btnChangeInterval"> + <object class="wxButton" name="btnChangeException"> <label>Change</label> <pos>100,163d</pos> <size>50,-1d</size> </object> - <object class="wxButton" name="btnAddInterval"> + <object class="wxButton" name="btnAddException"> <label>Add</label> <pos>100,180d</pos> <size>50,-1d</size> </object> - <object class="wxButton" name="btnRemoveInterval"> + <object class="wxButton" name="btnRemoveException"> <label>Remove</label> <pos>155,180d</pos> <size>50,-1d</size> @@ -160,6 +326,5 @@ <pos>166,220d</pos> </object> <size>218,238d</size> - <style></style> </object> </resource> \ No newline at end of file
---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])