Added XUL frontend for a future dirtag/web.py
[dirtag.git] / static / dirtag.xul
diff --git a/static/dirtag.xul b/static/dirtag.xul
new file mode 100644 (file)
index 0000000..7ee1f30
--- /dev/null
@@ -0,0 +1,129 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="dirtag.css" type="text/css"?>
+
+<!-- Firefox doesn't load external DTDs for web-served XML,
+    https://developer.mozilla.org/en/XML_in_Mozilla#DTDs_and_Other_External_Entities
+  so we use and internal DOCTYPE.  This does make localization a bit
+  more annoying. -->
+<!DOCTYPE window [
+  <!ENTITY window.title "TODO: Title">
+  <!ENTITY XUL_note.text.pre_XUL "DirTag uses ">
+  <!ENTITY XUL_note.text.XUL_to_Firefox ", an XML user interface markup language developed by the Mozilla project.  You probably need to view this page using ">
+  <!ENTITY XUL_note.text.post_Firefox ".">
+  <!ENTITY new_tag.caption "Add a new tag">
+  <!ENTITY new_tag_button.label "Add">
+  <!ENTITY new_tag_button.key "a">
+  <!ENTITY browser.caption "Browser">
+  <!ENTITY raw_browser.tab "Raw">
+  <!ENTITY tag_browser.tab "Tags">
+  <!ENTITY path_column.label "Path">
+  <!ENTITY tag_column.label "Tags">
+  <!ENTITY tags.caption "Tags">
+  <!ENTITY selected.caption "Selected">
+]>
+
+<window id="window" title="&window.title;"
+   onload="initialize();"
+   xmlns:html="http://www.w3.org/1999/xhtml"
+   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+   >
+
+  <script src="dirtag.js"/>
+  <groupbox id="new-tag">
+    <caption label="&new_tag.caption;"/>
+    <hbox>
+      <textbox id="new-tag-text"/>
+      <button
+        id="new-tag-button"
+        class="dialog"
+        disabled="false"
+        label="&new_tag_button.label;"
+        accesskey="&new_tag_button.key;"
+        oncommand="new_tag_button();"/>
+    </hbox>
+  </groupbox>
+  <hbox flex="1">
+    <groupbox id="browser" flex="1">
+      <caption label="&browser.caption;"/>
+      <tabbox id="browser-tabbox" flex="1">
+       <tabs>
+         <tab label="&raw_browser.tab;"/>
+         <tab label="&tag_browser.tab;"/>
+       </tabs>
+       <tabpanels flex="1">
+         <tabpanel flex="1">
+           <tree id="raw-tree" rows="2" seltype="single" flex="1"
+                 datasources="raw-tree.rdf" ref="http://dirtag.com/raw/files"
+                 flags="dont-build-content" onselect="raw_tree_select();">
+             <treecols>
+               <treecol id="tab-tree-path-column" label="&path_column.label;" primary="true"
+                        sort="rdf:http://dirtag.com/rdf#name" flex="1"/>
+               <splitter class="tree-splitter"/>
+               <treecol id="tab-tree-tag-column" label="&tag_column.label;"
+                        sort="rdf:http://dirtag.com/rdf#tags" flex="1"/>
+             </treecols>
+             <template>
+               <rule>
+                 <treechildren>
+                   <treeitem uri="rdf:*">
+                     <treerow>
+                       <treecell label="rdf:http://dirtag.com/rdf#name"/>
+                       <treecell label="rdf:http://dirtag.com/rdf#tags"/>
+                     </treerow>
+                   </treeitem>
+                 </treechildren>
+               </rule>
+             </template>
+           </tree>
+         </tabpanel>
+         <tabpanel flex="1">
+           <tree id="tag-tree" rows="2" seltype="single" flex="1"
+                 datasources="tag-tree.rdf raw-tree.rdf"
+                 ref="http://dirtag.com/tag/files"
+                 flags="dont-build-content" onselect="tag_tree_select();">
+             <treecols>
+               <treecol id="tab-tree-path-column" label="&path_column.label;" primary="true"
+                        sort="rdf:http://dirtag.com/rdf#name" flex="1"/>
+               <splitter class="tree-splitter"/>
+               <treecol id="tab-tree-tag-column" label="&tag_column.label;"
+                        sort="rdf:http://dirtag.com/rdf#tags" flex="1"/>
+             </treecols>
+             <template>
+               <rule>
+                 <treechildren>
+                   <treeitem uri="rdf:*">
+                     <treerow>
+                       <treecell label="rdf:http://dirtag.com/rdf#name"/>
+                       <treecell label="rdf:http://dirtag.com/rdf#tags"/>
+                     </treerow>
+                   </treeitem>
+                 </treechildren>
+               </rule>
+             </template>
+           </tree>
+         </tabpanel>
+       </tabpanels>
+      </tabbox>
+    </groupbox>
+    <splitter collapse="before"><grippy/></splitter>
+    <groupbox id="selected" flex="1" orient="horizontal">
+      <caption label="&selected.caption;"/>
+      <groupbox id="tags" oncommand="tag_check(event);">
+       <caption label="&tags.caption;"/>
+       <checkbox id="tag-X" checked="true" label="tag-X" accesskey="1"/>
+       <checkbox id="tag-Y" checked="true" label="tag-Y" accesskey="2"/>
+       <checkbox id="tag-Z" checked="false" label="tag-Z" accesskey="3"/>
+      </groupbox>
+      <iframe id="element" src="" flex="1"/>
+    </groupbox>
+  </hbox>
+<!--  <description id="XUL_note">
+    <html:p>
+      &XUL_note.text.pre_XUL;<html:a
+        href="http://en.wikipedia.org/wiki/XUL">XUL</html:a
+      >&XUL_note.text.XUL_to_Firefox;<html:a
+        href="http://www.firefox.com/">Firefox</html:a
+      >&XUL_note.text.post_Firefox;
+    </html:p>
+  </description>-->
+</window>