# HG changeset patch # User ymh # Date 1440795846 -7200 # Node ID 6f2ab1a72f4a610b0625b60698f43a0b9edc1a3d # Parent d4b318cecb0e0b9e11244e4f38bb33bd8d979b48 add search to space screen + new version diff -r d4b318cecb0e -r 6f2ab1a72f4a client/README.md --- a/client/README.md Fri Jun 19 17:32:43 2015 +0200 +++ b/client/README.md Fri Aug 28 23:04:06 2015 +0200 @@ -441,7 +441,7 @@ Tasks for production : * `default`: will build the project and clean the temporary files (like templates.js) used during development and building. -* `copy-server`: will copy the built project ut put to the server part of this project. +* `copy-server`: will copy the built project to the server part of this project. ## Tests diff -r d4b318cecb0e -r 6f2ab1a72f4a client/package.json --- a/client/package.json Fri Jun 19 17:32:43 2015 +0200 +++ b/client/package.json Fri Aug 28 23:04:06 2015 +0200 @@ -1,6 +1,6 @@ { "name": "renkan", - "version": "0.11.0", + "version": "0.12.0", "description": "Renkan client application", "repository": { "type": "hg", diff -r d4b318cecb0e -r 6f2ab1a72f4a server/java/build.gradle --- a/server/java/build.gradle Fri Jun 19 17:32:43 2015 +0200 +++ b/server/java/build.gradle Fri Aug 28 23:04:06 2015 +0200 @@ -2,7 +2,7 @@ apply plugin: 'maven' group = 'org.iri_research.renkan' - version = '0.11.0' + version = '0.12.0' gradle.projectsEvaluated { diff -r d4b318cecb0e -r 6f2ab1a72f4a server/java/pom.xml --- a/server/java/pom.xml Fri Jun 19 17:32:43 2015 +0200 +++ b/server/java/pom.xml Fri Aug 28 23:04:06 2015 +0200 @@ -5,7 +5,7 @@ org.iri_research.renkan renkan pom - 0.11.0 + 0.12.0 Renkan project diff -r d4b318cecb0e -r 6f2ab1a72f4a server/java/renkan-core/src/main/java/org/iri_research/renkan/repositories/SpacesRepository.java --- a/server/java/renkan-core/src/main/java/org/iri_research/renkan/repositories/SpacesRepository.java Fri Jun 19 17:32:43 2015 +0200 +++ b/server/java/renkan-core/src/main/java/org/iri_research/renkan/repositories/SpacesRepository.java Fri Aug 28 23:04:06 2015 +0200 @@ -1,7 +1,18 @@ package org.iri_research.renkan.repositories; +import java.util.List; + import org.iri_research.renkan.models.Space; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.mongodb.repository.Query; public interface SpacesRepository extends IRenkanRepository { + @Query("{ 'title' : { '$regex':?0, '$options': 'i'}, }") + List findByTitleRegex(String title); + + @Query("{ 'title' : { '$regex':?0, '$options': 'i'}, }") + Page findByTitleRegex(String title, Pageable p); + } diff -r d4b318cecb0e -r 6f2ab1a72f4a server/java/renkan-core/src/test/java/org/iri_research/renkan/test/repositories/SpacesRepositoryTest.java --- a/server/java/renkan-core/src/test/java/org/iri_research/renkan/test/repositories/SpacesRepositoryTest.java Fri Jun 19 17:32:43 2015 +0200 +++ b/server/java/renkan-core/src/test/java/org/iri_research/renkan/test/repositories/SpacesRepositoryTest.java Fri Aug 28 23:04:06 2015 +0200 @@ -154,6 +154,71 @@ this.spacesUuids.get(0), page.getContent().get(0).getId()); } + + @Test + public void testFindByTitleRegex() { + + List res = this.spacesRepository.findByTitleRegex(".*test.*"); + + Assert.assertEquals("res must have length " + SPACE_NB , + SPACE_NB, res.size()); + for (Space sp : res) { + Assert.assertNotNull("space title must not be null", sp.getTitle()); + Assert.assertTrue("space title must contains title", sp.getTitle() + .matches(".*test.*")); + } + } + + @Test + public void testFindByTitleRegexBad() { + + List res = this.spacesRepository.findByTitleRegex(".*foo.*"); + + Assert.assertEquals("res must have zero length", 0, res.size()); + } + + @Test + public void testFindByTitleRegexPageable() { + + PageRequest pr = new PageRequest(0, 1); + + Page res = this.spacesRepository.findByTitleRegex(".*test.*", pr); + + Assert.assertEquals("res must have length 1", 1, + res.getNumberOfElements()); + for (Space p : res) { + Assert.assertNotNull("project title must not be null", p.getTitle()); + Assert.assertTrue("project tilte must contains title", p.getTitle() + .matches(".*test.*")); + } + } + + @Test + public void testFindByTitleRegexPageableBadSize() { + + PageRequest pr = new PageRequest(0, 3); + + Page res = this.spacesRepository.findByTitleRegex(".*test.*", pr); + + Assert.assertEquals("res must have length 3", 3, + res.getNumberOfElements()); + for (Space sp : res) { + Assert.assertNotNull("project title must not be null", sp.getTitle()); + Assert.assertTrue("project tilte must contains title", sp.getTitle() + .matches(".*test.*")); + } + } + + @Test + public void testFindBySpaceIdAndTitleRegexPageableBadPage() { + + PageRequest pr = new PageRequest(1, 3); + + Page res = this.spacesRepository.findByTitleRegex(".*test.*", pr); + + Assert.assertEquals("res must have length 0", 0, + res.getNumberOfElements()); + } @After public void teardown() { diff -r d4b318cecb0e -r 6f2ab1a72f4a server/java/renkan-web/src/main/java/org/iri_research/renkan/controller/RenkanRootController.java --- a/server/java/renkan-web/src/main/java/org/iri_research/renkan/controller/RenkanRootController.java Fri Jun 19 17:32:43 2015 +0200 +++ b/server/java/renkan-web/src/main/java/org/iri_research/renkan/controller/RenkanRootController.java Fri Aug 28 23:04:06 2015 +0200 @@ -43,10 +43,18 @@ @RequestMapping(value = "", method = RequestMethod.GET, produces = { "text/html;charset=UTF-8" }) public String renkanIndex( Model model, + @RequestParam(required = false) String filter, @PageableDefault(sort = { "created" }, direction = Direction.DESC, page = 0, value = Constants.PAGINATION_SIZE) Pageable p, HttpServletRequest request) { - Page page = this.spacesRepository.findAll(p); + Page page; + if (filter != null && !filter.isEmpty()) { + page = this.spacesRepository.findByTitleRegex(filter,p); + } + else { + page = this.spacesRepository.findAll(p); + } + model.addAttribute("page", page); model.addAttribute("baseUrl", Utils.buildBaseUrl(request)); diff -r d4b318cecb0e -r 6f2ab1a72f4a server/java/renkan-web/src/main/webapp/WEB-INF/i18n/messages.properties --- a/server/java/renkan-web/src/main/webapp/WEB-INF/i18n/messages.properties Fri Jun 19 17:32:43 2015 +0200 +++ b/server/java/renkan-web/src/main/webapp/WEB-INF/i18n/messages.properties Fri Aug 28 23:04:06 2015 +0200 @@ -26,6 +26,7 @@ renkanIndex.project_filter = Filter title renkanIndex.space_exp = Create a space +renkanIndex.space_filter = Filter title renkanIndex.renkan_title = Title renkanIndex.renkan_file = File renkanIndex.renkan_spaces = Renkan Spaces diff -r d4b318cecb0e -r 6f2ab1a72f4a server/java/renkan-web/src/main/webapp/WEB-INF/i18n/messages_en.properties --- a/server/java/renkan-web/src/main/webapp/WEB-INF/i18n/messages_en.properties Fri Jun 19 17:32:43 2015 +0200 +++ b/server/java/renkan-web/src/main/webapp/WEB-INF/i18n/messages_en.properties Fri Aug 28 23:04:06 2015 +0200 @@ -25,6 +25,7 @@ renkanIndex.project_filter = Filter title renkanIndex.space_exp = Create a space +renkanIndex.space_filter = Filter title renkanIndex.renkan_title = Title renkanIndex.renkan_file = File renkanIndex.renkan_spaces = Renkan Spaces diff -r d4b318cecb0e -r 6f2ab1a72f4a server/java/renkan-web/src/main/webapp/WEB-INF/i18n/messages_fr.properties --- a/server/java/renkan-web/src/main/webapp/WEB-INF/i18n/messages_fr.properties Fri Jun 19 17:32:43 2015 +0200 +++ b/server/java/renkan-web/src/main/webapp/WEB-INF/i18n/messages_fr.properties Fri Aug 28 23:04:06 2015 +0200 @@ -26,6 +26,7 @@ renkanIndex.project_filter = Filtre titre renkanIndex.space_exp = Créer un espace +renkanIndex.space_filter = Filtre titre renkanIndex.renkan_title = Titre renkanIndex.renkan_file = Fichier renkanIndex.renkan_spaces = Espaces Renkan diff -r d4b318cecb0e -r 6f2ab1a72f4a server/java/renkan-web/src/main/webapp/WEB-INF/templates/projectIndex.html --- a/server/java/renkan-web/src/main/webapp/WEB-INF/templates/projectIndex.html Fri Jun 19 17:32:43 2015 +0200 +++ b/server/java/renkan-web/src/main/webapp/WEB-INF/templates/projectIndex.html Fri Aug 28 23:04:06 2015 +0200 @@ -41,7 +41,7 @@

