-cancel [jobid=<number> job=<job-name> ujobid=<unique-jobid>]
+cancel [job=<job-name> ujobid=<unique-jobid>]
To be done in the context of a status dir graphical window.
Also in a "job resources window for job-name".
disable job<job-name> and enable job<job-name>
Could be done in the context of a jobs resource window which is not yet created
-estimate
-Could be a dialog in the context of a jobs window.
-
list
-many are done or are reproduced by having windows
-
-llist
-same as list
+ list ujobid<unique job name> (list job with unique name)
+ list files job=<job-name>
+ do this as a context option on page selector on joblist
+ list volumes job=<job-name>
+ list nextvolume job=<job-name>
+ list nextvol job=<job-name>
+ list nextvol job=<job-name> days=nnn
prune files|jobs|volume client=<client-name> volume=<volume-name>
-Should add as a dialog box from both client and medialist
+could add as a dialog box from both client and medialist
release storage=<storage-name>
Would need to explain what this does in bat with a dialog
-reload
-could be done in console or on director's page selector widget
-
run
done
automount on/off
Added buttons to the label dialog box to execute automount command
+cancel jobid=<number>
+
delete [volume=<vol-name> job jobid=<id>]
+estimate
+Could be a dialog in the context of a jobs window.
+
+list
+ list jobid=<id> (list jobid id)
+ list files jobid=<id>
+ list jobmedia jobid=<id>
+ list volumes jobid=<id>
+ list jobtotals (from page selector on joblist widget)
+ The next few are accomplishable graphically with joblist class
+ list jobs
+ list job=<job-name> (list all jobs with "job-name")
+ list jobname=<job-name> (same as above)
+ list jobmedia
+ list jobmedia job=<job-name>
+ The next few are accomplishable graphically with the medialist class
+ list volumes
+ list volumes pool=<pool-name>
+ list volume=<volume-name>
+ list pools
+ Accomplishable with the clients class graphically
+ list clients
help
-could be in the console window
+ context sensitive from page selector console
label
Done by kern before I started
relabel
done
+
+reload
+could be done in console or on director's page selector widget
update slots scan
see COMMANDS file
+Create edit pool interface.
+
========LOW priority items:
Use settings object to size the restore window. Similar to the saving of the
state of the main window.
m_contextActions.append(actionStatusDir);
m_contextActions.append(actionConsoleHelp);
m_contextActions.append(actionRequestMessages);
+ m_contextActions.append(actionConsoleReload);
connect(actionStatusDir, SIGNAL(triggered()), this, SLOT(status_dir()));
connect(actionConsoleHelp, SIGNAL(triggered()), this, SLOT(consoleHelp()));
+ connect(actionConsoleReload, SIGNAL(triggered()), this, SLOT(consoleReload()));
connect(actionRequestMessages, SIGNAL(triggered()), this, SLOT(messages()));
}
QString cmd("help");
consoleCommand(cmd);
}
+
+/* Slot for responding to page selectors reload bacula-dir.conf */
+void Console::consoleReload()
+{
+ QString cmd("reload");
+ consoleCommand(cmd);
+}
void set_font(void);
void poll_messages(void);
void consoleHelp();
+ void consoleReload();
public:
DIRRES *m_dir; /* so various pages can reference it */
</action>
<action name="actionConsoleHelp" >
<property name="text" >
- <string>ConsoleHelp</string>
+ <string>Console Help</string>
</property>
</action>
<action name="actionRequestMessages" >
<string>Request Messages</string>
</property>
</action>
+ <action name="actionConsoleReload" >
+ <property name="text" >
+ <string>Reload bacula-dir.conf</string>
+ </property>
+ </action>
</widget>
<resources/>
<connections/>
{
populateTable();
if (!m_populated) {
- m_contextActions.append(actionRefreshJobList);
m_populated=true;
}
}
/* Add Actions */
mp_tableWidget->addAction(actionRefreshJobList);
- mp_tableWidget->addAction(actionLongListJob);
mp_tableWidget->addAction(actionListJobid);
mp_tableWidget->addAction(actionListFilesOnJob);
mp_tableWidget->addAction(actionListJobMedia);
mp_tableWidget->addAction(actionShowLogForJob);
/* Make Connections */
- connect(actionLongListJob, SIGNAL(triggered()), this,
- SLOT(consoleLongListJob()));
connect(actionListJobid, SIGNAL(triggered()), this,
SLOT(consoleListJobid()));
connect(actionListFilesOnJob, SIGNAL(triggered()), this,
SLOT(showLogForJob()));
connect(actionCancelJob, SIGNAL(triggered()), this,
SLOT(consoleCancelJob()));
+ connect(actionListJobTotals, SIGNAL(triggered()), this,
+ SLOT(consoleListJobTotals()));
+
+ m_contextActions.append(actionRefreshJobList);
+ m_contextActions.append(actionListJobTotals);
}
/*
* Functions to respond to local context sensitive menu sending console commands
* If I could figure out how to make these one function passing a string, Yaaaaaa
*/
-void JobList::consoleLongListJob()
-{
- QString cmd("llist jobid=");
- cmd += m_currentJob;
- consoleCommand(cmd);
-}
void JobList::consoleListJobid()
{
QString cmd("list jobid=");
cmd += m_currentJob;
+ if (mainWin->m_longList) { cmd.prepend("l"); }
consoleCommand(cmd);
}
void JobList::consoleListFilesOnJob()
{
QString cmd("list files jobid=");
cmd += m_currentJob;
+ if (mainWin->m_longList) { cmd.prepend("l"); }
consoleCommand(cmd);
}
void JobList::consoleListJobMedia()
{
QString cmd("list jobmedia jobid=");
cmd += m_currentJob;
+ if (mainWin->m_longList) { cmd.prepend("l"); }
consoleCommand(cmd);
}
void JobList::consoleListVolumes()
{
QString cmd("list volumes jobid=");
cmd += m_currentJob;
+ if (mainWin->m_longList) { cmd.prepend("l"); }
+ consoleCommand(cmd);
+}
+void JobList::consoleListJobTotals()
+{
+ QString cmd("list jobtotals");
+ cmd += m_currentJob;
+ if (mainWin->m_longList) { cmd.prepend("l"); }
consoleCommand(cmd);
}
void JobList::consoleDeleteJob()
void tableItemChanged(QTableWidgetItem *, QTableWidgetItem *);
private slots:
- void consoleLongListJob();
void consoleListJobid();
void consoleListFilesOnJob();
void consoleListJobMedia();
void consoleListVolumes();
+ void consoleListJobTotals();
void consoleDeleteJob();
void consolePurgeFiles();
void preRestoreFromJob();
<string>ListVolumes</string>
</property>
</action>
- <action name="actionLongListJob" >
- <property name="icon" >
- <iconset>:images/unmark.png</iconset>
- </property>
- <property name="text" >
- <string>LongListJob</string>
- </property>
- </action>
<action name="actionDeleteJob" >
<property name="icon" >
<iconset>:images/unmark.png</iconset>
<string>Cancel Currently Running Job</string>
</property>
</action>
+ <action name="actionListJobTotals" >
+ <property name="icon" >
+ <iconset>:images/unmark.png</iconset>
+ </property>
+ <property name="text" >
+ <string>List Job Totals in Console</string>
+ </property>
+ </action>
</widget>
<resources/>
<connections/>
QString cmdStr = lineEdit->text(); /* Get the text */
lineEdit->clear(); /* clear the lineEdit box */
if (m_currentConsole->is_connected()) {
- m_currentConsole->display_text(cmdStr + "\n");
- m_currentConsole->write_dir(cmdStr.toUtf8().data()); /* send to dir */
+ m_currentConsole->consoleCommand(cmdStr);
} else {
set_status("Director not connected. Click on connect button.");
}
prefs.daysSpinBox->setValue(m_daysLimitVal);
prefs.checkMessages->setCheckState(m_checkMessages ? Qt::Checked : Qt::Unchecked);
prefs.checkMessagesSpin->setValue(m_checkMessagesInterval);
+ prefs.executeLongCheckBox->setCheckState(m_longList ? Qt::Checked : Qt::Unchecked);
+
prefs.exec();
}
mainWin->m_daysLimitVal = this->daysSpinBox->value();
mainWin->m_checkMessages = this->checkMessages->checkState() == Qt::Checked;
mainWin->m_checkMessagesInterval = this->checkMessagesSpin->value();
+ mainWin->m_longList = this->executeLongCheckBox->checkState() == Qt::Checked;
QSettings settings("www.bacula.org", "bat");
settings.beginGroup("Debug");
settings.setValue("commDebug", mainWin->m_commDebug);
settings.setValue("checkMessages", mainWin->m_checkMessages);
settings.setValue("checkMessagesInterval", mainWin->m_checkMessagesInterval);
settings.endGroup();
+ settings.beginGroup("Misc");
+ settings.setValue("longList", mainWin->m_longList);
+ settings.endGroup();
foreach(Console *console, mainWin->m_consoleHash) {
console->startTimer();
}
m_checkMessages = settings.value("checkMessages", false).toBool();
m_checkMessagesInterval = settings.value("checkMessagesInterval", 28).toInt();
settings.endGroup();
+ settings.beginGroup("Misc");
+ m_longList = settings.value("longList", false).toBool();
+ settings.endGroup();
}
int m_daysLimitVal;
bool m_checkMessages;
int m_checkMessagesInterval;
+ bool m_longList;
public slots:
void input_line();
void setCurrent();
void setContextMenuDockText();
void setTreeWidgetItemDockColor();
+ void consoleCommand(QString &);
public slots:
/* closeEvent is a virtual function inherited from QWidget */
protected:
void pgInitialize();
void pgInitialize(QTreeWidgetItem *);
- void consoleCommand(QString &);
virtual void treeWidgetName(QString &);
virtual void changeEvent(QEvent *event);
void setConsoleCurrent();
</widget>
</item>
<item row="1" column="0" >
- <widget class="QSpinBox" name="checkMessagesSpin" />
+ <widget class="QSpinBox" name="checkMessagesSpin" >
+ <property name="maximum" >
+ <number>3600</number>
+ </property>
+ </widget>
</item>
</layout>
</widget>
</layout>
</widget>
</widget>
+ <widget class="QWidget" name="tab_4" >
+ <attribute name="title" >
+ <string>Misc</string>
+ </attribute>
+ <widget class="QGroupBox" name="groupBox_4" >
+ <property name="geometry" >
+ <rect>
+ <x>30</x>
+ <y>50</y>
+ <width>201</width>
+ <height>81</height>
+ </rect>
+ </property>
+ <property name="title" >
+ <string>Context Sensitive List Commands</string>
+ </property>
+ <widget class="QCheckBox" name="executeLongCheckBox" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>161</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Execute Long List</string>
+ </property>
+ </widget>
+ </widget>
+ </widget>
<widget class="QWidget" name="tab_3" >
<attribute name="title" >
<string>Debug</string>