mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-10 18:23:28 +00:00
Implemented "sort attribute options"
SVN revision: 2251
This commit is contained in:
parent
c9e4edcd9b
commit
a7bcf0015e
@ -2567,6 +2567,12 @@ Options Location = Main Building{a}, New Building{b}, Old Building{c}
|
|||||||
entry. If this flag is 1, then the last entry of each thread is shown,
|
entry. If this flag is 1, then the last entry of each thread is shown,
|
||||||
otherwise the first thread is displayed. Default for this setting is <b>1</b>.
|
otherwise the first thread is displayed. Default for this setting is <b>1</b>.
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<b><code>Sort Attribute Options = 0|1</code></b><br>
|
||||||
|
If this opeion is 1, all attribute options are sorted alphanumerically. This
|
||||||
|
can be handy when locating options from long lists in drop-down boxes in
|
||||||
|
quick filters for example. Default for this setting is <b>0</b>.
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
<a name="themes" id="themes"></a>
|
<a name="themes" id="themes"></a>
|
||||||
|
|||||||
24
src/elogd.c
24
src/elogd.c
@ -434,6 +434,7 @@ time_t convert_datetime(char *date_string);
|
|||||||
int get_thumb_name(const char *file_name, char *thumb_name, int size, int index);
|
int get_thumb_name(const char *file_name, char *thumb_name, int size, int index);
|
||||||
int create_thumbnail(LOGBOOK * lbs, char *file_name);
|
int create_thumbnail(LOGBOOK * lbs, char *file_name);
|
||||||
int ascii_compare(const void *s1, const void *s2);
|
int ascii_compare(const void *s1, const void *s2);
|
||||||
|
int ascii_compare2(const void *s1, const void *s2);
|
||||||
|
|
||||||
/*---- Funcions from the MIDAS library -----------------------------*/
|
/*---- Funcions from the MIDAS library -----------------------------*/
|
||||||
|
|
||||||
@ -7105,7 +7106,7 @@ int scan_attributes(char *logbook)
|
|||||||
and attr_flags arrays */
|
and attr_flags arrays */
|
||||||
{
|
{
|
||||||
char list[10000], str[NAME_LENGTH], type[NAME_LENGTH], tmp_list[MAX_N_ATTR][NAME_LENGTH];
|
char list[10000], str[NAME_LENGTH], type[NAME_LENGTH], tmp_list[MAX_N_ATTR][NAME_LENGTH];
|
||||||
int i, j, n, m;
|
int i, j, n, m, n_options;
|
||||||
|
|
||||||
if (getcfg(logbook, "Attributes", list, sizeof(list))) {
|
if (getcfg(logbook, "Attributes", list, sizeof(list))) {
|
||||||
/* reset attribute flags */
|
/* reset attribute flags */
|
||||||
@ -7133,27 +7134,33 @@ int scan_attributes(char *logbook)
|
|||||||
/* get options lists for attributes */
|
/* get options lists for attributes */
|
||||||
memset(attr_options, 0, sizeof(attr_options));
|
memset(attr_options, 0, sizeof(attr_options));
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
|
n_options = 0;
|
||||||
|
|
||||||
sprintf(str, "Options %s", attr_list[i]);
|
sprintf(str, "Options %s", attr_list[i]);
|
||||||
if (getcfg(logbook, str, list, sizeof(list)))
|
if (getcfg(logbook, str, list, sizeof(list)))
|
||||||
strbreak(list, attr_options[i], MAX_N_LIST, ",", FALSE);
|
n_options = strbreak(list, attr_options[i], MAX_N_LIST, ",", FALSE);
|
||||||
|
|
||||||
sprintf(str, "MOptions %s", attr_list[i]);
|
sprintf(str, "MOptions %s", attr_list[i]);
|
||||||
if (getcfg(logbook, str, list, sizeof(list))) {
|
if (getcfg(logbook, str, list, sizeof(list))) {
|
||||||
strbreak(list, attr_options[i], MAX_N_LIST, ",", FALSE);
|
n_options = strbreak(list, attr_options[i], MAX_N_LIST, ",", FALSE);
|
||||||
attr_flags[i] |= AF_MULTI;
|
attr_flags[i] |= AF_MULTI;
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf(str, "ROptions %s", attr_list[i]);
|
sprintf(str, "ROptions %s", attr_list[i]);
|
||||||
if (getcfg(logbook, str, list, sizeof(list))) {
|
if (getcfg(logbook, str, list, sizeof(list))) {
|
||||||
strbreak(list, attr_options[i], MAX_N_LIST, ",", FALSE);
|
n_options = strbreak(list, attr_options[i], MAX_N_LIST, ",", FALSE);
|
||||||
attr_flags[i] |= AF_RADIO;
|
attr_flags[i] |= AF_RADIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf(str, "IOptions %s", attr_list[i]);
|
sprintf(str, "IOptions %s", attr_list[i]);
|
||||||
if (getcfg(logbook, str, list, sizeof(list))) {
|
if (getcfg(logbook, str, list, sizeof(list))) {
|
||||||
strbreak(list, attr_options[i], MAX_N_LIST, ",", FALSE);
|
n_options = strbreak(list, attr_options[i], MAX_N_LIST, ",", FALSE);
|
||||||
attr_flags[i] |= AF_ICON;
|
attr_flags[i] |= AF_ICON;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (n_options && getcfg(logbook, "Sort Attribute Options", str, sizeof(str)) && atoi(str) == 1) {
|
||||||
|
qsort(attr_options[i], n_options, NAME_LENGTH, ascii_compare2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check if attribute required */
|
/* check if attribute required */
|
||||||
@ -13030,6 +13037,13 @@ int ascii_compare(const void *s1, const void *s2)
|
|||||||
|
|
||||||
/*------------------------------------------------------------------*/
|
/*------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int ascii_compare2(const void *s1, const void *s2)
|
||||||
|
{
|
||||||
|
return stricmp((char *) s1, (char *) s2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------------*/
|
||||||
|
|
||||||
void show_config_page(LOGBOOK * lbs)
|
void show_config_page(LOGBOOK * lbs)
|
||||||
{
|
{
|
||||||
char str[256], user[80], password[80], full_name[80], user_email[80], logbook[256];
|
char str[256], user[80], password[80], full_name[80], user_email[80], logbook[256];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user