On Apr 18, 2011, at 10:33 AM, Guillaume Lerouge wrote: > Hi, > > On Mon, Apr 18, 2011 at 09:30, Marius Dumitru Florea < > [email protected]> wrote: > >> On 04/18/2011 09:49 AM, Vincent Massol wrote: >>> Hi Marius, >>> >>> On Apr 18, 2011, at 8:38 AM, Marius Dumitru Florea wrote: >>> >>>> On 04/18/2011 09:14 AM, Vincent Massol wrote: >>>>> >>>>> On Apr 18, 2011, at 7:27 AM, Marius Dumitru Florea wrote: >>>>> >>>>>> On 04/17/2011 11:02 PM, Vincent Massol wrote: >>>>>>> Hi Marius, >>>>>>> >>>>>>> On Apr 13, 2011, at 4:37 PM, Marius Dumitru Florea wrote: >>>>>>> >>>>>>>> Hi devs, >>>>>>>> >>>>>>>> Do we have a specification for what a tag is inside XWiki? On >>>>>>>> >> http://extensions.xwiki.org/xwiki/bin/view/Extension/Tag+Application >>>>>>>> tags are defined as keywords but no constraints are specified. >>>>>>>> >>>>>>>> I'd like to enforce this two constraints on tags: >>>>>>>> * tags can't have leading and trailing white space characters >>>>>>> >>>>>> >>>>>>> I'm not sure if you mean using space as a separator or not here. If >> space is used as a separator then it should be allowed to use quotes (such >> as: "<space>*tagvalue<space>*"). >>>>>> >>>>>> Since some users want to be able to use space inside a tag, only >> leading >>>>>> and trailing space will be removed. For instance: >>>>>> >>>>>> " Word of mouth , foo " -> 2 tags "Word of mouth" and "foo" >>>>> >>>> >>>>> How do I enter leading spaces if I want? I'd like to be able to enter >> *any* character in any part of the tag name. >>>> >>>> I need valid use cases. I know it's nice to be able to do everything but >>>> it's not worth to implement the quotes and the escaping character if no >>>> one will ever used them in real life. How many tags did you see with >>>> leading or trailing spaces? How many containing a comma? >>> >> >>> Well we can say the exact same thing for document names... Consistency is >> good. Should we do the same and forbid document names with leading/trailing >> spaces? (it's been asked before I think, although I'm tempted to say no to >> this, except in UI which could trim spaces). >> >> IMO tags are different. Page names are closer to free text. >> >>> >>>> Tags are 99% keywords and IMO it's best to establish some simple rules: >>>> >>>> * no leading or trailing spaces >>>> * no comma inside >>>> >>>> rather than implementing something that is useful in 1% of the cases. >>>> >>>> Now, I didn't started this thread to re-implement or re-design the tags >>>> UI. >>> >> >>> It's not about UI but you *did* start the thread about starting a spec >> for tags and specs cannot be imprecise, they need 100% conciseness. >>> >>> I'm fine if we decide we'll never need to enter trailing/leading spaces >> nor use the separator but it has to be brought to the table and discussed, >> otherwise this spec will just be a joke. >> >> I agree. >> > > I also think that trailing / leading spaces are useless in tags. They're > more often a mistake than an intentional choice. Thus I'm +1 to > automatically remove them and say they're not allowed as part of the tags > specifications.
There's a difference between a UI that trims leading/trailing spaces and the spec that says what a tag can contain. I'm +1 for the UI to trim spaces. I'm a bit less sure about the spec though. Thanks -Vincent > Guillaume > > >>> BTW you haven't defined what the separator is. Is the separator the one >> defined in the Tag class property? If so it can be anything and there needs >> to be a way to enter it IMO. Imagine I choose space as the separator and I >> want to enter "word of mouth". I should be allowed to, either by using >> quotes or by escaping. >> >> I see your point. I thought the separator was fixed because the UI says >> "Comma separated tags". I just tested and it seems pipe character | is >> also used as separator. If I enter "foo|bar,end" the UI displays 2 tags >> but the value of the XWiki.TagClass object is "foo|bar|end" (so actually >> I entered 3 tags). >> >> IMO the fact that you can change the separator is an implementation >> detail. We now use a Static List to store the list of tags but this can >> change. The way we store the tags shouldn't influence the way we define >> tags. The separator is *not* part of the tags specification because we >> could have an UI that allows you to input tags only one by one and we >> could store tags in separate fields. >> >> So IMO the specification should only say: >> >> * tags' case is used only for display >> * tags don't have leading or trailing spaces >> >> And in our implementation, *because* we input and store tags using a >> single field, we can define a separator and a way to escape that >> separator. I prefer comma as separator and backslash as escaping. >> >>> >>>> I just wanted to fix the current way of inputting tags which is not >>>> consistent: >>>> >>>> * regarding leading and trailing spaces: >>>> " foo, bar" -> " foo" and "bar" >>>> >>>> * regarding case: >>>> "foo,bar,fOo" -> removing "fOo" removes "foo" also. >>> >> >>> Fixing is a different topic. This is not what you asked. You asked for a >> spec. Once we have defined it, then you can restrict yourself to >> implementing only part of it if you don't have time/will to implement it >> fully. My point is that the spec has to be known and since you started the >> spec thread we might as well brainstorm on it, no? >> >> Sure. Let's see what others have to say about this. >> >> Thanks, >> Marius >> >>> >>> Thanks >>> -Vincent >>> >>>> Thanks, >>>> Marius >>>> >>>>> >>>>> Some questions: >>>>> * Can the user uses quotes to enter any character, for ex " word ". >> Alternatively the space could be escaped with a char, for ex \ >>>>> * How can the user use quotes, is there an escape char, for ex: my tag >> with a \" >>>>> * Same question for entering the tag separator character. For ex if >> comma is the separator, can I enter: tag with \, in the name >>>>> >>>>> Thanks >>>>> -Vincent >>>>> >>>>>>>> * tags' case is saved but case is ignored when comparing two tags >> (once >>>>>>>> you defined a tag "news" you can't define a new tag "News"; the >> existing >>>>>>>> tag is reused; tag's case is used only for display) >>>>>>> >>>>>> >>>>>>> If we don't consider case I'm not sure we should use display using >> the first tag entered. For example someone entered "http". Someone else >> wants to add HTTP. Should we display http or HTTP? >>>>>>> I'm fine with displaying http provided the UI allows to renamed the >> tag case. >>>>>> >>>>>> If you click on the tag you go to Main.Tags page where you have an >>>>>> option to rename the tag (that is specified in the query string). >>>>>> >>>>>> Thanks, >>>>>> Marius >>>>>> >>>>>>> >>>>>>> Otherwise ok for me. >>>>>>> >>>>>>>> Optionally, we could enforce that tags can't contain white spaces. >>>>>>> >>>>>>> See above. >>>>>>> >>>>>>> Thanks >>>>>>> -Vincent >>>>>>> >>>>>>>> >>>>>>>> WDYT? >>>>>>>> >>>>>>>> If no one is against it then I'd like to change the UI to apply >> these >>>>>>>> constraints. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Marius _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

