Oooops, correction: I _am_ getting the Row nesting behavior. I _am_not_
getting the CSS class tags applied.

On Thu, Nov 5, 2015 at 5:29 PM, Joshua Fontany <[email protected]>
wrote:

> Ok, I've tried the same test with @btheado's TiddlyWiki JsonEditor, and am
> not getting the different Row element layout, and not getting the class
> tags.... hmm. This points to those function not existing or not getting
> called appropriately in his version (those sub-files may not have been
> included in the TiddlyWiki version).
>
> On Thu, Nov 5, 2015 at 5:12 PM, Joshua Fontany <[email protected]>
> wrote:
>
>>
>>
>>>
>>>> I'll consider this topic closed.
>>>
>>>
>>> Not so fast. :D
>>>
>>
>> Cool. I had been digging around the original Json Editor stand-alone
>> code, maybe I can point to something useful.
>>
>> Warning: Code Blocks coming up. :D
>>
>>
>>>
>>> The "grid" feature requires a separate CSS module to work (bootstrap or
>>>> foundation).
>>>>
>>>
>>> What happens without such a "module"?
>>>
>>> ...and then what is that "module" to provide so that you can use either
>>> this or that "framework", e.g. bootstrap or some other?
>>>
>>
>> When I tried @btheado's method (below), I also got overlapping elements
>> (& I think he's right about conflicting CSS definitions...). See attached
>> jpeg for a screenshot.
>>
>>>
>>>    1. Open
>>>    http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css in
>>>    your browser and select all and copy to clipboard
>>>    2. Open https://btheado.github.io/jsoneditor.html in your browser
>>>    3. Create new tiddler titled "bootstrap" or whatever.
>>>    4. Paste clipboard contents into the body of the tiddler
>>>    5. Add the $:/tags/Stylesheet tag to the tiddler
>>>    6. Save the tiddler
>>>
>>> The stylesheet should now be applied and the json form becames
>>> misaligned and unreadable :-(. Not sure if it is due to *some conflict
>>> the the tiddlywiki styles* or if it is some other problem.
>>>
>>
>> The easiest way to trigger this layout option is to include "format":
>> "grid" in the object's schema.
>>
>>  So, I dug into @jdorn <https://github.com/jdorn>/json-editor
>> <https://github.com/jdorn/json-editor>'s source looking for references
>> to the "grid" option. There is one reference in the "object.js" sub-file of
>> the "jsoneditor.js" (distribution package) in the "layoutEditors:
>> function()":
>> if (this.format === 'grid'){ do stuff to make grid }
>> // Normal layout
>> else { do other stuff to make normal layout}
>>
>> Withing the If statement, there is are this.theme.getGridRow() calls
>> (which I think is where the bootstrap or foundation *.js files are
>> referenced):
>> // Layout the form for Grid format
>> container = document.createElement('div');
>> for(i=0; i<rows.length; i++) {
>> var row = this.theme.getGridRow();
>> container.appendChild(row);
>> for(j=0; j<rows[i].editors.length; j++) {
>>   var key = rows[i].editors[j].key;
>>   var editor = this.editors[key];
>>
>>   if(editor.options.hidden) editor.container.style.display = 'none';
>>   else
>> this.theme.setGridColumnSize(editor.container,rows[i].editors[j].width);
>>   row.appendChild(editor.container);
>>   }
>> }
>> While the else{} block had this:
>> ontainer = document.createElement('div');
>>       $each(this.property_order, function(i,key) {
>>         var editor = self.editors[key];
>>         if(editor.property_removed) return;
>>         var row = self.theme.getGridRow();
>>         container.appendChild(row);
>>
>>         if(editor.options.hidden) editor.container.style.display = 'none';
>>         else self.theme.setGridColumnSize(editor.container,12);
>>         row.appendChild(editor.container);
>>       });
>>
>>
>>
>> Looking in the included theme.js sub-file, we have this:
>> getGridRow: function() {
>>     var el = document.createElement('div');
>>     el.className = 'row';
>>     return el;
>>   }
>>
>>
>> To test the differences, I simplified the schema in @jdorn's sample (
>> http://jeremydorn.com/json-editor/), and inspected the source code with
>> and without the Grid option set.
>>
>> Without "format" : "grid" set:
>> <div class="well well-sm" style="padding-bottom: 0px;">
>> <div>
>> <div>
>> <div class="row">
>> <div data-schematype="string" data-schemapath="root.name"
>> class="col-md-12">
>> <div class=" form-group">
>> <label class=" control-label">name</label>
>> <input type="text" class="form-control" pattern=".{4,}" name="root[name]">
>> <p class="help-block">First and Last name</p>
>> </div>
>> <div/>
>> </div>
>> </div>
>> <div class="row">
>> <div data-schematype="integer" data-schemapath="root.age"
>> class="col-md-12">
>> <div class=" form-group">
>> <label class=" control-label">age</label>
>> <input type="text" class="form-control" name="root[age]">
>> </div>
>> <div/>
>> </div>
>> </div>
>> <div class="row">
>> <div data-schematype="string" data-schemapath="root.favorite_color"
>> class="col-md-12">
>> <div class=" form-group">
>> <label class=" control-label">favorite color</label>
>> <input type="color" class="form-control" data-schemaformat="color"
>> name="root[favorite_color]">
>> </div>
>> <div/>
>> </div>
>> </div>
>> <div class="row">
>> <div data-schematype="string" data-schemapath="root.gender"
>> class="col-md-12">
>> <div class=" form-group">
>> <label class=" control-label">gender</label>
>> <select class="form-control" name="root[gender]">
>> <option value="undefined"> </option>
>> <option value="male">male</option>
>> <option value="female">female</option>
>> </select>
>> </div>
>> <div/>
>> </div>
>> </div>
>> </div>
>> </div>
>> </div>
>>
>> With "format" : "grid" applied:
>> <div class="well well-sm" style="padding-bottom: 0px;">
>> <div>
>> <div>
>> <div class="row">
>> <div data-schematype="string" data-schemapath="root.name"
>> class="col-md-5">
>> <div class=" form-group">
>> <label class=" control-label">name</label>
>> <input type="text" class="form-control" pattern=".{4,}" name="root[name]">
>> <p class="help-block">First and Last name</p>
>> </div>
>> <div/>
>> </div>
>> <div data-schematype="integer" data-schemapath="root.age"
>> class="col-md-2">
>> <div class=" form-group">
>> <label class=" control-label">age</label>
>> <input type="text" class="form-control" name="root[age]">
>> </div>
>> <div/>
>> </div>
>> <div data-schematype="string" data-schemapath="root.favorite_color"
>> class="col-md-3">
>> <div class=" form-group">
>> <label class=" control-label">favorite color</label>
>> <input type="color" class="form-control" data-schemaformat="color"
>> name="root[favorite_color]">
>> </div>
>> <div/>
>> </div>
>> <div data-schematype="string" data-schemapath="root.gender"
>> class="col-md-2">
>> <div class=" form-group">
>> <label class=" control-label">gender</label>
>> <select class="form-control" name="root[gender]">
>> <option value="undefined"> </option>
>> <option value="male">male</option>
>> <option value="female">female</option>
>> </select>
>> </div>
>> <div/>
>> </div>
>> </div>
>> </div>
>> </div>
>> </div>
>>
>>
>> So it seems to change how these Row elements are nested, and applies a
>> CSS class to define how many columns this element takes up (out of the 12
>> column max used in the layout logic).
>>
>> Hope that helps to understand this issue.
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "TiddlyWiki" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/tiddlywiki/uZUsq7dgJ3E/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/tiddlywiki.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/tiddlywiki/e8bf275c-d8ce-43f8-9c9d-a6f8e3c77f14%40googlegroups.com
>> <https://groups.google.com/d/msgid/tiddlywiki/e8bf275c-d8ce-43f8-9c9d-a6f8e3c77f14%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/CAM1fME6e1298E%3D2F12s08OQ%3DCHNPHb6fq9LriHnVf%2BzwQ0q1%2Bg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to