Time  Nick      Message
11:00 pierrick  personnellement, je veux que les touches sur lesquelles je tapent correspondent à des caractères, pas à une suite binaire représentant le caractère
11:00 hdl       Ce qui pose des problèmes avec des noms de dossiers avec accent.
11:00 hdl       Difficile de dire cela correspond à des caractères. Tout dépend du système dans lequel tu te bases ;)
11:01 hdl       En utf-8, les accents iso8859-1 sont représentés par des  ?
11:01 hdl       En iso8859-1, les caractères accentués par deux caractères accolés.
11:02 hdl       Bref, c'est un peu la zone si on mélange tous les caractères de différents type.
11:02 pierrick  oui, parce que la représentation binaire en UTF-8 des caractères accentués du charset latin-1 non ascii ne sont pas représentés binairement de la même façon en UTF-8
11:03 hdl       D'où l'idée d'avoir l'UTF-8 ou l'UNICODE pour pouvoir un peu unifier tout cela et ne pas se prendre les pieds dans le tapis avec l'arabe ou l'hébreu.
11:03 pierrick  UTF-8 et ISO-8859-1(5) sont des encoding
11:03 pierrick  latin-1 et unicode sont des charsets
11:03 pierrick  (même si très souvent les 2 notions sont confondues)
11:03 paul      bon, toujours est il que j'ai repris koha-head, dans lequel j'ai :
11:03 paul      	$dbh->do("set NAMES 'utf8'");
11:03 paul      	$dbh->do("SET character_set_client= utf8"); # mysql should READ utf8 FROM us
11:03 paul      	$dbh->do("SET character_set_connection= utf8");# Mysql should speak utf8 TO us
11:03 paul       	$dbh->do("SET character_set_results= utf8");# Mysql should speak utf8 TO us
11:04 paul      avec la table branhces qui est en unicode_general_ci
11:04 pierrick  paul: si je lis la doc, seule la première instruction est utile
11:04 paul      et lorsque je modifie le libellé ca marche po
11:04 paul      je récupère pas mon coeur
11:04 pierrick  via formulaire web, ça ne marche pas ?
11:04 paul      mais : â??
11:04 paul      yep
11:05 pierrick  ta page s'affiche bien en UTF-8 ?
11:05 paul      firefox >> affichage >> encodage des caractères >> utf8
11:06 paul      et si je mets un accent, je récupère : é au lieu de é
11:06 pierrick  dans le formulaire de saisie, il faut essayer d'ajouter 'accept-charset="utf-8"'
11:08 pierrick  select length(branchname) from branches;
11:08 pierrick  select charset(branchnam) from branches;
11:10 paul      pierrick : pas compris
11:11 pierrick  <form action="..." method="..." accept-charset="utf-8">
11:12 pierrick  en plus du <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11:14 pierrick  osmoze: utf-8 est une méthode de représentation binaire des caractères. C'est ce qu'on appelle un encoding. Cet encoding permet de représenter le character set "unicode" qui est un sur-ensemble de tous les jeux de caractères du monde et de la galaxie. Bref, avec utf-8, on peut représenter tous les caractères de toutes les langues. Adieu les problèmes de conversion, toutes les applications écrivent leurs données textuelles de la même façon.
11:15 paul      le accept-charset ne change rien.
11:15 osmoze    ok ok, merci pierrick :)
11:16 pierrick  osmoze: sur le même document, il est alors possible d'écrire une information en français, une autre en russe et une dernière en klingon
11:16 osmoze    alors ( comme paul) pourquoi en utf8 les accens sont mal mis ?
11:19 paul      osmoze : parce qu'en utf8 les accents ne sont pas au même "endroit" en utf8 et en iso8859-1
11:19 osmoze    ok
11:19 paul      seuls les 127 premiers caractères sont universels
11:20 paul      (en utf8 à la même place qu'en win252 ou en EDBIC)
11:20 paul      encore un coup des américains ;-)
11:20 kados     hi all
11:21 pierrick  paul: pas tout à fait universel les 127 premiers... en fait, il existent un tas d'encodings pour l'unicode, et si l'utf-8 tire son épingle du jeu, c'est notamment parce que la représentation binaire des 127 premiers caractères ASCII est la même qu'en ASCII
11:21 pierrick  hi kados
11:21 pierrick  paul: j'ai fait mon test et l'insertion d'UTF-8 via formulaire marche impec
11:21 paul      grr...
11:21 paul      et pourquoi chez moi ca marche po...
11:22 paul      what is select length(branchname) from branches; ?
11:22 paul      select charset(branchnam) from branches; ?
11:22 pierrick  paul: you didn't show me the result of this query
11:23 pierrick  length calculates the... length of your data
11:23 pierrick  if it is stored as latin1, the length will be different than if it was stored in utf-8
11:23 pierrick  I propose you to enter "périodique"
11:24 paul      charset(..) : utf8
11:24 pierrick  I'll tell you the length on my installation
11:24 paul      length is 3
11:24 paul      (just HEAVY BLACK HEART)
11:24 paul      it's what is expected isn't it ?
11:26 pierrick  sorry but I also have the problem with branch form
11:26 pierrick  but not with marc biblio categories
11:26 pierrick  (biblio framework)
11:27 pierrick  why on earth do we reach the "add a branch" form after a form submission ?
11:27 paul      updating cvs head.
11:28 paul      I have the problem with biblio_framework.pl as well
11:28 pierrick  :-/
11:28 pierrick  OK, one more try (let me find the code in my archives)
11:29 paul      it's the CVS one for me.
11:30 pierrick  header('Content-Type: text/html; charset=utf-8');
11:30 pierrick  this is PHP code, I don't know the Perl equivalent
11:32 paul      head/C4/Interface/CGI/Output.pm
11:32 paul      line 97
11:32 paul      i've added
11:33 paul      	-charset => 'utf-8', without any change
11:34 pierrick  OK, and you say it doesn't change anything ?
11:35 paul      yep
11:35 pierrick  set names UTF8 is commented on my HEAD, you uncommented it (to be sure)
11:36 paul      yes, it's uncommented
11:36 pierrick  show me you "set names" line please
11:36 paul      	$dbh->do("set NAMES 'utf8'");
11:37 paul      (the square being a tab)
11:37 pierrick  $dbh->do("SET NAMES 'UTF8'");
11:38 paul      same thing (not smiling)
11:38 pierrick  :-/
11:38 pierrick  I had read case was important for "set names"
11:39 pierrick  I made it work on 2.2, not on HEAD, maybe it doesn't work for me neither
11:40 pierrick  (but my HEAD is not working at all)
11:42 paul      your head is not working at all ? too bad... go to see a doctor, quickly
11:43 pierrick  :-)
11:44 pierrick  In my 2.2, the exact line is...
11:45 pierrick  $dbh->do('SET NAMES \'UTF8\';');
11:45 paul      the \' is to escape ' as you've used them as separator
11:45 pierrick  does the "set names" line change anything in your HEAD ?
11:45 pierrick  paul: yes, I know why I use \
11:46 pierrick  but the difference is the ";"
11:46 paul      no change
11:49 pierrick  mysql> show create table biblio_framework;
12:04 pierrick  paul ?
12:04 paul      yep
12:05 pierrick  did you see my request to show create table ?
12:05 paul      no, I missed it
12:07 paul      CREATE TABLE `biblio_framework` (\n  `frameworkcode` char(4) NOT NULL default '',\n  `frameworktext` char(255) NOT NULL default '',\n  PRIMARY KEY  (`frameworkcode`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8
12:07 pierrick  the only difference with me is the Engine
12:08 pierrick  I'm going to modify it to InnoDB on my 2.2
12:10 pierrick  it works with InnoDB as well
12:12 paul      sh....t
12:14 pierrick  (while I try to make my HEAD work, can you test on a 2.2 box ?)
12:14 paul      yep, i'll give it a try asap
12:30 paul      pierrick : what is your prefered mailbox now ?
12:30 pierrick  koha related or INEO related ?
12:34 paul      anyone
12:34 paul      your preffered one.
12:36 pierrick  pierrick^koha-fr.org
12:36 pierrick  s{\^}{@}
12:46 pierrick  paul: with HEAD, I also have problems, that I don't have with 2.2
12:48 pierrick  paul: with UTF8 data inserted via terminal or via web form
12:49 paul      quite a good new.
12:51 pierrick  yes, good news
12:51 pierrick  I have to find what changed from 2.2 to HEAD
12:51 paul      (yep.
12:54 paul      pierrick :
12:54 paul      if I'm not missing something, here is what I magde on head
12:56 paul      * change start of templates to add utf-8 (includes directory, XXX-top)
12:56 paul      * add set names=utf8 in Context.pm, when opening the database
12:56 paul      * move the database to unicode_ci (updater/updatedatabase)
12:56 paul      unless i'm missing something, that's all.
12:57 pierrick  OK, if that's the only modifications, I have to concentrate on template headers
13:17 kados     thd: are you around?
13:22 thd       kados: yes I am here
13:23 kados     thd: how far through re-checking the new framework are you?
13:25 thd       kados: not very far rechecking as I am still fiddling with the seealso value etc. but I was offering last night to send you something that you could start to use.
13:26 thd       kados: last night I added the very friendly comments so that you can understand how to make any minor needed modifications.
13:27 kados     do you think it's ready to start using in a production environment?
13:28 thd       kados: If you follow my friendly comments you should be able to even use this on an existing system as opposed to a new install.
13:30 thd       kados: I would not stake my life on it but I see no significant problems except for not enough or hardly any not managed in Koha -1 or 11 tab values yet.
13:32 thd       kados: It can be updated very easily so that revisions that I will have until the end of the week when I ought to begin working on the cataloguing job should be very easily applied.
13:33 kados     excellent
13:33 kados     yea, send it my way
13:34 thd       kados: I think it is suitable for use now except for to many subfields in the record editor.
13:34 thd       s/to/too/
13:35 paul      kados / thd : for long frameworks, I think we could add a new minor feature :
13:35 paul      when adding/ modifying a record, in the marc editor, hide (through css) fields that are not mandatory or with a subfield containing sometihng
13:36 kados     paul: could we use the 'hidden' feature in the current frameworks to do this, it seems to do nothing currently
13:36 kados     paul: (does nothing in the MARC editor I mean)
13:36 paul      no, the hidden feature means "hide in OPAC", not in marc editor
13:37 kados     I see
13:37 kados     too bad :/
13:37 kados     maybe it could be a binary number?
13:38 kados     1 => hide in OPAC 11 => hide in OPAC AND hide in MARC Editor
13:38 kados     paul: what do you think?
13:38 paul      why not. But it would be less clear
13:38 paul      (+ i'm afraid hidden is an int(1))
13:38 thd       paul: If you may have read the logs I had proposed an additional column or columns to control what might be hidden but accessible, except displayed if a value is present in an existing record.
13:38 paul      (but we could say 1 & 2 !)
13:39 paul      sorry thd, I'm really overbooked this month
13:39 paul      (and next month won't be better...)
13:39 kados     ok, so maybe 1 & 2 is our solution for now
13:40 kados     thd: do you understand this?
13:40 thd       paul: what would happen if managed in tab were set to 11?
13:40 paul      I think it will be ignored, as 1-10 is hardcoded.
13:41 paul      but it could easily be extended to 1-20 if needed !
13:42 thd       paul by 1 & 2 do you mean changing the code so that 1 and 2 hides in the OPAC while only 2 hides in the editor?
13:42 paul      yes, something like that.
13:45 thd       kados: I like the idea of tabs 0-20 if that is easy to change before fixing it in the right way for correctly ordering the fields and hidden but accessible unless occupied.
13:47 kados     thd: the hidden trick should be very easy to do
13:47 kados     thd: I will work on that right now
13:47 thd       kados: Which hidden trick?
13:47 kados     thd: set 'hidden' to '2' to hide in the MARC editor
13:48 thd       kados: you mean 1 & 2?
13:48 kados     thd: yes
13:48 thd       what you said
13:51 thd       kados: we should have more values for future improvement.  Allow values greater than 2 and I will think about how they might be used after I have had proper rest again tomorrow.
13:52 thd       kados: also what about unhiding for the editor if a value is present.  How easy is it to test for a value at that point in the code?
13:55 kados     thd: there is no 'hidden' flag currently for tags right?
13:55 thd       kados: I do not mean that we should unhide the real record ID set to -1 tab until viewing without editing protects the user from accidentally ruining the record ID.
13:55 kados     thd: http://koha.liblime.com/cgi-bin/koha/acqui.simple/addbiblio.pl
13:55 thd       kados: -1 is hidden for tabs.
13:56 kados     thd: I have set addbiblio to 'hide' all the 0XX fields
13:56 kados     thd: just as a test
13:57 paul      how can we make them appear ?
13:57 kados     paul: just use javascript
13:57 thd       kados you asked about tags and I answered about tabs.  No most of the settings are tied to the subfields only.  Obviously that is an area for future improvement.
13:57 paul      it's done or not ?
13:57 kados     paul: it is quite simple, I'll try to whip up a demo
13:57 kados     paul: not yet :-)
13:58 kados     give me about 10 minutes
13:58 paul      ah, ok, I thought I was missing something !
14:10 thd       kados: please allow values of 2 or greater to hide for the record editor so that in future 3 may hide only if empty, 4 may hide unless some yet to be created column is true, etc.  I want to be able to use higher numbers now without breaking anything.
14:10 kados     thd: ok
14:13 thd       kados: is the only if empty trivial to implement now?
14:17 kados     thd: it might be
14:18 thd       kados: I might set the values differently initially if that were working.
14:29 kados     ok ... I've got the demo working
14:29 kados     try it out on the leader
14:30 kados     it will be hidden, but if you click on the up arrow it will appear
14:30 kados     thd: http://koha.liblime.com/cgi-bin/koha/acqui.simple/addbiblio.pl
14:31 kados     (obviously it needs some refinement, but it's a start :-))
14:32 kados     thd: did it work for you?
14:33 thd       kados: that is hidden but accessible which is even better but what about hidden unless a empty or null?
14:33 kados     hehe
14:33 kados     yea, I think I can swing that
14:33 kados     thd: but currently, the value will not be lost
14:34 kados     thd: even though it's not visible
14:34 paul      nice feature joshua.
14:34 kados     thd: so I think it's ok for now
14:34 kados     thd: I'll commit it immediately
14:36 thd       kados: also, is hidden but accessable currently taking the same amount of space even if there was less distraction or fewer tab keys needed to navigate.  I could not tell because there was only one subfield.
14:38 kados     thd: good question
14:38 paul_away bye bye everybody
14:38 kados     thd: give me an example of a tag that needs hidden and visible subfields and I'll set up my framework accordingly so you can test
14:39 thd       bye bye paul_away
14:39 kados     paul_away: bye paul
14:39 thd       kados: the best examples are not even in your framework :)
14:40 kados     right :-)
14:40 thd       kados: do you have 013 patent number?
14:40 kados     thd: how long will it take you to set the visibility flag on your framework?
14:41 kados     no I don't think so
14:41 kados     but I can add it real quick
14:42 thd       kados: that may not be the most appropriate field to your previous question.
14:42 kados     thd: what subfields are there and which should be hidden?
14:43 thd       kados: that is a field that should be hidden but accessible for non-book language materials although I have only the uber-framework.
14:44 thd       for 013
14:44 kados     right now I can only hide subfields within a tag
14:44 kados     not the tag itself
14:46 thd       INSERT INTO `marc_subfield_structure` VALUES ('013', '6', 'Linkage', 'Linkage', 0, 0, '', 0, '', '', NULL, 0, 0, '', '', '');
14:46 thd       INSERT INTO `marc_subfield_structure` VALUES ('013', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 0, '', '', '', 0, 0, '', '', '');
14:46 thd       INSERT INTO `marc_subfield_structure` VALUES ('013', 'a', 'Number', 'Number', 0, 0, '', 0, '', '', '', 0, 0, '', '', '');
14:46 thd       INSERT INTO `marc_subfield_structure` VALUES ('013', 'b', 'Country', 'Country', 0, 0, '', 0, '', '', '', 0, 0, '', '', '');
14:46 thd       INSERT INTO `marc_subfield_structure` VALUES ('013', 'c', 'Type of number', 'Type of number', 0, 0, '', 0, '', '', '', 0, 0, '', '', '');
14:46 thd       INSERT INTO `marc_subfield_structure` VALUES ('013', 'd', 'Date', 'Date', 1, 0, '', 0, '', '', '', 0, 0, '', '', '');
14:46 thd       INSERT INTO `marc_subfield_structure` VALUES ('013', 'e', 'Status', 'Status', 1, 0, '', 0, '', '', '', 0, 0, '', '', '');
14:46 thd       INSERT INTO `marc_subfield_structure` VALUES ('013', 'f', 'Party to document', 'Party to document', 1, 0, '', 0, '', '', '', 0, 0, '', '', '');
14:47 kados     hidden isn't set to '2'
14:47 thd       kados: no hidden is not set to anything yet :)
14:48 thd       kados: change the last 0 in each to 2
14:49 thd       INSERT INTO `marc_tag_structure` VALUES ('013', 'PATENT CONTROL INFORMATION', 'PATENT CONTROL INFORMATION', 1, 0, '', '');
14:52 kados     done
14:52 kados     hehe
14:52 kados     well, it's a start at least :-)
14:54 kados     thd: whatdya think?
14:55 kados     I bet owen could make it look real nice :-)
14:55 owen      Hunh? Wha?
14:55 kados     owen: http://koha.liblime.com/cgi-bin/koha/acqui.simple/addbiblio.pl
14:55 kados     owen: scroll down to the 013 tag
14:56 kados     owen: the subfields are hidden
14:56 thd       kados: I like it.  I am happy.
14:56 kados     owen: if you click on the up-arrow they will appear
14:56 kados     thd: good :-)
14:56 kados     thd: if you're happy, I'm happy :-)
14:56 kados     thd: I'll commit it immediately
14:57 thd       kados: there are still too many subfields needing hidden if not empty.
14:58 kados     thd: that should be quite simple as well
14:58 kados     thd: we need a way to flag those
14:59 kados     thd: how about this
14:59 kados     if it is empty and should be hidden we set it to '3'
14:59 kados     wait ...
14:59 kados     scratch that
14:59 thd       kados: hidden 3 yes
15:00 kados     so how many cases are we talking about here?
15:01 kados     sometimes a subfield should always be hidden
15:01 kados     sometimes it should only be hidden if it's empty
15:01 kados     any other cases?
15:01 thd       kados: if I was not woken early this morning by a phone call I would  know :)
15:01 kados     heh
15:02 kados     thd: I committed what has been done
15:03 thd       kados: there would also be other cases that do not need to be addressed at this moment for hidden unless some other column is true.
15:03 kados     owen: we could probably use a little graphical 'plus' sign instead of the up-arrow
15:03 kados     owen: if you have any other ideas for making it look nicer feel free to hack on it :-)
15:04 kados     thd: is it safe to say that we can use '2' in the MARC framework you're working on currently?
15:05 kados     thd: also, how long will it take you to change that for the appropriate fields?
15:05 thd       kados: Examples of hidden unless something else is true would include fiends that apply only in Canada, or only for OCLC users.
15:05 kados     right
15:05 thd       s/fields/fields/
15:06 kados     I think what we have will suffice for now
15:06 kados     unless you disagree
15:06 kados     (are you happpy? ) :-)
15:06 thd       kados: we can use 2 all over the framework :)
15:06 kados     great!
15:06 kados     thd: how about this
15:06 kados     just for clarity, you can set '2' for hidden
15:07 kados     and '3' for obsolete
15:07 thd       kados: what about hidden completely if empty?
15:07 kados     the current template will hide anything >=2
15:07 kados     thd: hidden completely?
15:08 thd       kados: well hidden and not even loaded into JavaScript unless there is a value present for obsolete fields.
15:09 kados     that's too complicated
15:09 kados     for now
15:09 kados     but if you set them to 3 we may be able to work with that in the future
15:09 thd       kados: There are a fair number of obsolete subfields.  A significant problem is the size of the JavaScript.
15:10 kados     thd: the visibility flag is set in the template, not in the javascript
15:10 kados     thd: ie, it comes out as invisible
15:10 kados     thd: javascript just makes it visible again
15:11 kados     thd: how long will it take you to set the visibility flag for the framework?
15:11 thd       kados: yes what I mean is the system resources required to load unneeded parts of the framework into memory on the cataloguer\x{015b} machine.
15:12 thd       s/cataloguer\x{015b}/cataloguer's/
15:16 thd       kados: Merely hiding a field that is accessible still requires loading it.  Obsolete fields might not even require loading if empty.
15:16 kados     thd: true, but that is very hard for me to do right now
15:17 kados     thd: subfield repeatability and reordering is more important
15:17 kados     thd: so first I'll do those, then the obsolete fields stuff
15:18 kados     thd: right now I'm fixing the marc_subfields_structure.pl so that you can set 'hidden' to 2 (rather than just a checkbox)
15:18 thd       kados: My system does not have enough RAM to manage the complete framework well when opening a record in the editor.
15:20 thd       kados: My system would be totally unacceptable for cataloguing but other systems would be likely to seem slow.
15:21 thd       kados sends thd more RAM and the problem goes away :)
15:21 kados     hehe
15:22 kados     yea, I can definitely see that being a problem
15:22 kados     the form is potentially HUGE
15:22 kados     :-)
15:22 kados     (the editor form I mean
15:23 thd       about 3,600 subfields
15:23 thd       about 300 fields
15:25 thd       some like 880 are just all the possible subfields so that you can use whatever is needed from the referenced field
15:26 thd       closer to 350 fields
15:30 kados     wow
15:30 kados     that's a lot of fields :-)
15:31 kados     ok ... now the marc_subfields_structure.pl script allows you to fill with values rather than just a checkbox
15:32 thd       kados: only 3 times larger than what Koha had previously but then most everything was set to tab -1
15:32 kados     right
15:32 kados     thd: can you send me what you have currently?
15:33 kados     I've got a client waiting to go live (with no previous data)
15:33 thd       kados: yes I will just validate the last changes so that I know it will at least load for you
15:33 kados     thanks
15:56 kados     thd: i didn't get an attachment :-)
15:57 thd       kados: you did this time
15:57 kados     right, got it
15:57 kados     thd: what's the proper way to import this?
15:58 kados     ENGINE=MyISAM DEFAULT CHARSET=utf8;
15:58 kados     not sure that's gonna work for me ...
15:58 kados     (I'm nervous about it at least :-))
15:58 thd       kados: just pass it through MySQL
15:59 thd       kados: but first dump those two tables
15:59 kados     right
16:00 thd       kados: you can change the character set to whatever you have now.  You should supply something that matches your existing database where indicated.
16:01 thd       kados: look for APPLY ME
16:02 thd       kados: look for ADJUST ME
16:02 kados     heh ... it's gonna crash my browser :-)
16:02 thd       kados: you concluded that already
16:03 kados     wow ... took about 45 seconds to load the page
16:03 thd       kados needs more RAM too
16:03 kados     hehe, yea :-)
16:03 kados     also, I get an 'unresponsive script' message
16:04 kados     I'm assuming that's because of owen's handy little 'please wait while page loads' javascript popup
16:04 thd       kados: It took me much longer than 45 seconds of course.  I was swapping to disk.
16:04 owen      The 'please wait' message is designed to keep you from trying to press javascript-dependent buttons before the page (and the javascript) has fully loaded
16:05 thd       kados: I did not see unresponsive script
16:05 thd       kados: I have not updated since my last commit.
16:06 kados     I think it's a mozilla message
16:06 thd       s/my/your/
16:07 kados     thd: in the 9XX tab
16:07 kados     I see some very strange tags
16:07 kados     u02 for instance
16:07 kados     and 95r
16:07 thd       kados: those are from RLIN
16:08 thd       that one is from me to protect 952 in Koha until we have a good method for moving 952 in existing installations.
16:08 kados     003 is listed as mandatory
16:09 kados     but it's not in the LOC data I just downloaded :-)
16:09 thd       kados: that is a mistake
16:10 thd       I copied the previous field and did not change enough values.
16:10 kados     I think it's gonna crash my browser :-)
16:10 thd       :)
16:11 thd       kados: we can always set things to -1 for now.  At least the user data will be preserved even if they cannot see the fields.
16:11 kados     well it saved
16:11 kados     yea, we may need to do that for most things
16:12 kados     it literally took 2 minutes to save the record :-)
16:12 kados     it's not only RAM, it's also network overhead
16:12 thd       :)
16:13 thd       kados: we need a better model for handling the potential size of MARC.
16:20 thd       kados: so we set most fields to -1 for now and then it will work fine.
16:21 kados     sounds like a plan
16:22 kados     thd: wait
16:22 kados     thd: we don't want fields set to -1 in the default editor
16:22 kados     thd: we want to do that in the trimmed down editors, right?
16:23 kados     thd: s/editors/frameworks/;
16:23 thd       kados: subfields set to -1 tab as not managed in Koha.  The values are saved if present and I hope they do not strain the network services.
16:24 kados     thd: they will
16:24 kados     thd: the will still get loaded into the browser
16:24 thd       kados: trimmed down frameworks loose user data.
16:25 kados     thd: not if the trimmed down frameworks use -1 unless I'm mistaken
16:26 kados     thd: in either case, I believe the tag and subfield values are loaded into the browser
16:26 thd       kados: that is what I meant using -1.
16:26 kados     thd: do you mean that -1 looses data?
16:27 thd       kados: so we keep the default for system thrashers and create frameworks with mostly -1.
16:27 thd       kados: no -1 preserves data.
16:27 kados     I'm not sure that -1 will load any faster
16:27 kados     we need to do a test
16:28 kados     thd: are there any current fields marked -1 in the framework you sent me?
16:28 thd       kados: deleting fields loses data.
16:29 kados     thd: deleting fields loses data where?
16:29 kados     thd: I don't understand what you mean
16:29 thd       kados: there are at least the internal Koha fields such as 090 marked -1
16:29 kados     ahh ... good point
16:30 thd       kados: I thought you were meaning to delete fields and subfields from the framework when you meant trimming.
16:30 kados     no
16:31 thd       kados: we could set everything to -1 with a regex and turn on a few.
16:32 thd       kados: then you should have speedy performance.
16:32 kados     thd: let's try it
16:32 kados     thd: is it the tags or subfields that are assigned to tab -1?
16:32 kados     thd: subfields, right?
16:33 thd       kados: if performance speed has not improved greatly then we have a design problem
16:33 kados     I'm not sure it will work as we expect
16:33 thd       yes
16:33 kados     but it might
16:33 kados     let's try it
16:34 kados     thd: email me the revised version when you've fed it to your regex :-)
16:35 thd       ok
16:54 kados     thd: how's the regex coming?
16:55 thd       kados: just substituted 2,??? something matches
16:56 thd       kados: I need one more pass for the fact that I have not reconciled the nulls from the empty strings
16:57 kados     thd: probably enough for a test though, right?
16:57 thd       kados: just substituted another 1000
16:58 thd       kados: now we are ready for a test.
16:58 thd       kados: I will import the SQL to my system before sending
16:59 kados     k
17:02 thd       kados: you have not seen a browser crash until you put JavaScript though an infinite loop after refactoring variable names :)
17:03 kados     hehe
17:03 kados     I take it it didn't work?
17:03 thd       kados: I am still importing the framework
17:04 kados     huh ... do you have data in your database?
17:04 kados     it only took me a second
17:04 thd       not enough RAM ok done now
17:04 kados     mysql -uusername -ppassword kohadatabase < marc21bibframework.sql
17:05 thd       kados: my system thrashes when I ask it to work hard
17:05 kados     gotcha
17:07 kados     thd: did it work?
17:07 thd       kados: high speed
17:07 kados     thd: if you send me the sql I will try it on this system, import the cryptonomicon record so we can compare whether it loses anything
17:11 thd       oops my mail system logged me out :)
17:12 kados     heh
17:15 kados     morning russ
17:16 russ      morning
17:18 thd       kados: sent
17:21 kados     too bad
17:21 kados     it loses all the extra data
17:22 kados     as I suspected it would
17:22 thd       kados: really or can you just not see the data
17:22 kados     it loses it
17:22 kados     I'm pretty sure that -1 is only useful for hiding fields that are auto-set by Koha
17:23 kados     wait
17:23 kados     maybe it is just hidden
17:23 thd       kados: the data is just hidden not lost is it not?
17:23 chris     guten morgen
17:23 kados     yes, you're right
17:23 kados     morning chris
17:23 kados     w00t, this might actually work thd
17:24 thd       kados: we just need some modified behaviour for hiding
17:25 kados     thd: is -1 equiv to 'ignore'?
17:25 kados     thd: in the frameworks editor?
17:25 thd       kados: ultimately we would need the record editor to go back to the server to request more subfields.
17:25 thd       yes
17:26 kados     hmmm
17:26 kados     thd: go back to request more subfields? I don't quite understand
17:27 thd       kados: I predicted that what we saw would be the consequence of loading a record editor with a complete description of MARC months ago.
17:28 kados     I'm still not 100% sure that the second record I added has all the same data as the first one
17:28 kados     I _do_ know that the first one is just hiding the data
17:28 kados     to do a proper test I'll need to figure out what fields in the first record existed before and make those un-hidden
17:29 kados     thd: can you remember any specific examples?
17:30 thd       kados: if subfield expansion in the record editor makes a new request to the server it will create more demands on the network when needed so some could be hidden in JavaScript while the truly rare subfields are hidden on the server.
17:31 thd       kados: unhide 040: That should have even been set to mandatory I think
17:32 kados     as I feared
17:32 kados     the first record has a value for 040 visible now
17:32 kados     the second doesn't
17:32 kados     so we _are_ losing fields when they are sent to -1
17:33 kados     set to I mean
17:33 kados     perhaps we need to examine how to check for a value before discarding the field
17:33 kados     (in fact, I'm very surprised this wasn't the default behavior when this was first designed)
17:36 thd       040 is not mandatory it seems for minimal level records unless applicable except for  $c
17:37 thd       kados: it is sometimes difficult to have your MARC and eat it too.
17:38 kados     heh
17:46 kados     thd: i have an idea
17:47 thd       kados: I guess the subfields vital to Koha such as 090 $c, etc which are set to -1 are managed in some magical way.
17:47 kados     thd: can you construct a framework with lots of 'hidden' fields (set to 2 or greater)?
17:47 thd       kados: yes that is fairly easy.
17:47 kados     I believe I can check the value of a field and if it's empty and if hidden is set to 2 or greater simply not display it in the editor
17:50 thd       kados: I do not understand hat is happening with the important fields that were already set to -1 unless those values are just refilled from where they are stored in the original Koha tables.
17:50 thd       s/hat/what
17:51 kados     thd: that's exactly what's happening
17:51 kados     thd: those fields are added _after_ the record is submitted from the marc editor
17:52 thd       oh, that is bad
17:52 kados     yep
17:53 thd       I had assumed something nicer had been happening with -1 without checking
17:54 kados     I'm pretty sure I can fix it
17:54 kados     but it might take a while
17:54 kados     there's quite a lot going on in addbiblio
17:54 thd       kados: how would you fix it?
17:55 kados     my plan is to check for a value on existing records or records coming in from z3950
17:55 kados     wait
17:55 kados     even better
17:56 kados     thd: we set all subfields that we don't want to display by default to '3'
17:56 kados     thd: the hidden I mean
17:56 thd       kados: yes well I kept asking about that all morning not realising that -1 was a problem
17:56 kados     thd: then I can check if hidden is '3' and if there is a value
17:56 kados     if there's a value, we'll preserve it
17:56 kados     otherwise, it won't be included in the list
17:57 kados     if hidden is '2' it will be included but will be hidden from view and can be un-hidden by javascript
17:57 kados     thd: does that seem like a good plan to you?
17:58 thd       kados: yes I like that plan for now
17:58 kados     thd: the only way I will be able to test my code will be to have a framework that's set up properly
17:59 kados     thd: can you work on that while I work on the code?
17:59 thd       kados: that was what I was asking about earlier not knowing how bad -1 really was
17:59 kados     thd: yea, too bad -1 doesn't work properly :(
17:59 thd       kados: yes, I should have that in a few minutes
17:59 kados     w00t
18:01 thd       kados: MARC is too big to load into JavaScript in one gulp we need a new server fetching scheme for the truly uncommon fields.
18:01 kados     thd: we're not going to be loading it into javascript
18:02 thd       kados: allow that to work for hidden is 3 or greater
18:03 thd       kados: yes but if you want to add some obscure field type you can never have them all in your editor already without the problem that we saw earlier.
18:04 kados     thd: that's a limitation I can live with at this point
18:04 kados     thd: at least we won't be losing any data
18:04 kados     thd: but I agree long-term we need a solution for that
18:04 kados     thd: in fact, one may have just presented itself
18:04 kados     thd: we could use the existing 'addfield' feature
18:05 thd       kados: Yes, but at some point we will need to be able to fetch obscure fields for the editor to add by calling them from the server rather than having them already available in JavaScript.
18:06 kados     addfield _does_ fetch them from the server
18:06 kados     albeit it fetches them in javascript :-)
18:06 kados     it reloads the page with the additional field you request
18:06 thd       kados: that is why the record reloads :)
18:06 kados     right
18:08 thd       kados: that is fine t just needs context embedded in the add filed so you are not automatically dropped back to the beginning of the record.
18:08 kados     yea, that would be a nice refinment
18:08 thd       kados: current behaviour seems like a punishment for wanting to add a field.
18:08 kados     yep
18:09 kados     should be pretty easy to add that function
18:16 kados     thd: i think I've got something that will work
18:16 kados     thd: how close are you to having a framework?
18:18 thd       kados: I did not start to develop the proper regex I was fixing mistakes in line copying where I had not changed all of the values.
18:38 thd       inconsistent data I only matched 670 lines the first go I have to change the regex a little
18:51 thd       need to normalise the SQL between NULL and 0 for easier regex matching in future
18:51 kados     thd: I tested it on the 040 and it seems to work well
18:52 kados     thd: my fix I mean
18:52 kados     thd: the real test of course will be with a fully configured framework
18:52 thd       kados: 3 regexes needed,  I will test to be sure that I have not corrupted the SQL
18:52 kados     cool
18:52 kados     let me know when it's ready, I'll continue to test on my end
18:59 kados     hmmm
18:59 kados     something else to think about
19:00 kados     if 'hidden' is set to '3'
19:00 kados     even if the value is preserved, it will not display :-)
19:01 thd       SQL is fine, I foolishly started thrashing my system by opening the record editor
19:01 kados     k
19:01 thd       I do not have your fix installed :)
19:02 kados     heh
19:02 kados     I don't want to commit it until I'm sure it works
19:02 kados     thd: could you send me the sql?
19:03 kados     thd: I'll do the same test as before with the cryptonomicon record
19:03 thd       I must wait until firefox returns to life before sending
19:04 kados     heh
19:04 kados     thd: have you used 'mailx' before?
19:04 thd       or I could kill the process
19:04 kados     mailx -s 'MARC Framework' < marc21framework.sql
19:05 kados     oops
19:05 kados     mailx -s 'MARC Framework' jmf at liblime.com < marc21framework.sql
19:05 kados     (obviously use my real mail address with the @
19:05 kados     mailx -s 'MARC Framework' jmf@liblime.com < marc21framework.sql
19:06 kados     forgot the archives of this are password-protected :-)
19:07 thd       kados: my local mail; system which I had never configured other than as a test system has been well and truly down since a new Debian etch design for running multiple Postgres versions killed my Postgres.
19:07 thd       thrashing now stopped
19:18 thd       kados now has the hidden framework
19:24 kados     thx
19:31 kados     hmmm, not working the way I want
19:31 kados     more hacking to do I suppose
19:39 thd       kados: I am back and no longer in thrash mode
19:51 kados     thd: still here?
19:52 kados     thd: check your 100 tag
19:52 kados     thd: is everything set to '3' except for $a?
19:52 kados     thd: shouldn't everything be set to '2'?
19:52 kados     thd: unless I'm mistaken, everything is set to '3'
19:52 kados     thd: there is no distinction between '3' and '2' ... could you confirm this?
19:55 kados     thd: other than that, I think we're in business
19:55 kados     thd: I've committed my addbiblio.pl
19:55 kados     thd: try it out
19:56 thd       kados: this is not an intelligent selection
19:56 thd       kados: it was selected by script
19:56 kados     ok, just checking
19:56 kados     I think we're in business
19:57 kados     now we just need an intelligently selected MARC Framework
19:57 kados     and it should work exactly as we expect
19:57 kados     except that you can't add missing obsolete fields
19:57 thd       kados: I tried to set as much as possible to hidden 3 without setting then minimal requirements to hidden.
19:57 kados     unless they already exist
19:58 thd       kados: now one would need to add missing obsolete fields but we will need to exclude much more than the merely obsolete to not have thrashing :)
19:58 kados     now I need to adjust the display to show fields marked '3'
19:59 kados     so maybe '3' is not obsolete
19:59 kados     '3' means 'don't show it in the editor unless I ask for it or it already has a value'
20:00 kados     should '3' show up in the display in that case?
20:00 kados     I guess we need to more carefully plan the cases
20:00 thd       kados: if behaviour is similar for 3 or greater than 3 for the present time then I can think about what might be good choices
20:00 kados     1 => hide in the OPAC
20:01 kados     2 => hide in the OPAC and in the editor (but display with javascript)
20:02 kados     3 => don't hide in the OPAC but don't include in the editor unless it's there or I've asked for it'
20:02 kados     4 => hide in the OPAC and don't include in the editor unless it's there or I've asked for it'
20:02 kados     there's also a question of 'hide in the intranet?'
20:02 kados     as I understand it, there are cases where certain MARC fields are required to be hidden based on certain criteria
20:03 kados     so we need to think about that as well
20:03 kados     thd: if you can think of a good scheme I'll implement it
20:03 thd       kados: I think we run out of 0-9 at some point for a single column
20:04 kados     thd: how many cases are there?
20:05 kados     hmmm ... I think 1 can serve as 'hide in the OPAC and in the editor'
20:05 kados     I dunno
20:05 thd       kados: I would prefer a separate hide column for the editor.  I think we will need that when we have thought the various hiding scenarios through completely
20:05 kados     thd: it would be _much_ easier if we could just work with the current one
20:06 kados     thd: we can even switch to a binary encoded value if we need too (like the permissions)
20:06 thd       kados: OK, I understand that more coding would be required for more columns
20:06 kados     yep, lots more coding
20:07 kados     too much for it to make it into 2.2.6
20:07 thd       kados: and we definitely want it there
20:07 kados     yes, definitely
20:07 kados     so maybe for now, come up with a scheme that only has 5-6 hiding scenerios
20:08 kados     implement it in the frameworks, tell me what it is, and I'll change the code so it works
20:09 thd       kados: so 0, null, or empty string is completely visible everywhere to everyone and fully editable in the editor under all circumstances
20:10 thd       kados: those were the 3 preexisting values  had to match for in my regex.
20:12 thd       kados: empty string should not have been there and maybe it was not.  Empty string should not have passed the data constrains.
20:13 thd       kados: It may have been the confusion over null and empty strings elsewhere on the line that delayed  a successful regex.
20:15 thd       kados: 1 hide in the OPAC and hide only in the OPAC.
20:18 thd       kados: 2 hide in the OPAC unless the user has qualified privileges for viewing, a value reserved for future coding which could behave similarly in the intranet.
20:20 thd       kados: I try to think about how to sequence the numbers so that they go from most hiding to least hiding in logical progression.
20:21 thd       maybe that is not possible with 0 and 1 already specified
20:21 kados     I know what you mean
20:24 thd       if we start from the current legacy behaviour I think that 0 and 1 are at two opposite extremes.
20:25 thd       0 is always visible to everyone unless other code overrides such as code for tab -1.
20:27 thd       1 is alway hidden for everyone including the record editor except that the value is preserved as a hidden value in the record editor
20:28 kados     yep, you're right
20:28 kados     but, based on what paul stated this morning
20:28 kados     he only intended 'hidden' to apply to the OPAC view
20:28 kados     so 1 => hidden only in OPAC
20:28 kados     and 0 => not hidden at all
20:28 kados     I think that's where we should start
20:29 thd       kados: oh that would not be preexisting behaviour so we have to preserve legacy use
20:29 kados     thd: it is preexisting _intent_
20:29 kados     thd: based on what paul said
20:30 kados     thd: as long as '1' hides in the OPAC we're OK
20:30 thd       kados: we could certainly expand the range of values available by changing the field type if needed.
20:30 kados     thd: I'd like to avoid that if possible, but yes, of course you're right
20:30 kados     thd: one problem I have is that i have a client going live tomorrow :-)
20:31 kados     thd: and I need _something_ that works :-)
20:31 thd       kados: ok, do we have negative integers with int(1)?
20:31 kados     lemme check
20:34 kados     thd: I think so unless UNSIGNED is specified in the definition
20:34 thd       kados: well given that unsigned is not specified then we have negative integers.
20:35 kados     thd: yep, just tested it
20:35 kados     thd: it works fine
20:35 kados     thd: good thinking
20:35 kados     thd: still gonna be tricky though :-)
20:36 kados     thd: assume 0 means 'visible everywhere' and 1 means 'hidden in the OPAC'
20:36 thd       kados: so we could have negative values for use in the intranet and positive in the OPAC
20:37 kados     thd: how would we specify setting that apply to both? :-)
20:38 kados     thd: I think the first step is to identify the possible settings that we will need
20:38 kados     thd: given the current time constraings
20:38 kados     thd: constraints even
20:39 kados     thd: keep in mind also that I'm going to need to move on to something else soon as I still have several things to fix/add for 2.2.6 and I'm rapidly running out of free days
20:39 thd       kados: Ok, I was thinking about that as a good approach earlier and then determine how best to assign them in as logical a way possible
20:40 thd       kados puts thd on the spot when half-awake
20:41 kados     thd: how's this:
20:41 kados     1 visible everywhere
20:41 kados     2 !OPAC Intranet Editor
20:41 kados     3 !OPAC !Intranet Editor
20:41 kados     4 !OPAC !Intranet !Editor (but can be created)
20:41 kados     5 OPAC Intranet !Editor (but can be created)
20:41 kados     6 !OPAC Intranet !Editor (but can be created)
20:41 thd       kados: so we need for the editor never mind the numbers for now visible and editable always
20:41 kados     anything missing?
20:42 kados     0 => visible everywhere
20:42 kados     1 => !OPAC Intranet Editor
20:42 kados     2 => !OPAC !Intranet Editor
20:42 kados     3 => !OPAC !Intranet !Editor (but can be created)
20:42 kados     4 => OPAC Intranet !Editor (but can be created)
20:42 kados     5 => !OPAC Intranet !Editor (but can be created)
20:42 kados     (better)
20:42 thd       kados: you mean those numbers as arbitrary since 1 is already assigned a value?
20:42 kados     thd: yea, forgot about that
20:43 kados     thd: the revised one is how it would be represented
20:43 kados     I can't think of any other cases, can you?
20:43 kados     (well, for 2.2.6 I mean)
20:44 kados     in that scheme, most will be 0 or 4
20:44 kados     some will be 1 (like $9 for authorities linking maybe)
20:45 kados     (though auth linking could also be 3)
20:45 thd       kados: I can think of cases involving user privilege required to view, user privilege required to edit.
20:45 kados     yea that's not in 2.2.6 :-)
20:46 thd       I mean extra user privilege
20:46 kados     not in 2.2.6
20:46 kados     I don't have time to code something like that
20:47 kados     right now anyway ...
20:47 kados     thd: so can we agree on the above scheme?
20:47 thd       kados: I am trying to think about logical uses so that we could reserve numbers for later use when the feature can be added
20:47 kados     thd: if so I'll begin coding it and you can begin working on the framework
20:47 kados     thd: in 3.0 we can change to a binary encoded value
20:48 kados     thd: since I'm the RM I can approve that :-)
20:48 thd       kados: what about those cases where the function for visibility might be modified for  an additional truth condition
20:48 kados     thd: ?
20:50 kados     thd: hmmm ... I forgot a whole category
20:50 thd       kados: such as a presently created but future implemented columns for OCLC only field, RLIN only field combined with a participation preference
20:51 kados     thd: we'll have to change our method in 3.0
20:51 thd       kados: Canadian library is another example
20:51 kados     thd: we can't do OCLC, Canadian libraries, or RLIN in 2.2.6, it's just too complex right now
20:52 kados     and I'm running out of time :-)
20:52 kados     0 => visible everywhere
20:52 kados     1 => !OPAC Intranet Editor
20:52 kados     2 => !OPAC !Intranet Editor
20:52 kados     3 => !OPAC !Intranet !Editor (but can be created)
20:52 kados     4 => !OPAC !Intranet Editor (but hidden)
20:52 kados     5 => OPAC Intranet !Editor (but can be created)
20:52 kados     6 => OPAC Intranet Editor (but hidden)
20:52 kados     7 => !OPAC Intranet !Editor (but can be created)
20:52 kados     i bet we can trim that down considerably
20:53 kados     because some of those are going to be so rare it's probably not worth having them in 2.2.6
20:53 thd       kados: I am trying to think of something that would be easy to specify when going through the framework to be adapted for future use not present use
20:53 kados     thd: right ... I understand
20:54 kados     thd: well maybe assign those the negetive numbers according to your own scheme
20:54 thd       kados: I know that some libraries testing Koha are OCLC members and some are Canadian
20:55 kados     thd: I think we can elimimnate '2'
20:56 thd       kados: is 2 not a natural permutation on the parameters?
20:56 kados     thd: 3 too I think (it would be very rare)
20:56 kados     thd: yes, but very rare
20:56 kados     thd: 2 and 3 would be so rare they might not be worth implementing
20:57 thd       kados: please leave the natural permutations for future use where the code might be modified by another factor that there is no time to code now
20:57 kados     ok
20:58 thd       kados: I can think already that 2 could be for subfields that only a cataloguer would appreciate
20:59 kados     thd: true, but chances are that cataloger is going to want to see those fields in the Intranet after :-)
21:00 kados     thd: I'm going to implement 0, 1, 5 and 6
21:00 kados     as I think those are the most immediately relevant
21:00 kados     5 is the most important IMO
21:00 kados     as it will de-bloat the editor
21:00 kados     thd: do you agree?
21:01 thd       kados: then we would add a special feature for such users where the system recognised the user privilege in relation to the cataloguing module and provided an intranet display accordingly.
21:02 kados     yep, that would be nice in 3.0
21:02 kados     good idea thd
21:02 thd       kados: no problem if you only implement the ones we need most immediately
21:02 kados     thanks
21:03 kados     thd: any chance in hell you'll be done adding the visibility flags tonight? :-)
21:04 kados     thd: and before i start coding, do we agree on the above values 0-7?
21:04 thd       kados: If we have chosen our progression well the might be some default advantage with greater than and less than but maybe the existing legacy codes already prevented that from working easily for new additions
21:05 kados     unfortunately, I think the existing legecy codes prevented that from working easily :-)
21:05 kados     unless chris can think of a way
21:05 kados     chris: you got a sec?
21:05 thd       kados: I think we may be missing something
21:06 kados     we're missing 'obsolete'
21:06 kados     8 => obsolete
21:06 kados     or is obsolete the same as3?
21:06 kados     same as 3
21:06 kados     ?
21:07 thd       kados: obsolete has a certain behaviour needed that might fall into what we already have
21:07 kados     cool
21:07 kados     in  3.0's framework we'll make an obsolete flag
21:08 thd       kados: obsolete should appear in the editor at least if populated
21:08 kados     right ... if we use '3' it will
21:09 thd       kados: so maybe I am confused about how you have designated your list
21:09 chris     whats up kados?
21:09 kados     maybe this will clarify:
21:09 kados     0 => visible everywhere
21:09 kados     1 => !OPAC Intranet Editor
21:09 kados     2 => !OPAC !Intranet Editor
21:09 kados     3 => !OPAC !Intranet !Editor (unless it exists; it can also be created)
21:09 kados     4 => !OPAC !Intranet Editor (but hidden)
21:09 kados     5 => OPAC Intranet !Editor (unless it exists; it can also be created)
21:09 kados     6 => OPAC Intranet Editor (but hidden)
21:09 kados     7 => !OPAC Intranet !Editor (unless it exists; it can also be created)
21:09 kados     hey chris
21:10 kados     we're working on altering the MARC Framework 'hidden' flag
21:10 thd       kados: how is negation distinguished from  not unless populated?
21:10 kados     previously, 0 => visible everywhere and 1 => hidden in the OPAC
21:11 kados     thd: see the above scheme
21:11 kados     thd: ahh ... I see what you mean
21:11 kados     thd: yea, that's tricky
21:12 kados     chris: so earlier today I created a little feature that will hide fields in the MARC editor and will allow you to click on a little arrow to make them visible again
21:12 thd       kados: is option 6 preserve the value but do not let us see it?
21:12 chris     right
21:12 kados     chris: but, the standard marc framework thd has written crashes the browser
21:13 kados     chris: because there are so many fields
21:13 kados     chris: (even if they are hidden)
21:13 chris     yep
21:13 thd       chris hiding still requires loading them over the network
21:13 kados     chris: so then I wrote a little number that allows you to not even serve up fields that are designated as 'hidden'
21:13 kados     chris: which completely solves the problem
21:14 kados     chris: so we're all goodd
21:14 thd       chris 350 fields and 3600 subfields.
21:14 kados     chris: but now we're getting greedy :-)
21:14 kados     chris: thd's going to be going back through the framework adding the visibility flag to all the fields
21:14 chris     k
21:15 thd       subfields actually as that is where visibility is set
21:15 kados      chris and we need to represent all the possible visibility situations we might encounter
21:15 chris     right
21:15 chris     with you so far
21:15 kados     so ... we're stuck with the legacy stuff:
21:15 kados     0 => visible everywhere
21:15 kados     1 => !OPAC Intranet Editor
21:16 kados     (where ! means ! visible)
21:16 chris     k
21:17 kados     hard to explain :-)
21:17 chris     this is a fix for 2.2 eh?
21:17 kados     yea
21:18 thd       kados: we need look but do not touch option that would allow seeing things but prevent harm to the system that might be caused by editing
21:18 kados     I'd like to be able to do something like if ($hidden > 1) { hide in the OPAC }
21:18 thd       kados: so they would be visible in the editor but not modifiable by the editor user
21:18 chris     right
21:19 chris     we arent proposing this for 3.0 eh?
21:19 kados     no, we'll need a whole new scheme for 3.0
21:19 chris     cool just checking
21:19 kados     because it gets really complex :-)
21:19 chris     yeah, id propose leaving it up to the templates
21:19 kados     user permissions, etc.
21:20 chris     ok, for 2.2
21:20 thd       chris: we have some essentials that we need to implementation now others can be reserved in logical places for future implementation
21:20 kados     thd's hit on it
21:20 kados     we've got three cases that we _need_ in 2.2
21:20 kados     visible everywhere
21:20 kados     !OPAC Intranet Editor
21:21 kados     OPAC Intranet !Editor (unless it exists; it can also be created)
21:21 chris     k
21:21 kados     those three will cover 90% of our cases I think
21:21 chris     and the code currently supports what?
21:21 kados     just the first two
21:21 thd       kados; you left out a case for now
21:22 kados     thd: which one did I miss?
21:22 thd       kados: oh maybe I am mistaken
21:22 thd       no
21:23 thd       kados: we need collapsed in the editor even if it does not exist
21:24 thd       kados: and collapsed in the editor and out of the way even if it already has a value
21:26 kados     thd: good point
21:26 thd       kados: those are usability features to make the editor efficient enough for someone to actually use it for real work
21:27 kados     thd: so there are four cases we need then
21:28 thd       kados: would you repeat your list with signification of the ones that we are implanting now?
21:29 thd       s/implanting/implementing/
21:29 kados     * 0 => visible everywhere
21:29 kados     * 1 => !OPAC Intranet Editor
21:29 kados       2 => !OPAC !Intranet Editor
21:29 kados       3 => !OPAC !Intranet !Editor (unless it exists; it can also be created)
21:29 kados       4 => !OPAC !Intranet Editor (but hidden)
21:29 kados     * 5 => OPAC Intranet !Editor (unless it exists; it can also be created)
21:29 kados     * 6 => OPAC Intranet Editor (but hidden)
21:29 kados       7 => !OPAC Intranet !Editor (unless it exists; it can also be created)
21:29 kados     * means we implement now
21:30 kados     hmmm ... might be better as:
21:30 kados     * 0 => visible everywhere
21:30 kados     * 1 => !OPAC Intranet Editor
21:30 kados       2 => !OPAC !Intranet Editor
21:30 kados       3 => !OPAC !Intranet !Editor (unless it exists; it can also be created)
21:30 kados       4 => !OPAC !Intranet Editor (but hidden)
21:30 kados       5 => !OPAC Intranet !Editor (unless it exists; it can also be created)
21:30 kados     * 6 => OPAC Intranet !Editor (unless it exists; it can also be created)
21:30 kados     * 7 => OPAC Intranet Editor (but hidden)
21:31 kados     that way we group all the opac-invvisible stuff together
21:31 chris     right
21:31 chris     that sounds good, and extensible
21:32 chris     then its just a matter of writing a subroutine
21:32 chris     called show_me or something
21:32 kados     well, as currently implemented it's a bit more complicated :-)
21:32 thd       kados: which is collapsed in the editor even if it has a value?
21:32 kados     thd: 7
21:33 chris     where you go if (show_me($tag,$subfield,'opac'){
21:33 chris     show tag;
21:33 chris     }
21:33 kados     thd: everything in () applies only to the Editor
21:33 chris     or show_me($tag,$subfield,'intranet'))
21:33 chris     etc
21:33 chris     is that what you were thinking?
21:33 kados     not quite
21:33 kados     the problem is, some of this is done in javascript
21:34 chris     ahh
21:34 kados     and some of it is specified while the tabs are being built
21:34 chris     right
21:34 kados     I've got it working nicely already
21:34 thd       kados: where is not cluttering the editor display with its current value but accessible by expanding the collapsed subfield?
21:34 kados     it'll take two secs to add whatever we decide
21:34 kados     thd: exactly
21:35 kados     thd: that's 7
21:35 kados     thd: it will also be visible in the Opac and Intranet if it exists
21:36 thd       kados: then do we have hidden in the editor even if empty?
21:36 kados     thd: that's also 7
21:37 kados     thd: it will be hidden but the value won't be lost
21:37 kados     thd: if expanded it will be visible
21:37 kados     thd: make sense?
21:37 thd       kados: do we have something to distinguish the 2 cases?
21:37 kados     thd: no, that's too hard to do at this point
21:37 thd       kados: is it not just one more option?
21:38 kados     thd: no :-)
21:38 chris     ok, ill keep my show_me idea for 3.0
21:38 kados     chris: sounds great
21:38 chris     it would be nice to have a nice api like that, that you can just call for any bit of data to find out if you should show it or not
21:39 kados     definitely
21:39 kados     but it's more complicated than just showing and not showing
21:39 thd       kados: why is it not merely a slight variation on the other with the corresponding difference in the code?
21:39 kados     you've got 'hidden but there' and 'not there'
21:39 chris     right
21:40 kados     and 'not there' is 'there' if it exists or if you ask for it :-)
21:40 chris     hmm i cant think of a nice way to do this
21:40 chris     given that its currently in lots of places
21:40 kados     me either, that's why I pinged you :-)
21:40 thd       kados: you are using only 2 valued logic
21:41 thd       kados: I thought that multi-valued logic was in the ascendancy
21:41 kados     thd: we would need to add that case three more times
21:42 kados     thd: and we only have two more values :-)
21:42 thd       kados: yes I appreciate that
21:42 thd       kados we have plenty of negative numbers
21:42 kados     chris: the best way to represent it is with a binary encoding
21:43 chris     hmmm
21:43 kados     you've got:
21:43 thd       kados: what is bes as binary?
21:43 kados     'opac' 'intranet' 'editor' 'hidden in editor'
21:43 kados     1000 = hidden only in the opac
21:44 kados     1100 means hidden in the opac and the intranet but not in the editor
21:44 chris     hmm
21:44 kados     etc
21:44 kados     the assumption is always that if a value exists it's going to show up in the editor I think
21:44 thd       kados: best meaning easiest to code and furthest from a model of the world?
21:44 chris     you could do it with 4 boolean columns, that would make fetching hella fast
21:44 chris     thd: thats certainly not the easiest to code
21:45 chris     kados's idea
21:45 kados     chris: you sure?
21:45 thd       chris i like adding another bool
21:45 kados     chris: all you need to do in that case is check the value for wherever you are
21:45 chris     yeah its easy to code, but not the easiest
21:46 kados     what's easier?
21:46 chris     adding columns to the table and doing it with sql
21:46 chris     but your way is more flexible, ie its easier to add another variable
21:46 kados     well, I agree, but take a look in addbiblio.pl and you'll see that that would require a ton more programming :-)
21:47 thd       chris that was my original suggestion
21:47 kados     this encoding scheme would be easy to implement and is more flexible in the long run
21:47 kados     but we've digressed I think
21:47 chris     yep
21:47 kados     into talking about 3.0 :-)
21:48 kados     so ... notes to selves ... keep talking about this idea
21:48 kados     in the meantime ... can we agree on the scheme we've devised thd?
21:48 kados     for 2.2.6?
21:49 thd       kados: we have plenty of negative numbers what happens if you redistribute the list with the  3 extra cases using the negatives as well?
21:49 kados     hmmm
21:49 kados     well we could represent 6 and 7 as -1 and -2
21:50 thd       kados: the editor needs to be fast to work with I think those extra cases are important for that
21:50 kados     then <=0 would always be OPAC visible
21:50 kados     thd: I can't imagine when you'd need them
21:50 kados     OPAC Intranet Editor (but hidden) covers those cases
21:50 kados     (7)
21:50 thd       kados: especially as I am going to have to use it soon even if  script a large part of that job
21:51 kados     right
21:52 kados     thd: hang on
21:52 kados     thd: new scheme coming :-)
21:52 thd       kados: I can certainly imagine one of the cases although I have not thought about the corollary 2
21:53 kados     * -2 OPAC Intranet !Editor (unless it exists; it can also be created)
21:53 kados     * -1 OPAC Intranet Editor (but hidden)
21:53 kados     * 0 => visible everywhere
21:53 kados     * 1 => !OPAC Intranet Editor
21:53 kados       2 => !OPAC !Intranet Editor
21:53 kados       3 => !OPAC !Intranet !Editor (unless it exists; it can also be created)
21:53 kados       4 => !OPAC !Intranet Editor (but hidden)
21:53 kados       5 => !OPAC Intranet !Editor (unless it exists; it can also be created)
21:53 kados     that's the best so far
21:53 kados     with that scheme we can do things like:
21:53 kados     if (<=-2) {not in the editor}
21:54 kados     if (<=0) {visible in the OPAC}
21:54 kados     if (>0) { invisible in the OPAC }
21:55 thd       kados: why do we have fewer cases now?
21:56 kados     fewer cases?
21:56 kados     I see 8 cases
21:57 thd       kados some how I missed -2
21:57 kados     ahh
21:58 thd       kados: so what about my 3 extra cases?
21:58 kados     I'm thinking
21:58 kados     it might actually be 6 extra cases :-)
21:58 thd       we are not out of numbers yet
21:58 kados     heh
21:59 kados     so what's the distinction? I'm loosing track :-)
22:00 thd       kados: I am not fully alert enough to keep all the ramifications in my mind at the same time but  I know about the issue of editor efficiency and inefficiency all too well
22:01 thd       kados: I have tried to distinguish expanded and collapsed in the JavaScript for all permutations
22:02 kados     ok ... give me a sec
22:03 thd       kados: in addition to not enough room in the client JavaScript but we need to be able to get at it form the server
22:03 thd       if we need it
22:04 thd       obviously that case goes to the client if it has a value
22:07 kados     thd: there are 16 possible cases
22:08 thd       but that is exactly where in some cases it may be important to hide it or collapse it in the editor because it may be in the way for efficient editing even when a value is already present.
22:08 kados     thd: 2 ^ 4
22:08 thd       kados INT(2)
22:08 kados     thd: well, we can handle 16 cases ... we can handle 19 in fact
22:09 kados     thd: some of them will _never_ be used unfortunately :-)
22:09 thd       kados: so what would never be used?
22:09 kados     hang on a sec
22:15 kados     thd: are you really going to want to have to keep 16 possible values in your head while you edit the framework?
22:15 kados     thd: it might be weeks before the framework is done :-)
22:16 thd       kados: I would not have to keep them in my head at the same time if I had any logical way of organising them in my mind
22:18 thd       kados: my English vocabulary is smaller than that of James Joyce but it is larger than 16 and I manage that because of semantic association and logical relation
22:19 kados     here are all the possible values organized according to the binary representation with '0' in the right place
22:19 kados     -8 =>  OPAC  Intranet  Editor  Collapsed
22:19 kados     -7 =>  OPAC  Intranet  Editor !Collapsed
22:19 kados     -6 =>  OPAC  Intranet !Editor  Collapsed
22:19 kados     -5 =>  OPAC  Intranet !Editor !Collapsed
22:19 kados     -4 =>  OPAC !Intranet  Editor  Collapsed
22:19 kados     -3 =>  OPAC !Intranet  Editor !Collapsed
22:20 kados     -2 =>  OPAC !Intranet !Editor  Collapsed
22:20 kados     -1 =>  OPAC !Intranet !Editor !Collapsed
22:20 kados     -0 => !OPAC  Intranet  Editor  Collapsed
22:20 kados      1 => !OPAC  Intranet  Editor !Collapsed
22:20 kados      2 => !OPAC  Intranet !Editor  Collapsed
22:20 kados      3 => !OPAC  Intranet !Editor !Collapsed
22:20 kados      4 => !OPAC !Intranet  Editor  Collapsed
22:20 kados      5 => !OPAC !Intranet  Editor !Collapsed
22:20 thd       kados: If the numerical assignment was random I might have difficulty and make many mistakes but if there is a useful pattern I will surely know it well  by subfield number 3,600
22:20 kados      6 => !OPAC !Intranet !Editor  Collapsed
22:20 kados      7 => !OPAC !Intranet !Editor !Collapsed
22:20 kados     however, it's not the best organization for us I don't think
22:22 thd       kados: what would make a better organisation?
22:23 kados     I'm working on it :-)
22:23 kados     give me a sec
22:23 thd       kados: what happened to INT(2) for the natural parameter variations that you found
22:23 thd       ?
22:24 kados     I don't know how that would be helpfu
22:24 kados     l
22:25 kados     thd: we need to eliminate 4 cases from the above scheme
22:25 kados     thd: to maximize organization
22:26 kados     when would this happen:
22:26 kados     !OPAC !Intranet  Editor !Collapsed
22:26 kados     ever?
22:28 thd       these a private value for use in the editor with certain privileges
22:30 thd       examples might include notes relating to acquisitions information that were held in confidence to protect a relationship with a funder or vendor
22:31 thd       similar examples might be the valuation of a rare item so as not to make it a target of theft
22:33 kados     ok, here we are:
22:33 kados       -8 =>  OPAC  Intranet !Editor  Collapsed
22:33 kados       -7 =>  OPAC  Intranet !Editor !Collapsed
22:33 kados       -6 =>  OPAC !Intranet !Editor  Collapsed
22:33 kados       -5 =>  OPAC !Intranet !Editor !Collapsed
22:33 kados       -4 =>  OPAC !Intranet  Editor  Collapsed
22:33 kados       -3 =>  OPAC !Intranet  Editor !Collapsed
22:33 kados       -2 =>  OPAC  Intranet  Editor  Collapsed
22:34 kados       -1 =>  OPAC  Intranet  Editor !Collapsed
22:34 kados       -0 => !OPAC  Intranet  Editor  Collapsed
22:34 kados        1 => !OPAC  Intranet  Editor !Collapsed
22:34 kados        2 => !OPAC !Intranet  Editor  Collapsed
22:34 kados        3 => !OPAC !Intranet  Editor !Collapsed
22:34 kados        4 => !OPAC !Intranet !Editor  Collapsed
22:34 kados        5 => !OPAC !Intranet !Editor !Collapsed
22:34 kados        6 => !OPAC  Intranet !Editor  Collapsed
22:34 kados        7 => !OPAC  Intranet !Editor !Collapsed
22:34 kados     that's optimized to distinguish between visibility in the OPAC, whether it exists in the editor, and whether it's collapsed or not
22:35 kados     ie:
22:35 kados     if (even) { collapsed }
22:35 kados     if (odd) { !collapsed }
22:35 kados     if (>=0) { hidden in OPAC }
22:35 kados     if ((<=-5)||(>=4)) { not in the editor }
22:35 kados     it's trickier to determin visibility in the intranet, but I don't plan to implement that anyway
22:35 thd       :)
22:36 kados     shoot ... I made a mistake
22:36 kados     0 isn't right ... hang on
22:36 thd       thats what happens when you assign a signed value to 0
22:37 thd       +
22:37 kados     here we go:
22:37 kados       -8 =>  OPAC  Intranet !Editor !Collapsed
22:37 kados       -7 =>  OPAC  Intranet !Editor  Collapsed
22:37 kados       -6 =>  OPAC !Intranet !Editor !Collapsed
22:37 kados       -5 =>  OPAC !Intranet !Editor  Collapsed
22:37 kados       -4 =>  OPAC !Intranet  Editor !Collapsed
22:37 kados       -3 =>  OPAC !Intranet  Editor  Collapsed
22:37 kados       -2 =>  OPAC  Intranet  Editor !Collapsed
22:37 kados       -1 =>  OPAC  Intranet  Editor  Collapsed
22:37 kados       -0 => !OPAC  Intranet  Editor !Collapsed
22:37 kados        1 => !OPAC  Intranet  Editor  Collapsed
22:37 kados        2 => !OPAC !Intranet  Editor !Collapsed
22:37 kados        3 => !OPAC !Intranet  Editor  Collapsed
22:37 kados        4 => !OPAC !Intranet !Editor !Collapsed
22:37 kados        5 => !OPAC !Intranet !Editor  Collapsed
22:37 kados        6 => !OPAC  Intranet !Editor !Collapsed
22:37 kados        7 => !OPAC  Intranet !Editor  Collapsed
22:37 kados     if (odd) { collapsed }
22:37 kados     if (even) { !collapsed }
22:37 kados     if (>=0) { hidden in OPAC }
22:37 kados     if ((<=-5)||(>=4)) { not in the editor }
22:38 kados     hmmm, that might not be right either :/
22:39 kados     missing one:
22:39 kados       -9 =>  OPAC  Intranet !Editor  Collapsed
22:40 kados     no, that -7 ... grrr
22:41 kados     yea, they are all there
22:41 kados     thd: do you approve?
22:43 thd       kados: may we have an additional parameter for visible in the editor but you cannot change the value manually because it is an important system value?
22:43 kados     that already exists
22:44 thd       kados: which one or ones is that?
22:44 kados     if we add that we're up to 32 possible values :-)
22:44 kados     2 ^ 5 :-)
22:45 thd       kados: no it would only add the 3 we have left because it would only apply to the editor
22:45 kados     thd: I was joking, we don't have it
22:45 kados     I see
22:47 thd        it would be protected retrievable, present expanded, present collapsed for the editor only
22:47 thd       actually retrievable would not apply unless you could manually create it
22:48 thd       kados: so we still have one value left for applicable if some other external factor is true
22:49 thd       kados: there, we have now filled all the places
22:49 kados       -9 =>  OPAC  Intranet !Editor  Collapsed Can't edit
22:49 kados       -8 =>  OPAC  Intranet !Editor !Collapsed
22:49 kados       -7 =>  OPAC  Intranet !Editor  Collapsed
22:49 kados       -6 =>  OPAC !Intranet !Editor !Collapsed
22:49 kados       -5 =>  OPAC !Intranet !Editor  Collapsed
22:49 kados       -4 =>  OPAC !Intranet  Editor !Collapsed
22:49 kados       -3 =>  OPAC !Intranet  Editor  Collapsed
22:49 kados       -2 =>  OPAC  Intranet  Editor !Collapsed
22:49 kados       -1 =>  OPAC  Intranet  Editor  Collapsed
22:49 kados       -0 => !OPAC  Intranet  Editor !Collapsed
22:49 kados        1 => !OPAC  Intranet  Editor  Collapsed
22:49 kados        2 => !OPAC !Intranet  Editor !Collapsed
22:49 kados        3 => !OPAC !Intranet  Editor  Collapsed
22:49 kados        4 => !OPAC !Intranet !Editor !Collapsed
22:49 kados        5 => !OPAC !Intranet !Editor  Collapsed
22:49 kados        6 => !OPAC  Intranet !Editor !Collapsed
22:49 kados        7 => !OPAC  Intranet !Editor  Collapsed
22:49 kados        8 => !OPAC  Intranet  Editor !Collapsed Can't edit
22:49 kados        9 => !OPAc  Intranet  Editor  Collapsed Can't edit
22:49 kados     thd: like that?
22:50 thd       kados: we only need 2 cannot edit options
22:50 kados     yea
22:50 kados     is protected the same as 'system generated'?
22:50 thd       kados: yes
22:50 kados     I say we skip protected since we can't fully implement it
22:50 kados     we wait for 3.0 to do that
22:51 kados     thd: can you live with that?
22:52 kados     thd: ?
22:52 thd       kados: yes so I have 3 places to add a value if I think of something to do with OCLC, RLIN, and Canada, what would the behaviour of the other 3 places be for the greater less than odd
22:53 thd       even easy function
22:53 kados     wait ... before we go there
22:53 kados     are we implementing protected or not?
22:55 thd       kados: if you are not coding it we have no need to implement it and it is very few subfields to which it would be applicable so it would be very easy to modify frameworks for that in 3.0
22:55 kados     k ... we'll leave it out then
22:56 thd       kados: so what would the default behaviour of the 3 remaining places be under the simple rules you were able to construct for everything?
22:57 kados     How to use when editing the frameworks:
22:57 kados     (ordered by frequency of use I think)
22:57 kados      0 if you want it everywhere
22:57 kados     -7 only present if exists and expanded if exists
22:57 kados     -2 always present and always expanded
22:57 kados     I think that should cover most cases
22:58 kados     unless you want to also implement '3' (invisible everywhere but the editor and collapsed in the editor)
22:58 kados     frankly, I can't see the utility of having so many :-)
23:00 thd       kados: maybe they would not all be used but knowing they are there make me more comfortable about not forgetting something and then there is no time to fix it after coding and specification 1800 subfields
23:00 kados     good point
23:02 thd       kados: I think we have better ideas for 3.0 along the lines chris suggested and I had proposed at the outset with more than just 4 columns even
23:02 kados     yep
23:02 kados     so do you feel comfortable with the scheme now? can I start coding it?
23:03 thd       kados: so my remaining question is hat is the default behaviour of the 3 places that we had considered assigning to protected?
23:03 thd       s/hat/what/
23:05 kados     which three are those?
23:05 thd       -9, 8, and 9
23:06 kados     I see
23:06 kados     let's flag all of those as -9
23:06 kados     that will make it easy to go back and fix them later
23:06 thd       kados: so they would all do the same thing?
23:06 kados     if they're -9 they won't show up in the editor unless they exist
23:07 kados     yes, for now they will
23:08 kados     ie, I don't plan to implement the protected scheme
23:08 kados     but if you know of cases where things should be protected and want to mark them for 3.0 you can use -9
23:08 kados     that leaves us 8 and 9 to flag anything else we may have forgotten about tonight :-)
23:09 thd       kados: I am not asking about protected but about whatever may be more important that we have not thought about well enough
23:10 kados     for 2.2 I'm only implementing four things:
23:10 kados     if (odd) { collapsed }
23:10 kados     if (even) { !collapsed }
23:10 kados     if (>=0) { hidden in OPAC }
23:10 kados     if ((<=-5)||(>=4)) { not in the editor unless exists or is added}
23:10 kados     oops, typo there
23:11 kados     no, it's right
23:11 kados     those four rules are the only ones I'm implementing
23:11 kados     make sense?
23:12 thd       kados: I am thinking about whether that excludes the one rule I had mentioned before the cleaner design
23:12 kados     which one?
23:13 thd       kados: I am trying to remember well
23:14 kados     the distinction between collapsed and !collapsed when dealing with Editor and !Editor?
23:14 kados     my implementation will preserve that distinction
23:15 kados     I determined that OPAC, Editor and Collapsed were the most important distinctions
23:15 kados     for now, I'm ignoring Intranet
23:16 kados     meaning that probably I'll just make Intranet always visible until I have more time to properly handle it
23:16 kados     thd: but you can feel free to use the entire range of values
23:16 thd       kados: I think it is covered now that I elucidated that value of expanded and collapsed clearly
23:16 kados     yep
23:16 kados     so we agree finally?
23:17 thd       kados: this is very elegant
23:17 kados     thd: i don't know about elegant, but it's at least complete :-)
23:18 thd       kados: the way that odd and even works that aspect seems elegant
23:18 kados     yea, I'm most proud of that :-)
23:18 kados     ok ... I'm ready to get to work on this
23:19 thd       wait just one moment
23:19 kados     ok
23:43 kados     just found a type:
23:43 kados     typo even
23:43 kados     here's the revised version:
23:43 kados       -9 =>  Flag
23:43 kados       -8 =>  OPAC  Intranet !Editor !Collapsed
23:43 kados       -7 =>  OPAC  Intranet !Editor  Collapsed
23:43 kados       -6 =>  OPAC !Intranet !Editor !Collapsed
23:43 kados       -5 =>  OPAC !Intranet !Editor  Collapsed
23:43 kados       -4 =>  OPAC !Intranet  Editor !Collapsed
23:43 kados       -3 =>  OPAC !Intranet  Editor  Collapsed
23:43 kados       -2 =>  OPAC  Intranet  Editor !Collapsed
23:43 kados       -1 =>  OPAC  Intranet  Editor  Collapsed
23:43 kados        0 =>  OPAC  Intranet  Editor !Collapsed
23:43 kados        1 => !OPAC  Intranet  Editor  Collapsed
23:43 kados        2 => !OPAC !Intranet  Editor !Collapsed
23:43 kados        3 => !OPAC !Intranet  Editor  Collapsed
23:43 kados        6 => !OPAC !Intranet !Editor !Collapsed
23:43 kados        5 => !OPAC !Intranet !Editor  Collapsed
23:44 kados        6 => !OPAC  Intranet !Editor !Collapsed
23:44 kados        7 => !OPAC  Intranet !Editor  Collapsed
23:44 kados        8 => !OPAC  Intranet  Editor !Collapsed
23:45 kados     so are we ready to get working?
23:45 thd       yes ready
23:46 kados        9 => Future use
23:46 kados     (btw)
23:46 kados       -9 => Future use
23:46 kados     (too)
23:46 kados     :-)
23:46 kados     woops ... -9 already taken
23:46 kados     so just 9 then
01:01 kados     yay logbot
01:02 thd       kados: so I had asked about what values you would expect to be assigning to 952
01:04 thd       kados: also if the existing records are using 090 already for  OCLC, RLIN etc. the current assignment is 09o until 090 has a better place.
01:05 thd       kados: the current assignment for 952 for ARLIN users is 95r.
01:07 thd       kados: there are a few other fields like that which are only of interest to Canadian customers with legacy records or maybe RLIN customers.
01:08 thd       \d\d[cor] finds them in the SQL file
01:13 thd       kados: are you still with us?
01:13 kados     yea kinda
01:14 thd       kados: would you rather concentrate on that before you fall asleep
01:14 kados     yea ...
01:15 kados     that way the MARC Framework you're working on now will actually work for my client in the morning :-)
01:16 thd       kados: ok ping me when you want to consider consider holdings mappings so that I could coordinate that well
01:29 kados     chris: I think my perl's getting better :-)
01:30 kados     chris: check this out:
01:30 kados     $subfield_data{visibility} = "display:none" unless ($tagslib->{$tag}->{$subfield}->{hidden}%2==0); #check parity
01:30 kados     even works for '0' :-)
01:30 kados     w00t
01:38 thd       even works for negative nothing :)
01:38 kados     thd: ok ... got our basic cases working
01:38 kados     thd: with the new scheme
01:39 kados     thd: so as soon as that new framework's ready we'll be good to go
01:39 kados     I'm gonna work on the more refined display issues now
01:40 thd       kados: koha problems fall rapidly to determined onslaught
01:40 kados     yay for that :-)
01:40 thd       what are refined display problems
01:41 thd       ?
01:41 kados     don't know yet, need to run some test
01:41 kados     s
01:50 kados     now the OPAC will display anything with a 'hidden' value less than or equal to 0
01:58 kados     thd: are you working on the MARC framework?
01:58 kados     thd: i need to make a slight revision
01:58 thd       kados yes
02:00 kados     thd: have you use '6' '8' or '2' yet?
02:01 thd       kados: I am still formatting a nice sign to guide me :)
02:01 thd       printed sign
02:01 thd       so I guess the answer is no
02:01 kados     ok ... wait a second because I need to revise something that I overlooked when fixint the '0' last time
02:06 kados       -9 =>  Flag
02:06 kados       -8 =>  OPAC  Intranet !Editor !Collapsed
02:06 kados       -7 =>  OPAC  Intranet !Editor  Collapsed
02:06 kados       -6 =>  OPAC !Intranet !Editor !Collapsed
02:06 kados       -5 =>  OPAC !Intranet !Editor  Collapsed
02:06 kados       -4 =>  OPAC !Intranet  Editor !Collapsed
02:06 kados       -3 =>  OPAC !Intranet  Editor  Collapsed
02:06 kados       -2 =>  OPAC  Intranet  Editor !Collapsed
02:06 kados       -1 =>  OPAC  Intranet  Editor  Collapsed
02:07 kados        0 =>  OPAC  Intranet  Editor !Collapsed
02:07 kados        1 => !OPAC  Intranet  Editor  Collapsed
02:07 kados        2 => !OPAC !Intranet  Editor !Collapsed
02:07 kados        3 => !OPAC !Intranet  Editor  Collapsed
02:07 kados        4 => !OPAC  Intranet  Editor !Collapsed
02:07 kados        5 => !OPAC !Intranet !Editor  Collapsed
02:07 kados        6 => !OPAC  Intranet !Editor !Collapsed
02:07 kados        7 => !OPAC  Intranet !Editor  Collapsed
02:07 kados        8 => !OPAC !Intranet !Editor !Collapsed
02:07 kados        9 => Future use
02:18 kados     eep
02:18 kados     found another problem
02:18 kados     -2 == 0
02:18 kados     :/
02:18 kados     thd: sotp
02:18 kados     thd: stop even
02:20 thd       kados: ok stopped
02:20 thd       so it does
02:20 kados     I can't see a way around it without losing our nice even/odd
02:20 thd       kados what should it be for whatever is missing
02:21 thd       ?
02:21 kados     nothing is missing unfortunately
02:22 kados     I think I need to re-arrange the entire top section
02:23 thd       kados: there must be something oh so i had not noticed when you added something for one of the previously available points
02:23 thd       s/available/unassigned/
02:24 kados       -9 => Future use
02:24 kados       -8 =>  Flag
02:24 kados       -7 =>  OPAC !Intranet !Editor  Collapsed
02:24 kados       -6 =>  OPAC  Intranet !Editor !Collapsed
02:24 kados       -5 =>  OPAC  Intranet !Editor  Collapsed
02:24 kados       -4 =>  OPAC !Intranet !Editor !Collapsed
02:24 kados       -3 =>  OPAC !Intranet  Editor  Collapsed
02:24 kados       -2 =>  OPAC !Intranet  Editor !Collapsed
02:24 kados       -1 =>  OPAC  Intranet  Editor  Collapsed
02:24 kados        0 =>  OPAC  Intranet  Editor !Collapsed
02:24 kados        1 => !OPAC  Intranet  Editor  Collapsed
02:24 kados        2 => !OPAC !Intranet  Editor !Collapsed
02:24 kados        3 => !OPAC !Intranet  Editor  Collapsed
02:24 kados        4 => !OPAC  Intranet  Editor !Collapsed
02:25 kados        5 => !OPAC !Intranet !Editor  Collapsed
02:25 kados        6 => !OPAC  Intranet !Editor !Collapsed
02:25 kados        7 => !OPAC  Intranet !Editor  Collapsed
02:25 kados        8 => !OPAC !Intranet !Editor !Collapsed
02:25 kados        9 => Future use
02:25 kados     revised the top portion
02:25 kados     hopefully that is the last revision :/
02:25 kados     if only there was a way to represent Intranet easily
02:25 kados     hmmm
02:26 thd       all are now happily unique again
02:26 kados     I'm still irked by Intranet :/
02:27 kados     ahh well, i think that's the best we can do
02:28 thd       what does flag do?
02:29 kados     it will act identical to -6
02:30 thd       kados: why is it called flag?
02:30 kados     thd: I thought you agreed we'd use it to 'flag' subfields that didn't fit into the current scheme
02:31 thd       I did although I was not certain what that actually meant in practise
02:33 kados     it's up to you :-)
02:34 thd       kados: so why should -8 be the same as 6 not that it really matters?
02:35 kados     thd: what I mean is that the current code will treat -8 the same as it treats -6
02:35 kados     thd: future code could treat them differently if need be
02:35 kados     thd: current code is: if ((<=-4)||(>=5)) { not in the editor unless exists or is added}
02:36 kados     thd: so as long as it's >=5 it's treated the same in the editor (and it's even, so it's !Collapsed)
02:36 kados     thd: make sense?
02:36 thd       yes
02:37 thd       everything makes more sense more quickly when i am fully awake
02:37 kados     :-)
02:39 thd       so have you discovered any finer display problems?
02:43 thd       kados: aside form the fact that it would be great if we could tab key through the editor without having to pass all the left frame navigation links first?
02:44 thd       s/frame/table/
02:58 kados     there are display issues with the Intranet
02:59 kados     I think I can fix them quite easily though
03:07 thd       kados: does collapsed or not collapsed mean anything for not editor?
03:12 kados     no
03:12 kados     thd: have you started actually implementing the scheme in the frameworks yet? I'm curious which ones are most frequent
03:13 thd       kados: good to know that we were thorough enough to include the logically impossible :)
03:14 thd       kados: I am staring and the last version of the nice print out to select which ones will be the most prevalent
03:15 thd       s/print out/schema design for hidden/
03:18 kados     I'm guessing 0 and -5
03:18 kados     followed closely by -1
03:19 kados     probably 0, -5 and -1 cover 99% of cases
03:19 kados     thd: do you agree?
03:20 thd       kados: what does -5 do for us?
03:20 thd       except reassure us that we have been thorough
03:20 kados     -5 is the key to having a trimmed down editor that doesn't crash the browser
03:20 kados     -5 should be used on all 'rare' fields/subfields
03:21 kados     (or -6 depending on your preference)
03:21 kados     so for purposes of our scheme
03:21 thd       kados -5 is not editor so that is not editor unless populated?
03:21 kados     it's useful to distinguish between 'common', 'uncommon' and 'rare'
03:21 kados     thd: correct
03:22 kados     'common' is 0, 'uncommon' is -1, 'rare' is -5
03:22 kados     thd: the assumption is always that if the value exists it will be saved
03:22 kados     thd: (even if it is Collapsed)
03:23 thd       kados: MARC must be considered mostly rare to avoid JavaScript overload
03:23 kados     thd: yep
03:23 kados     thd: not javascript overload ... browser overload
03:23 kados     it's the sheer size of the page that's the problem
03:24 kados     network + browser rendering + javascript parsing
03:24 kados     = dead browser :-)
03:24 kados     unless (numberof MARC fields is small);
03:24 kados     :-)
03:25 kados     thd: I will be faster to mark fields as 0, -1, or -5 for now I think
03:26 thd       kados: so I will start with everything set to -5 and work from there adding 0 next to the most important fields and then add others mostly under -1
03:26 kados     thd: otherwise it might take weeks :-)
03:26 kados     thd: sounds great
03:26 thd       right
03:27 thd       kados: I was confused for a few minutes about what not editor meant, for if populated.
03:28 kados     right
03:28 kados     it simply means that it won't show up unless it exists or if you create it
03:29 thd       kados: do you want to consider the holdings fields or are you still fixing other fields
03:29 kados     thd: don't worry about those, I can manually add them when the new scheme is in place
03:29 thd       kados: and we have no mechanism for creating it now if it does not exist
03:30 kados     thd: that's true, i was going to work on that problem right now
03:30 thd       kados: wow
03:30 kados     though it may be tricky
03:30 kados     I _shouhld_ be able to do it with 'addfield' if I properly construct things
03:30 kados     then all we have left is subfield repeatability and re-ordering :-)
03:32 thd       kados goes from crashing Koha form opening the editor to a functioning system all in one sleepless night
03:32 kados     :-)
03:44 thd       kados: -6 is probably a better generic default with -5 for the many non-Koha holdings fields.
03:52 thd       kados: make that -6 followed by 5 for non-Koha holdings
04:22 kados     k
04:38 kados     thd: have a look at the 0XX tab
04:38 kados     thd: I've made some stylistic changes
04:39 kados     thd: moved the subfield label to be a rollover on the subfield itself
04:39 kados     thd: and changed from clicking on a 'up arrow' to clicking on the subfield code to expand hidden subfields
04:40 kados     also adjusted the size of the subfield input box
04:40 kados     thd: let me know what you think
04:41 kados     (page will take forever to load with the last framework you gave me :-))
04:45 thd       kados: you have hidden the labels for the unhidden subfields? :)
04:47 thd       record editor still loading
04:48 thd       kados: if you hide the labels only professional cataloguer's will be able to use it easily.
04:49 kados     thd: roll your mouse over the subfield code
04:49 kados     thd: I'm trying to cut down on the clutter of the page
04:50 thd       kados: that takes precious cataloguing time which there is never in sufficient supply.
04:50 kados     thd: if you roll your mouse over the subfield code the label will appear
04:50 kados     well, it should at least be an option
04:51 kados     ie turn on/off visible labels
04:51 kados     for subfields
04:51 kados     how do you like the new method for expanding hidden subfields?
04:51 thd       kados: look at the default templates. the editor is very space conservative there although the display could use a background colour.
04:53 kados     I wouldn't call that space conservative, but I guess it's a judgement call
04:53 thd       my pointer arrow changes to a text insertion tool when I am over the correct location for expanding the subfields.
04:54 kados     thd: click on it
04:54 kados     thd: it will expand
04:55 thd       I saw that it did but the change in pointer prior to clicking was disconcerting as it was contrary to usual behaviour in the world
04:57 thd       kados: this difference may be an improvement but my inclination was to try to reposition the arrow pointer rather than click when the arrow disappeared.
04:58 kados     well I can change the mouse pointer type on hover over that element
04:59 kados     later :-)
04:59 thd       kados: I miss the labels
04:59 kados     heh
05:00 thd       kados: semantic labels in plain view are good
05:00 kados     I'll make it a system preference
05:00 kados     eventually
05:00 kados     right now I'm working on subfield repeatability
05:00 thd       kados: it is the codes that we should be hiding except that professional cataloguers need them
05:00 kados     hurmph
05:01 kados     hard to please everyone
05:02 thd       kados:if it was mostly professional cataloguers using the application then they probably may thick that semantic labels is not serious enough
05:03 thd       kados: however the pool of potential users is much larger than professional cataloguers who actually seem rather uncommon in your part of the country.
05:05 kados     so we make it a system preference "professionalCataloger" :-)
05:05 thd       kados: There is scarcely a cataloguing job within 100 miles of NYC that does not require an MLS.  It may not require actual competence but does require an MLS.
05:06 thd       kados: and the cataloguing jobs anywhere near NYC also require fluency in an important non-English language for the collection.
05:07 kados     right
05:08 thd       kados: It shocks me to know that places like NPL have paraprofessionals when all I have seen are closed union shops near me.
05:09 kados     yea, NPL's catalogers don't even have MLSes :-)
05:10 thd       kados: I do know that Westchester county libraries use paraprofessionals but that is very unusual in union country.
05:14 thd       kados: an MLS is not really a qualification but merely a union certificate that serves as qualification for both the well qualified and the barely passing but I rant.
05:18 thd       naturally I have no certificates.  I have only chased knowledge but not certificates.
05:21 thd       kados: does null and maybe empty string work like 0 not that I would supply them?
05:21 kados     yes
05:21 kados     but please use '0' as the default
05:21 kados     ok ... I'm off to bed
05:21 kados     night all
05:21 thd       good because at least null is already there in some cases.
05:21 thd       good night kados
05:23 pierrick  hello #koha
05:24 thd       good morning pierrick
05:24 pierrick  morning thd
05:25 thd       #koha never sleeps
05:47 pierrick  hi Paul
05:47 paul      hello
05:48 pierrick  I'm answering to Dominique Girod on deleted biblio
05:48 pierrick  (prepraring the answer)
05:51 paul      great !
05:58 pierrick  in Koha intranet menu, how do you reach maint/catmaintain.pl ?
05:59 pierrick  in detail I suppose
06:00 paul      catmaintain is somtething I made unreachable with default templates, as it can break a lot MARC datas. It only works when MARC=OFF
06:01 pierrick  OK... so undeletion can't work when MARC=OFF ?
06:04 chris     it only works when MARC=OFF
06:05 chris     the maintenance scripts didnt get ported to MARC
06:05 pierrick  oups, of course I read too quickly
06:06 pierrick  so, if I understand well, when MARC=ON, deleted biblio are saved to deletedbiblio, but can't be searched (by title) and can't be undeleted
06:06 chris     thats right
06:06 pierrick  very clear, thanks
06:09 chris     im not sure it will work right with MARC=OFF either actually
06:09 chris     as the searches search the MARC tables, even with MARC=OFF
06:10 chris     so if undelete doesnt rebuild the marc data, the biblio will exist in the biblio table, but wont be searchable
06:10 chris     i have to get the undelete working for HLT who use 2.2.5
06:10 chris     so ill commit the fix to rel_2
06:11 chris     rel_2_2 even :)
06:13 pierrick  OK, I said to Koha french informations mailing list it was working with MARC=OFF
06:14 chris     ahh, it wont be linked in the templates still, so the wont be able to find it :-)
06:14 chris     the=they
07:21 pierrick  paul: I keep investigating on UTF-8 problem with HEAD
07:21 paul      yes, and ?
07:21 pierrick  I've tested to change charset to UTF-8 in 2.2, and it works fine
07:22 pierrick  in HEAD, it seems that data in database are correctly stored with "set names 'UTF8';"
07:22 paul      thus it's a template problem you think ?
07:23 pierrick  without "set names 'UTF8';", french accented characters are correctly displayed but not very special characters (like the ones we were testing yesterday)
07:24 paul      doesn't it mean it's considered as iso8859-1 ?
07:24 pierrick  when and why Perl would convert UTF-8 data to iso-8859-1 ?
07:25 paul      it's just an idea.
07:25 pierrick  my Perl version is the same on Koha 2.2 and HEAD
07:25 paul      right.
07:58 pierrick  paul: I've tested to output the result of biblio_framework to a file instead of browser, it works great...
07:58 paul      this confirm the template problem.
07:58 paul      ?
07:58 pierrick  :-) victory
07:59 pierrick  you had done something else about utf-8...
07:59 paul      let me know...
07:59 pierrick  C4/Interfaces/CGI/Output.pm:109
07:59 pierrick  binmode...
07:59 pierrick  remove this line, enjoy
08:00 chris     wooo good spotting pierrick
08:00 paul      yes i've added this line. but someone told me I should add this line.
08:00 paul      the question being why ?
08:00 paul      i can't remember atm
08:01 pierrick  I suppose this was forcing a new useless conversion
08:01 chris     perl 5.6
08:01 chris     didnt handle utf-8 as nicely
08:01 paul      alleluia & applause for pierrick !
08:01 pierrick  :-D
08:02 paul      I let you commit this big fix.
08:02 pierrick  right
10:50 kados     w00t!
10:50 kados     great detective work pierrick
10:50 paul      in fact kados, i added this like voluntary. To see if pierrick could find it...
10:51 paul      ('morning)
10:51 paul      (who said i'm a liar ?)
10:53 pierrick  hi kados
10:54 pierrick  paul: that's what I was thinking whil lunching ;-)
10:54 paul      Ihope you had a good lunch even..
10:54 pierrick  of course