# HG changeset patch # User veltr # Date 1347033017 -7200 # Node ID 84eea249ce7e6b2576d411fda203bcd8b2ea818f # Parent 092fc99f7558cf320110583af5e412fa276952b9 Added multiple graph publishing diff -r 092fc99f7558 -r 84eea249ce7e client/css/renkan-publish.css --- a/client/css/renkan-publish.css Fri Sep 07 12:26:16 2012 +0200 +++ b/client/css/renkan-publish.css Fri Sep 07 17:50:17 2012 +0200 @@ -47,15 +47,33 @@ } a { - color: #6060c0; + color: #303080; +} + +.Rk-ProjectList { + position: absolute; left: 0; top: 0; list-style: none; padding: 0; margin: 0; +} + +.Rk-Project { + list-style: none; margin-right: 5px; padding: 5px; height: 15px; font-size: 13px; font-weight: bold; + float: left; border-top-left-radius: 8px; border-top-right-radius: 8px; + background: #505050; color: #E0E0E0; cursor: pointer; + background: -moz-linear-gradient(top, #333333 20%, #666666 80%); +} + +.Rk-Project:hover { + background: -moz-linear-gradient(bottom, #333333 20%, #666666 80%); +} + +.Rk-Project.active { + background: #505080; + color: #ffffc0; + background: -moz-linear-gradient(bottom, #333366 20%, #666699 80%); } .Rk-Render { - position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: -moz-linear-gradient(top, rgba(180,180,180,.2) 0, rgba(255,255,255,.2) 30%, rgba(255,255,255,.2) 70%, rgba(180,180,180,.2) 100%); -} - -.Rk-Render-Panel { - position: absolute; left: 300px; top: 0; right: 0; bottom: 0; + position: absolute; left: 0; top: 25px; right: 0; bottom: 0; + background: -moz-linear-gradient(top, rgba(180,180,180,.2) 0, rgba(255,255,255,.2) 30%, rgba(255,255,255,.2) 70%, rgba(180,180,180,.2) 100%); } .Rk-Canvas { @@ -79,6 +97,22 @@ margin: 5px 0; font-size: 11px; } +.Rk-RelatedList { + list-style: none; +} + +.Rk-Related { + color: #a000c0; cursor: pointer; +} + +.Rk-Related b { + font-weight: bolder; +} + +.Rk-Related:hover { + text-decoration: underline; +} + .Rk-ZoomButtons { position: absolute; left: 0; top: 0; cursor: pointer; } diff -r 092fc99f7558 -r 84eea249ce7e client/js/paper-renderer.js --- a/client/js/paper-renderer.js Fri Sep 07 12:26:16 2012 +0200 +++ b/client/js/paper-renderer.js Fri Sep 07 17:50:17 2012 +0200 @@ -192,9 +192,25 @@ this.renderer = _renderer; this.project = _renderer.renkan.project; this.model = _model; + if (this.model) { + var _this = this; + this._changeBinding = function() { + _this.redraw(); + } + this._removeBinding = function() { + _renderer.removeRepresentation(_this); + _renderer.redraw(); + } + this.model.on("change", this._changeBinding ); + this.model.on("remove", this._removeBinding ); + } } } +Rkns.Renderer._BaseRepresentation.prototype.super = function(_func) { + Rkns.Renderer._BaseRepresentation.prototype[_func].apply(this, Array.prototype.slice.call(arguments, 1)); +} + Rkns.Renderer._BaseRepresentation.prototype.select = function() {} Rkns.Renderer._BaseRepresentation.prototype.unselect = function() {} @@ -205,7 +221,12 @@ Rkns.Renderer._BaseRepresentation.prototype.mouseup = function() {} -Rkns.Renderer._BaseRepresentation.prototype.destroy = function() {} +Rkns.Renderer._BaseRepresentation.prototype.destroy = function() { + if (this.model) { + this.model.off("change", this._changeBinding ); + this.model.off("remove", this._removeBinding ); + } +} Rkns.Renderer.Node = Rkns.Utils.inherit(Rkns.Renderer._BaseRepresentation); @@ -220,11 +241,11 @@ fontSize: Rkns.Renderer._NODE_FONT_SIZE, fillColor: 'black' }; - this.edit_button = new Rkns.Renderer.NodeEditButton(this.renderer, {}); + this.edit_button = new Rkns.Renderer.NodeEditButton(this.renderer, null); this.edit_button.node_representation = this; - this.remove_button = new Rkns.Renderer.NodeRemoveButton(this.renderer, {}); + this.remove_button = new Rkns.Renderer.NodeRemoveButton(this.renderer, null); this.remove_button.node_representation = this; - this.link_button = new Rkns.Renderer.NodeLinkButton(this.renderer, {}); + this.link_button = new Rkns.Renderer.NodeLinkButton(this.renderer, null); this.link_button.node_representation = this; this.title.paragraphStyle.justification = 'center'; } @@ -342,6 +363,7 @@ } Rkns.Renderer.Node.prototype.destroy = function(_event) { + this.super("destroy"); this.edit_button.destroy(); this.remove_button.destroy(); this.link_button.destroy(); @@ -376,9 +398,9 @@ this.text.paragraphStyle.justification = 'center'; this.text_angle = 0; this.arrow_angle = 0; - this.edit_button = new Rkns.Renderer.EdgeEditButton(this.renderer, {}); + this.edit_button = new Rkns.Renderer.EdgeEditButton(this.renderer, null); this.edit_button.edge_representation = this; - this.remove_button = new Rkns.Renderer.EdgeRemoveButton(this.renderer, {}); + this.remove_button = new Rkns.Renderer.EdgeRemoveButton(this.renderer, null); this.remove_button.edge_representation = this; } @@ -456,6 +478,7 @@ } Rkns.Renderer.Edge.prototype.destroy = function() { + this.super("destroy"); this.line.remove(); this.arrow.remove(); this.text.remove(); @@ -1121,16 +1144,6 @@ Rkns.Renderer.Scene.prototype.addRepresentation = function(_type, _model) { var _repr = new Rkns.Renderer[_type](this, _model); this.representations.push(_repr); - if (_model) { - var _this = this; - _model.on("change", function() { - _repr.redraw(); - }); - _model.on("remove", function() { - _this.removeRepresentation(_repr); - _this.redraw(); - }); - } return _repr; } diff -r 092fc99f7558 -r 84eea249ce7e client/js/renkan-publish.js --- a/client/js/renkan-publish.js Fri Sep 07 12:26:16 2012 +0200 +++ b/client/js/renkan-publish.js Fri Sep 07 17:50:17 2012 +0200 @@ -27,7 +27,8 @@ Rkns.i18n = { en: { zoom_in: "Zoom In", - zoom_out: "Zoom Out" + zoom_out: "Zoom Out", + see_in_project: 'See also "{node}" in "{project}"' } } @@ -57,13 +58,13 @@ Rkns.Models.RenkanModel = Backbone.RelationalModel.extend({ idAttribute : "_id", constructor: function(options) { - + if (typeof options !== "undefined") { options._id = options._id || options.id || Rkns.Models.getUID(this); options.title = options.title || "(untitled " + this.type + ")"; options.description = options.description || ""; options.uri = options.uri || ""; - + if(typeof this.prepare === "function") { options = this.prepare(options); } @@ -264,25 +265,73 @@ if (typeof _opts.search !== "object" || !_opts.search) { _opts.search = []; } - this.project = new Rkns.Models.Project(); + this.projects = []; this.l10n = Rkns.i18n[_opts.language]; this.$ = Rkns.$("#" + _opts.container); this.$.html(this.template()); - this.renderer = new Rkns.Renderer.Scene(this); + this.uris = {}; + this.active_project = null; + this.renderer = null; } + Rkns.Renkan.prototype.template = Rkns._.template( - '
' + '
' ); -Rkns.jsonImport = function(_renkan, _opts) { - var _proj = _renkan.project; +Rkns.Renkan.prototype.addProject = function(_opts) { + var _proj = new Rkns.Models.Project(), + _li = Rkns.$("
  • ").addClass("Rk-Project").text("Untitled #" + (1+this.projects.length)); + this.$.find(".Rk-Project-List").append(_li); + Rkns.loadJson(_proj, _opts); + var _this = this; + _li.click(function() { + _this.renderProject(_proj); + }); + _proj.on("change:title", function() { + _li.html(_proj.get("title")); + }); + _proj.on("select", function() { + _this.$.find(".Rk-Project").removeClass("active"); + _li.addClass("active"); + }); + _proj.on("add:nodes", function(_node) { + var _uri = _node.get("uri"); + if (_uri) { + if (typeof _this.uris[_uri] === "undefined") { + _this.uris[_uri] = []; + } + _this.uris[_uri].push(_node); + } + }); + this.projects.push(_proj); +} + +Rkns.Renkan.prototype.renderProject = function(_project) { + if (_project) { + if (this.renderer) { + this.renderer.destroy(); + } + this.active_project = _project; + this.renderer = new Rkns.Renderer.Scene(this, _project); + this.renderer.autoScale(); + _project.trigger("select"); + } +} + +Rkns.Renkan.prototype.renderProjectAt = function(_index) { + this.renderProject(this.projects[_index]); +} + +Rkns.loadJson = function(_proj, _opts) { if (typeof _opts.http_method == "undefined") { _opts.http_method = 'PUT'; } var _load = function() { Rkns.$.getJSON(_opts.url, function(_data) { _proj.set(_data); - _renkan.renderer.autoScale(); + if (typeof _opts.callback === "function") { + _opts.callback(_proj); + } }); } _load(); @@ -359,31 +408,49 @@ Rkns.Renderer._BaseRepresentation = function(_renderer, _model) { if (typeof _renderer !== "undefined") { this.renderer = _renderer; - this.project = _renderer.renkan.project; + this.project = _renderer.project; this.model = _model; - if (_model) { + if (this.model) { var _this = this; - _model.on("select", function() { + this._selectBinding = function() { _this.select(); - }); - _model.on("unselect", function() { + }; + this._unselectBinding = function() { _this.unselect(); - }); + } + this._changeBinding = function() { + _this.redraw(); + } + this._removeBinding = function() { + _renderer.removeRepresentation(_this); + _renderer.redraw(); + } + this.model.on("change", this._changeBinding ); + this.model.on("remove", this._removeBinding ); + this.model.on("select", this._selectBinding ); + this.model.on("unselect", this._unselectBinding ); } } } +Rkns.Renderer._BaseRepresentation.prototype.super = function(_func) { + Rkns.Renderer._BaseRepresentation.prototype[_func].apply(this, Array.prototype.slice.call(arguments, 1)); +} + Rkns.Renderer._BaseRepresentation.prototype.select = function() {} Rkns.Renderer._BaseRepresentation.prototype.unselect = function() {} -Rkns.Renderer._BaseRepresentation.prototype.highlight = function() {} - -Rkns.Renderer._BaseRepresentation.prototype.unhighlight = function() {} - Rkns.Renderer._BaseRepresentation.prototype.mouseup = function() {} -Rkns.Renderer._BaseRepresentation.prototype.destroy = function() {} +Rkns.Renderer._BaseRepresentation.prototype.destroy = function() { + if (this.model) { + this.model.off("change", this._changeBinding ); + this.model.off("remove", this._removeBinding ); + this.model.off("select", this._selectBinding); + this.model.off("unselect", this._unselectBinding); + } +} Rkns.Renderer.Node = Rkns.Utils.inherit(Rkns.Renderer._BaseRepresentation); @@ -423,7 +490,7 @@ var _clip = new paper.Path.Circle([0, 0], Rkns.Renderer._NODE_RADIUS); _raster.scale(_ratio); _this.node_image = new paper.Group(_clip, _raster); - _this.node_image.opacity = .9; + _this.node_image.opacity = _this.selected ? .5 : .9; /* This is a workaround to allow clipping at group level */ _this.node_image.clipped = true; _this.node_image.position = _this.paper_coords; @@ -457,7 +524,9 @@ } Rkns.Renderer.Node.prototype.select = function() { + this.selected = true; this.circle.strokeWidth = 3; + this.openTooltip(); this.circle.fillColor = "#ffff80"; if (this.node_image) { this.node_image.opacity = .5; @@ -466,6 +535,7 @@ } Rkns.Renderer.Node.prototype.unselect = function() { + this.selected = false; this.circle.strokeWidth = 1; this.circle.fillColor = "#ffffff"; if (this.node_image) { @@ -478,6 +548,7 @@ } Rkns.Renderer.Node.prototype.destroy = function(_event) { + this.super("destroy"); this.circle.remove(); this.title.remove(); if (this.node_image) { @@ -576,6 +647,7 @@ } Rkns.Renderer.Edge.prototype.destroy = function() { + this.super("destroy"); this.line.remove(); this.arrow.remove(); this.text.remove(); @@ -610,7 +682,8 @@ Rkns.Renderer.NodeTooltip.prototype.template = Rkns._.template( '

    ×<%=a%>

    ' - + '

    <%=description%>

    ' + + '

    <%-description%>

    ' + + '' ); Rkns.Renderer.NodeTooltip.prototype.draw = function() { @@ -622,12 +695,30 @@ a: (_uri ? '' : '' ) + _title + (_uri ? '' : '' ), description: _model.get("description").replace(/(\n|\r|\r\n)/mg,' ').substr(0,180).replace(/(^.{150,179})[\s].+$/m,'$1…') })) - this.redraw(); - var _this = this; + var _this = this, + _renkan = this.renderer.renkan, + _uris = _renkan.uris[_uri]; + Rkns._(_uris).each(function(_othernode) { + if (_othernode !== _model && _othernode.get("project") !== _this.project) { + var _otherproj = _othernode.get("project"), + _nodetitle = _othernode.get("title") || "Untitled node" + _projtitle = _otherproj.get("title") || "Untitled node", + _html = _renkan.l10n.see_in_project.replace('{node}',Rkns._.escape(_nodetitle)).replace('{project}',Rkns._.escape(_projtitle)), + _li = Rkns.$("
  • ").addClass("Rk-Related").html(_html); + _li.click(function() { + _renkan.renderProject(_otherproj); + Rkns._.defer(function() { + _othernode.trigger("select"); + }); + }); + _this.tooltip_$.append(_li); + } + }); this.tooltip_$.find(".Rk-CloseX").click(function() { _this.renderer.removeRepresentation(_this); paper.view.draw(); }); + this.redraw(); } Rkns.Renderer.NodeTooltip.prototype.redraw = function() { @@ -666,7 +757,7 @@ Rkns.Renderer.EdgeTooltip.prototype.template = Rkns._.template( '

    ×<%=a%>

    ' - + '

    <%=description%>

    ' + + '

    <%-description%>

    ' ); Rkns.Renderer.EdgeTooltip.prototype.draw = function() { @@ -700,8 +791,9 @@ /* */ -Rkns.Renderer.Scene = function(_renkan) { +Rkns.Renderer.Scene = function(_renkan, _project) { this.renkan = _renkan; + this.project = _project; this.$ = Rkns.$(".Rk-Render"); this.representations = []; this.$.html(this.template({ @@ -764,24 +856,26 @@ _this.redraw(); },50); - this.addRepresentations("Node", this.renkan.project.get("nodes")); - this.addRepresentations("Edge", this.renkan.project.get("edges")); + this.addRepresentations("Node", this.project.get("nodes")); + this.addRepresentations("Edge", this.project.get("edges")); - this.renkan.project.on("add:nodes", function(_node) { + this._addNodesBinding = function(_node) { _this.addRepresentation("Node", _node); _thRedraw(); - }); - this.renkan.project.on("add:edges", function(_edge) { + } + this._addEdgesBinding = function(_edge) { _this.addRepresentation("Edge", _edge); _thRedraw(); - }); + } + this.project.on("add:nodes", this._addNodesBinding ); + this.project.on("add:edges", this._addEdgesBinding ); this.redraw(); } Rkns.Renderer.Scene.prototype.template = Rkns._.template( - '
    ' - + '
    ' + '
    ' + + '
    ' + '
    ' ); @@ -810,9 +904,9 @@ } Rkns.Renderer.Scene.prototype.autoScale = function() { - if (this.renkan.project.get("nodes").length) { - var _xx = this.renkan.project.get("nodes").map(function(_node) { return _node.get("position").x }), - _yy = this.renkan.project.get("nodes").map(function(_node) { return _node.get("position").y }), + if (this.project.get("nodes").length) { + var _xx = this.project.get("nodes").map(function(_node) { return _node.get("position").x }), + _yy = this.project.get("nodes").map(function(_node) { return _node.get("position").y }), _minx = Math.min.apply(Math, _xx), _miny = Math.min.apply(Math, _yy), _maxx = Math.max.apply(Math, _xx), @@ -835,16 +929,6 @@ Rkns.Renderer.Scene.prototype.addRepresentation = function(_type, _model) { var _repr = new Rkns.Renderer[_type](this, _model); this.representations.push(_repr); - if (_model) { - var _this = this; - _model.on("change", function() { - _repr.redraw(); - }); - _model.on("remove", function() { - _this.removeRepresentation(_repr); - _this.redraw(); - }); - } return _repr; } @@ -909,9 +993,6 @@ this.selected_target.model.trigger("unselect"); } _newTarget.model.trigger("select"); - if (typeof _newTarget.openTooltip === "function") { - _newTarget.openTooltip(); - } this.selected_target = _newTarget; } } else { @@ -984,3 +1065,14 @@ this.redraw(); } } + +Rkns.Renderer.Scene.prototype.destroy = function() { + this.project.off("add:nodes", this._addNodesBinding ); + this.project.off("add:edges", this._addEdgesBinding ); + Rkns._(this.representations).each(function(_repr) { + _repr.destroy(); + }); + this.$.html(""); + paper.remove(); +} + diff -r 092fc99f7558 -r 84eea249ce7e client/publish-test.html --- a/client/publish-test.html Fri Sep 07 12:26:16 2012 +0200 +++ b/client/publish-test.html Fri Sep 07 17:50:17 2012 +0200 @@ -13,14 +13,22 @@ - diff -r 092fc99f7558 -r 84eea249ce7e metadataplayer/json/renkan-2.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/metadataplayer/json/renkan-2.json Fri Sep 07 17:50:17 2012 +0200 @@ -0,0 +1,328 @@ +{ + "title": "Discussion Stiegler-Renucci", + "users": [ + { + "_id": "u-anonymous", + "title": "anonymous", + "uri": "", + "description": "", + "color": "#dd00dd" + }, { + "_id": "u-cybunk", + "title": "Samuel", + "uri": "http://twitter.com/cybunk", + "description": "", + "color": "#e00000" + }, { + "_id": "u-raphv", + "title": "Raphael", + "uri": "http://twitter.com/raphv", + "description": "", + "color": "#00a000" + } + ], + "nodes": [ + { + "_id": "node-2012-09-07-7e8a09d3a0309d08-0001", + "title": "Robin Renucci : Conversation avec Bernard Stiegler", + "uri": "http://ldt.iri.centrepompidou.fr/ldtplatform/ldt/front/player/e328e188-ff2f-11e0-b9e1-00145ea49a02/#id=s_569B4FC3-C84E-4527-8999-4102A11BFA0A", + "description": "ロバン・ルヌッチによるプレゼンテーション(ベルナール・スティグレールとの対談)\n (langue française フランス語)", + "position": { + "x": -65, + "y": -123.5 + }, + "image": "img/ldt-segment.png", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-0002", + "title": "Wikipedia: Robin Renucci", + "uri": "http://fr.wikipedia.org/wiki/Robin_Renucci", + "description": "Daniel Robin-Renucci, connu sous le nom de scène de Robin Renucci, est un acteur et un réalisateur français , né le 11 juillet 1956 au ... ", + "position": { + "x": -280, + "y": -251.5 + }, + "image": "img/wikipedia.png", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-0004", + "title": "Wikipedia: Bernard Stiegler", + "uri": "http://fr.wikipedia.org/wiki/Bernard_Stiegler", + "description": "Bernard Stiegler, né le 1 | avril | 1952, est un philosophe français qui axe sa réflexion sur les enjeux des mutations actuelles — ... ", + "position": { + "x": -343, + "y": 78.5 + }, + "image": "img/wikipedia.png", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-0006", + "title": "Tweet", + "uri": "http://ldt.iri.centrepompidou.fr/ldtplatform/ldt/front/player/e328e188-ff2f-11e0-b9e1-00145ea49a02/#id=8ec66540-cb76-4c82-a6a5-d6d8c92962f2-127762445681967104", + "description": "Vincent Puig: #tfcem Robin Renucci, membre Ars Idustrialis, prône la reconnaissance de la valeur de l'individu au coté de l'artiste (Education populaire)", + "position": { + "x": -155, + "y": 140 + }, + "image": "http://a1.twimg.com/profile_images/379424006/PortaitVP120Ko_normal.jpg", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-0007", + "title": "Tweet", + "uri": "http://ldt.iri.centrepompidou.fr/ldtplatform/ldt/front/player/e328e188-ff2f-11e0-b9e1-00145ea49a02/#id=5cabe2c8-fbbc-4e14-b1a9-3e8954a3c3c2-127765207803101185", + "description": "Vincent Puig: #tfcem Stiegler relance la polémique sur la démocratisation cuturelle, Culture pour tous ou Culture pour chacun. Un enjeu électroral 2012==", + "position": { + "x": 176, + "y": 59 + }, + "image": "http://a1.twimg.com/profile_images/379424006/PortaitVP120Ko_normal.jpg", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-0008", + "title": "Tweet", + "uri": "http://ldt.iri.centrepompidou.fr/ldtplatform/ldt/front/player/e328e188-ff2f-11e0-b9e1-00145ea49a02/#id=db404779-04ca-4c9e-9329-9d6dddbdaf7c-127773107187499009", + "description": "Vincent Puig: #tfcem L'origine de la démocratie ? L'écriture qui est dans le numérique dans un processus de profonde mutation??", + "position": { + "x": 1, + "y": 102 + }, + "image": "http://a1.twimg.com/profile_images/379424006/PortaitVP120Ko_normal.jpg", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-0009", + "title": "Introduction de Renucci par Stiegler", + "uri": "http://ldt.iri.centrepompidou.fr/ldtplatform/ldt/front/player/e328e188-ff2f-11e0-b9e1-00145ea49a02/#id=s_D19F89A3-21CE-C53A-79E4-40F3839CBF17", + "description": "ベルナール・スティグレールによるロバン・ルヌッチの紹介(langue française フランス語)", + "position": { + "x": -304, + "y": -89 + }, + "image": "img/ldt-segment.png", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-000b", + "title": "Stiegler : Chocs technologiques ...", + "uri": "http://ldt.iri.centrepompidou.fr/ldtplatform/ldt/front/player/e328e188-ff2f-11e0-b9e1-00145ea49a02/#id=s_6C326EED-B91A-AEDF-032D-40D9A60AAD7E", + "description": "ベルナール・スティグレールによるプレゼンテーション『テクノロジーの衝撃と大学の諸課題――デジタル・スタディーズの時代』 (langue française フランス語)", + "position": { + "x": -505, + "y": -123 + }, + "image": "img/ldt-segment.png", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-0010", + "title": "Introduction de Fujihata par Ishida", + "uri": "http://ldt.iri.centrepompidou.fr/ldtplatform/ldt/front/player/e328e188-ff2f-11e0-b9e1-00145ea49a02/#id=s_048BB538-83E9-58D6-18B2-411A24D12FEA", + "description": "石田英敬による藤幡正樹の紹介(langue française フランス語)", + "position": { + "x": 128, + "y": -198 + }, + "image": "img/ldt-segment.png", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-0015", + "title": "Wikipedia: Culture", + "uri": "http://fr.wikipedia.org/wiki/Culture", + "description": "En philosophie , le mot culture désigne ce qui est différent de la nature , c'est-à-dire ce qui est de l'ordre de l'acquis et non de l'inné ... ", + "position": { + "x": 329, + "y": -78 + }, + "image": "img/wikipedia.png", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-0017", + "title": "Wikipedia: Démocratie", + "uri": "http://fr.wikipedia.org/wiki/D%C3%A9mocratie", + "description": "La démocratie (du grec ancien. δημοκρατία / grc-Latn | dēmokratía souveraineté du peuple », de grec ancien | δῆμος / Lang | grc-Latn | ... ", + "position": { + "x": 72, + "y": 268 + }, + "image": "img/wikipedia.png", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-001a", + "title": "Wikipedia: Démocratisation", + "uri": "http://fr.wikipedia.org/wiki/D%C3%A9mocratisation", + "description": "Le terme démocratisation est équivoque. Il peut désigner le: Renforcement du caractère démocratique d’un régime politique (par exemple en ... ", + "position": { + "x": 250, + "y": 234 + }, + "image": "img/wikipedia.png", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-001d", + "title": "Wikipedia: Politique culturelle française", + "uri": "http://fr.wikipedia.org/wiki/Politique_culturelle_fran%C3%A7aise", + "description": "De la démocratisation à la démocratie culturelle: Image:Bibliotheque nationale de France-fr. jpg | La Très grande bibliothèque, décidée par ... ", + "position": { + "x": 358, + "y": 69 + }, + "image": "img/wikipedia.png", + "created_by": "u-anonymous" + }, { + "_id": "node-2012-09-07-7e8a09d3a0309d08-0020", + "title": "Wikipedia: Éducation populaire", + "uri": "http://fr.wikipedia.org/wiki/%C3%89ducation_populaire", + "description": "L éducation populaire est un vaste courant de pensée qui cherche principalement à promouvoir en dehors des structures traditionnelles ... ", + "position": { + "x": -264, + "y": 256 + }, + "image": "img/wikipedia.png", + "created_by": "u-anonymous" + } + ], + "edges": [ + { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-0003", + "title": "participant", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0002", + "to": "node-2012-09-07-7e8a09d3a0309d08-0001", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-0005", + "title": "participant", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0004", + "to": "node-2012-09-07-7e8a09d3a0309d08-0001", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-000a", + "title": "introduction à", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0009", + "to": "node-2012-09-07-7e8a09d3a0309d08-0001", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-000c", + "title": "précède", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-000b", + "to": "node-2012-09-07-7e8a09d3a0309d08-0009", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-000d", + "title": "(untitled edge)", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0002", + "to": "node-2012-09-07-7e8a09d3a0309d08-0009", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-000e", + "title": "participant", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0009", + "to": "node-2012-09-07-7e8a09d3a0309d08-0004", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-000f", + "title": "participant", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0004", + "to": "node-2012-09-07-7e8a09d3a0309d08-000b", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-0011", + "title": "suit", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0010", + "to": "node-2012-09-07-7e8a09d3a0309d08-0001", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-0012", + "title": "(untitled edge)", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0008", + "to": "node-2012-09-07-7e8a09d3a0309d08-0001", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-0013", + "title": "(untitled edge)", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0006", + "to": "node-2012-09-07-7e8a09d3a0309d08-0001", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-0014", + "title": "(untitled edge)", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0007", + "to": "node-2012-09-07-7e8a09d3a0309d08-0001", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-0016", + "title": "(untitled edge)", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0015", + "to": "node-2012-09-07-7e8a09d3a0309d08-0007", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-0018", + "title": "(untitled edge)", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0017", + "to": "node-2012-09-07-7e8a09d3a0309d08-0008", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-001b", + "title": "(untitled edge)", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-001a", + "to": "node-2012-09-07-7e8a09d3a0309d08-0007", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-001c", + "title": "(untitled edge)", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0017", + "to": "node-2012-09-07-7e8a09d3a0309d08-001a", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-001e", + "title": "(untitled edge)", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0015", + "to": "node-2012-09-07-7e8a09d3a0309d08-001d", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-001f", + "title": "(untitled edge)", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-001a", + "to": "node-2012-09-07-7e8a09d3a0309d08-001d", + "created_by": "u-anonymous" + }, { + "_id": "edge-2012-09-07-7e8a09d3a0309d08-0021", + "title": "(untitled edge)", + "uri": "", + "description": "", + "from": "node-2012-09-07-7e8a09d3a0309d08-0020", + "to": "node-2012-09-07-7e8a09d3a0309d08-0006", + "created_by": "u-anonymous" + } + ] +} \ No newline at end of file diff -r 092fc99f7558 -r 84eea249ce7e metadataplayer/json/renkan.json --- a/metadataplayer/json/renkan.json Fri Sep 07 12:26:16 2012 +0200 +++ b/metadataplayer/json/renkan.json Fri Sep 07 17:50:17 2012 +0200 @@ -1,4 +1,5 @@ { + "title": "Intervention de Stiegler", "users": [ { "_id": "u-anonymous",