From f6766cf375d5b6a3c657eedaaa38c5b91a126cf2 Mon Sep 17 00:00:00 2001 From: erickson Date: Mon, 14 Jul 2008 14:08:07 +0000 Subject: [PATCH] Merged revisions 10008-10010,10013,10021,10024 via svnmerge from svn://svn.open-ils.org/ILS/trunk ........ r10008 | dbs | 2008-07-10 00:04:44 -0400 (Thu, 10 Jul 2008) | 1 line So long, marcdumper; you served us well, but you have outlived your usefulness. ........ r10009 | dbs | 2008-07-10 00:12:02 -0400 (Thu, 10 Jul 2008) | 2 lines Purge references to marcdumper, now that it's gone ........ r10010 | dbs | 2008-07-10 00:35:46 -0400 (Thu, 10 Jul 2008) | 2 lines Convert these GIF images into real JPEGs ........ r10013 | miker | 2008-07-10 09:03:03 -0400 (Thu, 10 Jul 2008) | 1 line adding DELETE_RECORD to the default permission set ........ r10021 | phasefx | 2008-07-12 22:09:13 -0400 (Sat, 12 Jul 2008) | 1 line Mitigates the script/CPU warning with very large offline patron lists. Still need to make things async and/or broken up to give the UI thread some CPU time in offline.js. ........ r10024 | phasefx | 2008-07-13 20:35:15 -0400 (Sun, 13 Jul 2008) | 1 line Reset the MARC View, Holdings Maintenance, and View Holds interfaces on save in the MARC Editor. We can't reset the OPAC View in the same way without messing up navigation through OPAC events, so need to give that some thought. ........ git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@10025 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/Makefile | 10 - Open-ILS/src/extras/import/cleanse-usmarc.sh | 6 - Open-ILS/src/extras/import/extract-holdings.sh | 6 - Open-ILS/src/extras/marcdumper/Makefile | 21 -- Open-ILS/src/extras/marcdumper/marcdumper.c | 345 --------------------- Open-ILS/src/sql/Pg/950.data.seed-values.sql | 2 + .../opac/images/tor/sound recording-musical.jpg | Bin 168 -> 618 bytes .../opac/images/tor/sound recording-nonmusical.jpg | Bin 168 -> 618 bytes Open-ILS/web/opac/images/tor/sound recording.jpg | Bin 168 -> 618 bytes Open-ILS/web/opac/images/tor/still images.jpg | Bin 287 -> 376 bytes .../staff_client/chrome/content/OpenILS/data.js | 2 +- .../xul/staff_client/chrome/content/cat/opac.js | 3 + install.conf.default | 2 - install.sh | 5 - 14 files changed, 6 insertions(+), 396 deletions(-) delete mode 100755 Open-ILS/src/extras/import/cleanse-usmarc.sh delete mode 100755 Open-ILS/src/extras/import/extract-holdings.sh delete mode 100644 Open-ILS/src/extras/marcdumper/Makefile delete mode 100644 Open-ILS/src/extras/marcdumper/marcdumper.c diff --git a/Open-ILS/src/Makefile b/Open-ILS/src/Makefile index 150e6c55f1..98bbe970f5 100644 --- a/Open-ILS/src/Makefile +++ b/Open-ILS/src/Makefile @@ -105,16 +105,6 @@ autojs-install: cp support-scripts/offline-blocked-list.pl $(BINDIR) # this should probably be somewhere else # ----------------------------------------------------------------------------------- -marcdumper: - @echo $@ - make -C extras/marcdumper - -marcdumper-install: - @echo $@ - make -C extras/marcdumper install - -# ----------------------------------------------------------------------------------- - perl-install: @echo $@ @echo "Installing Perl modules to $(PERLDIR)" diff --git a/Open-ILS/src/extras/import/cleanse-usmarc.sh b/Open-ILS/src/extras/import/cleanse-usmarc.sh deleted file mode 100755 index 89f650cc05..0000000000 --- a/Open-ILS/src/extras/import/cleanse-usmarc.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -DUMPER=/home/miker/cvs/ILS/Open-ILS/src/extras/import/../marcdumper/marcdumper - - -$DUMPER -X -f MARC8 -t UTF8 -r '//*[@tag="999"]' $* diff --git a/Open-ILS/src/extras/import/extract-holdings.sh b/Open-ILS/src/extras/import/extract-holdings.sh deleted file mode 100755 index 570d1b1bd7..0000000000 --- a/Open-ILS/src/extras/import/extract-holdings.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -DUMPER=/home/miker/cvs/ILS/Open-ILS/src/extras/import/../marcdumper/marcdumper - - -$DUMPER -X -f MARC8 -t UTF8 -r '/*/*/*[(local-name()="datafield" and (@tag!="035" and @tag!="999")) or local-name()!="datafield"]' $* diff --git a/Open-ILS/src/extras/marcdumper/Makefile b/Open-ILS/src/extras/marcdumper/Makefile deleted file mode 100644 index 9bf2426064..0000000000 --- a/Open-ILS/src/extras/marcdumper/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# -# This utility code requires libxml2 and yaz version 2.0.34 or greater. -# - -CC = gcc -LD = -lxml2 -lyaz -COMP = -O2 -I /usr/include/libxml2/ -I /usr/include/yaz - -all: marcdumper - -marcdumper: marcdumper.c - $(CC) marcdumper.c $(COMP) $(LD) -o $@ - -install: - mkdir -p $(BINDIR) - cp marcdumper $(BINDIR) - -clean: - /bin/rm -f *.o marcdumper - - diff --git a/Open-ILS/src/extras/marcdumper/marcdumper.c b/Open-ILS/src/extras/marcdumper/marcdumper.c deleted file mode 100644 index beb5ed8a24..0000000000 --- a/Open-ILS/src/extras/marcdumper/marcdumper.c +++ /dev/null @@ -1,345 +0,0 @@ -/* -* Copyright (C) 1995-2005, Index Data ApS -* See the file LICENSE for details. -* -* $Id$ -*/ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include -#include - -#include -#include -#include -#include -#include - -#if HAVE_LOCALE_H -#include -#endif -#if HAVE_LANGINFO_H -#include -#endif - -#include -#include -#include -#include - -#ifndef SEEK_SET -#define SEEK_SET 0 -#endif -#ifndef SEEK_END -#define SEEK_END 2 -#endif - -#include - -char* clean_marc_xpath = "//*[@tag=\"999\"]"; -char* holdings_xpath = "/*/*[(local-name()='datafield' and " - "(@tag!='035' and @tag!='999')) or local-name()!='datafield']"; - -void prune_doc( xmlDocPtr doc, char* xpath ); -char* _xml_to_string( xmlDocPtr doc ); - -static void usage(const char *prog) { - fprintf (stderr, "Usage: %s -r [xpath] -c [cfile] [-f from] [-t to] [-x] [-O] [-X] [-I] [-v] file...\n", prog); -} - -int main (int argc, char **argv) { - int counter = 0; - - int r; - int libxml_dom_test = 0; - int print_offset = 0; - char *arg; - int verbose = 0; - FILE *inf; - char buf[100001]; - char *prog = *argv; - int no = 0; - int xml = 0; - FILE *cfile = 0; - char *from = 0, *to = 0; - int num = 1; - - #if HAVE_LOCALE_H - setlocale(LC_CTYPE, ""); - #endif - #if HAVE_LANGINFO_H - #ifdef CODESET - to = nl_langinfo(CODESET); - #endif - #endif - - char* prune = NULL; - while ((r = options("pvcr:xOeXIf:t:2", argv, argc, &arg)) != -2) { - - int count; - no++; - - switch (r) { - case 'r': - prune = arg; - xmlKeepBlanksDefault(0); - break; - case 'f': - from = arg; - break; - case 't': - to = arg; - break; - case 'c': - if (cfile) - fclose (cfile); - cfile = fopen (arg, "w"); - break; - case 'x': - xml = YAZ_MARC_SIMPLEXML; - break; - case 'O': - xml = YAZ_MARC_OAIMARC; - break; - //case 'e': /* not supported on older versions of yaz */ - // xml = YAZ_MARC_XCHANGE; - // break; - case 'X': - xml = YAZ_MARC_MARCXML; - break; - case 'I': - xml = YAZ_MARC_ISO2709; - break; - case 'p': - print_offset = 1; - break; - case '2': - libxml_dom_test = 1; - break; - case 0: - - inf = fopen (arg, "rb"); - count = 0; - if (!inf) { - fprintf (stderr, "%s: cannot open %s:%s\n", - prog, arg, strerror (errno)); - exit(1); - } - if (cfile) - fprintf (cfile, "char *marc_records[] = {\n"); - - if (1) { - yaz_marc_t mt = yaz_marc_create(); - yaz_iconv_t cd = 0; - - if (from && to) { - cd = yaz_iconv_open(to, from); - if (!cd) { - fprintf(stderr, "conversion from %s to %s " "unsupported\n", from, to); - exit(2); - } - yaz_marc_iconv(mt, cd); - } - yaz_marc_xml(mt, xml); - yaz_marc_debug(mt, verbose); - - while (1) { - int len; - char *result; - int rlen; - - r = fread (buf, 1, 5, inf); - - if (r < 5) { - if (r && print_offset) - printf ("Extra %d bytes", r); - break; - } - - if (print_offset) { - long off = ftell(inf); - printf ("Record %d offset %ld\n", num, (long) off); - } - - len = atoi_n(buf, 5); - - if (len < 25 || len > 100000) break; - - len = len - 5; - r = fread (buf + 5, 1, len, inf); - - if (r < len) break; - - r = yaz_marc_decode_buf (mt, buf, -1, &result, &rlen); - - if (r <= 0) break; - - - - counter++; - if(!prune) { - - fwrite (result, rlen, 1, stdout); - - } else { - - - xmlDocPtr doc = xmlParseMemory(result, rlen); - - if (doc) { - prune_doc( doc, prune ); - char* marc = _xml_to_string(doc); - fprintf(stdout, "%s", marc); - - free(marc); - xmlFreeDoc(doc); - - } else { - - fprintf(stderr, "xmLParseMemory failed for record %d\n", counter); - } - - } - - - if (cfile) { - - char *p = buf; - int i; - if (count) - fprintf (cfile, ","); - fprintf (cfile, "\n"); - for (i = 0; i < r; i++) { - if ((i & 15) == 0) - fprintf (cfile, " \""); - fprintf (cfile, "\\x%02X", p[i] & 255); - - if (i < r - 1 && (i & 15) == 15) - fprintf (cfile, "\"\n"); - - } - fprintf (cfile, "\"\n"); - } - num++; - } - - count++; - - if (cd) - yaz_iconv_close(cd); - yaz_marc_destroy(mt); - } - - - if (cfile) - fprintf (cfile, "};\n"); - fclose(inf); - break; - case 'v': - verbose++; - break; - default: - usage(prog); - exit (1); - } - } - - if (cfile) - fclose (cfile); - if (!no) { - usage(prog); - exit (1); - } - - fprintf(stderr, "\nProcessed %d Records\n", counter ); - exit (0); -} - - -void prune_doc( xmlDocPtr doc, char* xpath ) { - - xmlXPathContextPtr xpathctx; - xmlXPathObjectPtr object; - - xpathctx = xmlXPathNewContext(doc); - if(xpathctx == NULL) { - fprintf(stderr, "XPATH FAILED"); - return; - } - - object = xmlXPathEvalExpression( BAD_CAST xpath, xpathctx); - if(object == NULL) return; - - int i; - int size = object->nodesetval->nodeNr; - for(i=0; i!= size; i++ ) { - xmlNodePtr cur_node = (xmlNodePtr) object->nodesetval->nodeTab[i]; - xmlUnlinkNode( cur_node ); - xmlFreeNode( cur_node ); - object->nodesetval->nodeTab[i] = NULL; - } - - xmlXPathFreeObject(object); - xmlXPathFreeContext(xpathctx); - - /* remove all comments and PI nodes */ - xmlNodePtr cur = doc->children; - while(cur) { - if( cur->type == XML_COMMENT_NODE || cur->type == XML_PI_NODE ) { - xmlUnlinkNode( cur ); - xmlFreeNode( cur ); - } - cur = cur->next; - } - - -} - -char* _xml_to_string( xmlDocPtr doc ) { - - int bufsize; - xmlChar* xmlbuf; - xmlDocDumpFormatMemory( doc, &xmlbuf, &bufsize, 0 ); - - char* xml = strdup(xmlbuf); - xmlFree(xmlbuf); - - /*** remove the XML declaration */ - int len = strlen(xml); - char tmp[len]; - memset( tmp, 0, len ); - int i; - int found_at = 0; - - /* when we reach the first >, take everything after it */ - for( i = 0; i!= len; i++ ) { - if( xml[i] == 62) { /* ascii > */ - - /* found_at holds the starting index of the rest of the doc*/ - found_at = i + 1; - break; - } - } - - if( found_at ) { - - /* move the shortened doc into the tmp buffer */ - strncpy( tmp, xml + found_at, len - found_at ); - /* move the tmp buffer back into the allocated space */ - memset( xml, 0, len ); - strcpy( xml, tmp ); - } - - int l = strlen(xml)-1; - if( xml[l] == 10 || xml[l] == 13 ) - xml[l] = '\0'; - - return xml; - -} diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql index 64ecf63a0a..e1aa61f0ea 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -1048,6 +1048,8 @@ INSERT INTO permission.perm_list VALUES (175, 'ADMIN_PROVIDER', oils_i18n_gettext('Allow a user to create/view/update/delete a provider')), (176, 'MANAGE_PROVIDER', oils_i18n_gettext('Allow a user to view and purchase from a provider')), (177, 'VIEW_PICKLIST', oils_i18n_gettext('Allow a user to view another users picklist')); +INSERT INTO permission.perm_list VALUES + (153, 'DELETE_RECORD', oils_i18n_gettext('Allow a staff member to directly remove a bibliographic record')); SELECT SETVAL('permission.perm_list_id_seq'::TEXT, (SELECT MAX(id) FROM permission.perm_list)); diff --git a/Open-ILS/web/opac/images/tor/sound recording-musical.jpg b/Open-ILS/web/opac/images/tor/sound recording-musical.jpg index fd2232c876f3ef3c5b05d175caef8c60d04ab678..6c648d3738262d847a82e63cff1c0b02a1b286d4 100644 GIT binary patch literal 618 zcmex==*<070N`MHXShh5v6c@Bn3)1epaH>=|Ch z9evghx!JiRkt zZ^<>*&8qlqs1i6W&}8#j7So9$Z??83zFjN3{b1jox>L8*V(eqGN~T|m*-}!jc^Q=DsA23q@(%jBN*fCr{_^Ynz;!Z|3x(BQtHoiH=Kxf7ueH-bdZM RExTDLrhu!a@HoT&n*fq>xmy4L literal 168 zcmZ?wbhEHb6lM@+*v!E2@87?_fB*jZ^XK>P-`~G~-@SXcfPlc6Gyl`l&di+opMinl z|9=n(2Z}#gz-%252{MC$CA8qA=jy!{{!7fYXE0MMXdk; diff --git a/Open-ILS/web/opac/images/tor/sound recording-nonmusical.jpg b/Open-ILS/web/opac/images/tor/sound recording-nonmusical.jpg index fd2232c876f3ef3c5b05d175caef8c60d04ab678..6c648d3738262d847a82e63cff1c0b02a1b286d4 100644 GIT binary patch literal 618 zcmex==*<070N`MHXShh5v6c@Bn3)1epaH>=|Ch z9evghx!JiRkt zZ^<>*&8qlqs1i6W&}8#j7So9$Z??83zFjN3{b1jox>L8*V(eqGN~T|m*-}!jc^Q=DsA23q@(%jBN*fCr{_^Ynz;!Z|3x(BQtHoiH=Kxf7ueH-bdZM RExTDLrhu!a@HoT&n*fq>xmy4L literal 168 zcmZ?wbhEHb6lM@+*v!E2@87?_fB*jZ^XK>P-`~G~-@SXcfPlc6Gyl`l&di+opMinl z|9=n(2Z}#gz-%252{MC$CA8qA=jy!{{!7fYXE0MMXdk; diff --git a/Open-ILS/web/opac/images/tor/sound recording.jpg b/Open-ILS/web/opac/images/tor/sound recording.jpg index fd2232c876f3ef3c5b05d175caef8c60d04ab678..6c648d3738262d847a82e63cff1c0b02a1b286d4 100644 GIT binary patch literal 618 zcmex==*<070N`MHXShh5v6c@Bn3)1epaH>=|Ch z9evghx!JiRkt zZ^<>*&8qlqs1i6W&}8#j7So9$Z??83zFjN3{b1jox>L8*V(eqGN~T|m*-}!jc^Q=DsA23q@(%jBN*fCr{_^Ynz;!Z|3x(BQtHoiH=Kxf7ueH-bdZM RExTDLrhu!a@HoT&n*fq>xmy4L literal 168 zcmZ?wbhEHb6lM@+*v!E2@87?_fB*jZ^XK>P-`~G~-@SXcfPlc6Gyl`l&di+opMinl z|9=n(2Z}#gz-%252{MC$CA8qA=jy!{{!7fYXE0MMXdk; diff --git a/Open-ILS/web/opac/images/tor/still images.jpg b/Open-ILS/web/opac/images/tor/still images.jpg index 77f617168e0440a5e9fadac312983613061046c6..8e0c725b152a14f425ab4a614fa36e59e4200ba5 100644 GIT binary patch literal 376 zcmex=}`4Lmz!R*monRaEAp;`^7jw&(Ki%S>Pyn{Kfjvk6H{2v*TgUS zYwkzSgq(WWz$(yToObZR0#<{#waLPt$sl?X_l&UjP6A literal 287 zcmZ?wbhEHb6k-r!IKsdnAtBM++?^SuI_$^L=M<6DRvm7~fCddK1+hsE4jvYKjO>pCR_L)U zVmg%I;h@6O;TWK6A*SS{pupiF*4yInXoZo~BDVzv0v)UjyiR4DN}N1AtlR>;h9Y%k z72>=dtWF{f3`N|bc}i^6tUSp=LLBX#9E_1Eq0s_KrC||DtETd}W^;IRsfcn~E)`