Project list

-
+
diff -r d4b318cecb0e -r 6f2ab1a72f4a server/java/renkan-web/src/main/webapp/WEB-INF/templates/renkanIndex.html --- a/server/java/renkan-web/src/main/webapp/WEB-INF/templates/renkanIndex.html Fri Jun 19 17:32:43 2015 +0200 +++ b/server/java/renkan-web/src/main/webapp/WEB-INF/templates/renkanIndex.html Fri Aug 28 23:04:06 2015 +0200 @@ -34,6 +34,12 @@

Space list

+
+
+ + +
+
<< diff -r d4b318cecb0e -r 6f2ab1a72f4a server/java/renkan-web/src/main/webapp/static/css/index.css --- a/server/java/renkan-web/src/main/webapp/static/css/index.css Fri Jun 19 17:32:43 2015 +0200 +++ b/server/java/renkan-web/src/main/webapp/static/css/index.css Fri Aug 28 23:04:06 2015 +0200 @@ -389,11 +389,11 @@ margin-right: 12px; } -#project-filter-container { +.filter-container { margin: 12px 0 0 15px; } -#project-filter-container input[type="text"] { +.filter-container input[type="text"] { background: #fff; border: 1px solid #bbb; border-radius: 3px; @@ -405,7 +405,7 @@ font-size: 15px; } -#project-filter-container button[type="submit"] { +.filter-container button[type="submit"] { } diff -r d4b318cecb0e -r 6f2ab1a72f4a server/php/basic/public_html/static/lib/renkan/css/renkan.css --- a/server/php/basic/public_html/static/lib/renkan/css/renkan.css Fri Jun 19 17:32:43 2015 +0200 +++ b/server/php/basic/public_html/static/lib/renkan/css/renkan.css Fri Aug 28 23:04:06 2015 +0200 @@ -24,7 +24,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ -/*! renkan - v0.11.0 - Copyright © IRI 2015 */ +/*! renkan - v0.12.0 - Copyright © IRI 2015 */ /*! * _____ _ diff -r d4b318cecb0e -r 6f2ab1a72f4a server/php/basic/public_html/static/lib/renkan/css/renkan.min.css --- a/server/php/basic/public_html/static/lib/renkan/css/renkan.min.css Fri Jun 19 17:32:43 2015 +0200 +++ b/server/php/basic/public_html/static/lib/renkan/css/renkan.min.css Fri Aug 28 23:04:06 2015 +0200 @@ -24,7 +24,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ -/*! renkan - v0.11.0 - Copyright © IRI 2015 */ +/*! renkan - v0.12.0 - Copyright © IRI 2015 */ /*! diff -r d4b318cecb0e -r 6f2ab1a72f4a server/php/basic/public_html/static/lib/renkan/css/space-editor.css --- a/server/php/basic/public_html/static/lib/renkan/css/space-editor.css Fri Jun 19 17:32:43 2015 +0200 +++ b/server/php/basic/public_html/static/lib/renkan/css/space-editor.css Fri Aug 28 23:04:06 2015 +0200 @@ -24,7 +24,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ -/*! renkan - v0.11.0 - Copyright © IRI 2015 */ +/*! renkan - v0.12.0 - Copyright © IRI 2015 */ html { overflow: visible !important; diff -r d4b318cecb0e -r 6f2ab1a72f4a server/php/basic/public_html/static/lib/renkan/css/space-editor.min.css --- a/server/php/basic/public_html/static/lib/renkan/css/space-editor.min.css Fri Jun 19 17:32:43 2015 +0200 +++ b/server/php/basic/public_html/static/lib/renkan/css/space-editor.min.css Fri Aug 28 23:04:06 2015 +0200 @@ -24,7 +24,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ -/*! renkan - v0.11.0 - Copyright © IRI 2015 */ +/*! renkan - v0.12.0 - Copyright © IRI 2015 */ html{overflow:visible!important}body{font-family:Arial,Helvetica,sans-serif;background:#F6F6F6;color:#333}.clearer{display:block;clear:both;height:1px}h1{margin-bottom:5px;padding:0 15px;background:#333;color:#fff;font-weight:700;font-size:30px;line-height:60px}.right{width:301px;position:absolute;top:10px;right:10px}.main{margin:10px 330px 10px 20px}.blue-button{display:inline-block;padding:4px 6px;color:#fff;text-decoration:none;border-radius:4px;background:-moz-linear-gradient(top,#6080c0,#2040a0);background:-webkit-linear-gradient(top,#6080c0,#2040a0);box-shadow:1px 1px 2px gray}.blue-button:hover{background:-moz-linear-gradient(top,#2040a0,#6080c0);background:-webkit-linear-gradient(top,#2040a0,#6080c0)}.update-preview{text-align:center;display:block;margin-bottom:10px;font-size:24px;font-weight:700;line-height:34px}#preview{position:relative;border-left:1px solid #000;border-bottom:1px solid #000;width:300px;height:800px;border-radius:4px;overflow:hidden;margin-bottom:10px}.section-title{font-size:20px;font-weight:700;margin:20px 0 5px}.first-level-list{margin:5px 0}.add-item{margin:5px 0;font-size:22px;font-weight:700;line-height:18px}.add-item:hover:after{float:right;font-size:14px;font-weight:400;line-height:18px;margin-left:4px}.add-search-engine:hover:after{content:"Add Search Engine"}.add-resource:hover:after{content:"Add Resource"}.add-bin:hover:after{content:"Add Bin"}.item{padding:5px;margin:5px 0;border-radius:4px;font-size:12px;background:-moz-linear-gradient(top,#ffcc8f,#fff0d0);background:-webkit-linear-gradient(top,#ffcc8f,#fff0d0);box-shadow:1px 1px 2px gray}.remove-item{float:right;font-size:22px;line-height:18px;height:18px;margin:0 0 2px -10px;font-weight:700}.setting{float:left;width:260px;margin:2px 15px 2px 2px;line-height:24px;min-height:24px}.setting label{float:left;display:block;width:100px;font-weight:700}.display-value{float:left;display:block;width:160px}.edit-value{width:160px;display:none;border:1px solid #ccc;border-radius:3px}input.edit-value,textarea.edit-value{width:154px;padding:2px}textarea.edit-value{resize:vertical;height:72px}.item-editing .display-value{display:none}.item-editing .edit-value{display:inline-block}.resource-list-title{clear:both;width:100%;font-size:16px;font-weight:700;margin:5px 0 0}.resource{display:block;clear:both;padding:5px;margin:5px;border-radius:4px;background:-moz-linear-gradient(top,#ff8f00,#ffcc8f);background:-webkit-linear-gradient(top,#ff8f00,#ffcc8f);box-shadow:1px 1px 2px gray}.resource .display-value{display:inline-block}.resource .edit-value,.resource.resource-editing .display-value{display:none}.resource.resource-editing .edit-value{display:inline-block} \ No newline at end of file diff -r d4b318cecb0e -r 6f2ab1a72f4a server/php/basic/public_html/static/lib/renkan/js/renkan.js --- a/server/php/basic/public_html/static/lib/renkan/js/renkan.js Fri Jun 19 17:32:43 2015 +0200 +++ b/server/php/basic/public_html/static/lib/renkan/js/renkan.js Fri Aug 28 23:04:06 2015 +0200 @@ -24,7 +24,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ -/*! renkan - v0.11.0 - Copyright © IRI 2015 */ +/*! renkan - v0.12.0 - Copyright © IRI 2015 */ this["renkanJST"] = this["renkanJST"] || {}; diff -r d4b318cecb0e -r 6f2ab1a72f4a server/php/basic/public_html/static/lib/renkan/js/renkan.min.js --- a/server/php/basic/public_html/static/lib/renkan/js/renkan.min.js Fri Jun 19 17:32:43 2015 +0200 +++ b/server/php/basic/public_html/static/lib/renkan/js/renkan.min.js Fri Aug 28 23:04:06 2015 +0200 @@ -24,7 +24,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ -/*! renkan - v0.11.0 - Copyright © IRI 2015 */ +/*! renkan - v0.12.0 - Copyright © IRI 2015 */ this.renkanJST=this.renkanJST||{},this.renkanJST["templates/colorpicker.html"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='
  • ';return __p},this.renkanJST["templates/edgeeditor.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;Array.prototype.join;with(obj)__p+='

    \n ×'+__e(renkan.translate("Edit Edge"))+"\n

    \n

    \n \n \n

    \n',options.show_edge_editor_uri&&(__p+="\n

    \n \n \n \n

    \n ',options.properties.length&&(__p+="\n

    \n \n \n

    \n")),__p+="\n",options.show_edge_editor_style&&(__p+='\n
    \n ',options.show_edge_editor_style_color&&(__p+='\n
    \n '+__e(renkan.translate("Edge color:"))+'\n
    \n \n \n \n '+(null==(__t=renkan.colorPicker)?"":__t)+'\n '+__e(renkan.translate("Choose color"))+"\n
    \n
    \n "),__p+="\n ",options.show_edge_editor_style_dash&&(__p+='\n
    \n '+__e(renkan.translate("Dash:"))+'\n \n
    \n "),__p+="\n ",options.show_edge_editor_style_thickness&&(__p+='\n
    \n '+__e(renkan.translate("Thickness:"))+'\n -\n '+__e(edge.thickness)+'\n +\n
    \n '),__p+="\n ",options.show_edge_editor_style_arrow&&(__p+='\n
    \n '+__e(renkan.translate("Arrow:"))+'\n \n
    \n "),__p+="\n
    \n"),__p+="\n",options.show_edge_editor_direction&&(__p+='\n

    \n '+__e(renkan.translate("Change edge direction"))+"\n

    \n"),__p+="\n",options.show_edge_editor_nodes&&(__p+='\n

    \n '+__e(renkan.translate("From:"))+'\n \n '+__e(shortenText(edge.from_title,25))+'\n

    \n

    \n '+__e(renkan.translate("To:"))+'\n \n '+__e(shortenText(edge.to_title,25))+"\n

    \n"),__p+="\n",options.show_edge_editor_creator&&edge.has_creator&&(__p+='\n

    \n '+__e(renkan.translate("Created by:"))+'\n \n '+__e(shortenText(edge.created_by_title,25))+"\n

    \n"),__p+="\n";return __p},this.renkanJST["templates/edgeeditor_readonly.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;Array.prototype.join;with(obj)__p+='

    \n ×\n ',options.show_edge_tooltip_color&&(__p+='\n \n '),__p+='\n \n ',edge.uri&&(__p+='\n \n '),__p+="\n "+__e(edge.title)+"\n ",edge.uri&&(__p+=" "),__p+="\n \n

    \n",options.show_edge_tooltip_uri&&edge.uri&&(__p+='\n

    \n '+__e(edge.short_uri)+"\n

    \n"),__p+="\n

    "+(null==(__t=edge.description)?"":__t)+"

    \n",options.show_edge_tooltip_nodes&&(__p+='\n

    \n '+__e(renkan.translate("From:"))+'\n \n '+__e(shortenText(edge.from_title,25))+'\n

    \n

    \n '+__e(renkan.translate("To:"))+'\n \n '+__e(shortenText(edge.to_title,25))+"\n

    \n"),__p+="\n",options.show_edge_tooltip_creator&&edge.has_creator&&(__p+='\n

    \n '+__e(renkan.translate("Created by:"))+'\n \n '+__e(shortenText(edge.created_by_title,25))+"\n

    \n"),__p+="\n";return __p},this.renkanJST["templates/ldtjson-bin/annotationtemplate.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;with(obj)__p+='
  • \n\n \n

    '+(null==(__t=htitle)?"":__t)+"

    \n

    "+(null==(__t=hdescription)?"":__t)+"

    \n

    Start: "+(null==(__t=start)?"":__t)+", End: "+(null==(__t=end)?"":__t)+", Duration: "+(null==(__t=duration)?"":__t)+'

    \n
    \n
  • \n';return __p},this.renkanJST["templates/ldtjson-bin/segmenttemplate.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;with(obj)__p+='
  • \n\n \n

    '+(null==(__t=htitle)?"":__t)+"

    \n

    "+(null==(__t=hdescription)?"":__t)+"

    \n

    Start: "+(null==(__t=start)?"":__t)+", End: "+(null==(__t=end)?"":__t)+", Duration: "+(null==(__t=duration)?"":__t)+'

    \n
    \n
  • \n';return __p},this.renkanJST["templates/ldtjson-bin/tagtemplate.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;with(obj)__p+='
  • \n\n \n

    '+(null==(__t=htitle)?"":__t)+'

    \n
    \n
  • \n';return __p},this.renkanJST["templates/list-bin.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;Array.prototype.join;with(obj)__p+='
  • \n'),__p+='\n

    \n ',url&&(__p+='\n \n '),__p+="\n "+(null==(__t=htitle)?"":__t)+"\n ",url&&(__p+=""),__p+="\n

    \n ",description&&(__p+='\n

    '+(null==(__t=hdescription)?"":__t)+"

    \n "),__p+="\n ",image&&(__p+='\n
    \n '),__p+="\n
  • \n";return __p},this.renkanJST["templates/main.html"]=function(obj){obj||(obj={});var __p="",__e=_.escape;Array.prototype.join;with(obj)options.show_bins&&(__p+='\n
    \n
    \n

    '+__e(translate("Select contents:"))+'

    \n
    \n \n
    \n
    \n
      \n
      \n \n
      \n
      \n \n \n
      \n
        \n
        \n'),__p+=" ",options.show_editor&&(__p+='\n
        \n ×'+__e(renkan.translate("Edit Node"))+"\n\n

        \n \n \n

        \n',options.show_node_editor_uri&&(__p+="\n

        \n \n \n \n

        \n'),__p+=" ",options.change_types&&(__p+="\n

        \n \n \n

        \n"),__p+=" ",options.show_node_editor_description&&(__p+="\n

        \n \n ",__p+=options.show_node_editor_description_richtext?'\n

        '+(null==(__t=node.description)?"":__t)+"
        \n ":'\n \n ",__p+="\n

        \n"),__p+=" ",options.show_node_editor_size&&(__p+='\n

        \n '+__e(renkan.translate("Size:"))+'\n -\n '+__e(node.size)+'\n +\n

        \n'),__p+=" ",options.show_node_editor_style&&(__p+='\n
        \n ',options.show_node_editor_style_color&&(__p+='\n
        \n \n '+__e(renkan.translate("Node color:"))+'\n
        \n \n \n \n '+(null==(__t=renkan.colorPicker)?"":__t)+'\n '+__e(renkan.translate("Choose color"))+"\n
        \n
        \n "),__p+="\n ",options.show_node_editor_style_dash&&(__p+='\n
        \n '+__e(renkan.translate("Dash:"))+'\n \n
        \n "),__p+="\n ",options.show_node_editor_style_thickness&&(__p+='\n
        \n '+__e(renkan.translate("Thickness:"))+'\n -\n '+__e(node.thickness)+'\n +\n
        \n '),__p+="\n
        \n"),__p+=" ",options.show_node_editor_image&&(__p+='\n
        \n
        \n \n ',node.clip_path&&(__p+='\n \n \n \n '),__p+="\n
        \n
        \n

        \n \n

        \n \n \n
        \n

        \n",options.allow_image_upload&&(__p+="\n

        \n \n \n

        \n')),__p+=" ",options.show_node_editor_creator&&node.has_creator&&(__p+='\n

        \n '+__e(renkan.translate("Created by:"))+'\n \n '+__e(shortenText(node.created_by_title,25))+"\n

        \n"),__p+=" ",options.change_shapes&&(__p+="\n

        \n \n \n

        \n"),__p+="\n";return __p},this.renkanJST["templates/nodeeditor_readonly.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;Array.prototype.join;with(obj)__p+='

        \n ×\n ',options.show_node_tooltip_color&&(__p+='\n \n '),__p+='\n \n ',node.uri&&(__p+='\n \n '),__p+="\n "+__e(node.title)+"\n ",node.uri&&(__p+=""),__p+="\n \n

        \n",node.uri&&options.show_node_tooltip_uri&&(__p+='\n

        \n '+__e(node.short_uri)+"\n

        \n"),__p+=" ",options.show_node_tooltip_description&&(__p+='\n

        '+(null==(__t=node.description)?"":__t)+"

        \n"),__p+=" ",node.image&&options.show_node_tooltip_image&&(__p+='\n \n'),__p+=" ",node.has_creator&&options.show_node_tooltip_creator&&(__p+='\n

        \n '+__e(renkan.translate("Created by:"))+'\n \n '+__e(shortenText(node.created_by_title,25))+"\n

        \n"),__p+='\n '+__e(renkan.translate("Link to the node"))+"\n";return __p},this.renkanJST["templates/nodeeditor_video.html"]=function(obj){obj||(obj={});var __p="",__e=_.escape;Array.prototype.join;with(obj)__p+='

        \n ×\n ',options.show_node_tooltip_color&&(__p+='\n \n '),__p+='\n \n ',node.uri&&(__p+='\n \n '),__p+="\n "+__e(node.title)+"\n ",node.uri&&(__p+=""),__p+="\n \n

        \n",node.uri&&options.show_node_tooltip_uri&&(__p+='\n \n'),__p+='\n '+__e(renkan.translate("Link to the node"))+"\n";return __p},this.renkanJST["templates/scene.html"]=function(obj){function print(){__p+=__j.call(arguments,"")}obj||(obj={});var __p="",__e=_.escape,__j=Array.prototype.join;with(obj)options.show_top_bar&&(__p+='\n
        \n
        \n ',__p+=options.editor_mode?'\n \n ':'\n

        \n '+__e(project.get("title")||translate("Untitled project"))+"\n

        \n ",__p+="\n ",options.show_user_list&&(__p+='\n
        \n
        \n ',options.show_user_color&&(__p+='\n
        \n \n ',options.user_color_editable&&(__p+='\n \n '),__p+="\n \n ",options.user_color_editable&&print(colorPicker),__p+="\n
        \n "),__p+='\n <unknown user>\n
        \n
          \n
          \n '),__p+="\n ",options.home_button_url&&(__p+='\n
          \n \n
          \n
          \n '+__e(translate(options.home_button_title))+"\n
          \n
          \n
          \n "),__p+="\n ",options.show_fullscreen_button&&(__p+='\n
          \n
          \n
          \n
          \n '+__e(translate("Full Screen"))+"\n
          \n
          \n
          \n "),__p+="\n ",options.editor_mode?(__p+="\n ",options.show_addnode_button&&(__p+='\n
          \n
          \n
          \n
          \n '+__e(translate("Add Node"))+"\n
          \n
          \n
          \n "),__p+="\n ",options.show_addedge_button&&(__p+='\n
          \n
          \n
          \n
          \n '+__e(translate("Add Edge"))+"\n
          \n
          \n
          \n "),__p+="\n ",options.show_export_button&&(__p+='\n
          \n
          \n
          \n
          \n '+__e(translate("Download Project"))+"\n
          \n
          \n
          \n "),__p+="\n ",options.show_save_button&&(__p+='\n
          \n
          \n
          \n
          \n
          \n
          \n '),__p+="\n ",options.show_open_button&&(__p+='\n
          \n
          \n
          \n
          \n '+__e(translate("Open Project"))+"\n
          \n
          \n
          \n "),__p+="\n ",options.show_bookmarklet&&(__p+='\n
          \n \n
          \n
          \n '+__e(translate("Renkan 'Drag-to-Add' bookmarklet"))+'\n
          \n
          \n
          \n
          \n '),__p+="\n "):(__p+="\n ",options.show_export_button&&(__p+='\n
          \n
          \n
          \n
          \n '+__e(translate("Download Project"))+'\n
          \n
          \n
          \n
          \n '),__p+="\n "),__p+="\n ",options.show_search_field&&(__p+='\n
          \n \n
          \n
          \n '),__p+="\n
          \n"),__p+='\n
          \n
          \n
          \n ',options.editor_mode&&options.save_view&&(__p+='\n
          \n '),__p+="\n ",options.save_view&&(__p+='\n
          \n ',options.hide_nodes&&(__p+='\n \n '),__p+=" \n "),__p+="\n
          \n "),__p+="\n
          \n
          \n";return __p},this.renkanJST["templates/search.html"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='
        • '+(null==(__t=title)?"":__t)+"
        • ";return __p},this.renkanJST["templates/wikipedia-bin/resulttemplate.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;with(obj)__p+='
        • \n\n \n

          \n '+(null==(__t=htitle)?"":__t)+'\n

          \n

          '+(null==(__t=hdescription)?"":__t)+"

          \n
        • \n";return __p},function(a){"use strict";"object"!=typeof a.Rkns&&(a.Rkns={});var b=a.Rkns,c=b.$=a.jQuery,d=b._=a._;b.pickerColors=["#8f1919","#a80000","#d82626","#ff0000","#e87c7c","#ff6565","#f7d3d3","#fecccc","#8f5419","#a85400","#d87f26","#ff7f00","#e8b27c","#ffb265","#f7e5d3","#fee5cc","#8f8f19","#a8a800","#d8d826","#feff00","#e8e87c","#feff65","#f7f7d3","#fefecc","#198f19","#00a800","#26d826","#00ff00","#7ce87c","#65ff65","#d3f7d3","#ccfecc","#198f8f","#00a8a8","#26d8d8","#00feff","#7ce8e8","#65feff","#d3f7f7","#ccfefe","#19198f","#0000a8","#2626d8","#0000ff","#7c7ce8","#6565ff","#d3d3f7","#ccccfe","#8f198f","#a800a8","#d826d8","#ff00fe","#e87ce8","#ff65fe","#f7d3f7","#feccfe","#000000","#242424","#484848","#6d6d6d","#919191","#b6b6b6","#dadada","#ffffff"],b.__renkans=[];var e=b._BaseBin=function(a,c){if("undefined"!=typeof a){this.renkan=a,this.renkan.$.find(".Rk-Bin-Main").hide(),this.$=b.$("
        • ").addClass("Rk-Bin").appendTo(a.$.find(".Rk-Bin-List")),this.title_icon_$=b.$("").addClass("Rk-Bin-Title-Icon").appendTo(this.$);var d=this;b.$("").attr({href:"#",title:a.translate("Close bin")}).addClass("Rk-Bin-Close").html("×").appendTo(this.$).click(function(){return d.destroy(),a.$.find(".Rk-Bin-Main:visible").length||a.$.find(".Rk-Bin-Main:last").slideDown(),a.resizeBins(),!1}),b.$("").attr({href:"#",title:a.translate("Refresh bin")}).addClass("Rk-Bin-Refresh").appendTo(this.$).click(function(){return d.refresh(),!1}),this.count_$=b.$("
          ").addClass("Rk-Bin-Count").appendTo(this.$),this.title_$=b.$("

          ").addClass("Rk-Bin-Title").appendTo(this.$),this.main_$=b.$("
          ").addClass("Rk-Bin-Main").appendTo(this.$).html('

          '+a.translate("Loading, please wait")+"

          "),this.title_$.html(c.title||"(new bin)"),this.renkan.resizeBins(),c.auto_refresh&&window.setInterval(function(){d.refresh()},c.auto_refresh)}};e.prototype.destroy=function(){this.$.detach(),this.renkan.resizeBins()};var f=b.Renkan=function(a){var e=this;b.__renkans.push(this),this.options=d.defaults(a,b.defaults,{templates:d.defaults(a.templates,renkanJST)||renkanJST,node_editor_templates:d.defaults(a.node_editor_templates,b.defaults.node_editor_templates)}),this.template=renkanJST["templates/main.html"];var f={};if(d.each(this.options.node_editor_templates,function(a,b){f[b]=e.options.templates[a],delete e.options.templates[a]}),this.options.node_editor_templates=f,d.each(this.options.property_files,function(a){b.$.getJSON(a,function(a){e.options.properties=e.options.properties.concat(a)})}),this.read_only=this.options.read_only||!this.options.editor_mode,this.router=new b.Router,this.project=new b.Models.Project,this.dataloader=new b.DataLoader.Loader(this.project,this.options),this.setCurrentUser=function(a,b){this.project.addUser({_id:a,title:b}),this.current_user=a,this.renderer.redrawUsers()},"undefined"!=typeof this.options.user_id&&(this.current_user=this.options.user_id),this.$=b.$("#"+this.options.container),this.$.addClass("Rk-Main").html(this.template(this)),this.tabs=[],this.search_engines=[],this.current_user_list=new b.Models.UsersList,this.current_user_list.on("add remove",function(){this.renderer&&this.renderer.redrawUsers()}),this.colorPicker=function(){var a=renkanJST["templates/colorpicker.html"];return'
            '+b.pickerColors.map(function(b){return a({c:b})}).join("")+"
          "}(),this.options.show_editor&&(this.renderer=new b.Renderer.Scene(this)),this.options.search.length){var g=renkanJST["templates/search.html"],h=this.$.find(".Rk-Search-List"),i=this.$.find(".Rk-Web-Search-Input"),j=this.$.find(".Rk-Web-Search-Form");d.each(this.options.search,function(a,c){b[a.type]&&b[a.type].Search&&e.search_engines.push(new b[a.type].Search(e,a))}),h.html(d(this.search_engines).map(function(a,b){return g({key:b,title:a.getSearchTitle(),className:a.getBgClass()})}).join("")),h.find("li").click(function(){var a=b.$(this);e.setSearchEngine(a.attr("data-key")),j.submit()}),j.submit(function(){if(i.val()){var a=e.search_engine;a.search(i.val())}return!1}),this.$.find(".Rk-Search-Current").mouseenter(function(){h.slideDown()}),this.$.find(".Rk-Search-Select").mouseleave(function(){h.hide()}),this.setSearchEngine(0)}else this.$.find(".Rk-Web-Search-Form").detach();d.each(this.options.bins,function(a){b[a.type]&&b[a.type].Bin&&e.tabs.push(new b[a.type].Bin(e,a))});var k=!1;this.$.find(".Rk-Bins").on("click",".Rk-Bin-Title,.Rk-Bin-Title-Icon",function(){var a=b.$(this).siblings(".Rk-Bin-Main");a.is(":hidden")&&(e.$.find(".Rk-Bin-Main").slideUp(),a.slideDown())}),this.options.show_editor&&this.$.find(".Rk-Bins").on("mouseover",".Rk-Bin-Item",function(a){var f=b.$(this);if(f&&c(f).attr("data-uri")){var g=e.project.get("nodes").where({uri:c(f).attr("data-uri")});d.each(g,function(a){e.renderer.highlightModel(a)})}}).mouseout(function(){ diff -r d4b318cecb0e -r 6f2ab1a72f4a server/python/django/renkanmanager/__init__.py --- a/server/python/django/renkanmanager/__init__.py Fri Jun 19 17:32:43 2015 +0200 +++ b/server/python/django/renkanmanager/__init__.py Fri Aug 28 23:04:06 2015 +0200 @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -VERSION = (0, 11, 0, "final", 0) +VERSION = (0, 12, 0, "final", 0) def get_version(): diff -r d4b318cecb0e -r 6f2ab1a72f4a server/python/django/renkanmanager/static/renkanmanager/lib/renkan/css/renkan.css --- a/server/python/django/renkanmanager/static/renkanmanager/lib/renkan/css/renkan.css Fri Jun 19 17:32:43 2015 +0200 +++ b/server/python/django/renkanmanager/static/renkanmanager/lib/renkan/css/renkan.css Fri Aug 28 23:04:06 2015 +0200 @@ -24,7 +24,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ -/*! renkan - v0.11.0 - Copyright © IRI 2015 */ +/*! renkan - v0.12.0 - Copyright © IRI 2015 */ /*! * _____ _ diff -r d4b318cecb0e -r 6f2ab1a72f4a server/python/django/renkanmanager/static/renkanmanager/lib/renkan/css/renkan.min.css --- a/server/python/django/renkanmanager/static/renkanmanager/lib/renkan/css/renkan.min.css Fri Jun 19 17:32:43 2015 +0200 +++ b/server/python/django/renkanmanager/static/renkanmanager/lib/renkan/css/renkan.min.css Fri Aug 28 23:04:06 2015 +0200 @@ -24,7 +24,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ -/*! renkan - v0.11.0 - Copyright © IRI 2015 */ +/*! renkan - v0.12.0 - Copyright © IRI 2015 */ /*! diff -r d4b318cecb0e -r 6f2ab1a72f4a server/python/django/renkanmanager/static/renkanmanager/lib/renkan/css/space-editor.css --- a/server/python/django/renkanmanager/static/renkanmanager/lib/renkan/css/space-editor.css Fri Jun 19 17:32:43 2015 +0200 +++ b/server/python/django/renkanmanager/static/renkanmanager/lib/renkan/css/space-editor.css Fri Aug 28 23:04:06 2015 +0200 @@ -24,7 +24,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ -/*! renkan - v0.11.0 - Copyright © IRI 2015 */ +/*! renkan - v0.12.0 - Copyright © IRI 2015 */ html { overflow: visible !important; diff -r d4b318cecb0e -r 6f2ab1a72f4a server/python/django/renkanmanager/static/renkanmanager/lib/renkan/css/space-editor.min.css --- a/server/python/django/renkanmanager/static/renkanmanager/lib/renkan/css/space-editor.min.css Fri Jun 19 17:32:43 2015 +0200 +++ b/server/python/django/renkanmanager/static/renkanmanager/lib/renkan/css/space-editor.min.css Fri Aug 28 23:04:06 2015 +0200 @@ -24,7 +24,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ -/*! renkan - v0.11.0 - Copyright © IRI 2015 */ +/*! renkan - v0.12.0 - Copyright © IRI 2015 */ html{overflow:visible!important}body{font-family:Arial,Helvetica,sans-serif;background:#F6F6F6;color:#333}.clearer{display:block;clear:both;height:1px}h1{margin-bottom:5px;padding:0 15px;background:#333;color:#fff;font-weight:700;font-size:30px;line-height:60px}.right{width:301px;position:absolute;top:10px;right:10px}.main{margin:10px 330px 10px 20px}.blue-button{display:inline-block;padding:4px 6px;color:#fff;text-decoration:none;border-radius:4px;background:-moz-linear-gradient(top,#6080c0,#2040a0);background:-webkit-linear-gradient(top,#6080c0,#2040a0);box-shadow:1px 1px 2px gray}.blue-button:hover{background:-moz-linear-gradient(top,#2040a0,#6080c0);background:-webkit-linear-gradient(top,#2040a0,#6080c0)}.update-preview{text-align:center;display:block;margin-bottom:10px;font-size:24px;font-weight:700;line-height:34px}#preview{position:relative;border-left:1px solid #000;border-bottom:1px solid #000;width:300px;height:800px;border-radius:4px;overflow:hidden;margin-bottom:10px}.section-title{font-size:20px;font-weight:700;margin:20px 0 5px}.first-level-list{margin:5px 0}.add-item{margin:5px 0;font-size:22px;font-weight:700;line-height:18px}.add-item:hover:after{float:right;font-size:14px;font-weight:400;line-height:18px;margin-left:4px}.add-search-engine:hover:after{content:"Add Search Engine"}.add-resource:hover:after{content:"Add Resource"}.add-bin:hover:after{content:"Add Bin"}.item{padding:5px;margin:5px 0;border-radius:4px;font-size:12px;background:-moz-linear-gradient(top,#ffcc8f,#fff0d0);background:-webkit-linear-gradient(top,#ffcc8f,#fff0d0);box-shadow:1px 1px 2px gray}.remove-item{float:right;font-size:22px;line-height:18px;height:18px;margin:0 0 2px -10px;font-weight:700}.setting{float:left;width:260px;margin:2px 15px 2px 2px;line-height:24px;min-height:24px}.setting label{float:left;display:block;width:100px;font-weight:700}.display-value{float:left;display:block;width:160px}.edit-value{width:160px;display:none;border:1px solid #ccc;border-radius:3px}input.edit-value,textarea.edit-value{width:154px;padding:2px}textarea.edit-value{resize:vertical;height:72px}.item-editing .display-value{display:none}.item-editing .edit-value{display:inline-block}.resource-list-title{clear:both;width:100%;font-size:16px;font-weight:700;margin:5px 0 0}.resource{display:block;clear:both;padding:5px;margin:5px;border-radius:4px;background:-moz-linear-gradient(top,#ff8f00,#ffcc8f);background:-webkit-linear-gradient(top,#ff8f00,#ffcc8f);box-shadow:1px 1px 2px gray}.resource .display-value{display:inline-block}.resource .edit-value,.resource.resource-editing .display-value{display:none}.resource.resource-editing .edit-value{display:inline-block} \ No newline at end of file diff -r d4b318cecb0e -r 6f2ab1a72f4a server/python/django/renkanmanager/static/renkanmanager/lib/renkan/js/renkan.js --- a/server/python/django/renkanmanager/static/renkanmanager/lib/renkan/js/renkan.js Fri Jun 19 17:32:43 2015 +0200 +++ b/server/python/django/renkanmanager/static/renkanmanager/lib/renkan/js/renkan.js Fri Aug 28 23:04:06 2015 +0200 @@ -24,7 +24,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ -/*! renkan - v0.11.0 - Copyright © IRI 2015 */ +/*! renkan - v0.12.0 - Copyright © IRI 2015 */ this["renkanJST"] = this["renkanJST"] || {}; diff -r d4b318cecb0e -r 6f2ab1a72f4a server/python/django/renkanmanager/static/renkanmanager/lib/renkan/js/renkan.min.js --- a/server/python/django/renkanmanager/static/renkanmanager/lib/renkan/js/renkan.min.js Fri Jun 19 17:32:43 2015 +0200 +++ b/server/python/django/renkanmanager/static/renkanmanager/lib/renkan/js/renkan.min.js Fri Aug 28 23:04:06 2015 +0200 @@ -24,7 +24,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ -/*! renkan - v0.11.0 - Copyright © IRI 2015 */ +/*! renkan - v0.12.0 - Copyright © IRI 2015 */ this.renkanJST=this.renkanJST||{},this.renkanJST["templates/colorpicker.html"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='
        • ';return __p},this.renkanJST["templates/edgeeditor.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;Array.prototype.join;with(obj)__p+='

          \n ×'+__e(renkan.translate("Edit Edge"))+"\n

          \n

          \n \n \n

          \n',options.show_edge_editor_uri&&(__p+="\n

          \n \n \n \n

          \n ',options.properties.length&&(__p+="\n

          \n \n \n

          \n")),__p+="\n",options.show_edge_editor_style&&(__p+='\n
          \n ',options.show_edge_editor_style_color&&(__p+='\n
          \n '+__e(renkan.translate("Edge color:"))+'\n
          \n \n \n \n '+(null==(__t=renkan.colorPicker)?"":__t)+'\n '+__e(renkan.translate("Choose color"))+"\n
          \n
          \n "),__p+="\n ",options.show_edge_editor_style_dash&&(__p+='\n
          \n '+__e(renkan.translate("Dash:"))+'\n \n
          \n "),__p+="\n ",options.show_edge_editor_style_thickness&&(__p+='\n
          \n '+__e(renkan.translate("Thickness:"))+'\n -\n '+__e(edge.thickness)+'\n +\n
          \n '),__p+="\n ",options.show_edge_editor_style_arrow&&(__p+='\n
          \n '+__e(renkan.translate("Arrow:"))+'\n \n
          \n "),__p+="\n
          \n"),__p+="\n",options.show_edge_editor_direction&&(__p+='\n

          \n '+__e(renkan.translate("Change edge direction"))+"\n

          \n"),__p+="\n",options.show_edge_editor_nodes&&(__p+='\n

          \n '+__e(renkan.translate("From:"))+'\n \n '+__e(shortenText(edge.from_title,25))+'\n

          \n

          \n '+__e(renkan.translate("To:"))+'\n \n '+__e(shortenText(edge.to_title,25))+"\n

          \n"),__p+="\n",options.show_edge_editor_creator&&edge.has_creator&&(__p+='\n

          \n '+__e(renkan.translate("Created by:"))+'\n \n '+__e(shortenText(edge.created_by_title,25))+"\n

          \n"),__p+="\n";return __p},this.renkanJST["templates/edgeeditor_readonly.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;Array.prototype.join;with(obj)__p+='

          \n ×\n ',options.show_edge_tooltip_color&&(__p+='\n \n '),__p+='\n \n ',edge.uri&&(__p+='\n \n '),__p+="\n "+__e(edge.title)+"\n ",edge.uri&&(__p+=" "),__p+="\n \n

          \n",options.show_edge_tooltip_uri&&edge.uri&&(__p+='\n

          \n '+__e(edge.short_uri)+"\n

          \n"),__p+="\n

          "+(null==(__t=edge.description)?"":__t)+"

          \n",options.show_edge_tooltip_nodes&&(__p+='\n

          \n '+__e(renkan.translate("From:"))+'\n \n '+__e(shortenText(edge.from_title,25))+'\n

          \n

          \n '+__e(renkan.translate("To:"))+'\n \n '+__e(shortenText(edge.to_title,25))+"\n

          \n"),__p+="\n",options.show_edge_tooltip_creator&&edge.has_creator&&(__p+='\n

          \n '+__e(renkan.translate("Created by:"))+'\n \n '+__e(shortenText(edge.created_by_title,25))+"\n

          \n"),__p+="\n";return __p},this.renkanJST["templates/ldtjson-bin/annotationtemplate.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;with(obj)__p+='
        • \n\n \n

          '+(null==(__t=htitle)?"":__t)+"

          \n

          "+(null==(__t=hdescription)?"":__t)+"

          \n

          Start: "+(null==(__t=start)?"":__t)+", End: "+(null==(__t=end)?"":__t)+", Duration: "+(null==(__t=duration)?"":__t)+'

          \n
          \n
        • \n';return __p},this.renkanJST["templates/ldtjson-bin/segmenttemplate.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;with(obj)__p+='
        • \n\n \n

          '+(null==(__t=htitle)?"":__t)+"

          \n

          "+(null==(__t=hdescription)?"":__t)+"

          \n

          Start: "+(null==(__t=start)?"":__t)+", End: "+(null==(__t=end)?"":__t)+", Duration: "+(null==(__t=duration)?"":__t)+'

          \n
          \n
        • \n';return __p},this.renkanJST["templates/ldtjson-bin/tagtemplate.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;with(obj)__p+='
        • \n\n \n

          '+(null==(__t=htitle)?"":__t)+'

          \n
          \n
        • \n';return __p},this.renkanJST["templates/list-bin.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;Array.prototype.join;with(obj)__p+='
        • \n'),__p+='\n

          \n ',url&&(__p+='\n \n '),__p+="\n "+(null==(__t=htitle)?"":__t)+"\n ",url&&(__p+=""),__p+="\n

          \n ",description&&(__p+='\n

          '+(null==(__t=hdescription)?"":__t)+"

          \n "),__p+="\n ",image&&(__p+='\n
          \n '),__p+="\n
        • \n";return __p},this.renkanJST["templates/main.html"]=function(obj){obj||(obj={});var __p="",__e=_.escape;Array.prototype.join;with(obj)options.show_bins&&(__p+='\n
          \n
          \n

          '+__e(translate("Select contents:"))+'

          \n
          \n \n
          \n
          \n
            \n
            \n \n
            \n
            \n \n \n
            \n
              \n
              \n'),__p+=" ",options.show_editor&&(__p+='\n
              \n ×'+__e(renkan.translate("Edit Node"))+"\n

              \n

              \n \n \n

              \n',options.show_node_editor_uri&&(__p+="\n

              \n \n \n \n

              \n'),__p+=" ",options.change_types&&(__p+="\n

              \n \n \n

              \n"),__p+=" ",options.show_node_editor_description&&(__p+="\n

              \n \n ",__p+=options.show_node_editor_description_richtext?'\n

              '+(null==(__t=node.description)?"":__t)+"
              \n ":'\n \n ",__p+="\n

              \n"),__p+=" ",options.show_node_editor_size&&(__p+='\n

              \n '+__e(renkan.translate("Size:"))+'\n -\n '+__e(node.size)+'\n +\n

              \n'),__p+=" ",options.show_node_editor_style&&(__p+='\n
              \n ',options.show_node_editor_style_color&&(__p+='\n
              \n \n '+__e(renkan.translate("Node color:"))+'\n
              \n \n \n \n '+(null==(__t=renkan.colorPicker)?"":__t)+'\n '+__e(renkan.translate("Choose color"))+"\n
              \n
              \n "),__p+="\n ",options.show_node_editor_style_dash&&(__p+='\n
              \n '+__e(renkan.translate("Dash:"))+'\n \n
              \n "),__p+="\n ",options.show_node_editor_style_thickness&&(__p+='\n
              \n '+__e(renkan.translate("Thickness:"))+'\n -\n '+__e(node.thickness)+'\n +\n
              \n '),__p+="\n
              \n"),__p+=" ",options.show_node_editor_image&&(__p+='\n
              \n
              \n \n ',node.clip_path&&(__p+='\n \n \n \n '),__p+="\n
              \n
              \n

              \n \n

              \n \n \n
              \n

              \n",options.allow_image_upload&&(__p+="\n

              \n \n \n

              \n')),__p+=" ",options.show_node_editor_creator&&node.has_creator&&(__p+='\n

              \n '+__e(renkan.translate("Created by:"))+'\n \n '+__e(shortenText(node.created_by_title,25))+"\n

              \n"),__p+=" ",options.change_shapes&&(__p+="\n

              \n \n \n

              \n"),__p+="\n";return __p},this.renkanJST["templates/nodeeditor_readonly.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;Array.prototype.join;with(obj)__p+='

              \n ×\n ',options.show_node_tooltip_color&&(__p+='\n \n '),__p+='\n \n ',node.uri&&(__p+='\n \n '),__p+="\n "+__e(node.title)+"\n ",node.uri&&(__p+=""),__p+="\n \n

              \n",node.uri&&options.show_node_tooltip_uri&&(__p+='\n

              \n '+__e(node.short_uri)+"\n

              \n"),__p+=" ",options.show_node_tooltip_description&&(__p+='\n

              '+(null==(__t=node.description)?"":__t)+"

              \n"),__p+=" ",node.image&&options.show_node_tooltip_image&&(__p+='\n \n'),__p+=" ",node.has_creator&&options.show_node_tooltip_creator&&(__p+='\n

              \n '+__e(renkan.translate("Created by:"))+'\n \n '+__e(shortenText(node.created_by_title,25))+"\n

              \n"),__p+='\n '+__e(renkan.translate("Link to the node"))+"\n";return __p},this.renkanJST["templates/nodeeditor_video.html"]=function(obj){obj||(obj={});var __p="",__e=_.escape;Array.prototype.join;with(obj)__p+='

              \n ×\n ',options.show_node_tooltip_color&&(__p+='\n \n '),__p+='\n \n ',node.uri&&(__p+='\n \n '),__p+="\n "+__e(node.title)+"\n ",node.uri&&(__p+=""),__p+="\n \n

              \n",node.uri&&options.show_node_tooltip_uri&&(__p+='\n \n'),__p+='\n '+__e(renkan.translate("Link to the node"))+"\n";return __p},this.renkanJST["templates/scene.html"]=function(obj){function print(){__p+=__j.call(arguments,"")}obj||(obj={});var __p="",__e=_.escape,__j=Array.prototype.join;with(obj)options.show_top_bar&&(__p+='\n
              \n
              \n ',__p+=options.editor_mode?'\n \n ':'\n

              \n '+__e(project.get("title")||translate("Untitled project"))+"\n

              \n ",__p+="\n ",options.show_user_list&&(__p+='\n
              \n
              \n ',options.show_user_color&&(__p+='\n
              \n \n ',options.user_color_editable&&(__p+='\n \n '),__p+="\n \n ",options.user_color_editable&&print(colorPicker),__p+="\n
              \n "),__p+='\n <unknown user>\n
              \n
                \n
                \n '),__p+="\n ",options.home_button_url&&(__p+='\n
                \n \n
                \n
                \n '+__e(translate(options.home_button_title))+"\n
                \n
                \n
                \n "),__p+="\n ",options.show_fullscreen_button&&(__p+='\n
                \n
                \n
                \n
                \n '+__e(translate("Full Screen"))+"\n
                \n
                \n
                \n "),__p+="\n ",options.editor_mode?(__p+="\n ",options.show_addnode_button&&(__p+='\n
                \n
                \n
                \n
                \n '+__e(translate("Add Node"))+"\n
                \n
                \n
                \n "),__p+="\n ",options.show_addedge_button&&(__p+='\n
                \n
                \n
                \n
                \n '+__e(translate("Add Edge"))+"\n
                \n
                \n
                \n "),__p+="\n ",options.show_export_button&&(__p+='\n
                \n
                \n
                \n
                \n '+__e(translate("Download Project"))+"\n
                \n
                \n
                \n "),__p+="\n ",options.show_save_button&&(__p+='\n
                \n
                \n
                \n
                \n
                \n
                \n '),__p+="\n ",options.show_open_button&&(__p+='\n
                \n
                \n
                \n
                \n '+__e(translate("Open Project"))+"\n
                \n
                \n
                \n "),__p+="\n ",options.show_bookmarklet&&(__p+='\n
                \n \n
                \n
                \n '+__e(translate("Renkan 'Drag-to-Add' bookmarklet"))+'\n
                \n
                \n
                \n
                \n '),__p+="\n "):(__p+="\n ",options.show_export_button&&(__p+='\n
                \n
                \n
                \n
                \n '+__e(translate("Download Project"))+'\n
                \n
                \n
                \n
                \n '),__p+="\n "),__p+="\n ",options.show_search_field&&(__p+='\n
                \n \n
                \n
                \n '),__p+="\n
                \n"),__p+='\n
                \n
                \n
                \n ',options.editor_mode&&options.save_view&&(__p+='\n
                \n '),__p+="\n ",options.save_view&&(__p+='\n
                \n ',options.hide_nodes&&(__p+='\n \n '),__p+=" \n "),__p+="\n
                \n "),__p+="\n
              • \n
                \n";return __p},this.renkanJST["templates/search.html"]=function(obj){obj||(obj={});var __t,__p="";_.escape;with(obj)__p+='
              • '+(null==(__t=title)?"":__t)+"
              • ";return __p},this.renkanJST["templates/wikipedia-bin/resulttemplate.html"]=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;with(obj)__p+='
              • \n\n \n

                \n '+(null==(__t=htitle)?"":__t)+'\n

                \n

                '+(null==(__t=hdescription)?"":__t)+"

                \n
              • \n";return __p},function(a){"use strict";"object"!=typeof a.Rkns&&(a.Rkns={});var b=a.Rkns,c=b.$=a.jQuery,d=b._=a._;b.pickerColors=["#8f1919","#a80000","#d82626","#ff0000","#e87c7c","#ff6565","#f7d3d3","#fecccc","#8f5419","#a85400","#d87f26","#ff7f00","#e8b27c","#ffb265","#f7e5d3","#fee5cc","#8f8f19","#a8a800","#d8d826","#feff00","#e8e87c","#feff65","#f7f7d3","#fefecc","#198f19","#00a800","#26d826","#00ff00","#7ce87c","#65ff65","#d3f7d3","#ccfecc","#198f8f","#00a8a8","#26d8d8","#00feff","#7ce8e8","#65feff","#d3f7f7","#ccfefe","#19198f","#0000a8","#2626d8","#0000ff","#7c7ce8","#6565ff","#d3d3f7","#ccccfe","#8f198f","#a800a8","#d826d8","#ff00fe","#e87ce8","#ff65fe","#f7d3f7","#feccfe","#000000","#242424","#484848","#6d6d6d","#919191","#b6b6b6","#dadada","#ffffff"],b.__renkans=[];var e=b._BaseBin=function(a,c){if("undefined"!=typeof a){this.renkan=a,this.renkan.$.find(".Rk-Bin-Main").hide(),this.$=b.$("
              • ").addClass("Rk-Bin").appendTo(a.$.find(".Rk-Bin-List")),this.title_icon_$=b.$("").addClass("Rk-Bin-Title-Icon").appendTo(this.$);var d=this;b.$("").attr({href:"#",title:a.translate("Close bin")}).addClass("Rk-Bin-Close").html("×").appendTo(this.$).click(function(){return d.destroy(),a.$.find(".Rk-Bin-Main:visible").length||a.$.find(".Rk-Bin-Main:last").slideDown(),a.resizeBins(),!1}),b.$("").attr({href:"#",title:a.translate("Refresh bin")}).addClass("Rk-Bin-Refresh").appendTo(this.$).click(function(){return d.refresh(),!1}),this.count_$=b.$("
                ").addClass("Rk-Bin-Count").appendTo(this.$),this.title_$=b.$("

                ").addClass("Rk-Bin-Title").appendTo(this.$),this.main_$=b.$("
                ").addClass("Rk-Bin-Main").appendTo(this.$).html('

                '+a.translate("Loading, please wait")+"

                "),this.title_$.html(c.title||"(new bin)"),this.renkan.resizeBins(),c.auto_refresh&&window.setInterval(function(){d.refresh()},c.auto_refresh)}};e.prototype.destroy=function(){this.$.detach(),this.renkan.resizeBins()};var f=b.Renkan=function(a){var e=this;b.__renkans.push(this),this.options=d.defaults(a,b.defaults,{templates:d.defaults(a.templates,renkanJST)||renkanJST,node_editor_templates:d.defaults(a.node_editor_templates,b.defaults.node_editor_templates)}),this.template=renkanJST["templates/main.html"];var f={};if(d.each(this.options.node_editor_templates,function(a,b){f[b]=e.options.templates[a],delete e.options.templates[a]}),this.options.node_editor_templates=f,d.each(this.options.property_files,function(a){b.$.getJSON(a,function(a){e.options.properties=e.options.properties.concat(a)})}),this.read_only=this.options.read_only||!this.options.editor_mode,this.router=new b.Router,this.project=new b.Models.Project,this.dataloader=new b.DataLoader.Loader(this.project,this.options),this.setCurrentUser=function(a,b){this.project.addUser({_id:a,title:b}),this.current_user=a,this.renderer.redrawUsers()},"undefined"!=typeof this.options.user_id&&(this.current_user=this.options.user_id),this.$=b.$("#"+this.options.container),this.$.addClass("Rk-Main").html(this.template(this)),this.tabs=[],this.search_engines=[],this.current_user_list=new b.Models.UsersList,this.current_user_list.on("add remove",function(){this.renderer&&this.renderer.redrawUsers()}),this.colorPicker=function(){var a=renkanJST["templates/colorpicker.html"];return'
                  '+b.pickerColors.map(function(b){return a({c:b})}).join("")+"
                "}(),this.options.show_editor&&(this.renderer=new b.Renderer.Scene(this)),this.options.search.length){var g=renkanJST["templates/search.html"],h=this.$.find(".Rk-Search-List"),i=this.$.find(".Rk-Web-Search-Input"),j=this.$.find(".Rk-Web-Search-Form");d.each(this.options.search,function(a,c){b[a.type]&&b[a.type].Search&&e.search_engines.push(new b[a.type].Search(e,a))}),h.html(d(this.search_engines).map(function(a,b){return g({key:b,title:a.getSearchTitle(),className:a.getBgClass()})}).join("")),h.find("li").click(function(){var a=b.$(this);e.setSearchEngine(a.attr("data-key")),j.submit()}),j.submit(function(){if(i.val()){var a=e.search_engine;a.search(i.val())}return!1}),this.$.find(".Rk-Search-Current").mouseenter(function(){h.slideDown()}),this.$.find(".Rk-Search-Select").mouseleave(function(){h.hide()}),this.setSearchEngine(0)}else this.$.find(".Rk-Web-Search-Form").detach();d.each(this.options.bins,function(a){b[a.type]&&b[a.type].Bin&&e.tabs.push(new b[a.type].Bin(e,a))});var k=!1;this.$.find(".Rk-Bins").on("click",".Rk-Bin-Title,.Rk-Bin-Title-Icon",function(){var a=b.$(this).siblings(".Rk-Bin-Main");a.is(":hidden")&&(e.$.find(".Rk-Bin-Main").slideUp(),a.slideDown())}),this.options.show_editor&&this.$.find(".Rk-Bins").on("mouseover",".Rk-Bin-Item",function(a){var f=b.$(this);if(f&&c(f).attr("data-uri")){var g=e.project.get("nodes").where({uri:c(f).attr("data-uri")});d.each(g,function(a){e.renderer.highlightModel(a)})}}).mouseout(function(){