Improve Use Experience in Anaconda
This commit is contained in:
parent
ece13c83ec
commit
96251e822d
262
0003-Worklflow-order-workflows-according-to-their-priorit.patch
Normal file
262
0003-Worklflow-order-workflows-according-to-their-priorit.patch
Normal file
@ -0,0 +1,262 @@
|
||||
From 27a2c75409c7abae68c4ad3af99d8e90927af803 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Mon, 28 Apr 2014 13:57:05 +0200
|
||||
Subject: [LIBREPORT PATCH 03/10] Worklflow: order workflows according to their
|
||||
priority
|
||||
|
||||
Higher number -> higher priority -> more visible place in UI
|
||||
|
||||
Introduce 'priority' element in XML workflow definition:
|
||||
- child of 'workflow' element
|
||||
- the type is signed integer
|
||||
- optional value, if not present, 0 is used
|
||||
|
||||
Related to #259
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
|
||||
mmilata: fix DTD in manual page
|
||||
---
|
||||
doc/report-gtk.txt | 8 +++++++-
|
||||
src/cli/cli-report.c | 32 ++++++++++++++++++--------------
|
||||
src/gui-wizard-gtk/wizard.c | 10 ++++++----
|
||||
src/include/workflow.h | 10 ++++++++++
|
||||
src/lib/workflow.c | 21 +++++++++++++++++++++
|
||||
src/lib/workflow_xml_parser.c | 20 +++++++++++++++++++-
|
||||
6 files changed, 81 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/doc/report-gtk.txt b/doc/report-gtk.txt
|
||||
index e7611de..f39c77c 100644
|
||||
--- a/doc/report-gtk.txt
|
||||
+++ b/doc/report-gtk.txt
|
||||
@@ -64,11 +64,12 @@ These configuration files are placed in /usr/share/libreport/workflows.
|
||||
Each file has XML formatting with the following DTD:
|
||||
|
||||
------------
|
||||
-<!ELEMENT workflow (name+,description+,events*)>
|
||||
+<!ELEMENT workflow (name+,description+,priority?,events*)>
|
||||
<!ELEMENT name (#PCDATA)>
|
||||
<!ATTLIST name xml:lang CDATA #IMPLIED>
|
||||
<!ELEMENT description (#PCDATA)>
|
||||
<!ATTLIST description xml:lang CDATA #IMPLIED>
|
||||
+<!ELEMENT priority = (#PCDATA)>
|
||||
<!ELEMENT events = (event)+>
|
||||
<!ELEMENT event = (#PCDATA)>
|
||||
------------
|
||||
@@ -79,6 +80,10 @@ name::
|
||||
description::
|
||||
User visible description
|
||||
|
||||
+priority::
|
||||
+ Priority of the workflow. Higher number means a more visible place in UI.
|
||||
+ If not provided, 0 is used. The value is signed integer.
|
||||
+
|
||||
events::
|
||||
List of executed events
|
||||
|
||||
@@ -98,6 +103,7 @@ Simple reporting work flow
|
||||
<name xml:lang="cs">Příklad</name>
|
||||
<description xml:lang="en">Example description</description>
|
||||
<description xml:lang="cs">Příklad popisu</description>
|
||||
+ <priority>10</priority>
|
||||
<evetns>
|
||||
<event>analyze_example</event>
|
||||
<event>collect_example</event>
|
||||
diff --git a/src/cli/cli-report.c b/src/cli/cli-report.c
|
||||
index 68baa8b..9cc7613 100644
|
||||
--- a/src/cli/cli-report.c
|
||||
+++ b/src/cli/cli-report.c
|
||||
@@ -824,32 +824,36 @@ int run_event_chain(const char *dump_dir_name, GList *chain, int interactive)
|
||||
|
||||
static workflow_t *select_workflow(GHashTable *workflows)
|
||||
{
|
||||
- GHashTableIter iter;
|
||||
- gpointer key = NULL;
|
||||
- workflow_t *value = NULL;
|
||||
+ GList *wf_list = g_hash_table_get_values(workflows);
|
||||
|
||||
- g_hash_table_iter_init(&iter, workflows);
|
||||
-
|
||||
- if (!g_hash_table_iter_next(&iter, &key, (gpointer *)&value))
|
||||
+ if (wf_list == NULL)
|
||||
{
|
||||
error_msg("No workflow suitable for this problem was found!");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- if (g_hash_table_size(workflows) == 1)
|
||||
+ const guint wf_cnt = g_list_length(wf_list);
|
||||
+ if (wf_cnt == 1)
|
||||
{
|
||||
- log_notice("autoselected workflow: '%s'", (char *)key);
|
||||
- return value;
|
||||
+ workflow_t *wf_selected = (workflow_t *)wf_list->data;
|
||||
+ log_notice("autoselected workflow: '%s'", (char *)wf_get_name(wf_selected));
|
||||
+ g_list_free(wf_list);
|
||||
+ return wf_selected;
|
||||
}
|
||||
|
||||
- workflow_t *help_wf_array[g_hash_table_size(workflows)];
|
||||
+ wf_list = g_list_sort(wf_list, (GCompareFunc)wf_priority_compare);
|
||||
+
|
||||
+ workflow_t *help_wf_array[wf_cnt];
|
||||
unsigned count = 0;
|
||||
- do
|
||||
+
|
||||
+ for(GList *wf_iter = wf_list; wf_iter; wf_iter = g_list_next(wf_iter))
|
||||
{
|
||||
- help_wf_array[count] = value;
|
||||
- printf("%d %s\n %s\n\n", ++count, wf_get_screen_name(value), wf_get_description(value));
|
||||
+ workflow_t *wf = (workflow_t *)wf_iter->data;
|
||||
+ help_wf_array[count] = wf;
|
||||
+ printf("%d %s\n %s\n\n", ++count, wf_get_screen_name(wf), wf_get_description(wf));
|
||||
}
|
||||
- while (g_hash_table_iter_next(&iter, &key, (gpointer *)&value));
|
||||
+
|
||||
+ g_list_free(wf_list);
|
||||
|
||||
const unsigned picked = choose_number_from_range(1, count, _("Select a workflow to run: "));
|
||||
return help_wf_array[picked - 1];
|
||||
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
|
||||
index 82bdf3e..e6f6ee7 100644
|
||||
--- a/src/gui-wizard-gtk/wizard.c
|
||||
+++ b/src/gui-wizard-gtk/wizard.c
|
||||
@@ -2736,10 +2736,12 @@ static void add_workflow_buttons(GtkBox *box, GHashTable *workflows, GCallback f
|
||||
list_possible_events_glist(g_dump_dir_name, "workflow"),
|
||||
WORKFLOWS_DIR);
|
||||
|
||||
- GList *keys = g_hash_table_get_keys(workflow_table);
|
||||
- while(keys)
|
||||
+ GList *wf_list = g_hash_table_get_values(workflow_table);
|
||||
+ wf_list = g_list_sort(wf_list, (GCompareFunc)wf_priority_compare);
|
||||
+
|
||||
+ for (GList *wf_iter = wf_list; wf_iter; wf_iter = g_list_next(wf_iter))
|
||||
{
|
||||
- workflow_t *w = g_hash_table_lookup(workflow_table, keys->data);
|
||||
+ workflow_t *w = (workflow_t *)wf_iter->data;
|
||||
char *btn_label = xasprintf("<b>%s</b>\n%s", wf_get_screen_name(w), wf_get_description(w));
|
||||
GtkWidget *button = gtk_button_new_with_label(btn_label);
|
||||
GList *children = gtk_container_get_children(GTK_CONTAINER(button));
|
||||
@@ -2756,9 +2758,9 @@ static void add_workflow_buttons(GtkBox *box, GHashTable *workflows, GCallback f
|
||||
free(btn_label);
|
||||
g_signal_connect(button, "clicked", func, w);
|
||||
gtk_box_pack_start(box, button, true, false, 2);
|
||||
- keys = g_list_next(keys);
|
||||
}
|
||||
|
||||
+ g_list_free(wf_list);
|
||||
}
|
||||
|
||||
static char *setup_next_processed_event(GList **events_list)
|
||||
diff --git a/src/include/workflow.h b/src/include/workflow.h
|
||||
index 66bbdaf..d79708e 100644
|
||||
--- a/src/include/workflow.h
|
||||
+++ b/src/include/workflow.h
|
||||
@@ -39,11 +39,21 @@ GList *wf_get_event_names(workflow_t *w);
|
||||
const char *wf_get_screen_name(workflow_t *w);
|
||||
const char *wf_get_description(workflow_t *w);
|
||||
const char *wf_get_long_desc(workflow_t *w);
|
||||
+int wf_get_priority(workflow_t *w);
|
||||
|
||||
void wf_set_screen_name(workflow_t *w, const char* screen_name);
|
||||
void wf_set_description(workflow_t *w, const char* description);
|
||||
void wf_set_long_desc(workflow_t *w, const char* long_desc);
|
||||
void wf_add_event(workflow_t *w, event_config_t *ec);
|
||||
+void wf_set_priority(workflow_t *w, int priority);
|
||||
+
|
||||
+/*
|
||||
+ * Returns a negative integer if the first value comes before the second, 0 if
|
||||
+ * they are equal, or a positive integer if the first value comes after the
|
||||
+ * second.
|
||||
+ */
|
||||
+int wf_priority_compare(const workflow_t *first, const workflow_t *second);
|
||||
+
|
||||
GHashTable *load_workflow_config_data_from_list(GList *wf_names, const char *path);
|
||||
|
||||
#endif
|
||||
diff --git a/src/lib/workflow.c b/src/lib/workflow.c
|
||||
index 52ad924..c6eedf4 100644
|
||||
--- a/src/lib/workflow.c
|
||||
+++ b/src/lib/workflow.c
|
||||
@@ -24,6 +24,7 @@
|
||||
struct workflow
|
||||
{
|
||||
config_item_info_t *info;
|
||||
+ int priority; // direct correlation: higher number -> higher priority
|
||||
|
||||
GList *events; //list of event_option_t
|
||||
};
|
||||
@@ -193,6 +194,11 @@ const char *wf_get_long_desc(workflow_t *w)
|
||||
return ci_get_long_desc(workflow_get_config_info(w));
|
||||
}
|
||||
|
||||
+int wf_get_priority(workflow_t *w)
|
||||
+{
|
||||
+ return w->priority;
|
||||
+}
|
||||
+
|
||||
void wf_set_screen_name(workflow_t *w, const char* screen_name)
|
||||
{
|
||||
ci_set_screen_name(workflow_get_config_info(w), screen_name);
|
||||
@@ -213,3 +219,18 @@ void wf_add_event(workflow_t *w, event_config_t *ec)
|
||||
w->events = g_list_append(w->events, ec);
|
||||
log_info("added to ev list: '%s'", ec_get_screen_name(ec));
|
||||
}
|
||||
+
|
||||
+void wf_set_priority(workflow_t *w, int priority)
|
||||
+{
|
||||
+ w->priority = priority;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Returns a negative integer if the first value comes before the second, 0 if
|
||||
+ * they are equal, or a positive integer if the first value comes after the
|
||||
+ * second.
|
||||
+ */
|
||||
+int wf_priority_compare(const workflow_t *first, const workflow_t *second)
|
||||
+{
|
||||
+ return second->priority - first->priority;
|
||||
+}
|
||||
diff --git a/src/lib/workflow_xml_parser.c b/src/lib/workflow_xml_parser.c
|
||||
index 0efc733..f216c18 100644
|
||||
--- a/src/lib/workflow_xml_parser.c
|
||||
+++ b/src/lib/workflow_xml_parser.c
|
||||
@@ -26,6 +26,7 @@
|
||||
#define EVENT_ELEMENT "event"
|
||||
#define DESCRIPTION_ELEMENT "description"
|
||||
#define NAME_ELEMENT "name"
|
||||
+#define PRIORITY_ELEMENT "priority"
|
||||
|
||||
static void start_element(GMarkupParseContext *context,
|
||||
const gchar *element_name,
|
||||
@@ -134,9 +135,26 @@ static void text(GMarkupParseContext *context,
|
||||
}
|
||||
}
|
||||
}
|
||||
-
|
||||
}
|
||||
|
||||
+ else if(strcmp(inner_element, PRIORITY_ELEMENT) == 0)
|
||||
+ {
|
||||
+ log_debug("workflow priority:'%s'", text);
|
||||
+
|
||||
+ char *end = NULL;
|
||||
+ long long val = strtoll(text, &end, 10);
|
||||
+
|
||||
+ if (text == end || end[0] != '\0'
|
||||
+ || (errno == ERANGE && (val == LLONG_MAX || val == LLONG_MIN))
|
||||
+ || (val > INT_MAX || val < INT_MIN)
|
||||
+ || (errno != 0 && val == 0))
|
||||
+ {
|
||||
+ error_msg("Workflow's priority is not a number in range <%d,%d>", INT_MIN, INT_MAX);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ wf_set_priority(workflow, (int)val);
|
||||
+ }
|
||||
}
|
||||
|
||||
// Called for strings that should be re-saved verbatim in this same
|
||||
--
|
||||
1.8.3.1
|
||||
|
163
0004-define-priorities-for-the-existing-workflows.patch
Normal file
163
0004-define-priorities-for-the-existing-workflows.patch
Normal file
@ -0,0 +1,163 @@
|
||||
From b3f6d615ce53310bd05622492357cc06c7e875c6 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Mon, 28 Apr 2014 14:00:14 +0200
|
||||
Subject: [LIBREPORT PATCH 04/10] define priorities for the existing workflows
|
||||
|
||||
Related to #259
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/workflows/workflow_AnacondaFedora.xml.in | 1 +
|
||||
src/workflows/workflow_AnacondaRHEL.xml.in | 1 +
|
||||
src/workflows/workflow_AnacondaRHELBugzilla.xml.in | 1 +
|
||||
src/workflows/workflow_RHELCCpp.xml.in | 1 +
|
||||
src/workflows/workflow_RHELJava.xml.in | 1 +
|
||||
src/workflows/workflow_RHELKerneloops.xml.in | 1 +
|
||||
src/workflows/workflow_RHELLibreport.xml.in | 1 +
|
||||
src/workflows/workflow_RHELPython.xml.in | 1 +
|
||||
src/workflows/workflow_RHELvmcore.xml.in | 1 +
|
||||
src/workflows/workflow_RHELxorg.xml.in | 1 +
|
||||
src/workflows/workflow_Upload.xml.in | 3 ++-
|
||||
11 files changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/workflows/workflow_AnacondaFedora.xml.in b/src/workflows/workflow_AnacondaFedora.xml.in
|
||||
index 6322d9a..5deab24 100644
|
||||
--- a/src/workflows/workflow_AnacondaFedora.xml.in
|
||||
+++ b/src/workflows/workflow_AnacondaFedora.xml.in
|
||||
@@ -2,6 +2,7 @@
|
||||
<workflow>
|
||||
<_name>Report a bug to Fedora maintainers</_name>
|
||||
<_description>Process the report using the Fedora infrastructure</_description>
|
||||
+ <priority>99</priority>
|
||||
|
||||
<events>
|
||||
<event>report_Bugzilla</event>
|
||||
diff --git a/src/workflows/workflow_AnacondaRHEL.xml.in b/src/workflows/workflow_AnacondaRHEL.xml.in
|
||||
index 4400546..ef4f658 100644
|
||||
--- a/src/workflows/workflow_AnacondaRHEL.xml.in
|
||||
+++ b/src/workflows/workflow_AnacondaRHEL.xml.in
|
||||
@@ -2,6 +2,7 @@
|
||||
<workflow>
|
||||
<_name>Report a bug to Red Hat Customer Portal</_name>
|
||||
<_description>Process the report using the Red Hat infrastructure</_description>
|
||||
+ <priority>99</priority>
|
||||
|
||||
<events>
|
||||
<event>report_RHTSupport</event>
|
||||
diff --git a/src/workflows/workflow_AnacondaRHELBugzilla.xml.in b/src/workflows/workflow_AnacondaRHELBugzilla.xml.in
|
||||
index fd7853f..e2f8b57 100644
|
||||
--- a/src/workflows/workflow_AnacondaRHELBugzilla.xml.in
|
||||
+++ b/src/workflows/workflow_AnacondaRHELBugzilla.xml.in
|
||||
@@ -2,6 +2,7 @@
|
||||
<workflow>
|
||||
<_name>Report a bug to Red Hat Bugzilla</_name>
|
||||
<_description>Process the report using the Red Hat infrastructure</_description>
|
||||
+ <priority>98</priority>
|
||||
|
||||
<events>
|
||||
<event>report_Bugzilla</event>
|
||||
diff --git a/src/workflows/workflow_RHELCCpp.xml.in b/src/workflows/workflow_RHELCCpp.xml.in
|
||||
index 4d0251a..a6df6eb 100644
|
||||
--- a/src/workflows/workflow_RHELCCpp.xml.in
|
||||
+++ b/src/workflows/workflow_RHELCCpp.xml.in
|
||||
@@ -2,6 +2,7 @@
|
||||
<workflow>
|
||||
<_name>Report to Red Hat Customer Portal</_name>
|
||||
<_description>Process the C/C++ crash using the Red Hat infrastructure</_description>
|
||||
+ <priority>99</priority>
|
||||
|
||||
<events>
|
||||
<event>collect_*</event>
|
||||
diff --git a/src/workflows/workflow_RHELJava.xml.in b/src/workflows/workflow_RHELJava.xml.in
|
||||
index 23ef0cb..2adc4b7 100644
|
||||
--- a/src/workflows/workflow_RHELJava.xml.in
|
||||
+++ b/src/workflows/workflow_RHELJava.xml.in
|
||||
@@ -2,6 +2,7 @@
|
||||
<workflow>
|
||||
<_name>Report to Red Hat Customer Portal</_name>
|
||||
<_description>Process the Java exception using the Red Hat infrastructure</_description>
|
||||
+ <priority>99</priority>
|
||||
|
||||
<events>
|
||||
<event>collect_*</event>
|
||||
diff --git a/src/workflows/workflow_RHELKerneloops.xml.in b/src/workflows/workflow_RHELKerneloops.xml.in
|
||||
index 941a898..d8d3b18 100644
|
||||
--- a/src/workflows/workflow_RHELKerneloops.xml.in
|
||||
+++ b/src/workflows/workflow_RHELKerneloops.xml.in
|
||||
@@ -2,6 +2,7 @@
|
||||
<workflow>
|
||||
<_name>Report to Red Hat Customer Portal</_name>
|
||||
<_description>Process the kerneloops using the Red Hat infrastructure</_description>
|
||||
+ <priority>99</priority>
|
||||
|
||||
<events>
|
||||
<event>collect_*</event>
|
||||
diff --git a/src/workflows/workflow_RHELLibreport.xml.in b/src/workflows/workflow_RHELLibreport.xml.in
|
||||
index b8b4f04..e76bf13 100644
|
||||
--- a/src/workflows/workflow_RHELLibreport.xml.in
|
||||
+++ b/src/workflows/workflow_RHELLibreport.xml.in
|
||||
@@ -2,6 +2,7 @@
|
||||
<workflow>
|
||||
<_name>Report to Red Hat Customer Portal</_name>
|
||||
<_description>Process the problem using the Red Hat infrastructure</_description>
|
||||
+ <priority>99</priority>
|
||||
|
||||
<events>
|
||||
<event>report_RHTSupport</event>
|
||||
diff --git a/src/workflows/workflow_RHELPython.xml.in b/src/workflows/workflow_RHELPython.xml.in
|
||||
index ee1c4e7..15a8978 100644
|
||||
--- a/src/workflows/workflow_RHELPython.xml.in
|
||||
+++ b/src/workflows/workflow_RHELPython.xml.in
|
||||
@@ -2,6 +2,7 @@
|
||||
<workflow>
|
||||
<_name>Report to Red Hat Customer Portal</_name>
|
||||
<_description>Process the python exception using the Red Hat infrastructure</_description>
|
||||
+ <priority>99</priority>
|
||||
|
||||
<events>
|
||||
<event>collect_*</event>
|
||||
diff --git a/src/workflows/workflow_RHELvmcore.xml.in b/src/workflows/workflow_RHELvmcore.xml.in
|
||||
index f2a775d..3984129 100644
|
||||
--- a/src/workflows/workflow_RHELvmcore.xml.in
|
||||
+++ b/src/workflows/workflow_RHELvmcore.xml.in
|
||||
@@ -2,6 +2,7 @@
|
||||
<workflow>
|
||||
<_name>Report to Red Hat Customer Portal</_name>
|
||||
<_description>Process the kernel crash using the Red Hat infrastructure</_description>
|
||||
+ <priority>99</priority>
|
||||
|
||||
<events>
|
||||
<event>collect_*</event>
|
||||
diff --git a/src/workflows/workflow_RHELxorg.xml.in b/src/workflows/workflow_RHELxorg.xml.in
|
||||
index 13697b9..55cd88d 100644
|
||||
--- a/src/workflows/workflow_RHELxorg.xml.in
|
||||
+++ b/src/workflows/workflow_RHELxorg.xml.in
|
||||
@@ -2,6 +2,7 @@
|
||||
<workflow>
|
||||
<_name>Report to Red Hat Customer Portal</_name>
|
||||
<_description>Process the X Server problem using the Red Hat infrastructure</_description>
|
||||
+ <priority>99</priority>
|
||||
|
||||
<events>
|
||||
<event>report_RHTSupport</event>
|
||||
diff --git a/src/workflows/workflow_Upload.xml.in b/src/workflows/workflow_Upload.xml.in
|
||||
index 3965f99..7f22cb8 100644
|
||||
--- a/src/workflows/workflow_Upload.xml.in
|
||||
+++ b/src/workflows/workflow_Upload.xml.in
|
||||
@@ -2,10 +2,11 @@
|
||||
<workflow>
|
||||
<_name>Upload the problem data to a server</_name>
|
||||
<_description>Analyze the problem locally and upload the data via scp or ftp</_description>
|
||||
+ <priority>-99</priority>
|
||||
|
||||
<events>
|
||||
<event>collect_*</event>
|
||||
<event>analyze_CCpp</event>
|
||||
<event>report_Uploader</event>
|
||||
</events>
|
||||
-</workflow>
|
||||
\ No newline at end of file
|
||||
+</workflow>
|
||||
--
|
||||
1.8.3.1
|
||||
|
41
0005-less-confusing-label-for-upload-data-in-Anaconda.patch
Normal file
41
0005-less-confusing-label-for-upload-data-in-Anaconda.patch
Normal file
@ -0,0 +1,41 @@
|
||||
From 5f83c373c89a0e91a75a53184ce896426385293c Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Mon, 28 Apr 2014 14:30:51 +0200
|
||||
Subject: [LIBREPORT PATCH 05/10] less confusing label for 'upload data' in
|
||||
Anaconda
|
||||
|
||||
Because 'Upload the problem data' might evoke the automatic bug creation
|
||||
in the Bugzilla.
|
||||
|
||||
We know that users (an me as well) read fast and do not read the entire
|
||||
sentences. Hence the first words of a button's label must express the
|
||||
purpose of that button.
|
||||
|
||||
Related to #259
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/workflows/workflow_AnacondaUpload.xml.in | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/workflows/workflow_AnacondaUpload.xml.in b/src/workflows/workflow_AnacondaUpload.xml.in
|
||||
index a98a536..541c898 100644
|
||||
--- a/src/workflows/workflow_AnacondaUpload.xml.in
|
||||
+++ b/src/workflows/workflow_AnacondaUpload.xml.in
|
||||
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<workflow>
|
||||
- <_name>Upload the problem data to a server</_name>
|
||||
- <_description>Analyze the problem locally and upload the data via scp or ftp</_description>
|
||||
+ <_name>Export the problem data for manual reporting</_name>
|
||||
+ <_description>Upload the data via scp or ftp to a remote destination</_description>
|
||||
|
||||
<events>
|
||||
<event>report_Uploader</event>
|
||||
</events>
|
||||
-</workflow>
|
||||
\ No newline at end of file
|
||||
+</workflow>
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,89 @@
|
||||
From c02413504497dc1477fade9495ea26281d463b52 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Mon, 28 Apr 2014 14:42:42 +0200
|
||||
Subject: [LIBREPORT PATCH 06/10] Bugzilla: move the advanced options to the
|
||||
advanced section
|
||||
|
||||
Keep only login and password fields in the configuration dialogue.
|
||||
|
||||
URL is not changed often enough to be the first field in the
|
||||
configuration dialogue. Normal users do not changed neither URL option
|
||||
nor SSL Verify option.
|
||||
|
||||
Private ticket option should also not been checked by default. The
|
||||
reporting user might request to restrict access to a bug report during
|
||||
the reporting process.
|
||||
|
||||
Related to #259
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/plugins/report_Bugzilla.xml.in | 34 +++++++++++++++++-----------------
|
||||
1 file changed, 17 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/report_Bugzilla.xml.in b/src/plugins/report_Bugzilla.xml.in
|
||||
index 79f2bcd..7fc596e 100644
|
||||
--- a/src/plugins/report_Bugzilla.xml.in
|
||||
+++ b/src/plugins/report_Bugzilla.xml.in
|
||||
@@ -12,34 +12,29 @@
|
||||
<gui-review-elements>yes</gui-review-elements>
|
||||
|
||||
<options>
|
||||
- <option type="text" name="Bugzilla_BugzillaURL">
|
||||
- <_label>Bugzilla URL</_label>
|
||||
- <allow-empty>no</allow-empty>
|
||||
- <_description>Address of Bugzilla server</_description>
|
||||
- <default-value>https://bugzilla.redhat.com</default-value>
|
||||
- <_note-html>You can create bugzilla.redhat.com account <a href="https://bugzilla.redhat.com/createaccount.cgi">here</a></_note-html>
|
||||
- </option>
|
||||
<option type="text" name="Bugzilla_Login">
|
||||
<_label>User name</_label>
|
||||
<allow-empty>no</allow-empty>
|
||||
<_description>Bugzilla account user name</_description>
|
||||
+ <_note-html>You can create bugzilla.redhat.com account <a href="https://bugzilla.redhat.com/createaccount.cgi">here</a></_note-html>
|
||||
</option>
|
||||
<option type="password" name="Bugzilla_Password">
|
||||
<_label>Password</_label>
|
||||
<allow-empty>no</allow-empty>
|
||||
<_description>Bugzilla account password</_description>
|
||||
</option>
|
||||
- <option type="bool" name="Bugzilla_SSLVerify">
|
||||
- <_label>Verify SSL</_label>
|
||||
- <_description>Check SSL key validity</_description>
|
||||
- <default-value>yes</default-value>
|
||||
- </option>
|
||||
- <option type="bool" name="Bugzilla_CreatePrivate">
|
||||
- <_label>Restrict access</_label>
|
||||
- <_description>Restrict access to the created bugzilla ticket allowing only users from specified groups to view it (see advanced settings for more details)</_description>
|
||||
- <default-value>no</default-value>
|
||||
- </option>
|
||||
<advanced-options>
|
||||
+ <option type="text" name="Bugzilla_BugzillaURL">
|
||||
+ <_label>Bugzilla URL</_label>
|
||||
+ <allow-empty>no</allow-empty>
|
||||
+ <_description>Address of Bugzilla server</_description>
|
||||
+ <default-value>https://bugzilla.redhat.com</default-value>
|
||||
+ </option>
|
||||
+ <option type="bool" name="Bugzilla_SSLVerify">
|
||||
+ <_label>Verify SSL</_label>
|
||||
+ <_description>Check SSL key validity</_description>
|
||||
+ <default-value>yes</default-value>
|
||||
+ </option>
|
||||
<option type="text" name="Bugzilla_Product">
|
||||
<_label>Bugzilla product</_label>
|
||||
<allow-empty>yes</allow-empty>
|
||||
@@ -60,6 +55,11 @@
|
||||
<allow-empty>yes</allow-empty>
|
||||
<_note-html>Sets the proxy server to use for HTTPS</_note-html>
|
||||
</option>
|
||||
+ <option type="bool" name="Bugzilla_CreatePrivate">
|
||||
+ <_label>Restrict access</_label>
|
||||
+ <_description>Restrict access to the created bugzilla ticket allowing only users from specified groups to view it (see advanced settings for more details)</_description>
|
||||
+ <default-value>no</default-value>
|
||||
+ </option>
|
||||
<option type="text" name="Bugzilla_PrivateGroups">
|
||||
<_label>Groups</_label>
|
||||
<allow-empty>yes</allow-empty>
|
||||
--
|
||||
1.8.3.1
|
||||
|
34
0007-hide-Don-t-store-password-checkbox.patch
Normal file
34
0007-hide-Don-t-store-password-checkbox.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From 2bca7670971b25bf83605b89469e9b8195e73860 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Mon, 28 Apr 2014 15:49:26 +0200
|
||||
Subject: [LIBREPORT PATCH 07/10] hide "Don't store password" checkbox
|
||||
|
||||
Show the checkbox only if the options can be stored. For example, it does
|
||||
not make sense to show this checkbox when in Anaconda.
|
||||
|
||||
Related to #259
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/gtk-helpers/event_config_dialog.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gtk-helpers/event_config_dialog.c b/src/gtk-helpers/event_config_dialog.c
|
||||
index 1ed5196..ff3e38b 100644
|
||||
--- a/src/gtk-helpers/event_config_dialog.c
|
||||
+++ b/src/gtk-helpers/event_config_dialog.c
|
||||
@@ -237,7 +237,10 @@ config_dialog_t *create_event_config_dialog_content(event_config_t *event, GtkWi
|
||||
g_list_foreach(event->options, &add_option_to_table, option_table);
|
||||
|
||||
/* if there is at least one password option, add checkbox to disable storing passwords */
|
||||
- if (has_password_option)
|
||||
+ /* if the user storage is not available nothing is to be stored, so it is not necessary
|
||||
+ * to bother with an extra checkbox about storing passwords */
|
||||
+ if (is_event_config_user_storage_available()
|
||||
+ && has_password_option)
|
||||
{
|
||||
unsigned last_row = add_one_row_to_grid(GTK_GRID(option_table));
|
||||
GtkWidget *pass_store_cb = gtk_check_button_new_with_label(_("Don't store passwords"));
|
||||
--
|
||||
1.8.3.1
|
||||
|
158
0008-refactoring-unify-event-configuration-dialogs.patch
Normal file
158
0008-refactoring-unify-event-configuration-dialogs.patch
Normal file
@ -0,0 +1,158 @@
|
||||
From c134783d5c9fc8ba6691408ce9b3015ab368ad16 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Tue, 29 Apr 2014 09:49:23 +0200
|
||||
Subject: [LIBREPORT PATCH 08/10] refactoring: unify event configuration
|
||||
dialogs
|
||||
|
||||
Related to #259
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/gtk-helpers/config_dialog.c | 40 ++++++++++++++-----------
|
||||
src/gtk-helpers/event_config_dialog.c | 51 +++-----------------------------
|
||||
src/gtk-helpers/internal_libreport_gtk.h | 1 +
|
||||
3 files changed, 28 insertions(+), 64 deletions(-)
|
||||
|
||||
diff --git a/src/gtk-helpers/config_dialog.c b/src/gtk-helpers/config_dialog.c
|
||||
index 6cc4be9..6de08e3 100644
|
||||
--- a/src/gtk-helpers/config_dialog.c
|
||||
+++ b/src/gtk-helpers/config_dialog.c
|
||||
@@ -83,6 +83,28 @@ gpointer cdialog_get_data(config_dialog_t *cdialog)
|
||||
return cdialog->data;
|
||||
}
|
||||
|
||||
+int cdialog_run(config_dialog_t *cdialog, const char *name)
|
||||
+{
|
||||
+ if (cdialog == NULL || cdialog->dialog == NULL)
|
||||
+ {
|
||||
+ log("There is no configurable option for: '%s'", name);
|
||||
+ return GTK_RESPONSE_REJECT;
|
||||
+ }
|
||||
+
|
||||
+ const int result = gtk_dialog_run(GTK_DIALOG(cdialog->dialog));
|
||||
+ if (result == GTK_RESPONSE_APPLY)
|
||||
+ {
|
||||
+ if (cdialog->save_data)
|
||||
+ cdialog->save_data(cdialog->data, name);
|
||||
+ }
|
||||
+ else if (result == GTK_RESPONSE_CANCEL)
|
||||
+ log_notice("Cancelling on user request");
|
||||
+
|
||||
+ gtk_widget_hide(GTK_WIDGET(cdialog->dialog));
|
||||
+
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
static const void *get_column_value_from_row(GtkTreeView *treeview, int column, int type)
|
||||
{
|
||||
GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview);
|
||||
@@ -246,23 +268,7 @@ static void on_configure_cb(GtkWidget *btn, gpointer user_data)
|
||||
config_dialog_t *cdialog = (config_dialog_t *)get_column_value_from_row(tv, CONFIG_DIALOG, TYPE_POINTER);
|
||||
const char *name = (const char *)get_column_value_from_row(tv, COLUMN_NAME, TYPE_STR);
|
||||
|
||||
-
|
||||
- if (cdialog == NULL || cdialog->dialog == NULL)
|
||||
- {
|
||||
- log("There is no configurable option for: '%s'", name);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- int result = gtk_dialog_run(GTK_DIALOG(cdialog->dialog));
|
||||
- if (result == GTK_RESPONSE_APPLY)
|
||||
- {
|
||||
- if (cdialog->save_data)
|
||||
- cdialog->save_data(cdialog->data, name);
|
||||
- }
|
||||
- else if (result == GTK_RESPONSE_CANCEL)
|
||||
- log_notice("Cancelling on user request");
|
||||
-
|
||||
- gtk_widget_hide(GTK_WIDGET(cdialog->dialog));
|
||||
+ cdialog_run(cdialog, name);
|
||||
}
|
||||
|
||||
static void on_close_cb(GtkWidget *btn, gpointer config_list_w)
|
||||
diff --git a/src/gtk-helpers/event_config_dialog.c b/src/gtk-helpers/event_config_dialog.c
|
||||
index ff3e38b..655abb6 100644
|
||||
--- a/src/gtk-helpers/event_config_dialog.c
|
||||
+++ b/src/gtk-helpers/event_config_dialog.c
|
||||
@@ -319,7 +319,7 @@ config_dialog_t *create_event_config_dialog(const char *event_name, GtkWindow *p
|
||||
if (parent_window != NULL)
|
||||
{
|
||||
gtk_window_set_icon_name(GTK_WINDOW(dialog),
|
||||
- gtk_window_get_icon_name(parent_window));
|
||||
+ gtk_window_get_icon_name(parent_window));
|
||||
}
|
||||
|
||||
GtkWidget *content = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
|
||||
@@ -349,53 +349,10 @@ int show_event_config_dialog(const char *event_name, GtkWindow *parent)
|
||||
{
|
||||
INITIALIZE_LIBREPORT();
|
||||
|
||||
- event_config_t *event = get_event_config(event_name);
|
||||
-
|
||||
- GtkWindow *parent_window = parent ? parent : g_event_list_window;
|
||||
-
|
||||
- GtkWidget *dialog = gtk_dialog_new_with_buttons(
|
||||
- /*title:*/ec_get_screen_name(event) ? ec_get_screen_name(event) : event_name,
|
||||
- parent_window,
|
||||
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
- _("_Cancel"),
|
||||
- GTK_RESPONSE_CANCEL,
|
||||
- _("_OK"),
|
||||
- GTK_RESPONSE_APPLY,
|
||||
- NULL);
|
||||
-
|
||||
- /* Allow resize?
|
||||
- * W/o resize, e.g. upload configuration hint looks awfully
|
||||
- * line wrapped.
|
||||
- * With resize, there are some somewhat not nice effects:
|
||||
- * for one, opening an expander will enlarge window,
|
||||
- * but won't contract it back when expander is closed.
|
||||
- */
|
||||
- gtk_window_set_resizable(GTK_WINDOW(dialog), true);
|
||||
- gtk_window_set_default_size(GTK_WINDOW(dialog), 450, -1);
|
||||
+ config_dialog_t *dialog = create_event_config_dialog(event_name, parent);
|
||||
+ const int result = cdialog_run(dialog, event_name);
|
||||
+ free(dialog);
|
||||
|
||||
- if (parent_window != NULL)
|
||||
- {
|
||||
- gtk_window_set_icon_name(GTK_WINDOW(dialog),
|
||||
- gtk_window_get_icon_name(parent_window));
|
||||
- }
|
||||
-
|
||||
- GtkWidget *content = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
|
||||
- content = cdialog_get_widget(create_event_config_dialog_content(event, content));
|
||||
-
|
||||
- gtk_widget_show_all(content);
|
||||
-
|
||||
- int result = gtk_dialog_run(GTK_DIALOG(dialog));
|
||||
- if (result == GTK_RESPONSE_APPLY)
|
||||
- {
|
||||
- dehydrate_config_dialog(g_option_list);
|
||||
- const char *const store_passwords_s = get_user_setting("store_passwords");
|
||||
- save_event_config_data_to_user_storage(event_name,
|
||||
- get_event_config(event_name),
|
||||
- !(store_passwords_s && !strcmp(store_passwords_s, "no")));
|
||||
- }
|
||||
- //else if (result == GTK_RESPONSE_CANCEL)
|
||||
- // log("log");
|
||||
- gtk_widget_destroy(dialog);
|
||||
return result;
|
||||
}
|
||||
|
||||
diff --git a/src/gtk-helpers/internal_libreport_gtk.h b/src/gtk-helpers/internal_libreport_gtk.h
|
||||
index dc1ef31..f8f1c13 100644
|
||||
--- a/src/gtk-helpers/internal_libreport_gtk.h
|
||||
+++ b/src/gtk-helpers/internal_libreport_gtk.h
|
||||
@@ -80,6 +80,7 @@ void load_workflow_config_data_from_user_storage(GHashTable *workflows);
|
||||
void cdialog_set_widget(config_dialog_t *cdialog, GtkWidget *widget);
|
||||
GtkWidget *cdialog_get_widget(config_dialog_t *cdialog);
|
||||
gpointer cdialog_get_data(config_dialog_t *cdialog);
|
||||
+int cdialog_run(config_dialog_t *cdialog, const char *name);
|
||||
|
||||
void dehydrate_config_dialog(GList *option_widgets);
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
178
0009-GUI-remove-the-intermediate-configuration-dialog.patch
Normal file
178
0009-GUI-remove-the-intermediate-configuration-dialog.patch
Normal file
@ -0,0 +1,178 @@
|
||||
From 3767a3665339aaf6da005f4ac8ba7e1091f5fd7f Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Tue, 29 Apr 2014 12:43:27 +0200
|
||||
Subject: [LIBREPORT PATCH 09/10] GUI: remove the intermediate configuration
|
||||
dialog
|
||||
|
||||
Get rid of the dialog stating that something is not configured properly
|
||||
and show the configuration dialog instead.
|
||||
|
||||
Related to #259
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/gtk-helpers/event_config_dialog.c | 7 +++-
|
||||
src/gtk-helpers/workflow_config_dialog.c | 7 +++-
|
||||
src/gui-wizard-gtk/wizard.c | 72 +++-----------------------------
|
||||
3 files changed, 17 insertions(+), 69 deletions(-)
|
||||
|
||||
diff --git a/src/gtk-helpers/event_config_dialog.c b/src/gtk-helpers/event_config_dialog.c
|
||||
index 655abb6..0c65f80 100644
|
||||
--- a/src/gtk-helpers/event_config_dialog.c
|
||||
+++ b/src/gtk-helpers/event_config_dialog.c
|
||||
@@ -299,8 +299,11 @@ config_dialog_t *create_event_config_dialog(const char *event_name, GtkWindow *p
|
||||
|
||||
GtkWindow *parent_window = parent ? parent : g_event_list_window;
|
||||
|
||||
+ char *window_title = xasprintf("%s - Reporting Configuration",
|
||||
+ ec_get_screen_name(event) ? ec_get_screen_name(event) : event_name);
|
||||
+
|
||||
GtkWidget *dialog = gtk_dialog_new_with_buttons(
|
||||
- /*title:*/ec_get_screen_name(event) ? ec_get_screen_name(event) : event_name,
|
||||
+ window_title,
|
||||
parent_window,
|
||||
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
_("_Cancel"),
|
||||
@@ -309,6 +312,8 @@ config_dialog_t *create_event_config_dialog(const char *event_name, GtkWindow *p
|
||||
GTK_RESPONSE_APPLY,
|
||||
NULL);
|
||||
|
||||
+ free(window_title);
|
||||
+
|
||||
/* Allow resize?
|
||||
* W/o resize, e.g. upload configuration hint looks awfully
|
||||
* line wrapped.
|
||||
diff --git a/src/gtk-helpers/workflow_config_dialog.c b/src/gtk-helpers/workflow_config_dialog.c
|
||||
index 7c399e4..e6e48c9 100644
|
||||
--- a/src/gtk-helpers/workflow_config_dialog.c
|
||||
+++ b/src/gtk-helpers/workflow_config_dialog.c
|
||||
@@ -71,8 +71,11 @@ config_dialog_t *create_workflow_config_dialog(const char *workflow_name, GtkWin
|
||||
|
||||
GtkWindow *parent_window = parent ? parent : g_parent_window;
|
||||
|
||||
+ char *window_title = xasprintf("%s - Reporting Configuration",
|
||||
+ wf_get_screen_name(workflow) ? wf_get_screen_name(workflow) : workflow_name);
|
||||
+
|
||||
GtkWidget *dialog = gtk_dialog_new_with_buttons(
|
||||
- /*title:*/ wf_get_screen_name(workflow) ? wf_get_screen_name(workflow) : workflow_name,
|
||||
+ window_title,
|
||||
parent_window,
|
||||
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
_("_Cancel"),
|
||||
@@ -81,6 +84,8 @@ config_dialog_t *create_workflow_config_dialog(const char *workflow_name, GtkWin
|
||||
GTK_RESPONSE_APPLY,
|
||||
NULL);
|
||||
|
||||
+ free(window_title);
|
||||
+
|
||||
gtk_window_set_resizable(GTK_WINDOW(dialog), true);
|
||||
gtk_window_set_default_size(GTK_WINDOW(dialog), 450, 450);
|
||||
|
||||
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
|
||||
index e6f6ee7..8895d0e 100644
|
||||
--- a/src/gui-wizard-gtk/wizard.c
|
||||
+++ b/src/gui-wizard-gtk/wizard.c
|
||||
@@ -289,59 +289,6 @@ static void remove_child_widget(GtkWidget *widget, gpointer unused)
|
||||
gtk_widget_destroy(widget);
|
||||
}
|
||||
|
||||
-static void on_configure_event_cb(GtkWidget *button, gpointer user_data)
|
||||
-{
|
||||
- char *event_name = (char *)user_data;
|
||||
- if (event_name != NULL)
|
||||
- {
|
||||
- int result = show_event_config_dialog(event_name, GTK_WINDOW(g_top_most_window));
|
||||
- if (result == GTK_RESPONSE_APPLY)
|
||||
- {
|
||||
- GHashTable *errors = validate_event(event_name);
|
||||
- if (errors == NULL)
|
||||
- {
|
||||
- gtk_widget_destroy(g_top_most_window);
|
||||
- g_top_most_window = NULL;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-static void show_event_opt_error_dialog(const char *event_name)
|
||||
-{
|
||||
- event_config_t *ec = get_event_config(event_name);
|
||||
- char *message = xasprintf(_("%s is not properly configured. You can configure it now or provide the required information later.\n\n"
|
||||
- "Read more about the configuration at: https://fedorahosted.org/abrt/wiki/AbrtConfiguration"),
|
||||
- ec_get_screen_name(ec));
|
||||
- char *markup_message = xasprintf(_("<b>%s</b> is not properly configured. You can configure it now or provide the required information later.\n\n"
|
||||
- "<a href=\"https://fedorahosted.org/abrt/wiki/AbrtConfiguration\">Read more about the configuration</a>"),
|
||||
- ec_get_screen_name(ec));
|
||||
- GtkWidget *wrong_settings = g_top_most_window = gtk_message_dialog_new(GTK_WINDOW(g_wnd_assistant),
|
||||
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
- GTK_MESSAGE_WARNING,
|
||||
- GTK_BUTTONS_CLOSE,
|
||||
- message);
|
||||
-
|
||||
- gtk_window_set_transient_for(GTK_WINDOW(wrong_settings), GTK_WINDOW(g_wnd_assistant));
|
||||
- gtk_message_dialog_set_markup(GTK_MESSAGE_DIALOG(wrong_settings),
|
||||
- markup_message);
|
||||
- free(message);
|
||||
- free(markup_message);
|
||||
-
|
||||
- GtkWidget *act_area = gtk_dialog_get_content_area(GTK_DIALOG(wrong_settings));
|
||||
- char * conf_btn_lbl = xasprintf(_("Con_figure %s"), ec_get_screen_name(ec));
|
||||
- GtkWidget *configure_event_btn = gtk_button_new_with_mnemonic(conf_btn_lbl);
|
||||
- g_signal_connect(configure_event_btn, "clicked", G_CALLBACK(on_configure_event_cb), (gpointer)event_name);
|
||||
- free(conf_btn_lbl);
|
||||
-
|
||||
- gtk_box_pack_start(GTK_BOX(act_area), configure_event_btn, false, false, 0);
|
||||
- gtk_widget_show(configure_event_btn);
|
||||
-
|
||||
-
|
||||
- gtk_dialog_run(GTK_DIALOG(wrong_settings));
|
||||
- if (g_top_most_window)
|
||||
- gtk_widget_destroy(wrong_settings);
|
||||
-}
|
||||
|
||||
static void update_window_title(void)
|
||||
{
|
||||
@@ -906,16 +853,14 @@ static gint find_by_button(gconstpointer a, gconstpointer button)
|
||||
return (evdata->toggle_button != button);
|
||||
}
|
||||
|
||||
-static int check_event_config(const char *event_name)
|
||||
+static void check_event_config(const char *event_name)
|
||||
{
|
||||
GHashTable *errors = validate_event(event_name);
|
||||
if (errors != NULL)
|
||||
{
|
||||
g_hash_table_unref(errors);
|
||||
- show_event_opt_error_dialog(event_name);
|
||||
- return 1;
|
||||
+ show_event_config_dialog(event_name, GTK_WINDOW(g_top_most_window));
|
||||
}
|
||||
- return 0;
|
||||
}
|
||||
|
||||
static void event_rb_was_toggled(GtkButton *button, gpointer user_data)
|
||||
@@ -2850,18 +2795,11 @@ static gint select_next_page_no(gint current_page_no, gpointer data)
|
||||
goto again;
|
||||
}
|
||||
|
||||
- /* must set g_event_selected otherwise if the event was not
|
||||
- * configured the reporting process will be terminated even if a
|
||||
- * user configured the event on report-gtk's demand from
|
||||
- * check_event_config() function
|
||||
- */
|
||||
g_event_selected = event;
|
||||
|
||||
- if (check_event_config(g_event_selected) != 0)
|
||||
- {
|
||||
- /* don't know what is the difference between this <<< */
|
||||
- goto again;
|
||||
- }
|
||||
+ /* Notify a user that some configuration options miss values, but */
|
||||
+ /* don't force him to provide them. */
|
||||
+ check_event_config(g_event_selected);
|
||||
|
||||
/* >>> and this but this is clearer
|
||||
* because it does exactly the same thing
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,32 @@
|
||||
From 369b1791e3fff5ea16cdf1fe9ba5c374af7faa43 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Tue, 29 Apr 2014 13:24:29 +0200
|
||||
Subject: [LIBREPORT PATCH 10/10] reporter-upload: more descriptive message
|
||||
about missing URL
|
||||
|
||||
Only one line is possible. Hopefully, this message is better than the
|
||||
previous one.
|
||||
|
||||
Related to #259
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/plugins/reporter-upload.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/plugins/reporter-upload.c b/src/plugins/reporter-upload.c
|
||||
index b903aa1..1ef38e7 100644
|
||||
--- a/src/plugins/reporter-upload.c
|
||||
+++ b/src/plugins/reporter-upload.c
|
||||
@@ -58,7 +58,7 @@ static int create_and_upload_archive(
|
||||
const char* opt = getenv("Upload_URL");
|
||||
if (!opt)
|
||||
opt = get_map_string_item_or_empty(settings, "URL");
|
||||
- char *url = opt[0] != '\0' ? xstrdup(opt) : ask_url(_("Upload URL is not provided by configuration. Please enter upload URL:"));
|
||||
+ char *url = opt[0] != '\0' ? xstrdup(opt) : ask_url(_("Please enter a URL (scp, ftp, etc.) where the problem data is to be exported:"));
|
||||
|
||||
/* Create a child gzip which will compress the data */
|
||||
/* SELinux guys are not happy with /tmp, using /var/run/abrt */
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -7,7 +7,7 @@
|
||||
Summary: Generic library for reporting various problems
|
||||
Name: libreport
|
||||
Version: 2.2.2
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
License: GPLv2+
|
||||
Group: System Environment/Libraries
|
||||
URL: https://fedorahosted.org/abrt/
|
||||
@ -16,6 +16,14 @@ Source1: autogen.sh
|
||||
|
||||
Patch01: 0001-Bugzilla-pass-Bugzilla_token-in-all-relevant-XML-RPC.patch
|
||||
Patch02: 0002-Bugzilla-session-parameters-for-XML-RPC-calls.patch
|
||||
Patch03: 0003-Worklflow-order-workflows-according-to-their-priorit.patch
|
||||
Patch04: 0004-define-priorities-for-the-existing-workflows.patch
|
||||
Patch05: 0005-less-confusing-label-for-upload-data-in-Anaconda.patch
|
||||
Patch06: 0006-Bugzilla-move-the-advanced-options-to-the-advanced-s.patch
|
||||
Patch07: 0007-hide-Don-t-store-password-checkbox.patch
|
||||
Patch08: 0008-refactoring-unify-event-configuration-dialogs.patch
|
||||
Patch09: 0009-GUI-remove-the-intermediate-configuration-dialog.patch
|
||||
Patch10: 0010-reporter-upload-more-descriptive-message-about-missi.patch
|
||||
|
||||
# git is need for '%%autosetup -S git' which automatically applies all the
|
||||
# patches above. Please, be aware that the patches must be generated
|
||||
@ -654,6 +662,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Apr 30 2014 Jakub Filak <jfilak@redhat.com> - 2.2.2-3
|
||||
- improve User Experience in Anaconda
|
||||
|
||||
* Thu Apr 24 2014 Jakub Filak <jfilak@redhat.com> - 2.2.2-2
|
||||
- Bugzilla: pass Bugzilla_token in every XML RPC call
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user