func init() { Files.Add("filetree.css", 858, time.Unix(0, 1370942742232957700), fileembed.String("/*\n"+ "Copyright 2011 The Camlistore Authors.\n"+ "\n"+ "Licensed under the Apache License, Version 2.0 (the \"License\");\n"+ "you may not use this file except in compliance with the License.\n"+ "You may obtain a copy of the License at\n"+ "\n"+ " http://www.apache.org/licenses/LICENSE-2.0\n"+ "\n"+ "Unless required by applicable law or agreed to in writing, software\n"+ "distributed under the License is distributed on an \"AS IS\" BASIS,\n"+ "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"+ "See the License for the specific language governing permissions and\n"+ "limitations under the License.\n"+ "*/\n"+ "\n"+ ".cam-filetree-page {\n"+ " font: 16px/1.4 normal Arial, sans-serif;\n"+ "}\n"+ ".cam-filetree-nav:before {\n"+ " content: \"[\";\n"+ "}\n"+ ".cam-filetree-nav:after {\n"+ " content: \"]\";\n"+ "}\n"+ ".cam-filetree-newp {\n"+ " text-decoration: underline;\n"+ " cursor: pointer;\n"+ " color: darkgreen;\n"+ " margin-left: .4em;\n"+ " font-size: 80%;\n"+ "}\n"+ "")) }
func init() { Files.Add("index-compiled.html", 879, time.Unix(0, 1370942742232957700), fileembed.String("<!doctype html>\n"+ "<html>\n"+ " <head>\n"+ " <script src=\"?camli.mode=config&var=CAMLISTORE_CONFIG\"></script>\n"+ " <script src=\"all.js\"></script>\n"+ " <!-- easier css handling: https://code.google.com/p/camlistore/issues/detail?"+ "id=98 -->\n"+ " <link rel=\"stylesheet\" href=\"blob_item.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"blob_item_container.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"create_item.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"index.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"toolbar.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"closure/goog/css/common.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"closure/goog/css/toolbar.css\" type=\"text/css\">\n"+ " </head>\n"+ " <body>\n"+ " <script>\n"+ " var page = new camlistore.IndexPage(CAMLISTORE_CONFIG);\n"+ " page.decorate(document.body);\n"+ " </script>\n"+ " </body>\n"+ "</html>\n"+ "")) }
func init() { Files.Add("blobinfo.html", 849, fileembed.String("<html>\n"+ "<head>\n"+ " <title>Blob info</title>\n"+ " <script src=\"camli.js\"></script>\n"+ " <script src=\"?camli.mode=config&cb=onConfiguration\"></script>\n"+ " <script src=\"blobinfo.js\"></script>\n"+ " <link rel=\"stylesheet\" href=\"camli.css\">\n"+ "</head>\n"+ "<body class=\"camli-ui-blobinfo\">\n"+ " <div class=\"camli-nav\"><a href=\"./\">Home</a></div>\n"+ " <h1>Blob Contents</h1>\n"+ "\n"+ " <div id=\"thumbnail\"></div>\n"+ " <span id=\"editspan\" class=\"camli-nav\" style=\"display: none;\"><a href=\"#\" id=\"ed"+ "itlink\">edit</a></span>\n"+ " <span id=\"blobdownload\" class=\"camli-nav\"></span>\n"+ " <span id=\"blobdescribe\" class=\"camli-nav\"></span>\n"+ " <span id=\"blobbrowse\" class=\"camli-nav\"></span>\n"+ "\n"+ " <pre id=\"blobdata\"></pre>\n"+ "\n"+ " <h1>Indexer Metadata</h1>\n"+ " <pre id=\"blobmeta\"></pre>\n"+ "\n"+ " <div id=\"claimsdiv\" style=\"visibility: hidden\">\n"+ " <h1>Mutation Claims</h1>\n"+ " <pre id=\"claims\"></pre>\n"+ " </div>\n"+ "\n"+ "</body>\n"+ "</html>\n"+ ""), time.Unix(0, 1355268929464816599)) }
func init() { Files.Add("debug.html", 1751, time.Unix(0, 1370942742232957700), fileembed.String("<!doctype html>\n"+ "<html>\n"+ "<head>\n"+ " <title>Camlistored UI</title>\n"+ " <script src=\"closure/goog/base.js\"></script>\n"+ " <script src=\"./deps.js\"></script>\n"+ " <script src=\"?camli.mode=config&var=CAMLISTORE_CONFIG\"></script>\n"+ " <!-- Begin non-Closure cheating; but depended on by server_connection.js -->\n"+ " <script type=\"text/javascript\" src=\"base64.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"Crypto.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"SHA1.js\"></script>\n"+ " <!-- End non-Closure cheating -->\n"+ " <script>\n"+ " goog.require('camlistore.DebugPage');\n"+ " </script>\n"+ "\n"+ "</head>\n"+ "<body>\n"+ " <form>\n"+ " <h2>Root Discovery</h2>\n"+ " <p><input type=\"button\" id=\"discobtn\" value=\"Do Discovery\" /></p>\n"+ " <div id=\"discores\" style=\"border: 2px solid gray\">(discovery results)</div>\n"+ "\n"+ " <h2>Signing Discovery</h2>\n"+ " <p><input type=\"button\" id=\"sigdiscobtn\" value=\"Do jsonSign discovery\" /></p>\n"+ " <div id=\"sigdiscores\" style=\"border: 2px solid gray\">(jsonsign discovery result"+ "s)</div>\n"+ "\n"+ " <h2>Signing Debug</h2>\n"+ " <table>\n"+ " <tr align='left'>\n"+ " <th>JSON blob to sign: <input type='button' id='addkeyref' value=\"Add keyref\"/"+ "></th>\n"+ " <th></th>\n"+ " <th>Signed blob:</th>\n"+ " <th></th>\n"+ " <th>Verification details:</th>\n"+ " </tr>\n"+ " <tr>\n"+ " <td><textarea id='clearjson' rows=10 cols=40>{\"camliVersion\": 1, \"camliType\": "+ "\"whatever\", \"foo\": \"bar\"}</textarea></td>\n"+ " <td valign='middle'><input type='button' id='sign' value=\"Sign >>\" /></t"+ "d>\n"+ " <td><textarea id=\"signedjson\" rows=10 cols=40></textarea></td>\n"+ " <td valign='middle'><input type='button' id='verify' value=\"Verify >>\" /"+ "></td>\n"+ " <td><div id='verifyinfo'></div></td>\n"+ " </tr>\n"+ " </table>\n"+ " </form>\n"+ "\n"+ " <script>\n"+ " var page = new camlistore.DebugPage(CAMLISTORE_CONFIG);\n"+ " page.decorate(document.body);\n"+ " </script>\n"+ "</body>\n"+ "</html>\n"+ "")) }
func init() { Files.Add("search.html", 1144, time.Unix(0, 1370942742232957700), fileembed.String("<html>\n"+ "<head>\n"+ " <title>Search</title>\n"+ " <script src=\"closure/goog/base.js\"></script>\n"+ " <script src=\"./deps.js\"></script>\n"+ " <script src=\"?camli.mode=config&var=CAMLISTORE_CONFIG\"></script>\n"+ " <!-- Begin non-Closure cheating; but depended on by server_connection.js -->\n"+ " <script type=\"text/javascript\" src=\"base64.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"Crypto.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"SHA1.js\"></script>\n"+ " <!-- End non-Closure cheating -->\n"+ " <script>\n"+ " goog.require('camlistore.SearchPage');\n"+ " </script>\n"+ " <link rel=\"stylesheet\" href=\"blob_item.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"blob_item_container.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"create_item.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"index.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"toolbar.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"closure/goog/css/common.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"closure/goog/css/toolbar.css\" type=\"text/css\">\n"+ "</head>\n"+ "<body>\n"+ "\n"+ " <script>\n"+ " var page = new camlistore.SearchPage(CAMLISTORE_CONFIG);\n"+ " page.decorate(document.body);\n"+ " </script>\n"+ "</body>\n"+ "</html>\n"+ "")) }
func init() { Files.Add("gallery.html", 616, fileembed.String("<!doctype html>\n"+ "<html>\n"+ "<head>\n"+ " <title>Gallery</title>\n"+ " <script src=\"base64.js\"></script>\n"+ " <script src=\"Crypto.js\"></script>\n"+ " <script src=\"SHA1.js\"></script>\n"+ " <script src=\"camli.js\"></script>\n"+ " <script src=\"?camli.mode=config&cb=onConfiguration\"></script>\n"+ " <script src=\"gallery.js\"></script>\n"+ " <link rel=\"stylesheet\" href=\"camli.css\">\n"+ "</head>\n"+ "<body class=\"camli-ui-permanode\">\n"+ " <div class=\"camli-nav\"><a href=\"./\">Home</a></div>\n"+ " <h1>Gallery</h1>\n"+ "\n"+ " <p>\n"+ " Permalink:\n"+ " <span id=\"permanode\"></span>\n"+ " <span id=\"permanodeBlob\" class=\"camli-nav\"></span>\n"+ " </p>\n"+ "\n"+ " <div id=\"members\"></div>\n"+ "\n"+ "</body>\n"+ "</html>\n"+ ""), time.Unix(0, 1349725494193783184)) }
func init() { Files.Add("filetree.html", 929, time.Unix(0, 1370942742232957700), fileembed.String("<!doctype html>\n"+ "<html>\n"+ "<head>\n"+ " <title>Filetree</title>\n"+ " <script src=\"closure/goog/base.js\"></script>\n"+ " <script src=\"./deps.js\"></script>\n"+ " <script src=\"?camli.mode=config&var=CAMLISTORE_CONFIG\"></script>\n"+ " <!-- Begin non-Closure cheating; but depended on by server_connection.js -->\n"+ " <script type=\"text/javascript\" src=\"base64.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"Crypto.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"SHA1.js\"></script>\n"+ " <!-- End non-Closure cheating -->\n"+ " <script>\n"+ " goog.require('camlistore.FiletreePage');\n"+ " </script>\n"+ " <link rel=\"stylesheet\" href=\"filetree.css\">\n"+ "</head>\n"+ "<body class=\"cam-filetree-page\">\n"+ " <div class=\"cam-filetree-nav\"><a href=\"./\">Home</a></div>\n"+ " <h1>FileTree for <span id=\"curDir\" class=\"cam-filetree-nav\"></span> </h1>\n"+ "\n"+ " <div id=\"children\"></div>\n"+ " <script>\n"+ " var page = new camlistore.FiletreePage(CAMLISTORE_CONFIG);\n"+ " page.decorate(document.body);\n"+ " </script>\n"+ "</body>\n"+ "</html>\n"+ "")) }
func init() { Files.Add("index.css", 375, fileembed.String("#toolbar input[type=\"button\"] {\n"+ " padding: 2px 5px 2px 5px;\n"+ "}\n"+ "\n"+ "#btnList {\n"+ " margin-right: 0;\n"+ " border-right: 1px dashed #000;\n"+ "}\n"+ "\n"+ "#btnThumbs {\n"+ " margin-left: 0;\n"+ " border-left: 0;\n"+ "}\n"+ "\n"+ "#btnSmaller {\n"+ " margin-right: 0;\n"+ " border-right: 1px dashed #000;\n"+ " width: 2em;\n"+ "}\n"+ "\n"+ "#btnBigger {\n"+ " margin-left: 0;\n"+ " border-left: 0;\n"+ " width: 2em;\n"+ "}\n"+ "\n"+ "#btnSearch {\n"+ " margin-left: 0;\n"+ " border-left: 0;\n"+ "}"), time.Unix(0, 1355276007991994116)) }
func init() { Files.Add("toolbar_test.html", 912, time.Unix(0, 1370942742232957700), fileembed.String("<!doctype html>\n"+ "<html>\n"+ " <head>\n"+ " <script src=\"closure/goog/base.js\"></script>\n"+ " <script src=\"./deps.js\"></script>\n"+ " <script>\n"+ " goog.require('goog.events');\n"+ " goog.require('camlistore.Toolbar');\n"+ " goog.require('camlistore.Toolbar.EventType');\n"+ " </script>\n"+ " <link rel=\"stylesheet\" href=\"toolbar.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"closure/goog/css/common.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"closure/goog/css/toolbar.css\" type=\"text/css\">\n"+ " </head>\n"+ " <body>\n"+ " <script>\n"+ " var x = new camlistore.Toolbar();\n"+ " x.render(document.body);\n"+ "\n"+ " goog.events.listen(\n"+ " x, camlistore.Toolbar.EventType.BIGGER, function() {\n"+ " console.log('Bigger');\n"+ " });\n"+ "\n"+ " goog.events.listen(\n"+ " x, camlistore.Toolbar.EventType.SMALLER, function() {\n"+ " console.log('Smaller');\n"+ " });\n"+ " </script>\n"+ " </body>\n"+ "</html>\n"+ "")) }
func init() { Files.Add("search.html", 1516, fileembed.String("<html>\n"+ "<head>\n"+ " <title>Camlistored UI</title>\n"+ " <script type=\"text/javascript\" src=\"Crypto.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"SHA1.js\"></script>\n"+ " <script src=\"camli.js\"></script>\n"+ " <script src=\"?camli.mode=config&cb=Camli.onConfiguration\"></script>\n"+ " <script src=\"search.js\"></script>\n"+ " <link rel=\"stylesheet\" href=\"camli.css\">\n"+ "</head>\n"+ "<body>\n"+ " <div class=\"camli-nav\"><a href=\"./\">Home</a></div>\n"+ "\n"+ " <h1>Search</h1>\n"+ "\n"+ " <h2>Find all roots</h2>\n"+ " <form id=\"formRoots\">\n"+ " <input type=\"submit\" id=\"btnRoots\" value=\"Search\">\n"+ " </form>\n"+ "\n"+ " <h2>In all attributes</h2>\n"+ " <form id=\"formAnyAttr\">\n"+ " <input id=\"inputAnyAttr\" placeholder=\"attrValue1\">\n"+ " <input type=\"submit\" id=\"btnAnyAttr\" value=\"Search\">\n"+ " </form>\n"+ "\n"+ " <h2>By Tag</h2>\n"+ " <form id=\"formTags\">\n"+ " <input id=\"inputTag\" placeholder=\"tag1\">\n"+ " <input type=\"submit\" id=\"btnTagged\" value=\"Search\"></br>\n"+ " <input id=\"maxTagged\" placeholder=\"nb of results: 50\">\n"+ " </form>\n"+ "\n"+ " <h2>By Title</h2>\n"+ " <form id=\"formTitles\">\n"+ " <input id=\"inputTitle\" placeholder=\"title1\">\n"+ " <input type=\"submit\" id=\"btnTitle\" value=\"Search\">\n"+ " </form>\n"+ "\n"+ " <h3 id=\"titleRes\">Search</h3>\n"+ " <div id=\"divRes\">\n"+ "</div>\n"+ " <p>\n"+ " <form id=\"formAddToCollec\">\n"+ " <input id=\"inputCollec\" placeholder=\"collection's permanode\">\n"+ " <input type=\"submit\" id=\"btnAddToCollec\" value=\"Add to collection\"> or\n"+ " </form>\n"+ " <button id=\"btnNewCollec\">Create new collection</button>\n"+ " </p>\n"+ "\n"+ "</body>\n"+ "</html>\n"+ ""), time.Unix(0, 1364837799719094732)) }
func init() { Files.Add("folder.png", 3799, time.Unix(0, 1370436971361750003), fileembed.String("\x89PNG\x0d\n"+ "\x1a\n"+ "\x00\x00\x00\x0dIHDR\x00\x00\x00d\x00\x00\x00d\x08\x06\x00\x00\x00p\xe2\x95T\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x00 pHYs\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01B(\x9bx\x00\x00\x00\x07"+ "tIME\x07\xdc\x0b\x05\x10$\x1f\x89\xe0\xf8\xf4\x00\x00\x0eWIDATx\xda\xed]M\x88,\xd7u\xfe\xee\xad\xbf\xee\xe97o\xde\x9b\x97\x80\x03\"^(\x04\xd9\x02ol\x89\x90\x1fcD0\xb67\xd9\x04\x81\x97A1\x06!\x05D\x16Zz\x8c\xed\x8d\x841x!"+ "\x8c\x08Z\x84@\x08\x8f@\x16\xde\x18\x84\xf3c\x81-\x12 \x9b\xf8\x11\x07[\"\x0e\x96\xa5\xf1<\xcd\x9b\xfe\xab\xbf{\xef9^\xd4\xbd5\xd5=U\xdd5\xaf{\xfa\xcd\x9b\xae\x03\x97\xee\xae\xea\xaa\xae9_\x9d\xef;\xe7\xd4\xad\x1a\xa0\xb3\xce:\xeb\xac\xb3\xce:\xeb\xac\xb3\xce"+ ":\xeb\xac\xb3\xce:\xbb<&\x16\xad<88\x90i\x9a~\x1a\xc0\x1f>\xc0c\xfc\xc5;\xef\xbc\xf3\xef\xb7o\xdf6[\x0d\xc8\x0b/\xbc\xd0\x0f\xc3\xf0\xdf\x00<y \x8e\xf3]f\xfe\xeb\x97^z\xe9_\xb7\x16\x90\x17_|\xf1y\x00\xdf\x8e\xa2\x08\x8f<\xf2H\xb9\x9c\x99"+ "\x97\xbe\xaf3)\xe5\x99e\xcb\xb6!\"\x1c\x1d\x1da:\x9d\x02\xc0\x94\x99\xff\xe0\xe5\x97_\xfe\xe0*\x03\xe27\"%\xc4\x13\xcc\x8c\xc7\x1f\x7f\x1c\x8f=\xf6X\xe9@7\xaa\x0e\xad[6\xbf\xbc\xee\xf32`\x98\x19Zk\xbc\xf1\xc6\x1b\x18\x0e\x87\x03f\xfe2\x80\xafn% "+ "D\x94 ! \xa5,\x1d6\x1e\x8f\x91\xe7y\xf9\x99\x88f\xce\xe6&p\xaa\xeb\xdaF\x1a3#\x08\x02\xec\xed\xed\xe1\xd1G\x1f\xc5[o\xbd\x05\x00\x9f\xbe\xea\x94\xb5(B\x94;C\x99\xb9\xa4\x8fj\x94\xb4\x19m#\xab)R\xd24\xc5\xfe\xfe\xbe[\xf7\xe4\xc1\xc1\x81<8"+ "8\xa0m\x8c\x90)\x00\x18cJ\xeaPJ\x81\x88V\x06\xa3\x0d\xbd\xb9eGGG\xb8u\xeb\x16\xa2(B\x9a\xa6\xd7\x86\xc3\xe1\xc7\x00\xdc\xd9F@\xb4\x10\x02y\x9e#I\x12(\xa5p\xef\xde\xbd2Z\x9c\xc3\x1c@\xf3N\x9d\xa7\xb0\xba\xe8XFY\xce\x0e\x0f\x0fq\xf3\xe6"+ "M\xbc\xf7\xde{\x10B<y\x95\x01\x91M+\x98y\xe2\x1c.\xa5\x84\x10\xa2\x1c\xd5\xcfR\xca3\xeb]V\xd5\xb4\xcd\xfcw\x1b(\xb3\x1c\x93\xc9\x04\xd7\xaf_w@?\x89+l\x8b4\xc403\x94R\xf0}\x1f\x9e\xe7\xe1\xc6\x8d\x1b \xa2\x0b\xa1\xad\xba\xc8p\x9f\xb3,+"+ "u\x84\x99\xff\xf8*\x03\"\x17P\xd6\x84\x99a\x8c\x99\x01\xa1\xfa\xd9\x0dcL\xb9\xbc\xee}\xddhZ_]\xae\xb5\x861\x06J)dY\x06!\x04\x98\xf9\x13\xcf?\xff\xfc\x97\xb7.B\x98\xd9\x00(\x9d\x91e\x19\x8e\x8f\x8f\xa1\x94\xba\xaf\xc8h#\xeaM\xd9\x163c4\x1a"+ "aoo\x0f\xc7\xc7\xc7`\xe6\xef<\xf7\xdcs\xdf\x04\x90/\xfa\xe3\x96\x15\x9e\xcb\xd6\xcf}o(\x84\xf8g\xad\xf5\xd7^}\xf5\xd5\xe1\x83\x00d\xec\xb2\xac:\xe1\xae\x8e*\x855\x01\xb1\xa8\x16iJ\x83\xab\xeb\x84\x10\x18\x0c\x06\x00\x80\x93\x93\x13h\xad\x07\x00\x06kpt\xdb"+ "\xef\xddd\xe6\xbf\x95R~\x1c\xc0\x176\x0e\x08\x00bf\xe4y\x8e \x08\xe0\xfb>n\xde\xbc\x89,\xcbj5\xa4\n"+ "\xda\xfc\xfbE:\xb2(J\xaa\x9f]\x020\x18\x0c\xb0\xb3\xb3\x83~\xbf\x8f\xfd\xfd\xfd\xda\xc4\xc0-kJ\x1a\xea\x92\x8a\xea6\xd5\xe5\xae\xe53\x1e\x8f\xf1\xe6\x9boBk\xfd\xf9g\x9f}\xf6c\xaf\xbc\xf2\xca\xffl\x14\x10\xad\xf5HJY{\xf67E\xc1\xa2\x08h+\xf2M"+ "\x945\xbf,\x8ec\x10\x11\xf6\xf7\xf7\xb1\xbb\xbb\x8b0\x0c\xe1\xfb~-\x10\xee\xb3\xef\xfb\xb5`\xcd\x83!\x84\x80\xe7y3\xcb\x95Rx\xfb\xed\xb7\xa1\x94\x821\xe6\x11\x00\x9b\x05DJ\xc9.\xcbr:2\x1c\x0e\x91$\xc9\xc2\x08iK[\x8b\xfaZM\xb45o\xc3\xe1\x10\x87"+ "\x87\x87\x8d ,ZV\x97~\xbbh\xa8K\xcf\xc30tI\x05\x00\x84\x1b\xa7,c\xccP\x08q&\x0bZ$\xeaM\x0e\xaf[\xbe\xac\x18l\xdb\x84\\DYM\xf4\xd5\x04\x861\xa6\x16\x8c\xea\xb6\xf6\xd8\xaf?\x08\x0dA\xb5\x0e\x11B`ww\x17\xf34v?\xa3N\xe4\xdb"+ "\xd4#\x8b\x8a\xc8E\x1aR\xf7\xda\xe4\xf4\xa6\x02\xd6Q\x98=\x0e\x7f\xe3\x80H)\x87.*\x9c3<\xcf+\x0fx\x9e\xa6\xaa\x11\xd2\xaa\x00\xb2]\xe4\xca\x1fy\xc6\xa9Up\x16U\xf5\x8b\"\xa1\x8e\xaa\x16EI\x13XsT|m\xe3\x80h\xad\x19\x00\xf2<\x87\xd6\x1aY\x96"+ "a2\x99`4\x1a-M}\xdb\xeaG\x9b\xb4\xf7~(\xab\x8dn,\x8b\x94\xf9e\xbd^\xaf\x04F\x08\x11=\x88\xe6\xe2\xc8iH\x9e\xe7PJAk]^\x0f\xa9\xd3\x8c:P\x9aj\x97e\xb5\xc7y(\xeb\xbc\xa2\xbe\x08\x90\xba\xe5\x8e\xa6+\xc7\xd6{\x10\x80\x90\x94\xb2\xd4"+ "\x10\x00\xe8\xf7\xfb\xc8\xb2\xec\x8c\xf3\x7f|w\x0fw\x93\xf0\\b\xbc\xee\xe2\xed<Q\xd3&\x19\xa8\xa3=\xa5>\x02\xedk\x18\x11\xfe\xcd\x13_\xfa\xf3\xbfl{<\xcc\x82!\xf0\x1fI\x10|\xe5\xce+OO\xeeWC\xc6\xd5\xb3\xd8\xf3<\x04A\x800\x0cg\xc0H\x14\xe3\xe7"+ "'\x17F\xa9\x97\xcc\x027\x0b\xe1\xf7\xechy\x860\x00|\xaa\xaf\xf3c\x00\xdf\xb8_\x0d!\x97\x97\xbb\x0bSY\x96\x95\x05\x99\xd3\x85Q~\xba\x8b\xbf\xfa\x8bO\"\xf0\xe4\xda\xdd@\x0c\x18\xba\x1c\x17 \x95a\x00\xe7\x88Z\x06~\xf2\xbf\xef\xe3\xbf\x7f\xf1\x01@\xf8\xd3\xfb\xa6"+ "\xac\xd7^{m\xfc\xcc3\xcf\x00@\xd9.I\xd3\x14I\x92\xcch\xc6(\xeb\xdb\x96F\x0f\x1f\xfd\xc8uD\x81Dg\x95z\x8e\x18\xff\xf7\xfeI\x11(-.\xac-\xabC\x0c\x00\xcf\xb5\x1dz\xbd\x1e\xa2(\x9a\xd5\x10]$\x1c\xbb\xfd\xb0\x9cS\xf4\xb3_M\xdaE2\x00\xcf"+ "\x13\x97\xc2q\x9e\x07\x08\xac\xf7X>\xfa\xbb;0\x86\x11'\xb9\x0d\x16>\\\x15\x90 \x80=\"B\x18\x86\x08\x82\x00Q\x14\x95`\x10\x11LR$\x1c\xbb\x83\x08\x10@\xae\x19w\xc7i\x17\x1a\x00n\xed\x86\x08}\x89q\x9c\xdb\xc4@\x1e\xad\n"+ "\x88v\x1a\"\xa5\x84\xd6z\x86\xb2\x98\x19\xd3\xb4\xa0\xac\x9d~\x00@@i\xea\x90\xb0\xba\xe7\".N3\xebO\xfcfU@\xa6\x00n\xb9T7I\x92R\xd4K@\xf2\xa2\xad3\xd8\x89 J\xd1\xeb,S\x06\x81_\x002\x99\x16\x11\"=\xb3\x1a n\xe6\x89K{}\xdf"+ "\x87\xef\xfb3\x94\xa58(\x00\xe9\x05\x10\x02]\x84\x00\xc85AVj\x9aI\\D\x88\xd2\xdej\x94%\x84\x98:\xc7\x87a\x88~\xbf\x8f\x9d\x9d\x9d\x19@hT\x14\x84\xd7zAy0\xdbNU\xb9\"\xecD\xbe\x8d\x14\x82\xa1\x825z\xd7\x83\x95#D\x01\x98\x99|\xa0\xb5"+ "\x9e\x01$\xd1\xd2V\xf1\x01\x04\x00M\xdb\x0dH\x9a\x1b0\x80\xd0/\xfc\x92d\xaa\x0c\x94\x1f~\xeb\xe9d%@\x00\xc4n\xd6\xe2d29\xd3\\$\"d\xc6^Z\x8d\xc22\xcb\xda^\xdd8\x8d\x06\xa7\x1fI\xa6\x9d\"\x1f\xb6\xd9\x87\\\x12!\xb9\x9b\xfa#\xa5\x9ci\xbf\xdb"+ "4\x0e\x8am\x9f\xab\xe7C@@o)ei\xc33t\xed\xdb\x8eE\x92\xba\x08\x11w\xdb\xecgY\x96\x958\xcar\xf5\xc7\xb5k\xd7\xca\xf9X\x89\x12(\x92;\x81^X\xec*\xdfB\xca\"*\xa8\xaaj%e\xe5.B\xf0\xc1\xca\x11\xc2\xcc\xb9\xa3\xac\x19!\xb7#\xd5v"+ "\xf2@ \x11\xfa\x12B`\xeb\"\x84\x19H\xacnT\xcd\xf5\xf4&\x89\x9b:\xc6\xeb\x8b\x10\xad5\xa6\xd3)\x92$\xc1\xc9\xc9I \xcc\x89\xd9\x05\x00Da\x00\xdf\xb6@\xb6IC\x98\x8187\xa0\x9aK\x04\xa5\x86$\x05e \x16G\xeb\x00$s\x94\xc5\xcc\xe5\xac\x0c\xd7\x96"+ "\xcf\x8d\x07\x00\xb8>\xb0\x17\xd0.QWvc`P\xfd \x18\xda\x08\x89\xad\x86\x90\xe0\xb5\x00\x92\xba\x08\xe9\xf5z\x90Rbww\xb7\xa4\xac\xa3\xe95 \x07\x06\xfd\xd0\x02\xc4\x1d\x18e\x84\x14\x80L-eI\xc8\xe3\xb5\x02\x02\x9c\xbdqSS\xb1\xf9\xb5\x9dhk\xaatb"+ " \xc9\xeai\xaaNC\xa6e\xa7\x97\x8e\xd7FYD\x848\x8e\xa1\x94*\xeb\x10\"\xc28\xbbY\xd4 \xfd\x10\x80@n\xae\xf6\xad\xe4\xda0Re\xd0\xe6\xaa\xb2\xd3\x908\xcd-\x90\xe27+\x03\x02 qYV\xf5^C\x97q\xe5.B\xec\xb5\x90\xab\x9cae\x8aZ\xb7"+ "\x85\xa4\x14\xf0d\x01\xc8hZ\xf4\xb1|aV\x8f\x10\"\xca\x9d\xa8\xf7\xfb}\x18c0\x18\x0cN\xef\x11Q\x11@\xc0N\xcf\xbf\xb2U:\x11\x90*SV\xe0m,\xb0\x19'\x11#\xb5\x95\xba\x11A+@\x96\xd5!e\x84\x14\x95y1\x83\xcf\x0d\xd7\xe9\xedE\x01\x88\xf8J"+ "Q\x16s\x11\x15q\xa6\xcf\x05\x86\xd3\x0f\xe6\x99b\x91\xdez\xf5\x8b\x1f\xae\x83\xb2\xca\xc20\xcb2h\xad\x11\xc7qY(\xe6\xa6\xc0\xb3\x17z \x06\x94\xe2+\x01\x842\x04\xa5y\xa9p/\x02\xc4\x10cR\xb6Mp\xec\xa6\x9e\xacJY\xb1\xa3\xac<\xcf\xcbn\xafR\n"+ "\x86\x00m7\x0fC\xdfF\xc8\xc3\xab!\xc4\x806\x85N\xf0\x8a\xe7\x95\xe7 \x18bL\x93\xb2\x8fu\xdcv\xdbeY\x96\x02\x8aK\xb8Q\x14A)U\xd6#\x89\xf6\x00U\xd0X\xe0{ z\xf8\xd2^\xa2\xe2r\x816|nZZ\xe8T\x0b\x88+\n"+ "\xc1\xfc\xe1Z\x00A\xf1\xc0\x17\x10\x11\x84\x10\xf0}\x1fQTT\xe5\x89\x9d\xde\x1a\xf8\x1e<)@\xcc\xd0\x0f\xb80d.fL\xcd\xde\xd6P]\xc7`.\xa6\xe6\x101.\xeah=Q\xf8c\xea\x00\x118Z\x0b D\xa4]a\xe8h+MSdY\x86\xa9*6\x8d\xa2"+ "\x00\x0c\xc00C] e9G2\x03\xc4\x0cb7\xcf\xd6\xbe^\xa2\xc8\x93r6B\x18X\x0fe !\xa6\xeeJa\x92$%(Y\x96!\xb1\x8d\xc5\x9d^P\x9eq\xc4\xebq\x0bq\x912\x1a;\xc8:\xfea1\xcf\x01\xe2\xda&\x8c\xf5P\x96\xd6Z\xbb\xfb\xeb\xc20"+ "\x84\xd6\xba\x9c\xdbKy\xcf\xd6 !\x88V\x8b\x0e\xc7\xe5\x0e\x00~\xc8\x935!\x8ah\xaeP\xd6z\x00\x91RN\\e\xee4\xa4\xd7\xeb\xd9\x19\x8b\xc5\x04\xb9^?\xb0N\xe4s\xd1\x8f&\xb6bJ\x0f=\x00g\xfc&\x04\x88\x18\x89k\x9b\xb4\xec\xf4\xb6\x11\xf5\xf2\xf1\x1aD"+ "\x04\xa5TIYiY\x83\xf8 f,\x0b\x10\x97V\xae;\xa3\xb9\x94\x11\x02\xc0\x10\xca\x08\x91$\xd7\xa3!D4v\xd7\xd4\x93$)\x0b\xc4,\xcb\x90Y@\xa2\xd0\x07\x11`\x0c7\x16Y\xdb\x00\xc2\x993\xb9\xd26i\xdb\xe9m\xa3!\xe44$\x08\x020s\xf9 \x1am"+ "\x8ak a\xe0\x177\x87V.Li\xc3%\x10\xdbfR\x08P\x91{#M\xdd\x9c^o=\x94\x15E\xd18\xcb2[}z\x88\xa2\x08\xfd~\xbfx\x08\x8d\n"+ "\x00\x06\xa2\xc0\x87\xb1z\x90\xeb\xd5Z\x0eW\x02\x10)\xca\x8c3w\xbd\xac [\x8f\xa8gYFN\xac]\xff\xca\xb5Or\xdbX\xf4\x03\x0f\xca\x10\xc6\xb1B\xa6.o\xa5\xce\x1b:I\x04\n"+ "\xb6\xc8r\x0dW\x1d\xc5G\x83\xf5P\xd6\xeb\xaf\xbf>z\xea\xa9\xa7\x00\x14\xcf>t\xcd\xc5I\x9c\xc2\xb0,+uGQ\x17\xf1G\xf3\x067\xe65\x1d\xaf1\xa7\xfa\x01`t\xe7\xf6\xd3\xf9\xba\xb2\xac\xf2\x18\xddS\x0e\xa4\x940\xb6m\"\x85\x80\x10\x12\xda\x10\x94\x99\xad\x1f6"+ "MZ\xbc\xc1\x1f]\xf63\xcaP\xb5\x06\xb9{\x9e}\xb7y\"\xc1\x10\xc0\x9e\xef\xfb\x08\xc3B\xc8\xc7\xc6\x00c\xc0\x0f\x8a\x94\x97\x8c\xb0\x15\xf5\xba\xff8^\xebi\xbd\xa9\x93D\x13\x9fN!\xa5\xf6\x9d\xde\xb6\x80\x94\x1a\xe22\xad\xcc\xd8>V\xe8A\x17)\x05\xf4\x05\x16x\xbc"+ "A\xef\xae\xba\xdb\xa2\xdebd\x99\xbb\xa8\xd7\xbe\xd3\xdb\x06\x10\xc1\xcc#!\xc4\x9e\x9bp\x1d\xc71\xc6\xc9N\xa1\x1f\x81\x0fc\n"+ "\xe9\xaa\x9b\x8e\xc5\x1b\xf4\x16o\x10\x06^R\x7f(M\xe5\x9c^bZ\x1b >\x80\xa0\xe4E[\x8b\x00\x80\x11!\xc0@\xe0\xfb\xc8\x8d\x9d \xcf\xeb\xff\xe3.\x02U\xbe\xe0\xb0b\xb2\x11\xa2,ei5\x02\xd0\x03\xa0\xed87 \xc2\x02\x11\x02\xf0\x99y\xe2\xae\xa5\x0f\x06\x03"+ "x\x9e\x07$;@\x0ex\xbe\x07m\xc8\xb6\xc3\xf9B=\xb6\xc9$\x81W\xf8\xb2a\x00\x06\xa7\x93\x1bL\xee\x00Q(\xe60\xa8E?1\x0f\x88\xac\x80\x11\x00\x08\x84(\xae\x05W':h\x1b8\xbeMy\x17\xb5\xc7yS\x9e\xd8\x14h\xbc\xf8\xb7\x0c\x11\x08\x02\xb9\x8d\x10\xa3"+ "\x921\x80\xc8\xfaV\xd8\x917\xed\xc2o\xa0)\x07JHD\xb1\xe7ye\x0d\x92$ bu\xab\x00Gz\xb6\xfe\xc0\xfdE\x08_\xf2\xb3\xff>6\xd2\xf6I\x0f\xee\x046\xe9xh})\xe6\xf6\x98/\x03\xc4\xaf\x8c\xa02\\\xd5^>4\xc0\xdd\xa4#<y\xfe\xbbny"+ "\x83\x8e|\x00\xe6\xba\xdeJ\x15m\x13\x95\x8c'\x16\x10\x06@\x95a\xech\x04D\xa2xj\x83o_=\xab!q\x91Q\x05\x18\x0c\x06\x08\x82\x00z\xd4\x03\x18\xf0=\x1f\xdc\xdd\x05=\x97\xf6\x9e\xb6\x9a\x00 \x1b\xbf?\xb6>5\x15 \x9c\xaf\xcf\x00\"+\xaf\xf3\xc3\x03P<"+ " \xd3\xfe\x80\x10\x02F\x04\xc8\xb9\x98\xa9\x18Fa\x87@m\x0f0\x87\xd6\x06`N\xdf\xff\xf1w\xdfm\xf0\xafD\xcd\x7f8\x92s\xd9U\xf5\xbd\xb0uH\x0c\x9c>\x11\xee0)\x9e]\xdc\xef\xf5\xe0y\xdd\x83f\xea\xec\xde\x87\xc5\x83\xafu6\xfe/\x15\x0f\xb9\xe2O\xd4\xbc"+ "o\x04\x84+\xaf\xe5p\x11\x92e\x19\xeee!~zR\x08\xfa\xad\xdf\xb9\xd1y\xbe\x0e\x8c\xe3\x11\x8e\xee\x1e\x03\x0c>\xfe\xf9\x0f\xfe\xce\xd2\x14\xd7\xf8\xb7V\x1a\x9d\x86T\xc5\x86+\\Gq\x1c\x7f?\x8a\xa2/\xfc\x04\x7f\x06\xfe\xb5w\xfa\xc3\xf7\x868\xb97\xea\x10\x98i/"+ "\x19\xa4\xf6\xb9&\xe9\xe8\x83\xdb\xff\xff\xa3\x7f\xfc\xe9\x9co\xa9\xc6\xd7\x8d\xa2\xee@\xd0\x15\x0d\xd1w\xee\xdc\xf9\xde\x13\x7f\xf4'\x9fe\xe1}\xb6\xba\xe1t\x92t\x08\xd4\x89:\xe9{\xf1\x87\xbf\xfc\x87\x9f\xfd\xcb\xd7\xff\xde\x16\x81\xaaR\xa5\xeb9q\xaf\xad\xca\xab\x16\xd6\x8c\x00@"+ "\xf0\xf8g\xbe\xf8\xb9\xde\x8d\xdf\xff\x1c\xabq\xccL\xeefC \x08f\xf0\x16\x89\x89P\xb1\xf6\xde\xd5\xecM\x8aBY\x1a\x06\x0b)<\xa1\xd2\xd1\xdd\xf7\xfe\xf3\x9f\xde\xd6\xc98\xb5\xcew\x80\xe4\x95\xd7\xeaX\n"+ "\xc8\x99J\xbd2\xaauJ5S\xe0j\xbd\xb2\x85\xa6\xac\x1f\xabT\xa4+\x804\x01\xd3\xaaR\xa7\xca\x97y\xae\x88\xa9\xd6'^%m\xdbv@L\xc5W\\)\xf8L\x03(\x0b{YbI\xe3\xb1\x1a\x19\xf3`\xc8\xca>\xfc-\x06D\xcfe\xa64\x07\x88\x99\xd3\x91\xc5\x84"+ "\xd8b\xfd|\xf5.;@\xceP\x16\x1aX\xc5\xb4\x05\xa2- \xf3\xfa2_e\x8a\x0e\x90F@\xdc8_\xca\xb0\x8e\xb4c\xcb5$Gg\x9du\xd6Yg\x9du\xd6Yg\x9du\xd6Yg\x9duvE\xed\xb7\x8bjI\xe6\xc3\x16\x92\xe2\x00\x00\x00\x00IEND\xaeB"+ "`\x82")) }
func init() { Files.Add("create_item.css", 120, time.Unix(0, 1370942742232957700), fileembed.String(".cam-createitem-link {\n"+ " font-size: 40pt;\n"+ " text-decoration: none;\n"+ "}\n"+ "\n"+ ".cam-createitem {\n"+ " cursor: pointer !important;\n"+ "}\n"+ "")) }
func init() { Files.Add("toolbar.css", 202, time.Unix(0, 1370942742232957700), fileembed.String(".cam-toolbar-magnify {\n"+ " display: block;\n"+ " vertical-align: middle;\n"+ " text-align: center;\n"+ " font-size: 16px;\n"+ " font-weight: bold;\n"+ "}\n"+ "\n"+ ".cam-toolbar-magnify .goog-toolbar-button-inner-box {\n"+ " width: 20px;\n"+ "}")) }
func init() { Files.Add("index.html", 1626, fileembed.String("<html>\n"+ "<head>\n"+ " <title>Recent Permanodes</title>\n"+ " <script type=\"text/javascript\" src=\"base64.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"Crypto.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"SHA1.js\"></script>\n"+ " <script src=\"camli.js\"></script>\n"+ " <script src=\"index.js\"></script>\n"+ " <script src=\"?camli.mode=config&cb=Camli.onConfiguration\"></script>\n"+ " <link rel=\"stylesheet\" href=\"camli.css\">\n"+ " <link rel=\"stylesheet\" href=\"index.css\">\n"+ "</head>\n"+ "<body class=\"camli-ui-index\">\n"+ " <h1 id=\"topTitle\">Recent Permanodes</h1>\n"+ " <div id='toolbar'>\n"+ " <input type='button' id='btnList' value=\"list\"><input type='button' id='btnTh"+ "umbs' value=\"thm\">\n"+ "\n"+ " <input type='button' id='btnSmaller' value=\"-\"><input type='button' id='btnBi"+ "gger' value=\"+\">\n"+ "\n"+ " <form style=\"display: inline\" id=\"formView\">\n"+ " View:\n"+ " <select id=\"selectView\">\n"+ " <option value=\"recent\">Recent</a>\n"+ " <option value=\"date\">From <date>...</a>\n"+ " <option id=\"optFromSel\" value=\"fromsel\" disabled='true'>From selected ite"+ "m</a>\n"+ " <optiongroup title=\"Debug\">\n"+ " <option value=\"search\">Old Search</a>\n"+ " <option value=\"debug:disco\">Debug: Discovery</a>\n"+ " <option value=\"debug:signing\">Debug: Signing</a>\n"+ " <option value=\"debug:misc\">Debug: Misc</a>\n"+ " </optiongroup>\n"+ " </select>\n"+ " </form>\n"+ "\n"+ " <form style=\"float: right\" id=\"formSearch\">\n"+ " <input type=\"text\" id=\"textSearch\" size=15 title=\"Search\"><input type=\"subm"+ "it\" id=\"btnSearch\" value=\"Srch\">\n"+ " </form>\n"+ " </div>\n"+ " <ul id=\"recent\"></ul>\n"+ "\n"+ " <div style=\"display: block; clear: both\" id=\"debugstatus\"></div>\n"+ "\n"+ "</body>\n"+ "</html>\n"+ ""), time.Unix(0, 1358714562000000000)) }
func init() { Files.Add("blob_item_test.html", 1505, time.Unix(0, 1370942742232957700), fileembed.String("<!doctype html>\n"+ "<html>\n"+ " <head>\n"+ " <script src=\"closure/goog/base.js\"></script>\n"+ " <script src=\"./deps.js\"></script>\n"+ " <script>\n"+ " goog.require('camlistore.BlobItem');\n"+ " </script>\n"+ " <link rel=\"stylesheet\" href=\"blob_item.css\" type=\"text/css\">\n"+ " </head>\n"+ " <body>\n"+ " <script>\n"+ " var blobRef = 'sha1-5660088af0aa0d4f2294088f41284002a1baaa29';\n"+ " var metaBag = {\n"+ " 'sha1-5660088af0aa0d4f2294088f41284002a1baaa29': {\n"+ " 'blobRef': 'sha1-5660088af0aa0d4f2294088f41284002a1baaa29',\n"+ " 'camliType': 'permanode',\n"+ " 'mimeType': 'application/json; camliType=permanode',\n"+ " 'permanode': {\n"+ " 'attr': {\n"+ " 'camliContent': ['sha1-c2379bcf77848c90d2c83709aaf7f628a21ff725']\n"+ " }\n"+ " },\n"+ " 'size': 556,\n"+ " 'thumbnailHeight': 100,\n"+ " 'thumbnailSrc': 'thumbnail/sha1-c2379bcf77848c90d2c83709aaf7f628a21ff72"+ "5/leisure-suit-tony.gif?mw=100&mh=100',\n"+ " 'thumbnailWidth': 100\n"+ " },\n"+ " 'sha1-c2379bcf77848c90d2c83709aaf7f628a21ff725': {\n"+ " 'blobRef': 'sha1-c2379bcf77848c90d2c83709aaf7f628a21ff725',\n"+ " 'camliType': 'file',\n"+ " 'file': {\n"+ " 'size': 37741,\n"+ " 'fileName': 'leisure-suit-tony.gif',\n"+ " 'mimeType': 'image/gif'\n"+ " },\n"+ " 'mimeType': 'application/json; camliType=file',\n"+ " 'size': 198\n"+ " }\n"+ " };\n"+ "\n"+ " var x = new camlistore.BlobItem(blobRef, metaBag);\n"+ " x.render(document.body);\n"+ " </script>\n"+ " </body>\n"+ "</html>\n"+ "")) }
func init() { Files.Add("index.css", 187, time.Unix(0, 1370942742232957700), fileembed.String(".cam-index-page {\n"+ " font: 16px/1.4 normal Arial, sans-serif;\n"+ "}\n"+ "\n"+ ".cam-index-title {\n"+ " display: inline-block;\n"+ "}\n"+ "\n"+ ".cam-index-serverinfo {\n"+ " display: inline;\n"+ " float: right;\n"+ " font-size: small;\n"+ "}\n"+ "")) }
func init() { Files.Add("blobinfo.css", 226, time.Unix(0, 1370942742232957700), fileembed.String(".cam-blobinfo-page {\n"+ " font: 16px/1.4 normal Arial, sans-serif;\n"+ "}\n"+ ".cam-blobinfo-page #blobdata {\n"+ " overflow: auto;\n"+ " max-width: 800px;\n"+ "}\n"+ ".cam-blobinfo-nav:before {\n"+ " content: \"[\";\n"+ "}\n"+ ".cam-blobinfo-nav:after {\n"+ " content: \"]\";\n"+ "}\n"+ "")) }
func init() { Files.Add("disco.html", 1238, fileembed.String("<html>\n"+ "<head>\n"+ " <title>Camlistored UI</title>\n"+ " <script src=\"camli.js\"></script>\n"+ " <script src=\"sigdebug.js\"></script>\n"+ " <script src=\"./?camli.mode=config&cb=Camli.onConfiguration\"></script>\n"+ "<script>\n"+ "\n"+ "// Or get configuration info like this:\n"+ "function discover() {\n"+ " var xhr = new XMLHttpRequest();\n"+ " xhr.onreadystatechange = function() {\n"+ " if (xhr.readyState != 4) { return; }\n"+ " if (xhr.status != 200) {\n"+ " console.log(\"no status 200; got \" + xhr.status);\n"+ " return;\n"+ " }\n"+ " disco = JSON.parse(xhr.responseText);\n"+ " document.getElementById(\"discores\").innerHTML = \"<pre>\" + JSON.stringify("+ "disco, null, 2) + \"</pre>\";\n"+ " };\n"+ " xhr.open(\"GET\", \"./?camli.mode=config\", true);\n"+ " xhr.send();\n"+ "}\n"+ "\n"+ "\n"+ "</script>\n"+ "</head>\n"+ "<body>\n"+ " <form>\n"+ " <h2>Root Discovery</h2>\n"+ " <p><input type=\"button\" id=\"discobtn\" onclick=\"discover()\" value=\"Do Discover"+ "y\" /></p>\n"+ " <div id=\"discores\" style=\"border: 2px solid gray\">(discovery results)</div>\n"+ "\n"+ "\n"+ " <h2>Signing Discovery</h2>\n"+ " <p><input type=\"button\" id=\"sigdiscobtn\" onclick=\"discoverJsonSign()\" value=\""+ "Do jsonSign discovery\" /></p>\n"+ " <div id=\"sigdiscores\" style=\"border: 2px solid gray\">(jsonsign discovery resu"+ "lts)</div>\n"+ " </form>\n"+ "</body>\n"+ "</html>\n"+ ""), time.Unix(0, 1358714649000000000)) }
func init() { Files.Add("blobinfo.html", 1350, time.Unix(0, 1370942742232957700), fileembed.String("<!doctype html>\n"+ "<html>\n"+ "<head>\n"+ " <title>Blob info</title>\n"+ " <script src=\"closure/goog/base.js\"></script>\n"+ " <script src=\"./deps.js\"></script>\n"+ " <script src=\"?camli.mode=config&var=CAMLISTORE_CONFIG\"></script>\n"+ " <!-- Begin non-Closure cheating; but depended on by server_connection.js -->\n"+ " <script type=\"text/javascript\" src=\"base64.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"Crypto.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"SHA1.js\"></script>\n"+ " <!-- End non-Closure cheating -->\n"+ " <link rel=\"stylesheet\" href=\"blobinfo.css\">\n"+ " <script>\n"+ " goog.require('camlistore.BlobPage');\n"+ " </script>\n"+ "</head>\n"+ "<body class=\"cam-blobinfo-page\">\n"+ " <div class=\"cam-blobinfo-nav\"><a href=\"./\">Home</a></div>\n"+ " <h1>Blob Contents</h1>\n"+ "\n"+ " <div id=\"thumbnail\"></div>\n"+ " <span id=\"editspan\" class=\"cam-blobinfo-nav\" style=\"display: none;\"><a href=\"#\" "+ "id=\"editlink\">edit</a></span>\n"+ " <span id=\"blobdownload\" class=\"cam-blobinfo-nav\"></span>\n"+ " <span id=\"blobdescribe\" class=\"cam-blobinfo-nav\"></span>\n"+ " <span id=\"blobbrowse\" class=\"cam-blobinfo-nav\"></span>\n"+ "\n"+ " <pre id=\"blobdata\"></pre>\n"+ "\n"+ " <h1>Indexer Metadata</h1>\n"+ " <pre id=\"blobmeta\"></pre>\n"+ "\n"+ " <div id=\"claimsdiv\" style=\"visibility: hidden\">\n"+ " <h1>Mutation Claims</h1>\n"+ " <pre id=\"claims\"></pre>\n"+ " </div>\n"+ "\n"+ " <script>\n"+ " var page = new camlistore.BlobPage(CAMLISTORE_CONFIG);\n"+ " page.decorate(document.body);\n"+ " </script>\n"+ "</body>\n"+ "</html>\n"+ "")) }
func init() { Files.Add("favicon.ico", 1150, fileembed.String("\x00\x00\x01\x00\x01\x00\x10\x10\x00\x00\x01\x00 \x00h\x04\x00\x00\x16\x00\x00\x00(\x00\x00\x00\x10\x00\x00\x00 \x00\x00\x00\x01\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00"+ "\x00\x00\xda\xff\x0e\x00\xda\xffh\x00\xda\xff\xf0\x00\xda\xff\xe0\x00\xda\xffO\x00\xda\xff\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x10\x00\xda\xffX\x00\xd9\xff\xce\x00\xdf\xff\xff\x00\xde\xff\xfa\x00\xde\xff\xf6"+ "\x00\xe1\xff\xfe\x00\xda\xff\xba\x00\xda\xffL\x00\xdb\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xffY\x00\xd9\xff\xc2\x00\xda\xff\xf3\x00\xec\xff\xf3\x00\xfb\xff\xf5\x00\xe6\xff\xf5\x00\xe3\xff\xf9\x00\xfc\xff\xf4\x00\xef\xff\xf6\x00\xdc\xff\xea\x00\xd9\xff\xb7\x00"+ "\xda\xffH\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff'\x00\xda\xff\xc2\x00\xd9\xff\xf2\x00\xe9\xff\xe9\x00\xfc\xff\xf6\x00\xfe\xff\xfd\x00\xff\xff\xff\x00\xe6\xff\xf7\x00\xe5\xff\xf7\x00\xf1\xff\xff\x00\xf4\xff\xfd\x00\xfd\xff\xfa\x00\xea\xff\xe6\x00\xda\xff\xf1\x00\xda\xff\xaf\x00\xda\xff\x15\x00\xda\xff\xfb\x00\xe1"+ "\xff\xf2\x00\xfa\xff\xed\x00\xff\xff\xff\x00\xff\xff\xff\x00\xfe\xff\xfe\x00\xff\xff\xff\x00\xe6\xff\xf7\x00\xe1\xff\xfb\x00\xfa\xff\xff\x00\xf8\xff\xfe\x00\xea\xff\xff\x00\xf7\xff\xff\x00\xf1\xff\xf3\x00\xdf\xff\xfc\x00\xda\xff\xd6\x00\xda\xffx\x00\xe2\xff\xfd\x00\xfc\xff\xf8\x00\xff\xff\xff\x00\xff\xff\xff\x00\xff\xff"+ "\xff\x00\xff\xff\xff\x00\xe6\xff\xf7\x00\xe4\xff\xf8\x00\xf2\xff\xff\x00\xf1\xff\xff\x00\xee\xff\xff\x00\xf3\xff\xfe\x00\xee\xff\xf8\x00\xdf\xff\xfd\x00\xda\xffa\x00\xda\xff \x00\xda\xff\xb7\x00\xea\xff\xf6\x00\xfe\xff\xfe\x00\xfe\xff\xfe\x00\xff\xff\xff\x00\xff\xff\xff\x00\xe6\xff\xf6\x00\xe3\xff\xf8\x00\xf1\xff\xff"+ "\x00\xf4\xff\xff\x00\xfa\xff\xfe\x00\xf7\xff\xfe\x00\xe4\xff\xfb\x00\xd9\xff\xa7\x00\xdb\xff\x05\x00\x00\x00\x00\x00\xda\xff9\x00\xd9\xff\xe4\x00\xf7\xff\xef\x00\xff\xff\xff\x00\xfe\xff\xfe\x00\xff\xff\xff\x00\xe6\xff\xf7\x00\xe6\xff\xf7\x00\xff\xff\xff\x00\xf6\xff\xfe\x00\xec\xff\xff\x00\xee\xff\xf1\x00\xd9\xff\xde\x00"+ "\xda\xff/\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\xff\x86\x00\xdc\xff\xec\x00\xfe\xff\xf4\x00\xff\xff\xff\x00\xff\xff\xff\x00\xe6\xff\xf7\x00\xe0\xff\xfb\x00\xf6\xff\xff\x00\xf0\xff\xff\x00\xfc\xff\xf4\x00\xdb\xff\xf1\x00\xda\xffx\x00\x00\x00\x00\x00\xdb\xff\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\xdc"+ "\xff\x03\x00\xda\xff\xcc\x00\xe6\xff\xef\x00\xff\xff\xfa\x00\xff\xff\xff\x00\xe6\xff\xf7\x00\xe4\xff\xf8\x00\xf1\xff\xff\x00\xf0\xff\xfa\x00\xe2\xff\xf5\x00\xda\xff\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\xdb\xff$\x00\xdb\xff\xf6\x00\xf1\xff\xf1\x00\xff\xff"+ "\xfe\x00\xe6\xff\xf6\x00\xe3\xff\xf8\x00\xf2\xff\xff\x00\xeb\xff\xf2\x00\xdb\xff\xf3\x00\xdb\xff\x1b\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\xda\xffW\x00\xdf\xff\xff\x00\xfb\xff\xf5\x00\xe6\xff\xf7\x00\xe1\xff\xfc\x00\xf1\xff\xf8\x00\xde\xff\xff"+ "\x00\xda\xffM\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\xdb\xff\x06\x00\xd9\xff\xab\x00\xeb\xff\xf2\x00\xe5\xff\xf4\x00\xe4\xff\xf4\x00\xe7\xff\xf7\x00\xd9\xff\xa3\x00\xdb\xff\x05\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\xff*\x00\xda\xff\xde\x00\xde\xff\xf2\x00\xde\xff\xf2\x00\xdb\xff\xda\x00\xda\xff'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\xffl\x00\xda\xff\xfe\x00\xda\xff\xfe\x00\xda\xffk\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff"+ "\xb0\x00\xdb\xff\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x7f\x00\x00\xf8\x1f\x00\x00\xe0\x07\x00\x00\x80\x01\x00\x00\x00\x00\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00\xc0\x03\x00\x00\xc0\x07\x00\x00\xe0\x07\x00\x00\xf0\x0f\x00\x00\xf8\x1f\x00\x00"+ "\xf8\x1f\x00\x00\xfc?\x00\x00\xfe\x7f\x00\x00\xfe\x7f\x00\x00"), time.Unix(0, 1363391867493748683)) }
func init() { Files.Add("signing.html", 1242, fileembed.String("<html>\n"+ "<head>\n"+ " <title>Camlistored UI</title>\n"+ " <script src=\"camli.js\"></script>\n"+ " <script src=\"sigdebug.js\"></script>\n"+ " <script src=\"./?camli.mode=config&cb=Camli.onConfiguration\"></script>\n"+ "</head>\n"+ "<body>\n"+ " <h1>Signing Debug</h1>\n"+ " <form>\n"+ " <p><input type=\"button\" id=\"sigdiscobtn\" onclick=\"discoverJsonSign()\" value=\""+ "Do jsonSign discovery\" /></p>\n"+ " <div id=\"sigdiscores\" style=\"border: 2px solid gray\">(jsonsign discovery resu"+ "lts)</div>\n"+ "\n"+ " <table>\n"+ " <tr align='left'>\n"+ " <th>JSON blob to sign: <input type='button' id='addkeyref' onclick='addKe"+ "yRef()' value=\"Add keyref\"/></th>\n"+ " <th></th>\n"+ " <th>Signed blob:</th>\n"+ " <th></th>\n"+ " <th>Verification details:</th>\n"+ " </tr>\n"+ " <tr>\n"+ " <td><textarea id='clearjson' rows=10 cols=40>{\"camliVersion\": 1,\n"+ " \"camliType\": \"whatever\",\n"+ " \"foo\": \"bar\"\n"+ "}</textarea></td>\n"+ " <td valign='middle'><input type='button' id='sign' onclick='doSign()' val"+ "ue=\"Sign >>\" /></td>\n"+ " <td><textarea id=\"signedjson\" rows=10 cols=40></textarea></td>\n"+ " <td valign='middle'><input type='button' id='sign' onclick='doVerify()' v"+ "alue=\"Verify >>\" /></td>\n"+ " <td><div id='verifyinfo'></div></td>\n"+ " </tr>\n"+ " </table>\n"+ " </form>\n"+ "\n"+ "</body>\n"+ "</html>\n"+ ""), time.Unix(0, 1358714701000000000)) }
func init() { Files.Add("debug.html", 1258, fileembed.String("<html>\n"+ "<head>\n"+ " <title>Camlistored UI</title>\n"+ " <script type=\"text/javascript\" src=\"base64.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"Crypto.js\"></script>\n"+ " <script type=\"text/javascript\" src=\"SHA1.js\"></script>\n"+ " <script src=\"camli.js\"></script>\n"+ " <script src=\"debug.js\"></script>\n"+ " <script src=\"?camli.mode=config&cb=Camli.onConfiguration\"></script>\n"+ " <link rel=\"stylesheet\" href=\"camli.css\">\n"+ "</head>\n"+ "<body class=\"camli-ui-index\">\n"+ " <h1>Camlistored UI</h1>\n"+ " <p class=\"camli-nav\"><strong>Debug:</strong>\n"+ " <a href=\"disco.html\">discovery</a> |\n"+ " <a href=\"signing.html\">signing</a></p>\n"+ "\n"+ " <button id=\"btnNew\">New</button> - create a new item or collection \n"+ "\n"+ " <h2>Recent Objects</h2>\n"+ " <p class=\"camli-nav\">\n"+ " <strong>View:</strong>\n"+ " <a href=\"recent.html\">thumbnails</a></p>\n"+ " <ul id=\"recent\"></ul>\n"+ "\n"+ " <h2>Search</h2>\n"+ " <form id=\"formSearch\">\n"+ " <p>\n"+ " <input id=\"inputSearch\" placeholder=\"tag1\">\n"+ " <input type=\"submit\" id=\"btnSearch\" value=\"Search\">\n"+ " </form>\n"+ "\n"+ " <h2>Upload</h2>\n"+ " <form method=\"POST\" id=\"uploadform\" enctype=\"multipart/form-data\">\n"+ " <input type=\"file\" id=\"fileinput\" multiple=\"true\" name=\"file\" disabled=\"true\""+ ">\n"+ " <input type=\"submit\" id=\"filesubmit\" value=\"Upload\" disabled=\"true\">\n"+ " </form>\n"+ "\n"+ "</body>\n"+ "</html>\n"+ ""), time.Unix(0, 1358714643000000000)) }
func init() { Files.Add("blob_item_container.css", 857, time.Unix(0, 1370942742232957700), fileembed.String(".cam-blobitemcontainer {\n"+ " outline: 0; /* Do not show an outline when container has focus. */\n"+ " border-width: 5px;\n"+ " border-color: rgba(0, 0, 0, 0);\n"+ " border-style: dashed;\n"+ " position: relative;\n"+ " border-radius: 5px;\n"+ "}\n"+ ".cam-blobitemcontainer-dropactive {\n"+ " border-color: #acf;\n"+ "}\n"+ ".cam-blobitemcontainer-drag-indicator {\n"+ " position: absolute;\n"+ " left: 0;\n"+ " right: 0;\n"+ " bottom: 0;\n"+ " top: 0;\n"+ " display: none;\n"+ "}\n"+ ".cam-blobitemcontainer-dropactive .cam-blobitemcontainer-drag-indicator {\n"+ " display: block;\n"+ "}\n"+ ".cam-blobitemcontainer-drag-message {\n"+ " display: block;\n"+ " margin: 0 auto;\n"+ " border: 10px solid #acf;\n"+ " padding: 25px;\n"+ " background-color: #def;\n"+ " color: #000;\n"+ " font-size: 16px;\n"+ " font-family: sans-serif;\n"+ " width: 250px;\n"+ " opacity: 0.8;\n"+ " text-align: center;\n"+ " border-radius: 10px;\n"+ " margin-top: 30px;\n"+ "}\n"+ "\n"+ ".cam-blobitemcontainer-hidden {\n"+ " display: none;\n"+ "}\n"+ "")) }
func init() { Files.Add("deps.js", 2862, time.Unix(0, 1370943020232927992), fileembed.String("goog.addDependency(\"../../blob_item.js\", [\"camlistore.BlobItem\"], [\"camlistore.Se"+ "rverType\", \"goog.dom\", \"goog.dom.classes\", \"goog.events.EventHandler\", \"goog.even"+ "ts.EventType\", \"goog.ui.Control\"]);\n"+ "goog.addDependency(\"../../blob_item_container.js\", [\"camlistore.BlobItemContainer"+ "\"], [\"goog.dom\", \"goog.dom.classes\", \"goog.events.Event\", \"goog.events.EventHandl"+ "er\", \"goog.events.EventType\", \"goog.events.FileDropHandler\", \"goog.ui.Container\","+ " \"camlistore.BlobItem\", \"camlistore.CreateItem\", \"camlistore.ServerConnection\"]);\n"+ "goog.addDependency(\"../../blobinfo.js\", [\"camlistore.BlobPage\"], [\"goog.dom\", \"go"+ "og.ui.Component\", \"camlistore.ServerConnection\"]);\n"+ "goog.addDependency(\"../../create_item.js\", [\"camlistore.CreateItem\"], [\"goog.dom\""+ ", \"goog.dom.classes\", \"goog.events.EventHandler\", \"goog.events.EventType\", \"goog."+ "ui.Control\"]);\n"+ "goog.addDependency(\"../../filetree.js\", [\"camlistore.FiletreePage\"], [\"goog.dom\","+ " \"goog.events.EventType\", \"goog.ui.Component\", \"camlistore.ServerConnection\"]);\n"+ "goog.addDependency(\"../../index.js\", [\"camlistore.IndexPage\"], [\"goog.array\", \"go"+ "og.dom\", \"goog.dom.classes\", \"goog.events.EventHandler\", \"goog.events.EventType\","+ " \"goog.ui.Component\", \"goog.ui.Textarea\", \"camlistore.BlobItemContainer\", \"camlis"+ "tore.ServerConnection\", \"camlistore.Toolbar\", \"camlistore.Toolbar.EventType\", \"ca"+ "mlistore.ServerType\"]);\n"+ "goog.addDependency(\"../../permanode.js\", [\"camlistore.PermanodePage\"], [\"goog.dom"+ "\", \"goog.events.EventHandler\", \"goog.events.EventType\", \"goog.events.FileDropHand"+ "ler\", \"goog.ui.Component\", \"camlistore.BlobItem\", \"camlistore.BlobItemContainer\","+ " \"camlistore.ServerConnection\"]);\n"+ "goog.addDependency(\"../../pics.js\", [\"camlistore.GalleryPage\"], [\"goog.dom\", \"goo"+ "g.events.EventHandler\", \"goog.events.EventType\", \"goog.ui.Component\", \"camlistore"+ ".ServerConnection\"]);\n"+ "goog.addDependency(\"../../search.js\", [\"camlistore.SearchPage\"], [\"goog.array\", \""+ "goog.dom\", \"goog.dom.classes\", \"goog.events.EventHandler\", \"goog.events.EventType"+ "\", \"goog.ui.Component\", \"camlistore.BlobItemContainer\", \"camlistore.ServerConnect"+ "ion\", \"camlistore.Toolbar\", \"camlistore.Toolbar.EventType\"]);\n"+ "goog.addDependency(\"../../server_connection.js\", [\"camlistore.ServerConnection\"],"+ " [\"camlistore.base64\", \"camlistore.SHA1\", \"goog.net.XhrIo\", \"goog.Uri\", \"goog.deb"+ "ug.ErrorHandler\", \"goog.uri.utils\", \"camlistore.ServerType\"]);\n"+ "goog.addDependency(\"../../server_type.js\", [\"camlistore.ServerType\"], []);\n"+ "goog.addDependency(\"../../sigdebug.js\", [\"camlistore.DebugPage\"], [\"goog.dom\", \"g"+ "oog.events.EventType\", \"goog.ui.Component\", \"camlistore.ServerConnection\"]);\n"+ "goog.addDependency(\"../../toolbar.js\", [\"camlistore.Toolbar\", \"camlistore.Toolbar"+ ".EventType\"], [\"goog.dom\", \"goog.dom.classes\", \"goog.events.EventHandler\", \"goog."+ "events.EventType\", \"goog.ui.MenuItem\", \"goog.ui.PopupMenu\", \"goog.ui.Toolbar\", \"g"+ "oog.ui.ToolbarButton\", \"goog.ui.ToolbarMenuButton\"]);\n"+ "")) }
func init() { Files.Add("create_item_test.html", 461, time.Unix(0, 1370942742232957700), fileembed.String("<!doctype html>\n"+ "<html>\n"+ " <head>\n"+ " <script src=\"closure/goog/base.js\"></script>\n"+ " <script src=\"./deps.js\"></script>\n"+ " <script>\n"+ " goog.require('camlistore.CreateItem');\n"+ " </script>\n"+ " <link rel=\"stylesheet\" href=\"blob_item.css\" type=\"text/css\">\n"+ " <link rel=\"stylesheet\" href=\"create_item.css\" type=\"text/css\">\n"+ " </head>\n"+ " <body>\n"+ " <script>\n"+ " var x = new camlistore.CreateItem();\n"+ " x.render(document.body);\n"+ " </script>\n"+ " </body>\n"+ "</html>\n"+ "")) }
func init() { Files.Add("filetree.html", 551, fileembed.String("<!doctype html>\n"+ "<html>\n"+ "<head>\n"+ " <title>Gallery</title>\n"+ " <script src=\"base64.js\"></script>\n"+ " <script src=\"Crypto.js\"></script>\n"+ " <script src=\"SHA1.js\"></script>\n"+ " <script src=\"camli.js\"></script>\n"+ " <script src=\"?camli.mode=config&cb=onConfiguration\"></script>\n"+ " <script src=\"filetree.js\"></script>\n"+ " <link rel=\"stylesheet\" href=\"camli.css\">\n"+ "</head>\n"+ "<body class=\"camli-ui-permanode\">\n"+ " <div class=\"camli-nav\"><a href=\"./\">Home</a></div>\n"+ " <h1>FileTree for <span id=\"curDir\" class=\"camli-nav\"></span> </h1>\n"+ "\n"+ " <div id=\"children\"></div>\n"+ "\n"+ "</body>\n"+ "</html>\n"+ ""), time.Unix(0, 1349725494193783184)) }
func init() { Files.Add("permanode.css", 606, time.Unix(0, 1370942742232957700), fileembed.String(".cam-permanode-page {\n"+ " font: 16px/1.4 normal Arial, sans-serif;\n"+ "}\n"+ ".cam-permanode-nav:before {\n"+ " content: \"[\";\n"+ "}\n"+ ".cam-permanode-nav:after {\n"+ " content: \"]\";\n"+ "}\n"+ ".cam-permanode-del {\n"+ " text-decoration: underline;\n"+ " cursor: pointer;\n"+ " color: darkred;\n"+ " margin-left: .4em;\n"+ " font-size: 80%;\n"+ "}\n"+ ".cam-permanode-tag-c {\n"+ " margin-right: .5em;\n"+ "}\n"+ ".cam-permanode-tag {\n"+ " font-style: italic;\n"+ "}\n"+ ".cam-permanode-dnd {\n"+ " border: 2px dashed black;\n"+ " min-height: 250px;\n"+ " padding: 10px;\n"+ "}\n"+ ".cam-permanode-dnd-item {\n"+ " margin: 0.25em;\n"+ " border: 1px solid #888;\n"+ " padding: 0.25em;\n"+ "}\n"+ ".cam-permanode-dnd-over {\n"+ " background: #eee;\n"+ "}")) }
func init() { Files.Add("permanode.html", 2667, fileembed.String("<!doctype html>\n"+ "<html>\n"+ "<head>\n"+ " <title>Permanode</title>\n"+ " <script src=\"base64.js\"></script>\n"+ " <script src=\"Crypto.js\"></script>\n"+ " <script src=\"SHA1.js\"></script>\n"+ " <script src=\"camli.js\"></script>\n"+ " <script src=\"?camli.mode=config&cb=onConfiguration\"></script>\n"+ " <script src=\"permanode.js\"></script>\n"+ " <link rel=\"stylesheet\" href=\"camli.css\">\n"+ "</head>\n"+ "<body class=\"camli-ui-permanode\">\n"+ " <div class=\"camli-nav\"><a href=\"./\">Home</a></div>\n"+ " <h1>Permanode</h1>\n"+ "\n"+ " <p>\n"+ " Permalink:\n"+ " <span id=\"permanode\"></span>\n"+ " <span id=\"permanodeBlob\" class=\"camli-nav\"></span>\n"+ " </p>\n"+ "\n"+ " <form id=\"formTitle\">\n"+ " <p>\n"+ " Title: <input type=\"text\" id=\"inputTitle\" size=\"30\" value=\"(loading)\" disab"+ "led=\"disabled\">\n"+ " <input type=\"submit\" id=\"btnSaveTitle\" value=\"Save\" disabled=\"disabled\">\n"+ " </p>\n"+ " </form>\n"+ "\n"+ " <form id=\"formTags\">\n"+ " <p>\n"+ " <label for=\"inputNewTag\">Tags:</label>\n"+ " <span id=\"spanTags\"></span>\n"+ " <input id=\"inputNewTag\" placeholder=\"tag1, tag2, tag3\">\n"+ " <input type=\"submit\" id=\"btnAddTag\" value=\"Add Tag(s)\">\n"+ " </form>\n"+ "\n"+ " <form id=\"formAccess\">\n"+ " <p>Access:\n"+ " <select id=\"selectAccess\" disabled=\"disabled\">\n"+ " <option value=\"private\">Private</option>\n"+ " <option value=\"public\">Public</option>\n"+ " </select>\n"+ " <input type=\"submit\" id=\"btnSaveAccess\" value=\"Save\" disabled=\"disabled\">\n"+ "\n"+ " ... with URL: <select id=\"selectPublishRoot\">\n"+ " <option value=\"\"></option>\n"+ " </select>\n"+ " <input type=\"text\" id=\"publishSuffix\" size=\"40\">\n"+ " <input type=\"submit\" id=\"btnSavePublish\" value=\"Set URL\">\n"+ " </p>\n"+ " </form>\n"+ "\n"+ " <div id=\"existingPaths\"></div>\n"+ "\n"+ " <div id=\"members\"></div>\n"+ "\n"+ " <form id=\"formType\">\n"+ " <p>Type:\n"+ " <select id='type'>\n"+ " <option value=''>(None / auto)</option>\n"+ " <option value='_other'>(Other)</option>\n"+ " <option value=\"root\">Root (of a hierarchy)</option>\n"+ " <option value=\"collection\">Collection (e.g. directory, gallery)</option>\n"+ " <option value=\"file\">File</option>\n"+ " <option value=\"collection\">File Collection / Gallery</option>\n"+ " <option value=\"microblog\">Microblog Post</option>\n"+ " <option value=\"blog\">Blog Post</option>\n"+ " </select>\n"+ " </p>\n"+ " </form>\n"+ "\n"+ " <p>\n"+ " <button id=\"btnGallery\"> Show gallery </button> \n"+ " </p>\n"+ "\n"+ " <div id=\"content\"></div>\n"+ "\n"+ " <div id=\"dnd\" class=\"camli-dnd\">\n"+ " <form id=\"fileForm\">\n"+ " <input type=\"file\" id=\"fileInput\" multiple=\"true\" onchange=\"\">\n"+ " <input type=\"submit\" id=\"fileUploadBtn\" value=\"Upload\">\n"+ " </form>\n"+ " <p id='filelist'>\n"+ " <em>or drag & drop files here</em>\n"+ " </p>\n"+ " <pre id=\"info\"></pre>\n"+ " </div>\n"+ "\n"+ " <h3>Current object attributes</h3>\n"+ " <pre id=\"debugattrs\" style=\"font-size: 8pt\"></pre>\n"+ "\n"+ "</body>\n"+ "</html>\n"+ ""), time.Unix(0, 1354832601372888952)) }
func init() { Files.Add("index.js", 10831, fileembed.String("/*\n"+ "Copyright 2012 Camlistore Authors.\n"+ "\n"+ "Licensed under the Apache License, Version 2.0 (the \"License\");\n"+ "you may not use this file except in compliance with the License.\n"+ "You may obtain a copy of the License at\n"+ "\n"+ " http://www.apache.org/licenses/LICENSE-2.0\n"+ "\n"+ "Unless required by applicable law or agreed to in writing, software\n"+ "distributed under the License is distributed on an \"AS IS\" BASIS,\n"+ "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"+ "See the License for the specific language governing permissions and\n"+ "limitations under the License.\n"+ "*/\n"+ "\n"+ "var CamliIndexPage = {\n"+ " thumbSizes: [25, 50, 75, 100, 150, 200],\n"+ " thumbSizeIdx: 3\n"+ "};\n"+ "\n"+ "CamliIndexPage.thumbSize = function() {\n"+ " return CamliIndexPage.thumbSizes[CamliIndexPage.thumbSizeIdx];\n"+ "};\n"+ "\n"+ "CamliIndexPage.thumbBoxSize = function() {\n"+ " return 50 + CamliIndexPage.thumbSizes[CamliIndexPage.thumbSizeIdx];\n"+ "};\n"+ "\n"+ "CamliIndexPage.thumbFontSize = function() {\n"+ " var fontSize = (CamliIndexPage.thumbSize() / 6);\n"+ " if (fontSize < 10) {\n"+ " fontSize = 10;\n"+ " }\n"+ " if (fontSize > 20) {\n"+ " fontSize = 20;\n"+ " }\n"+ " return fontSize + \"px\";\n"+ "};\n"+ "\n"+ "CamliIndexPage.onLoad = function() {\n"+ " CamliIndexPage.startRecentLoading();\n"+ "\n"+ " var selView = $(\"selectView\");\n"+ " var goTargets = {\n"+ " \"recent\": function() { alert(\"not implemented, but it's already in recent m"+ "ode\"); },\n"+ " \"date\": function() { alert(\"TODO: pop up a date selector dialog\"); },\n"+ " \"fromsel\": function() { alert(\"TODO: go forward in time from selected item\""+ "); },\n"+ " \"debug:signing\": \"signing.html\", \n"+ " \"debug:disco\": \"disco.html\",\n"+ " \"debug:misc\": \"debug.html\",\n"+ " \"search\": \"search.html\"\n"+ " };\n"+ " selView.addEventListener(\n"+ " \"change\",\n"+ " function(e) {\n"+ " var target = goTargets[selView.value];\n"+ " if (!target) {\n"+ " return;\n"+ " }\n"+ " if (typeof(target) == \"string\") {\n"+ " window.location = target;\n"+ " }\n"+ " if (typeof(target) == \"function\") {\n"+ " target();\n"+ " }\n"+ " });\n"+ "\n"+ " $(\"formSearch\").addEventListener(\"submit\", CamliIndexPage.onSearchSubmit);\n"+ " $(\"btnSmaller\").addEventListener(\"click\", CamliIndexPage.sizeHandler(-1));\n"+ " $(\"btnBigger\").addEventListener(\"click\", CamliIndexPage.sizeHandler(1));\n"+ " setTextContent($(\"topTitle\"), Camli.config.ownerName + \"'s Vault\");\n"+ "};\n"+ "\n"+ "CamliIndexPage.sizeHandler = function(idxDelta) {\n"+ " return function(e) { // onclick handler\n"+ " var newSize = CamliIndexPage.thumbSizeIdx + idxDelta;\n"+ " if (newSize < 0 || newSize >= CamliIndexPage.thumbSizes.length) {\n"+ " return;\n"+ " }\n"+ " CamliIndexPage.thumbSizeIdx = newSize;\n"+ " $(\"recent\").innerHTML = \"\";\n"+ " CamliIndexPage.startRecentLoading();\n"+ " };\n"+ "};\n"+ "\n"+ "CamliIndexPage.startRecentLoading = function() {\n"+ " camliGetRecentlyUpdatedPermanodes({success: CamliIndexPage.onLoadedRecentItem"+ "s, thumbnails: CamliIndexPage.thumbSize()});\n"+ "};\n"+ "\n"+ "CamliIndexPage.onSearchSubmit = function(e) {\n"+ " e.preventDefault();\n"+ " e.stopPropagation();\n"+ " var searchVal = $(\"textSearch\").value;\n"+ " if (searchVal == \"\") {\n"+ " CamliIndexPage.startRecentLoading();\n"+ " } else {\n"+ " // TODO: super lame. for now. should just change filter\n"+ " // of existing page, without navigating away.\n"+ " window.location = \"search.html?t=tag&q=\" + searchVal;\n"+ " }\n"+ "};\n"+ "\n"+ "var lastSelIndex = 0;\n"+ "var selSetter = {}; // numeric index -> func(selected) setter\n"+ "var currentlySelected = {}; // currently selected index -> true\n"+ "var itemsSelected = 0;\n"+ "\n"+ "CamliIndexPage.setThumbBoxStyle = function(div) {\n"+ " div.style.width = CamliIndexPage.thumbBoxSize() + \"px\";\n"+ " div.style.height = CamliIndexPage.thumbBoxSize() + \"px\";\n"+ " div.style.maxWidth = CamliIndexPage.thumbBoxSize() + \"px\";\n"+ " div.style.maxHeight = CamliIndexPage.thumbBoxSize() + \"px\";\n"+ "};\n"+ "\n"+ "// divFromResult converts the |i|th searchResult into\n"+ "// a div element, style as a thumbnail tile.\n"+ "function divFromResult(searchRes, i) {\n"+ " var result = searchRes.recent[i];\n"+ " var br = searchRes[result.blobref];\n"+ " var divperm = document.createElement(\"div\");\n"+ " CamliIndexPage.setThumbBoxStyle(divperm);\n"+ "\n"+ " var setSelected = function(selected) {\n"+ " if (divperm.isSelected == selected) {\n"+ " return;\n"+ " }\n"+ " divperm.isSelected = selected;\n"+ " if (selected) {\n"+ " lastSelIndex = i;\n"+ " currentlySelected[i] = true;\n"+ " divperm.classList.add(\"selected\");\n"+ " } else {\n"+ " delete currentlySelected[selected];\n"+ " lastSelIndex = -1;\n"+ " divperm.classList.remove(\"selected\");\n"+ " }\n"+ " itemsSelected += selected ? 1 : -1;\n"+ " $(\"optFromSel\").disabled = (itemsSelected == 0);\n"+ " };\n"+ " selSetter[i] = setSelected;\n"+ " divperm.addEventListener(\n"+ " \"mousedown\", function(e) {\n"+ " if (e.shiftKey) {\n"+ " e.preventDefault(); // prevent browser range selection\n"+ " }\n"+ " });\n"+ " divperm.addEventListener(\n"+ " \"click\", function(e) {\n"+ " if (e.ctrlKey) {\n"+ " setSelected(!divperm.isSelected);\n"+ " return;\n"+ " }\n"+ " if (e.shiftKey) {\n"+ " if (lastSelIndex < 0) {\n"+ " return;\n"+ " }\n"+ " var from = lastSelIndex;\n"+ " var to = i;\n"+ " if (to < from) {\n"+ " from = i;\n"+ " to = lastSelIndex;\n"+ " }\n"+ " for (var j = from; j <= to; j++) {\n"+ " selSetter[j](true);\n"+ " }\n"+ " return;\n"+ " }\n"+ " for (var j in currentlySelected) {\n"+ " if (j != i) {\n"+ " selSetter[j](false);\n"+ " }\n"+ " }\n"+ " setSelected(!divperm.isSelected);\n"+ " });\n"+ " var alink = document.createElement(\"a\");\n"+ " alink.href = \"./?p=\" + br.blobRef;\n"+ " var img = document.createElement(\"img\");\n"+ " img.src = br.thumbnailSrc;\n"+ " img.height = br.thumbnailHeight;\n"+ " img.width = br.thumbnailWidth;\n"+ " alink.appendChild(img);\n"+ " divperm.appendChild(alink);\n"+ " var title = document.createElement(\"p\");\n"+ " setTextContent(title, camliBlobTitle(br.blobRef, searchRes));\n"+ " title.className = 'camli-ui-thumbtitle';\n"+ " title.style.fontSize = CamliIndexPage.thumbFontSize();\n"+ " divperm.appendChild(title);\n"+ " divperm.className = 'camli-ui-thumb';\n"+ " return divperm;\n"+ "}\n"+ "\n"+ "// createPlusButton returns the div element that is both a button\n"+ "// a drop zone for new file(s).\n"+ "function createPlusButton() {\n"+ " var div = document.createElement(\"div\");\n"+ " div.id = \"plusdrop\";\n"+ " div.className = \"camli-ui-thumb\";\n"+ " CamliIndexPage.setThumbBoxStyle(div);\n"+ "\n"+ " var plusLink = document.createElement(\"a\");\n"+ " plusLink.classList.add(\"plusLink\");\n"+ " plusLink.href = '#';\n"+ " plusLink.innerHTML = \"+\";\n"+ "\n"+ " plusLink.style.fontSize = (CamliIndexPage.thumbSize() / 4 * 3) + \"px\";\n"+ " plusLink.style.marginTop = (CamliIndexPage.thumbSize() / 4) + \"px\";\n"+ " div.appendChild(plusLink);\n"+ "\n"+ " var statusDiv = document.createElement(\"div\");\n"+ " statusDiv.innerHTML = \"Click or drag & drop files here.\";\n"+ " statusDiv.style.fontSize = CamliIndexPage.thumbFontSize();\n"+ "\n"+ " // TODO: use statusDiv instead (hidden by default), but put\n"+ " // it somewhere users can get to it with a click.\n"+ " div.appendChild(statusDiv);\n"+ "\n"+ " plusLink.addEventListener(\"click\", function(e) {\n"+ " e.preventDefault();\n"+ " camliCreateNewPermanode({\n"+ " success: function(blobref) {\n"+ " window.location = \"./?p=\" + blobref;\n"+ " },\n"+ " fail: function(msg) {\n"+ " alert(\"create permanode failed: \" + msg);\n"+ " }\n"+ " });\n"+ " });\n"+ " \n"+ " var stop = function(e) {\n"+ " this.classList && this.classList.add('camli-dnd-over');\n"+ " e.stopPropagation();\n"+ " e.preventDefault();\n"+ " };\n"+ " div.addEventListener(\"dragenter\", stop, false);\n"+ " div.addEventListener(\"dragover\", stop, false);\n"+ " div.addEventListener(\"dragleave\", function() {\n"+ " this.classList.remove('camli-dnd-over');\n"+ " }, false);\n"+ "\n"+ " var drop = function(e) {\n"+ " this.classList.remove('camli-dnd-over');\n"+ " stop(e);\n"+ " var dt = e.dataTransfer;\n"+ " var files = dt.files;\n"+ " var subject = \"\";\n"+ " if (files.length == 1) {\n"+ " subject = files[0].name;\n"+ " } else {\n"+ " subject = files.length + \" files\";\n"+ " }\n"+ " statusDiv.innerHTML = \"Uploading \" + subject + \" (<a href='#'>status</a>)\";\n"+ " startFileUploads(files, document.getElementById(\"debugstatus\"), {\n"+ " success: function() {\n"+ " statusDiv.innerHTML = \"Uploaded.\";\n"+ "\n"+ " // TODO(bradfitz): this just re-does the whole initial\n"+ " // query, and only at the very end of all the uploads.\n"+ " // it would be cooler if, when uploading a dozen\n"+ " // large files, we saw the permanodes load in one-at-a-time\n"+ " // as the became available.\n"+ " CamliIndexPage.startRecentLoading();\n"+ " }\n"+ " });\n"+ " };\n"+ " div.addEventListener(\"drop\", drop, false);\n"+ " return div;\n"+ "}\n"+ "\n"+ "// files: array of File objects to upload and create permanods for.\n"+ "// If >1, also create an enclosing permanode for them to all\n"+ "// be members of.\n"+ "// statusdiv: optional div element to log status messages to.\n"+ "// opts:\n"+ "// -- success: function([permanodes])\n"+ "function startFileUploads(files, statusDiv, opts) {\n"+ " var parentNode = opts.parentNode;\n"+ " if (files.length > 1 && !parentNode) {\n"+ " // create a new parent permanode with dummy\n"+ " // title and re-call startFileUploads with\n"+ " // opts.parentNode set, so we upload into that.\n"+ " }\n"+ "\n"+ " var log = function(msg) {\n"+ " if (statusDiv) {\n"+ " var p = document.createElement(\"p\");\n"+ " p.innerHTML = msg;\n"+ " statusDiv.appendChild(p);\n"+ " }\n"+ " };\n"+ "\n"+ " var remain = files.length;\n"+ " log(\"Need to upload \" + remain + \" files\");\n"+ "\n"+ " var permanodes = [];\n"+ " var fails = [];\n"+ " var decr = function() {\n"+ " remain--;\n"+ " log(remain + \" remaining now\");\n"+ " if (remain > 0) {\n"+ " return;\n"+ " }\n"+ " if (fails.length > 0) {\n"+ " if (opts.fail) {\n"+ " opts.fail(fails);\n"+ " }\n"+ " return\n"+ " }\n"+ " if (permanodes.length == files.length) {\n"+ " if (opts.success) {\n"+ " opts.success();\n"+ " }\n"+ " }\n"+ " };\n"+ " var permanodeGood = function(permaRef, fileRef) {\n"+ " log(\"File succeeeded: file=\" + fileRef + \" permanode=\" + permaRef);\n"+ " permanodes.push(permaRef);\n"+ " decr();\n"+ " };\n"+ " var fileFail = function(msg) {\n"+ " log(\"File failed: \" + msg);\n"+ " fails.push(msg);\n"+ " decr();\n"+ " };\n"+ " var fileSuccess = function(fileRef) {\n"+ " camliCreateNewPermanode({\n"+ " success: function(filepn) {\n"+ " camliNewSetAttributeClaim(filepn, \"camliContent\", fileRef, {\n"+ " success: function() {\n"+ " permanodeGood(filepn, fileRef);\n"+ " },\n"+ " fail: fileFail\n"+ " });\n"+ " }\n"+ " });\n"+ " };\n"+ " \n"+ " // TODO(bradfitz): do something smarter than starting all at once.\n"+ " // Only keep n in flight or something?\n"+ " for (var i = 0; i < files.length; i++) {\n"+ " camliUploadFile(files[i], {\n"+ " success: fileSuccess, \n"+ " fail: fileFail\n"+ " });\n"+ " }\n"+ "}\n"+ "\n"+ "CamliIndexPage.onLoadedRecentItems = function (searchRes) {\n"+ " var divrecent = $(\"recent\");\n"+ " divrecent.innerHTML = \"\";\n"+ " divrecent.appendChild(createPlusButton());\n"+ " for (var i = 0; i < searchRes.recent.length; i++) {\n"+ " divrecent.appendChild(divFromResult(searchRes, i));\n"+ " }\n"+ "};\n"+ "\n"+ "window.addEventListener(\"load\", CamliIndexPage.onLoad);\n"+ ""), time.Unix(0, 1356311255000000000)) }
func init() { Files.Add("blob_item.js", 7628, time.Unix(0, 1370954334543804326), fileembed.String("/**\n"+ " * @fileoverview An item showing in a blob item container; represents a blob\n"+ " * that has already been uploaded in the system, or acts as a placeholder\n"+ " * for a new blob.\n"+ " *\n"+ " */\n"+ "goog.provide('camlistore.BlobItem');\n"+ "\n"+ "goog.require('camlistore.ServerType');\n"+ "goog.require('goog.dom');\n"+ "goog.require('goog.dom.classes');\n"+ "goog.require('goog.events.EventHandler');\n"+ "goog.require('goog.events.EventType');\n"+ "goog.require('goog.ui.Control');\n"+ "\n"+ "\n"+ "\n"+ "/**\n"+ " * @param {string} blobRef BlobRef for the item.\n"+ " * @param {camlistore.ServerType.IndexerMetaBag} metaBag Maps blobRefs to\n"+ " * metadata for this blob and related blobs.\n"+ " * @param {string} opt_contentLink if \"true\", use the contained file blob as link"+ " when decorating\n"+ " * @param {goog.dom.DomHelper=} opt_domHelper DOM helper to use.\n"+ " *\n"+ " * @extends {goog.ui.Control}\n"+ " * @constructor\n"+ " */\n"+ "camlistore.BlobItem = function(blobRef, metaBag, opt_contentLink, opt_domHelper) "+ "{\n"+ " goog.base(this, null, null, opt_domHelper);\n"+ "\n"+ " // TODO(mpl): Hack so we know when to decorate with the blobref\n"+ " // of the contained file, instead of with the permanode, as the link.\n"+ " // Idiomatic alternative suggestion very welcome.\n"+ " /**\n"+ " * @type {string}\n"+ " * @private\n"+ " */\n"+ " this.useContentAsLink_ = \"false\"; \n"+ " \n"+ " if (typeof opt_contentLink !== \"undefined\" && opt_contentLink == \"true\") {\n"+ " this.useContentAsLink_ = opt_contentLink;\n"+ " }\n"+ "\n"+ " /**\n"+ " * @type {string}\n"+ " * @private\n"+ " */\n"+ " this.blobRef_ = blobRef;\n"+ "\n"+ " /**\n"+ " * @type {camlistore.ServerType.IndexerMetaBag}\n"+ " * @private\n"+ " */\n"+ " this.metaBag_ = metaBag;\n"+ "\n"+ " /**\n"+ " * Metadata for the blobref this item represents.\n"+ " * @type {camlistore.ServerType.IndexerMeta}\n"+ " * @private\n"+ " */\n"+ " this.metaData_ = this.metaBag_[this.blobRef_];\n"+ "\n"+ " /**\n"+ " * Metadata for the underlying blobref for this item; for example, this\n"+ " * would be the blobref that is currently the content for the permanode\n"+ " * specified by 'blobRef'.\n"+ " *\n"+ " * @type {camlistore.ServerType.IndexerMeta?}\n"+ " * @private\n"+ " */\n"+ " this.resolvedMetaData_ = camlistore.BlobItem.resolve(\n"+ " this.blobRef_, this.metaBag_);\n"+ "\n"+ " /**\n"+ " * @type {goog.events.EventHandler}\n"+ " * @private\n"+ " */\n"+ " this.eh_ = new goog.events.EventHandler(this);\n"+ "\n"+ " // Blob items support the CHECKED state.\n"+ " this.setSupportedState(goog.ui.Component.State.CHECKED, true);\n"+ "\n"+ " // Blob items dispatch state when checked.\n"+ " this.setDispatchTransitionEvents(\n"+ " goog.ui.Component.State.CHECKED,\n"+ " true);\n"+ "};\n"+ "goog.inherits(camlistore.BlobItem, goog.ui.Control);\n"+ "\n"+ "\n"+ "/**\n"+ " * TODO(bslatkin): Handle more permanode types.\n"+ " *\n"+ " * @param {string} blobRef string BlobRef to resolve.\n"+ " * @param {camlistore.ServerType.IndexerMetaBag} metaBag Metadata bag to use\n"+ " * for resolving the blobref.\n"+ " * @return {camlistore.ServerType.IndexerMeta?}\n"+ " */\n"+ "camlistore.BlobItem.resolve = function(blobRef, metaBag) {\n"+ " var metaData = metaBag[blobRef];\n"+ " if (metaData.camliType == 'permanode' &&\n"+ " !!metaData.permanode &&\n"+ " !!metaData.permanode.attr) {\n"+ " if (!!metaData.permanode.attr.camliContent) {\n"+ " // Permanode is pointing at another blob.\n"+ " var content = metaData.permanode.attr.camliContent;\n"+ " if (content.length == 1) {\n"+ " return metaBag[content[0]];\n"+ " }\n"+ " } else {\n"+ " // Permanode is its own content.\n"+ " return metaData;\n"+ " }\n"+ " }\n"+ "\n"+ " return null;\n"+ "\n"+ "};\n"+ "\n"+ "/**\n"+ " * @return {boolean}\n"+ " */\n"+ "camlistore.BlobItem.prototype.isCollection = function() {\n"+ " // TODO(mpl): for now disallow being a collection if it\n"+ " // has members. What else to check?\n"+ " if (!this.resolvedMetaData_ ||\n"+ " this.resolvedMetaData_.camliType != 'permanode' ||\n"+ " !this.resolvedMetaData_.permanode ||\n"+ " !this.resolvedMetaData_.permanode.attr ||\n"+ " !!this.resolvedMetaData_.permanode.attr.camliContent) {\n"+ " return false;\n"+ " }\n"+ " return true;\n"+ "};\n"+ "\n"+ "/**\n"+ " * @return {string}\n"+ " */\n"+ "camlistore.BlobItem.prototype.getBlobRef = function() {\n"+ " return this.blobRef_;\n"+ "};\n"+ "\n"+ "\n"+ "/**\n"+ " * @return {string}\n"+ " */\n"+ "camlistore.BlobItem.prototype.getThumbSrc_ = function() {\n"+ " return './' + this.metaData_.thumbnailSrc;\n"+ "};\n"+ "\n"+ "\n"+ "/**\n"+ " * @return {number}\n"+ " */\n"+ "camlistore.BlobItem.prototype.getThumbHeight_ = function() {\n"+ " return this.metaData_.thumbnailHeight || 0;\n"+ "};\n"+ "\n"+ "\n"+ "/**\n"+ " * @return {number}\n"+ " */\n"+ "camlistore.BlobItem.prototype.getThumbWidth_ = function() {\n"+ " return this.metaData_.thumbnailWidth || 0;\n"+ "};\n"+ "\n"+ "\n"+ "/**\n"+ " * @return {string}\n"+ " */\n"+ "camlistore.BlobItem.prototype.getLink_ = function() {\n"+ " if (this.useContentAsLink_ == \"true\") {\n"+ " var b = this.getFileBlobref_();\n"+ " if (b == \"\") {\n"+ " b = this.getDirBlobref_();\n"+ " }\n"+ " return './?b=' + b;\n"+ " }\n"+ " return './?p=' + this.blobRef_;\n"+ "};\n"+ "\n"+ "\n"+ "/**\n"+ " * @private\n"+ " * @return {string}\n"+ " */\n"+ "camlistore.BlobItem.prototype.getFileBlobref_ = function() {\n"+ " if (this.resolvedMetaData_ &&\n"+ " this.resolvedMetaData_.camliType == 'file') {\n"+ " return this.resolvedMetaData_.blobRef;\n"+ " }\n"+ " return \"\";\n"+ "}\n"+ "\n"+ "/**\n"+ " * @private\n"+ " * @return {string}\n"+ " */\n"+ "camlistore.BlobItem.prototype.getDirBlobref_ = function() {\n"+ " if (this.resolvedMetaData_ &&\n"+ " this.resolvedMetaData_.camliType == 'directory') {\n"+ " return this.resolvedMetaData_.blobRef;\n"+ " }\n"+ " return \"\";\n"+ "}\n"+ "\n"+ "/**\n"+ " * @return {string}\n"+ " */\n"+ "camlistore.BlobItem.prototype.getTitle_ = function() {\n"+ " if (this.metaData_) {\n"+ " if (this.metaData_.camliType == 'permanode' &&\n"+ " !!this.metaData_.permanode &&\n"+ " !!this.metaData_.permanode.attr &&\n"+ " !!this.metaData_.permanode.attr.title) { \n"+ " return this.metaData_.permanode.attr.title;\n"+ " }\n"+ " }\n"+ " if (this.resolvedMetaData_) {\n"+ " if (this.resolvedMetaData_.camliType == 'file' &&\n"+ " !!this.resolvedMetaData_.file) {\n"+ " return this.resolvedMetaData_.file.fileName;\n"+ " }\n"+ " if (this.resolvedMetaData_.camliType == 'directory' &&\n"+ " !!this.resolvedMetaData_.dir) {\n"+ " return this.resolvedMetaData_.dir.fileName;\n"+ " }\n"+ " if (this.resolvedMetaData_.camliType == 'permanode' &&\n"+ " !!this.resolvedMetaData_.permanode &&\n"+ " !!this.resolvedMetaData_.permanode.attr &&\n"+ " !!this.resolvedMetaData_.permanode.attr.title) {\n"+ " return this.resolvedMetaData_.permanode.attr.title;\n"+ " }\n"+ " }\n"+ " return 'Unknown title';\n"+ "};\n"+ "\n"+ "\n"+ "/**\n"+ " * Creates an initial DOM representation for the component.\n"+ " */\n"+ "camlistore.BlobItem.prototype.createDom = function() {\n"+ " this.decorateInternal(this.dom_.createElement('div'));\n"+ "};\n"+ "\n"+ "\n"+ "/**\n"+ " * Decorates an existing HTML DIV element.\n"+ " * @param {Element} element The DIV element to decorate.\n"+ " */\n"+ "camlistore.BlobItem.prototype.decorateInternal = function(element) {\n"+ " camlistore.BlobItem.superClass_.decorateInternal.call(this, element);\n"+ "\n"+ " var el = this.getElement();\n"+ " goog.dom.classes.add(el, 'cam-blobitem');\n"+ "\n"+ " var linkEl = this.dom_.createDom('a');\n"+ " linkEl.href = this.getLink_();\n"+ "\n"+ " var thumbEl = this.dom_.createDom('img', 'cam-blobitem-thumb');\n"+ " thumbEl.src = this.getThumbSrc_();\n"+ " thumbEl.height = this.getThumbHeight_();\n"+ " thumbEl.width = this.getThumbWidth_();\n"+ "\n"+ " this.dom_.appendChild(linkEl, thumbEl);\n"+ " this.dom_.appendChild(el, linkEl);\n"+ "\n"+ " var titleEl = this.dom_.createDom('p', 'cam-blobitem-thumbtitle');\n"+ " this.dom_.setTextContent(titleEl, this.getTitle_());\n"+ " this.dom_.appendChild(el, titleEl);\n"+ "};\n"+ "\n"+ "\n"+ "/** @override */\n"+ "camlistore.BlobItem.prototype.disposeInternal = function() {\n"+ " camlistore.BlobItem.superClass_.disposeInternal.call(this);\n"+ " this.eh_.dispose();\n"+ "};\n"+ "\n"+ "\n"+ "/**\n"+ " * Called when component's element is known to be in the document.\n"+ " */\n"+ "camlistore.BlobItem.prototype.enterDocument = function() {\n"+ " camlistore.BlobItem.superClass_.enterDocument.call(this);\n"+ " // Add event handlers here\n"+ "};\n"+ "\n"+ "\n"+ "/**\n"+ " * Called when component's element is known to have been removed from the\n"+ " * document.\n"+ " */\n"+ "camlistore.BlobItem.prototype.exitDocument = function() {\n"+ " camlistore.BlobItem.superClass_.exitDocument.call(this);\n"+ " // Clear event handlers here\n"+ "};\n"+ "")) }