# HG changeset patch # User nowmad@23.1.168.192.in-addr.arpa # Date 1453107699 -3600 # Node ID e95ca73cec549fdeb596e8ca0453aecbf27a329a # Parent 3e93c61f6be053e722fdf3455f87d9447d7dad1f# Parent 36f84e8f1ad540e3813f6c3b754c22417b392f2f Merge 2 heads diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/adapters/application.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/adapters/application.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,16 @@ +import DS from 'ember-data'; + +export default DS.FixtureAdapter.extend({ + host: 'http://127.0.0.1', + namespace: 'api', + queryFixtures: function(records, query, type) { + return records.filter(function(record) { + for(var key in query) { + if (!query.hasOwnProperty(key)) { continue; } + var value = query[key]; + if (record[key] !== value) { return false; } + } + return true; + }); + } +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/components/visu-carto.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/components/visu-carto.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,134 @@ +import Ember from 'ember'; + +export default Ember.Component.extend({ + // storage: Ember.inject.service(), + didInsertElement: function(){ + var _this = this; + + var continentsDataProvider; + + var franceDataProvider = { + mapVar: AmCharts.maps.france2016Low, + getAreasFromMap:true, + + areas: this.initArea(AmCharts.maps.france2016Low) + }; + + var worldDataProvider = { + map: "worldLow", + getAreasFromMap: true, + images: [{ + id: "backButton", + label: "Back to continents map", + rollOverColor: "#CC0000", + labelRollOverColor: "#CC0000", + useTargetsZoomValues: true, + left: 30, + bottom: 30, + labelFontSize: 15, + selectable: true + }], + areas: this.initArea(AmCharts.maps.worldLow, franceDataProvider) + }; + + + var continentsDataProvider = { + map: "continentsLow", + + areas: [{ + id: "africa", + linkToObject: worldDataProvider, + color: "#7CACAE", + passZoomValuesToTarget: true + }, { + id: "asia", + linkToObject: worldDataProvider, + color: "#E0EEEF", + passZoomValuesToTarget: true + }, { + id: "australia", + linkToObject: worldDataProvider, + color: "#E0EEEF", + passZoomValuesToTarget: true + }, { + id: "europe", + linkToObject: worldDataProvider, + color: "#2D7073", + passZoomValuesToTarget: true + }, { + id: "north_america", + linkToObject: worldDataProvider, + color: "#B0D1D3", + passZoomValuesToTarget: true + }, { + id: "south_america", + linkToObject: worldDataProvider, + color: "#E0EEEF", + passZoomValuesToTarget: true + }] + + }; + + + var map = AmCharts.makeChart("mapdiv", { + type: "map", + + + areasSettings: { + autoZoom: true, + rollOverOutlineColor: "#000000", + selectedOutlineColor: "#CC0000", + selectedColor: "green", + color: "#E0EEEF" + }, + + dataProvider: continentsDataProvider, + + listeners: [{event:"clickMapObject", method:handleMapObjectClick}] + + }); + + function handleGoHome() { + map.dataProvider = continentsDataProvider; + map.validateNow(); + } + function handleMapObjectClick (event) { + console.log("bbox: ", event.mapObject.displayObject.node.getBBox()); + // console.log("event", event); + // console.log("originalTarget", event.event.originalTarget); + // console.log("getTotalLength", event.event.originalTarget.getTotalLength()); + // console.log("getBBox", event.event.originalTarget.getBBox()); + // console.log("event", event.event.originalTarget.attributes[1].d); + if (event.mapObject.id == "backButton") { + handleGoHome(); + } + _this.sendAction('action', event.mapObject.title); + } + + // monitor when home icon was clicked and also go to continents map + map.addListener("homeButtonClicked", handleGoHome); + }, + initArea: function(area, dataProvider){ + var _this = this; + + var areaList = []; + var count = {}; + area.svg.g.path.map(function(elt, index){ + var length = _this.get("sounds").filterBy("spatial", elt.title).toArray().length; + if (length > 0) + count[elt.id]= length; + }); + area.svg.g.path.map(function(elt, index){ + + areaList.push({ + id: elt.id, + linkToObject: (elt.id === "FR" ? dataProvider : ""), + color: ((typeof(count[elt.id]) === "undefined") ? "#E0EEEF" : "#2D7073"), + autoZoom: (elt.id === "FR" ? true : false), + selectable: true, + passZoomValuesToTarget: false + }); + }); + return areaList; + } +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/components/visu-chrono.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/components/visu-chrono.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,45 @@ +import Ember from 'ember'; + +export default Ember.Component.extend({ + didInsertElement: function(){ + var _this = this; + + if (this.get('container').lookup('controller:application').date !== null){ + this.highlightQuery(this.get('container').lookup('controller:application').date); + } + + var isMouseDown = false, + isHighlighted; + $("#our_table li").mousedown(function () { + isMouseDown = true; + $(this).toggleClass("highlighted"); + isHighlighted = $(this).hasClass("highlighted"); + _this.sendUpdate(); + return false; // prevent text selection + }).mouseover(function () { + if (isMouseDown) { + $(this).toggleClass("highlighted", isHighlighted); + _this.sendUpdate(); + } + }).bind("selectstart", function () { + return false; + }) + + $(document).mouseup(function () { + isMouseDown = false; + }); + }, + sendUpdate: function(){ + var dateQuery = []; + $('.highlighted').map(function(index, elt) { + dateQuery.push(parseInt($(elt).parent().attr('id')) + parseInt($(elt).html())); + }); + this.sendAction('action', dateQuery); + }, + highlightQuery: function(list){ + list.map(function(elt, index){ + var year = Math.floor(parseInt(elt)/10)*10; + $("#"+year+" ."+(parseInt(elt)-year)).toggleClass("highlighted", true); + }); + } +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/components/visu-langues.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/components/visu-langues.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,197 @@ +import Ember from 'ember'; + +export default Ember.Component.extend({ + didInsertElement: function(){ + var _this = this; + + var margin = {top: 20, right: 0, bottom: 0, left: 0}, + width = 560, + height = 600 - margin.top - margin.bottom, + formatNumber = d3.format(",d"), + transitioning; + + var x = d3.scale.linear() + .domain([0, width]) + .range([0, width]); + + var y = d3.scale.linear() + .domain([0, height]) + .range([0, height]); + + var treemap = d3.layout.treemap() + .children(function(d, depth) { return depth ? null : d._children; }) + .sort(function(a, b) { return a.value - b.value; }) + .ratio(height / width * 0.5 * (1 + Math.sqrt(5))) + .round(false); + + var svg = d3.select("#chart_div").append("svg") + .attr("width", width + margin.left + margin.right) + .attr("height", height + margin.bottom + margin.top) + .style("margin-left", -margin.left + "px") + .style("margin.right", -margin.right + "px") + .append("g") + .attr("transform", "translate(" + margin.left + "," + margin.top + ")") + .style("shape-rendering", "crispEdges"); + + var grandparent = svg.append("g") + .attr("class", "grandparent"); + + grandparent.append("rect") + .attr("y", -margin.top) + .attr("width", width) + .attr("height", margin.top); + + grandparent.append("text") + .attr("x", 6) + .attr("y", 6 - margin.top) + .attr("dy", ".75em"); + + d3.json("langues.json", function(root) { + initialize(root); + accumulate(root); + layout(root); + display(root); + + function initialize(root) { + root.x = root.y = 0; + root.dx = width; + root.dy = height; + root.depth = 0; + } + + // Aggregate the values for internal nodes. This is normally done by the + // treemap layout, but not here because of our custom implementation. + // We also take a snapshot of the original children (_children) to avoid + // the children being overwritten when when layout is computed. + function accumulate(d) { + return (d._children = d.children) + ? d.value = d.children.reduce(function(p, v) { return p + accumulate(v); }, 0) + : d.value; + } + + // Compute the treemap layout recursively such that each group of siblings + // uses the same size (1×1) rather than the dimensions of the parent cell. + // This optimizes the layout for the current zoom state. Note that a wrapper + // object is created for the parent node for each group of siblings so that + // the parent’s dimensions are not discarded as we recurse. Since each group + // of sibling was laid out in 1×1, we must rescale to fit using absolute + // coordinates. This lets us use a viewport to zoom. + function layout(d) { + if (d._children) { + treemap.nodes({_children: d._children}); + d._children.forEach(function(c) { + c.x = d.x + c.x * d.dx; + c.y = d.y + c.y * d.dy; + c.dx *= d.dx; + c.dy *= d.dy; + c.parent = d; + layout(c); + }); + } + } + + function display(d) { + grandparent + .datum(d.parent) + .on("click", transition) + .select("text") + .text(name(d)); + + var g1 = svg.insert("g", ".grandparent") + .datum(d) + .attr("class", "depth"); + + var g = g1.selectAll("g") + .data(d._children) + .enter().append("g"); + + g.classed("bla", true).on("click", selectHandler) + + g.filter(function(d) { return d._children; }) + .classed("children", true) + .on("click", transition); + + // g.selectAll(".child") + // .data(function(d) { return d._children || [d]; }) + // .enter().append("rect") + // .attr("class", "child") + // .call(rect); + + g.append("rect") + .attr("class", "parent") + // .attr("fill", (d.color || "#bbb")) + .call(rect) + .append("title") + .text(function(d) { return formatNumber(d.value); }); + + g.append("text") + .attr("dy", ".75em") + .text(function(d) { return d.name; }) + .call(text); + + function transition(d) { + if (transitioning || !d) return; + selectHandler(d); + transitioning = true; + + var g2 = display(d), + t1 = g1.transition().duration(750), + t2 = g2.transition().duration(750); + + // Update the domain only after entering new elements. + x.domain([d.x, d.x + d.dx]); + y.domain([d.y, d.y + d.dy]); + + // Enable anti-aliasing during the transition. + svg.style("shape-rendering", null); + + // Draw child nodes on top of parent nodes. + svg.selectAll(".depth").sort(function(a, b) { return a.depth - b.depth; }); + + // Fade-in entering text. + g2.selectAll("text").style("fill-opacity", 0); + + // Transition to the new view. + t1.selectAll("text").call(text).style("fill-opacity", 0); + t2.selectAll("text").call(text).style("fill-opacity", 1); + t1.selectAll("rect").call(rect); + t2.selectAll("rect").call(rect); + + // Remove the old node when the transition is finished. + t1.remove().each("end", function() { + svg.style("shape-rendering", "crispEdges"); + transitioning = false; + }); + } + + function selectHandler (d){ + if (d.name === "Global"){ + return _this.sendAction('action', null); + } + _this.sendAction('action', d.name); + } + + return g; + } + + function text(text) { + text.attr("x", function(d) { return x(d.x) + 6; }) + .attr("y", function(d) { return y(d.y) + 6; }); + } + + function rect(rect) { + rect.attr("x", function(d) { return x(d.x); }) + .attr("y", function(d) { return y(d.y); }) + .attr("width", function(d) { return x(d.x + d.dx) - x(d.x); }) + .attr("height", function(d) { return y(d.y + d.dy) - y(d.y); }) + .attr("fill", function(d) { return (d.color || "#bbb")}); + } + + function name(d) { + return d.parent + ? name(d.parent) + "." + d.name + : d.name; + } + }); + } +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/controllers/application.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/controllers/application.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,76 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ + queryParams: ['location', 'langue', 'discours', 'date', 'thematique'], + location: null, + langue: null, + discours: null, + date: [], + thematique: null, + isShowingModal: false, + currentDetails: null, + currentItem: {title: "example", master: 'http://www.noiseaddicts.com/samples_1w72b820/3921.mp3'}, + filteredSounds: Ember.computed('location', 'langue', 'discours', 'date', 'thematique', 'model', function() { + var location = this.get('location'); + var langue = this.get('langue'); + var discours = this.get('discours'); + var date = this.get('date'); + var thematique = this.get('thematique'); + + var sounds = this.get('model'); + + if (location) { + sounds = sounds.filterBy('spatial', location); + } + if (langue) { + sounds = sounds.filterBy('language', langue); + } + if (discours) { + sounds = sounds.filterBy('type', discours); + } + if (date.length > 0) { + var temp = sounds; + sounds.map(function(elt, index){ + if (date.indexOf(elt.get('created')) === -1){ + temp = temp.without(elt); + } + }); + sounds = temp; + } + if (thematique) { + sounds = sounds.filterBy('thematique', thematique); + } + return sounds; + }), + actions: { + deleteTag: function(query, item){ + var queryParams = {}; + if (query === 'date'){ + var array = this.get('date'); + if(array.indexOf(item) !== -1) { + array.splice(array.indexOf(item), 1); + } + } + queryParams[query] = array || null; + this.transitionToRoute({queryParams: queryParams}); + }, + play: function(item){ + this.set("currentItem", item); + $("#audio-player").load(); + $(".result-item").toggleClass("playing", false); + $("#"+item.id).toggleClass("playing", true); + }, + details: function(item){ + if ($("#"+item.id).hasClass("details")){ + $("#"+item.id).toggleClass("details", false); + } else{ + $(".result-item").toggleClass("details", false); + $("#"+item.id).toggleClass("details", true); + } + }, + toggleModal: function(item){ + this.set("isShowingModal", !this.isShowingModal); + this.set("currentDetails", item); + } + } +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/controllers/tabs/carto.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/controllers/tabs/carto.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,9 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ + actions: { + updateUrl: function(selection){ + this.transitionToRoute({queryParams: {location: selection}}); + } + } +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/controllers/tabs/chrono.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/controllers/tabs/chrono.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,9 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ + actions: { + updateUrl: function(selection){ + this.transitionToRoute({queryParams: {date: selection}}); + } + } +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/controllers/tabs/langues.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/controllers/tabs/langues.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,9 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ + actions: { + updateUrl: function(selection){ + this.transitionToRoute({queryParams: {langue: selection}}); + } + } +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/controllers/visus/visu-carto.js --- a/cms/app-client/app/controllers/visus/visu-carto.js Fri Jan 15 17:16:49 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -import Ember from 'ember'; -import config from '../../config/environment'; - -export default Ember.Controller.extend({ - logoUrl: config.APP.baseStatic + "assets/images/logo.png" -}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/index.html --- a/cms/app-client/app/index.html Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/app/index.html Mon Jan 18 10:01:39 2016 +0100 @@ -21,19 +21,28 @@

Corpus de la parole

{{content-for 'body'}} -
+
+ + + {{content-for 'body-footer'}} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/models/sound.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/models/sound.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,349 @@ +import DS from 'ember-data'; + +var Sound = DS.Model.extend({ + title: DS.attr('string'), + description: DS.attr('string'), + interviewer: DS.attr('string'), + type: DS.attr('string'), + spatial: DS.attr('string'), + language: DS.attr('string'), + created: DS.attr('integer'), + master: DS.attr('url') +}); + +Sound.reopenClass({ + FIXTURES: [ + { + "id": 0, + "title": "culpa exercitation", + "description": "Deserunt exercitation laborum veniam ex anim officia non cillum ut. Mollit quis minim officia quis incididunt exercitation eu ad.", + "interviewer": "Ferguson King", + "type": "Reunion", + "spatial": "Germany", + "language": "Français", + "created": 1977, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3" + }, + { + "id": 1, + "title": "excepteur ex", + "description": "Veniam irure deserunt esse veniam enim voluptate esse et consequat fugiat. Fugiat ullamco officia enim nulla.", + "interviewer": "Holly Sims", + "type": "Discours", + "spatial": "France", + "language": "Alsacien", + "created": 2001, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3" + }, + { + "id": 2, + "title": "fugiat fugiat", + "description": "Enim aute incididunt voluptate sit labore anim in irure id duis ut. Occaecat magna sit mollit commodo enim reprehenderit nulla magna.", + "interviewer": "Claudia Cunningham", + "type": "Entretien", + "spatial": "France", + "language": "Corse", + "created": 2004, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3" + }, + { + "id": 3, + "title": "officia fugiat", + "description": "Irure elit aute eu consequat est sunt cillum. Quis nisi consectetur cillum cupidatat id consectetur.", + "interviewer": "Hazel Foster", + "type": "Dialogue", + "spatial": "France", + "language": "Alsacien", + "created": 2001, + "master": "http://www.noiseaddicts.com/samples_1w72b820/138.mp3" + }, + { + "id": 4, + "title": "nulla elit", + "description": "Anim ex consequat aliqua magna in aliquip ipsum voluptate est deserunt voluptate. Incididunt sit voluptate esse cillum qui ex irure cillum nulla cillum excepteur.", + "interviewer": "Colon Dotson", + "type": "Conversation", + "spatial": "Germany", + "language": "Breton", + "created": 1990, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3" + }, + { + "id": 5, + "title": "sunt laboris", + "description": "Ex quis aliqua aliquip incididunt dolore excepteur est incididunt occaecat aute anim. Veniam laborum tempor cupidatat aliquip nostrud anim ut dolor sint et aliquip.", + "interviewer": "Alisha Flores", + "type": "Discussion", + "spatial": "France", + "language": "Corse", + "created": 1972, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3" + }, + { + "id": 6, + "title": "fugiat laboris", + "description": "Do tempor amet duis occaecat. Est laboris ea voluptate ut adipisicing laboris exercitation eiusmod est irure ad laborum.", + "interviewer": "Hart Mccoy", + "type": "Conversation", + "spatial": "Germany", + "language": "Alsacien", + "created": 1987, + "master": "http://www.noiseaddicts.com/samples_1w72b820/138.mp3" + }, + { + "id": 7, + "title": "elit sit", + "description": "Lorem magna adipisicing sit non excepteur aliqua tempor enim elit cupidatat voluptate laborum. Aliqua mollit consequat pariatur tempor.", + "interviewer": "Cecelia Gregory", + "type": "Bavardage", + "spatial": "Germany", + "language": "Breton", + "created": 1961, + "master": "http://www.noiseaddicts.com/samples_1w72b820/138.mp3" + }, + { + "id": 8, + "title": "sit aliquip", + "description": "Ad sint anim elit eiusmod duis incididunt ipsum cupidatat culpa id proident amet. Ad in do aliquip irure est proident Lorem qui est veniam.", + "interviewer": "Cain Sweeney", + "type": "Dialogue", + "spatial": "Germany", + "language": "Corse", + "created": 1973, + "master": "http://www.noiseaddicts.com/samples_1w72b820/142.mp3" + }, + { + "id": 9, + "title": "culpa ut", + "description": "Irure nostrud consequat aliqua sit est id aute dolor elit quis. Exercitation consequat commodo amet nostrud laboris minim aute ipsum eiusmod sunt nisi.", + "interviewer": "Clay Whitney", + "type": "Discussion", + "spatial": "Spain", + "language": "Alsacien", + "created": 2008, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3" + }, + { + "id": 10, + "title": "culpa non", + "description": "Qui et dolor cupidatat eiusmod. Cillum irure mollit est nostrud dolor non exercitation ipsum sint.", + "interviewer": "Isabelle Valencia", + "type": "Conversation", + "spatial": "Spain", + "language": "Français", + "created": 1975, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3" + }, + { + "id": 11, + "title": "sit occaecat", + "description": "Exercitation elit magna cillum pariatur fugiat minim fugiat. Occaecat minim sunt ex aute velit aliquip laboris aliquip dolore.", + "interviewer": "Sherri Morin", + "type": "Discussion", + "spatial": "France", + "language": "Français", + "created": 2008, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3" + }, + { + "id": 12, + "title": "ea dolor", + "description": "Ea ullamco cupidatat esse et eu est sint irure ex non. Pariatur consectetur et quis et cupidatat ea mollit cillum enim.", + "interviewer": "Golden Bird", + "type": "Conversation", + "spatial": "France", + "language": "Breton", + "created": 1960, + "master": "http://www.noiseaddicts.com/samples_1w72b820/138.mp3" + }, + { + "id": 13, + "title": "laboris adipisicing", + "description": "Non ex culpa ullamco occaecat quis ut reprehenderit non in cupidatat reprehenderit laboris reprehenderit. Laboris irure Lorem aliquip consequat consequat consequat cillum elit incididunt ad anim Lorem sint excepteur.", + "interviewer": "Bianca Faulkner", + "type": "Conversation", + "spatial": "Spain", + "language": "Breton", + "created": 1997, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3" + }, + { + "id": 14, + "title": "sit veniam", + "description": "Cillum velit laborum irure velit consequat ipsum minim. Non in elit est Lorem excepteur mollit consectetur id.", + "interviewer": "Kidd Monroe", + "type": "Negociation", + "spatial": "Spain", + "language": "Alsacien", + "created": 2007, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3" + }, + { + "id": 15, + "title": "excepteur exercitation", + "description": "Et officia laboris pariatur culpa. Ullamco nisi eu non in.", + "interviewer": "Debora Palmer", + "type": "Conversation", + "spatial": "France", + "language": "Alsacien", + "created": 1969, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3" + }, + { + "id": 16, + "title": "consectetur officia", + "description": "Est tempor aliquip sit occaecat. Ullamco do anim labore consequat sunt enim ea.", + "interviewer": "Shaffer Workman", + "type": "Dialogue", + "spatial": "France", + "language": "Breton", + "created": 1998, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3" + }, + { + "id": 17, + "title": "fugiat eiusmod", + "description": "Quis sit mollit velit quis veniam ipsum commodo voluptate laborum pariatur dolor eiusmod nisi. Reprehenderit aliquip quis aliqua mollit culpa.", + "interviewer": "Shepherd Floyd", + "type": "Discussion", + "spatial": "Spain", + "language": "Corse", + "created": 1991, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3" + }, + { + "id": 18, + "title": "magna minim", + "description": "Amet enim in labore aliquip ipsum fugiat est ex quis. Voluptate adipisicing laboris nisi eu excepteur quis voluptate sit laborum ullamco proident aliquip duis aliquip.", + "interviewer": "Tamra Nixon", + "type": "Discussion", + "spatial": "France", + "language": "Français", + "created": 2009, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3" + }, + { + "id": 19, + "title": "occaecat aliquip", + "description": "Reprehenderit cillum id duis et quis nulla tempor tempor eu ipsum magna mollit laborum. Ullamco reprehenderit incididunt nostrud irure tempor adipisicing.", + "interviewer": "Bette Becker", + "type": "Discours", + "spatial": "France", + "language": "Français", + "created": 1975, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3" + }, + { + "id": 20, + "title": "minim minim", + "description": "Incididunt sit consequat laborum mollit nisi et ullamco aute ad nisi nostrud. Lorem quis id culpa culpa eu minim fugiat quis incididunt ex in sit adipisicing.", + "interviewer": "Marsh Gillespie", + "type": "Discussion", + "spatial": "Spain", + "language": "Français", + "created": 1964, + "master": "http://www.noiseaddicts.com/samples_1w72b820/142.mp3" + }, + { + "id": 21, + "title": "commodo pariatur", + "description": "Duis elit consequat sint ipsum aliqua adipisicing ex consequat eiusmod qui ad laboris fugiat ipsum. Eiusmod eiusmod elit culpa veniam.", + "interviewer": "Guthrie Norman", + "type": "Argumentation", + "spatial": "France", + "language": "Corse", + "created": 1987, + "master": "http://www.noiseaddicts.com/samples_1w72b820/138.mp3" + }, + { + "id": 22, + "title": "dolore voluptate", + "description": "Ullamco cupidatat tempor incididunt dolor enim proident aliqua dolor dolor nulla occaecat quis excepteur. Consectetur ea ut commodo sunt excepteur ad ut ex consectetur.", + "interviewer": "Rosalie Rogers", + "type": "Discussion", + "spatial": "Germany", + "language": "Français", + "created": 1997, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3" + }, + { + "id": 23, + "title": "ipsum veniam", + "description": "Duis enim cupidatat laboris duis ut sint. Nisi eiusmod ea dolore cillum et labore dolor pariatur labore cupidatat reprehenderit irure.", + "interviewer": "Bridget Espinoza", + "type": "Conversation", + "spatial": "Spain", + "language": "Alsacien", + "created": 1973, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3" + }, + { + "id": 24, + "title": "fugiat et", + "description": "Velit elit non consequat incididunt consectetur occaecat sint magna aliquip. In dolore sunt sit nulla veniam culpa laboris sunt incididunt voluptate ipsum.", + "interviewer": "Cox Bernard", + "type": "Entretien", + "spatial": "Germany", + "language": "Alsacien", + "created": 1988, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3" + }, + { + "id": 25, + "title": "cillum adipisicing", + "description": "Aliqua ullamco quis aliqua minim irure sunt excepteur in nostrud. Consectetur aute commodo proident ea aliquip officia et dolore veniam sint.", + "interviewer": "Wendi Leon", + "type": "Negociation", + "spatial": "France", + "language": "Français", + "created": 1992, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3" + }, + { + "id": 26, + "title": "magna consequat", + "description": "Velit duis id consectetur ad anim fugiat in pariatur aliqua esse aliquip sit dolore aliqua. Laborum incididunt enim ea occaecat officia pariatur veniam deserunt.", + "interviewer": "Celeste Price", + "type": "Discussion", + "spatial": "France", + "language": "Alsacien", + "created": 1973, + "master": "http://www.noiseaddicts.com/samples_1w72b820/138.mp3" + }, + { + "id": 27, + "title": "proident non", + "description": "Ullamco amet sit qui reprehenderit eu aliquip magna culpa. Aliqua fugiat commodo est non minim irure aliquip proident ipsum laborum nulla qui quis irure.", + "interviewer": "Patty Heath", + "type": "Reunion", + "spatial": "France", + "language": "Breton", + "created": 1973, + "master": "http://www.noiseaddicts.com/samples_1w72b820/142.mp3" + }, + { + "id": 28, + "title": "ad tempor", + "description": "Adipisicing quis consectetur veniam adipisicing exercitation in pariatur amet exercitation cillum irure. Magna ipsum do eu labore consectetur minim quis ipsum ipsum mollit quis consequat.", + "interviewer": "Angelica Black", + "type": "Bavardage", + "spatial": "Spain", + "language": "Français", + "created": 1992, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3" + }, + { + "id": 29, + "title": "fugiat eiusmod", + "description": "Anim sint in do anim irure non cupidatat veniam cillum pariatur adipisicing laboris labore ea. Mollit irure aute laboris incididunt aliqua.", + "interviewer": "Rosalinda Kramer", + "type": "Dialogue", + "spatial": "Germany", + "language": "Alsacien", + "created": 1972, + "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3" + } + ] +}); + +export default Sound; diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/router.js --- a/cms/app-client/app/router.js Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/app/router.js Mon Jan 18 10:01:39 2016 +0100 @@ -6,11 +6,16 @@ }); Router.map(function() { - this.route('visus/visu-langues', { path: '/langues' }); - this.route('visus/visu-carto', { path: '/cartographie' }); - this.route('visus/visu-thematiques', { path: '/thematiques' }); - this.route('visus/visu-discours', { path: '/discours' }); - this.route('visus/visu-chrono', { path: '/chronologie' }); + this.route('tabs/langues', { path: '/langues' }); + this.route('tabs/carto', { path: '/cartographie' }); + this.route('tabs/thematiques', { path: '/thematiques' }); + this.route('tabs/discours', { path: '/discours' }); + this.route('tabs/chrono', { path: '/chronologie' }); +}); + +Router.reopen({ + onUrlChange: function() { + }.observes('currentPath') }); export default Router; diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/routes/application.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/routes/application.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,34 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ + serializeQueryParam: function(value, urlKey, defaultValueType) { + if (urlKey === 'date') { + return value; + } + return '' + value; + }, + deserializeQueryParam: function(value, urlKey, defaultValueType) { + if (urlKey === 'date') { + var arr = []; + for (var i = 0; i < value.length; i++) { + arr.push(parseInt(value[i])); + } + return arr; + } + + return value; + }, + model() { + return this.store.findAll('sound'); + }, + actions: { + willTransition: function(transition) { + var _this = this; + var queryParams = {}; + this.controller.get('queryParams').map(function(elt, index){ + queryParams[elt] = _this.controller.get(elt); + }); + this.transitionTo({ queryParams: queryParams }); + } + } +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/routes/tabs/carto.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/routes/tabs/carto.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,12 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ + renderTemplate() { + this.render({ outlet: 'carto' }); + }, + actions: { + queryParamsDidChange: function() { + console.log("carto params"); + }, + } +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/routes/tabs/chrono.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/routes/tabs/chrono.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,10 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ + actions: { + queryParamsDidChange: function() { + console.log("chrono params"); + // console.log("visu-chrono ?", this.controller.get('visu-chrono')); + }, + } +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/styles/app.scss --- a/cms/app-client/app/styles/app.scss Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/app/styles/app.scss Mon Jan 18 10:01:39 2016 +0100 @@ -1,11 +1,23 @@ #corpus-app { border: 1px solid; - width: 940px; - height: 900px; + width: 1108px; + height: 600px; display: block; margin-left: auto; margin-right: auto; margin-bottom: 10px; + + @import 'tabs/chrono'; + @import 'tabs/carto'; + @import 'tabs/langues'; + @import 'tabs/discours'; + @import 'tabs/thematiques'; +} + +.mapdiv{ + width: 470px; + background-color: #FFFFFF; + height: 500px; } .corpus-app { @@ -13,39 +25,30 @@ @import 'container'; @import 'player'; @import 'results'; + @import 'modal'; &-container{ display: block; width: 50%; - height: 900px; + height: 600px; float: left; border-top: none; border-right: 1px solid grey; } &-wrapper{ - height: 900px; + height: 600px; display : flex; flex-flow: column; border: none; - } - &-player, - &-results { padding: 0 10px; - margin-bottom: 10px; - background-color: #eeeeee; } &-player{ flex: 0 1 auto; float: left; border-left: none; border-top: none; - } - &-results { - flex: 1 1 auto; - float: left; - overflow: auto; - border-left: none; - border-top: none; + margin-bottom: 10px; + background-color: #eeeeee; } } } diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/styles/modal.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/styles/modal.scss Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,30 @@ +.overlay { + background-color: gray; + height: 100vh; + left: 0; + opacity: 0.77; + position: fixed; + right: 0; + top: 0; + z-index: 50; +} + +.dialog { + background: #fff none repeat scroll 0 0; + border: 4px solid #ccc; + border-radius: 10px; + box-shadow: 0 0 10px #222; + height: 300px; + left: 50%; + margin-left: -250px; + margin-top: -150px; + padding: 10px; + position: fixed; + top: 50%; + width: 500px; + z-index: 50; +} + +.dialog h1{ + margin-top: 0; +} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/styles/player.scss --- a/cms/app-client/app/styles/player.scss Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/app/styles/player.scss Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,4 @@ +#audio-player{ + display: block; + margin: 10px auto; +} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/styles/results.scss --- a/cms/app-client/app/styles/results.scss Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/app/styles/results.scss Mon Jan 18 10:01:39 2016 +0100 @@ -1,1 +1,83 @@ +.result-header, +.result-list{ + background-color: #eeeeee; +} +.result-header{ + flex: 0 1 auto; + float: left; + border-left: none; + border-top: none; +} + +.result-header .filters{ + display: inline-block; + border-radius: 5px; + padding: 1px 5px; + color: #fff; +} +.result-header .filters.location{ + background-color: #3985AB; +} +.result-header .filters.langue{ + background-color: #B94A43; +} +.result-header .filters.discours{ + background-color: #468842; +} +.result-header .filters.date{ + background-color: #E50086; +} +.result-header .filters.thematique{ + background-color: #F89406; +} +.result-header .fa{ + display: inline-block; + margin-left: 5px; + position: relative; + top: 1px; + cursor: pointer; +} + +.result-list{ + flex: 1 1 auto; + float: left; + overflow: auto; + border: none; + padding: 10px; + margin-bottom: 10px; + background: #eeeeee; +} + +.result-item { + margin-bottom: 1px; + height: 64px; + cursor: pointer; + padding: 5px; + overflow: hidden; + background-color: #fff; + border-bottom: 1px solid #eee; + color: #777; + transition: all 0.4s ease 0s; +} +.result-item:hover { + // box-shadow: -1px -1px 5px 0px rgba(0,0,0,0.75); +} +.result-item.details { + box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); + margin: 1rem 0rem; + z-index: 200; + height: inherit; +} + +.result-item .description{ + margin-top: 10px; +} + +.result-item.playing .fa { + // background: url('images/playing.gif') no-repeat; +} + +.result-item button{ + margin-top: 5px; +} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/styles/tabs/carto.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/styles/tabs/carto.scss Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,4 @@ +#mapdiv{ + width: 100%; + height: 500px; +} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/styles/tabs/chrono.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/styles/tabs/chrono.scss Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,19 @@ +#our_table ul { + margin: 0; +} + +#our_table li { + width:40px; + height:40px; + text-align:center; + vertical-align:middle; + background-color:#B0D1D3; + display: inline-block; + margin: 1px -1px; + line-height: 30px; + cursor: pointer; +} + +#our_table li.highlighted { + background-color:#2D7073; +} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/styles/tabs/discours.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/styles/tabs/discours.scss Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,9 @@ +.left{ + float: left; + margin-left: 50px; +} + +.right{ + float: right; + margin-right: 50px; +} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/styles/tabs/langues.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/styles/tabs/langues.scss Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,45 @@ +#chart_div { + width: 560px; + height: 540px; + background: #ddd; +} + +text { + pointer-events: none; +} + +.grandparent text { + font-weight: bold; +} + +rect { + /*fill: none;*/ + stroke: #fff; +} + +rect.parent, +.grandparent rect { + stroke-width: 2px; +} + +.grandparent rect { + fill: green; +} + +.grandparent:hover rect { + fill: lightgreen; +} + +.children rect.parent, +.grandparent rect { + cursor: pointer; +} + +.children rect.parent { + /*fill: #bbb;*/ + fill-opacity: .5; +} + +.children:hover rect.child { + /*fill: #bbb;*/ +} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/styles/tabs/thematiques.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/styles/tabs/thematiques.scss Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,47 @@ +input[type="text"] { + display: block; + margin: auto; + width: 250px; + font-family: sans-serif; + font-size: 18px; + appearance: none; + box-shadow: none; + border-radius: none; +} +input[type="text"]:focus { + outline: none; +} + +.search-box{ + display: block; + height: 100px; + width: 400px; + margin: 50px auto auto; +} + +.search-box input[type="text"] { + padding: 10px; + border: none; + border-bottom: solid 2px #c9c9c9; + transition: border 0.3s; + outline: 30px solid #efefef; +} +.search-box input[type="text"]:focus, +.search-box input[type="text"].focus { + border-bottom: solid 2px #969696; +} + +.tag-cloud{ + margin: 15px; + text-align: justify; +} + +.not-popular{ + font-size: 1em; +} +.popular{ + font-size: 1.3em; +} +.very-popular{ + font-size: 1.6em; +} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/application.hbs --- a/cms/app-client/app/templates/application.hbs Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/app/templates/application.hbs Mon Jan 18 10:01:39 2016 +0100 @@ -1,29 +1,12 @@ +
- {{outlet}} +
{{outlet "carto"}}
{{partial "player"}}
-
- {{partial "results"}} -
+ {{partial "results"}}
diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/components/visu-carto.hbs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/templates/components/visu-carto.hbs Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,1 @@ +
diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/components/visu-chrono.hbs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/templates/components/visu-chrono.hbs Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,74 @@ +
+ + + + + + +
diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/components/visu-langues.hbs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/templates/components/visu-langues.hbs Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,1 @@ +
diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/player.hbs --- a/cms/app-client/app/templates/player.hbs Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/app/templates/player.hbs Mon Jan 18 10:01:39 2016 +0100 @@ -1,4 +1,26 @@ -

This is the player

- PLAYER + +

+ Title: {{ currentItem.title }} +

+

+ Description: {{ currentItem.description }} +

+ +
+
+ Play +
+
+
+
+
+
+
+
diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/results.hbs --- a/cms/app-client/app/templates/results.hbs Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/app/templates/results.hbs Mon Jan 18 10:01:39 2016 +0100 @@ -1,4 +1,50 @@ -

This is the results

-
- RESULTS +
+

This is the results

+

+ Filtres: + {{#if location}} + {{location}} + {{/if}} + {{#if langue}} + {{langue}} + {{/if}} + {{#if discours}} + {{discours}} + {{/if}} + {{#if date}} + {{#each date as |item| }} + {{item}} + {{/each}} + {{/if}} + {{#if thematique}} + {{thematique}} + {{/if}} +

+
+ {{#each filteredSounds as |item| }} +
+ + {{ item.title }} - {{item.interviewer}} +
+ {{item.description}} +
+ +
+ {{/each}} + {{#if isShowingModal}} + {{#ember-wormhole to='info-modal'}} +
+
+

{{currentDetails.title}}

+

Description: {{currentDetails.description}}

+

Interviewer: {{currentDetails.interviewer}}

+

Type de Discours: {{currentDetails.type}}

+

Localisation: {{currentDetails.spatial}}

+

Langue: {{currentDetails.language}}

+

Date de Creation: {{currentDetails.created}}

+ +
+ {{/ember-wormhole}} + {{/if}} +
diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/tabs/carto.hbs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/templates/tabs/carto.hbs Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,1 @@ +{{visu-carto action="updateUrl" sounds=model}} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/tabs/chrono.hbs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/templates/tabs/chrono.hbs Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,2 @@ +

Selectionnez une date:

+{{visu-chrono action="updateUrl" query=model}} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/tabs/discours.hbs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/templates/tabs/discours.hbs Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,28 @@ +
+

Dialogue

+

Conversation

+

Entretien

+

Discussion

+

Bavardage

+

Argumentation

+

Négociation

+

Réunion

+

Discours

+

Lecture à haute voix

+

Récitation

+

Récit personnel

+

Séminaire

+
+
+

Colloque

+

Conte

+

Fable

+

Narration

+

Chanson

+

Enquête par téléphone

+

Questionnaire

+

Enquête

+

Enquêtes linguistiques

+

Enquêtes de terrain

+

Musique instrumentale

+
diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/tabs/langues.hbs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/templates/tabs/langues.hbs Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,1 @@ +{{visu-langues action="updateUrl" query=model}} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/tabs/thematiques.hbs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/app/templates/tabs/thematiques.hbs Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,60 @@ + + +
+ ipsum + dolor + sit + amet + consectetur + adipiscing + elit + Curabitur + non + ipsum + dolor + sit + amet + consectetur + adipiscing + elit + Curabitur + non + ipsum + dolor + sit + amet + consectetur + adipiscing + elit + Curabitur + non + ipsum + dolor + sit + amet + consectetur + adipiscing + elit + Curabitur + non + ipsum + dolor + sit + amet + consectetur + adipiscing + elit + Curabitur + non + ipsum + dolor + sit + amet + consectetur + adipiscing + elit + Curabitur + non +
diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/visus/visu-carto.hbs --- a/cms/app-client/app/templates/visus/visu-carto.hbs Fri Jan 15 17:16:49 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -

Recherche par cartographie

-

With a Logo !

-Logo diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/visus/visu-chrono.hbs --- a/cms/app-client/app/templates/visus/visu-chrono.hbs Fri Jan 15 17:16:49 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -

Recherche par chronologie

diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/visus/visu-discours.hbs --- a/cms/app-client/app/templates/visus/visu-discours.hbs Fri Jan 15 17:16:49 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -

Recherche par discours

diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/visus/visu-langues.hbs --- a/cms/app-client/app/templates/visus/visu-langues.hbs Fri Jan 15 17:16:49 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -

Recherche par langues

diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/app/templates/visus/visu-thematiques.hbs --- a/cms/app-client/app/templates/visus/visu-thematiques.hbs Fri Jan 15 17:16:49 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -

Recherche par thematiques

diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/bower.json --- a/cms/app-client/bower.json Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/bower.json Mon Jan 18 10:01:39 2016 +0100 @@ -12,6 +12,8 @@ "jquery": "^1.11.3", "loader.js": "ember-cli/loader.js#3.2.1", "qunit": "~1.18.0", - "bootstrap-sass": "~3.3.5" + "bootstrap-sass": "~3.3.5", + "ammap3": "~3.18.6", + "font-awesome": "~4.4.0" } } diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/config/environment.js --- a/cms/app-client/config/environment.js Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/config/environment.js Mon Jan 18 10:01:39 2016 +0100 @@ -5,8 +5,12 @@ rootElement: '#corpus-app', modulePrefix: 'app-client', environment: environment, - baseURL: '/corpus', - locationType: 'auto', + baseURL: '/corpus/', + // locationType: '', + // contentSecurityPolicy: { + // 'default-src': "'none'", + // 'style-src': "'self' 'http://localhost:4200'" + // }, APP: { baseStatic: '', // Here you can pass flags/options to your application instance diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/ember-cli-build.js --- a/cms/app-client/ember-cli-build.js Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/ember-cli-build.js Mon Jan 18 10:01:39 2016 +0100 @@ -26,6 +26,10 @@ // modules that you would like to import into your application // please specify an object with the list of modules as keys // along with the exports of each module as its value. + app.import('bower_components/ammap3/ammap/ammap.js'); + app.import('bower_components/ammap3/ammap/maps/js/worldLow.js'); + app.import('bower_components/ammap3/ammap/maps/js/continentsLow.js'); + app.import('bower_components/ammap3/ammap/maps/js/france2016Low.js'); return app.toTree(); }; diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/npm-debug.log --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/npm-debug.log Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,45 @@ +0 info it worked if it ends with ok +1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'start' ] +2 info using npm@3.5.2 +3 info using node@v5.2.0 +4 verbose run-script [ 'prestart', 'start', 'poststart' ] +5 info lifecycle app-client@0.0.0~prestart: app-client@0.0.0 +6 silly lifecycle app-client@0.0.0~prestart: no script for prestart, continuing +7 info lifecycle app-client@0.0.0~start: app-client@0.0.0 +8 verbose lifecycle app-client@0.0.0~start: unsafe-perm in lifecycle true +9 verbose lifecycle app-client@0.0.0~start: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/Users/nowmad/workspace/IRI/corpus_parole/cms/app-client/node_modules/.bin:/Library/PostgreSQL/9.5/bin/:/usr/local/apache-ant/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/nowmad/Library/Android/sdk/tools:/Users/nowmad/Library/Android/sdk/platform-tools +10 verbose lifecycle app-client@0.0.0~start: CWD: /Users/nowmad/workspace/IRI/corpus_parole/cms/app-client +11 silly lifecycle app-client@0.0.0~start: Args: [ '-c', 'ember serve --environment=development' ] +12 silly lifecycle app-client@0.0.0~start: Returned: code: 1 signal: null +13 info lifecycle app-client@0.0.0~start: Failed to exec start script +14 verbose stack Error: app-client@0.0.0 start: `ember serve --environment=development` +14 verbose stack Exit status 1 +14 verbose stack at EventEmitter. (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:232:16) +14 verbose stack at emitTwo (events.js:88:13) +14 verbose stack at EventEmitter.emit (events.js:173:7) +14 verbose stack at ChildProcess. (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:24:14) +14 verbose stack at emitTwo (events.js:88:13) +14 verbose stack at ChildProcess.emit (events.js:173:7) +14 verbose stack at maybeClose (internal/child_process.js:819:16) +14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:212:5) +15 verbose pkgid app-client@0.0.0 +16 verbose cwd /Users/nowmad/workspace/IRI/corpus_parole/cms/app-client +17 error Darwin 15.2.0 +18 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" +19 error node v5.2.0 +20 error npm v3.5.2 +21 error code ELIFECYCLE +22 error app-client@0.0.0 start: `ember serve --environment=development` +22 error Exit status 1 +23 error Failed at the app-client@0.0.0 start script 'ember serve --environment=development'. +23 error Make sure you have the latest version of node.js and npm installed. +23 error If you do, this is most likely a problem with the app-client package, +23 error not with npm itself. +23 error Tell the author that this fails on your system: +23 error ember serve --environment=development +23 error You can get information on how to open an issue for this project with: +23 error npm bugs app-client +23 error Or if that isn't available, you can get their info via: +23 error npm owner ls app-client +23 error There is likely additional logging output above. +24 verbose exit [ 1, true ] diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/package.json --- a/cms/app-client/package.json Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/package.json Mon Jan 18 10:01:39 2016 +0100 @@ -24,7 +24,9 @@ "ember-cli-app-version": "0.5.0", "ember-cli-babel": "^5.1.3", "ember-cli-content-security-policy": "0.4.0", + "ember-cli-d3": "1.1.2", "ember-cli-dependency-checker": "^1.0.1", + "ember-cli-font-awesome": "1.3.0", "ember-cli-htmlbars": "0.7.9", "ember-cli-htmlbars-inline-precompile": "^0.2.0", "ember-cli-ic-ajax": "0.2.1", @@ -36,6 +38,7 @@ "ember-cli-uglify": "^1.2.0", "ember-data": "1.13.8", "ember-disable-proxy-controllers": "^1.0.0", - "ember-export-application-global": "^1.0.3" + "ember-export-application-global": "^1.0.3", + "ember-wormhole": "0.3.4" } } diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/public/assets/images/play-button.png Binary file cms/app-client/public/assets/images/play-button.png has changed diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/public/assets/images/playing.gif Binary file cms/app-client/public/assets/images/playing.gif has changed diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/public/langues.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/public/langues.json Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,195 @@ +{ + "name": "Global", + "children": [ + { + "id": "id de langue (code Lexvo de la langues)", + "name": "Français", + "value": 859, + "color": "lightblue" + }, + { + "name": "Alsacien", + "value": 851 + }, + { + "name": "Breton", + "value": 403 + }, + { + "name": "Occitan", + "value": 344 + }, + { + "name": "Judéo-espagnol", + "value": 77 + }, + { + "name": "Undetermined", + "value": 45 + }, + { + "name": "Langues régionales", + "value": 175, + "children": [ + { + "name": "Langues d'oïl", + "value": 75 + }, + { + "name": "Francoprovençal", + "value": 60 + }, + { + "name": "Corse", + "value": 40 + } + ] + }, + { + "name": "Langues non territoriales", + "value": 48, + "children": [ + { + "name": "Langue des signes française (LSF)", + "value": 40 + }, + { + "name": "Berbère", + "value": 8 + } + ] + }, + { + "name": "Les Creoles", + "value": 47, + "children": [ + { + "name": "Creole de la Réunion", + "value": 32 + }, + { + "name": "Creole de la Guadeloupe", + "value": 15 + } + ] + }, + { + "name": "Guyane", + "value": 59, + "children": [ + { + "name": "Ndyuka-Trio Pidgin (njt)", + "value": 31 + }, + { + "name": "Palikúr (plu)", + "value": 6 + }, + { + "name": "Guianese Creole French (gcr)", + "value": 4 + }, + { + "name": "Eastern Maroon Creole (djk)", + "value": 16 + }, + { + "name": "Sranan Tongo (srn)", + "value": 2 + } + ] + }, + { + "name": "Mayotte", + "value": 20, + "children": [ + { + "name": "Maore Comorian (swb)", + "value": 2 + }, + { + "name": "Mauritian Sign Language (lsy)", + "value": 18 + } + ] + }, + { + "name": "Polynésie française", + "value": 13, + "children": [ + { + "name": "West Uvean (uve)", + "value": 13 + } + ] + }, + { + "name": "Wallis et Futuna", + "value": 43, + "children": [ + { + "name": "LanEast Futuna (fud)", + "value": 23 + }, + { + "name": "Wallisian (wls)", + "value": 20 + } + ] + }, + { + "name": "Nouvelle-Calédonie", + "value": 68, + "children": [ + { + "name": "Wallisian (wls)", + "value": 15 + }, + { + "name": "Xârâcùù (ane)", + "value": 12 + }, + { + "name": "Cemuhî (cam)", + "value": 9 + }, + { + "name": "Xaragure (axx)", + "value": 9 + }, + { + "name": "Iaai (iai)", + "value": 8 + }, + { + "name": "Nêlêmwa-Nixumwak (nee)", + "value": 4 + }, + { + "name": "Dehu (dhv)", + "value": 2 + }, + { + "name": "Nengone (nen)", + "value": 2 + }, + { + "name": "Ajië (aji)", + "value": 1 + }, + { + "name": "Numee (kdk)", + "value": 1 + }, + { + "name": "Yuaga (nua)", + "value": 1 + }, + { + "name": "Bwatoo (bwa)", + "value": 4 + } + ] + } + ] +} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/public/styles.css --- a/cms/app-client/public/styles.css Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/app-client/public/styles.css Mon Jan 18 10:01:39 2016 +0100 @@ -3,9 +3,9 @@ } .header { /*background-color: green;*/ - width: 940px; + width: 1108px; height: 90px; - display: block; + display: table; margin-left: auto; margin-right: auto; margin-bottom: 1px; @@ -37,8 +37,8 @@ position:relative; left:50%; padding: 0; - display: inline-block; - width: 100%; + display: table; + width: auto; float: none; margin: 0 auto 0 auto; } @@ -64,3 +64,8 @@ font-weight: 900; background-color: bisque; } + +.sub-menu{ + margin-right: 10px; + cursor: pointer; +} diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/tests/integration/components/visu-carto-test.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/tests/integration/components/visu-carto-test.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,26 @@ +import { moduleForComponent, test } from 'ember-qunit'; +import hbs from 'htmlbars-inline-precompile'; + +moduleForComponent('visu-carto', 'Integration | Component | visu carto', { + integration: true +}); + +test('it renders', function(assert) { + assert.expect(2); + + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.on('myAction', function(val) { ... }); + + this.render(hbs`{{visu-carto}}`); + + assert.equal(this.$().text().trim(), ''); + + // Template block usage: + this.render(hbs` + {{#visu-carto}} + template block text + {{/visu-carto}} + `); + + assert.equal(this.$().text().trim(), 'template block text'); +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/tests/integration/components/visu-chrono-test.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/tests/integration/components/visu-chrono-test.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,26 @@ +import { moduleForComponent, test } from 'ember-qunit'; +import hbs from 'htmlbars-inline-precompile'; + +moduleForComponent('visu-chrono', 'Integration | Component | visu chrono', { + integration: true +}); + +test('it renders', function(assert) { + assert.expect(2); + + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.on('myAction', function(val) { ... }); + + this.render(hbs`{{visu-chrono}}`); + + assert.equal(this.$().text().trim(), ''); + + // Template block usage: + this.render(hbs` + {{#visu-chrono}} + template block text + {{/visu-chrono}} + `); + + assert.equal(this.$().text().trim(), 'template block text'); +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/tests/integration/components/visu-langues-test.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/tests/integration/components/visu-langues-test.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,26 @@ +import { moduleForComponent, test } from 'ember-qunit'; +import hbs from 'htmlbars-inline-precompile'; + +moduleForComponent('visu-langues', 'Integration | Component | visu langues', { + integration: true +}); + +test('it renders', function(assert) { + assert.expect(2); + + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.on('myAction', function(val) { ... }); + + this.render(hbs`{{visu-langues}}`); + + assert.equal(this.$().text().trim(), ''); + + // Template block usage: + this.render(hbs` + {{#visu-langues}} + template block text + {{/visu-langues}} + `); + + assert.equal(this.$().text().trim(), 'template block text'); +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/tests/unit/adapters/application-test.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/tests/unit/adapters/application-test.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('adapter:application', 'Unit | Adapter | application', { + // Specify the other units that are required for this test. + // needs: ['serializer:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + var adapter = this.subject(); + assert.ok(adapter); +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/tests/unit/controllers/results-test.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/tests/unit/controllers/results-test.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('controller:results', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + var controller = this.subject(); + assert.ok(controller); +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/tests/unit/models/sound-test.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/tests/unit/models/sound-test.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,12 @@ +import { moduleForModel, test } from 'ember-qunit'; + +moduleForModel('sound', 'Unit | Model | sound', { + // Specify the other units that are required for this test. + needs: [] +}); + +test('it exists', function(assert) { + var model = this.subject(); + // var store = this.store(); + assert.ok(!!model); +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/tests/unit/routes/application-test.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/tests/unit/routes/application-test.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:application', 'Unit | Route | application', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + var route = this.subject(); + assert.ok(route); +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/tests/unit/routes/results-test.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/tests/unit/routes/results-test.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:results', 'Unit | Route | results', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + var route = this.subject(); + assert.ok(route); +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/app-client/tests/unit/routes/sound-test.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/app-client/tests/unit/routes/sound-test.js Mon Jan 18 10:01:39 2016 +0100 @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:sound', 'Unit | Route | sound', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + var route = this.subject(); + assert.ok(route); +}); diff -r 3e93c61f6be0 -r e95ca73cec54 cms/corpus_module/corpus.module --- a/cms/corpus_module/corpus.module Fri Jan 15 17:16:49 2016 +0100 +++ b/cms/corpus_module/corpus.module Mon Jan 18 10:01:39 2016 +0100 @@ -38,12 +38,13 @@ '#tag' => 'meta', // The #tag is the html tag - '#attributes' => array( // Set up an array of attributes inside the tag 'name' => 'app-client/config/environment', - 'content' => '%7B%22rootElement%22%3A%22%23corpus-app%22%2C%22modulePrefix%22%3A%22app-client%22%2C%22environment%22%3A%22production%22%2C%22baseURL%22%3A%22/corpus%22%2C%22locationType%22%3A%22auto%22%2C%22APP%22%3A%7B%22baseStatic%22%3A%22/'.drupal_get_path('module', 'corpus').'/app-client/%22%2C%22name%22%3A%22app-client%22%2C%22version%22%3A%220.0.0+%22%7D%2C%22contentSecurityPolicyHeader%22%3A%22Content-Security-Policy-Report-Only%22%2C%22contentSecurityPolicy%22%3A%7B%22default-src%22%3A%22%27none%27%22%2C%22script-src%22%3A%22%27self%27%22%2C%22font-src%22%3A%22%27self%27%22%2C%22connect-src%22%3A%22%27self%27%22%2C%22img-src%22%3A%22%27self%27%22%2C%22style-src%22%3A%22%27self%27%22%2C%22media-src%22%3A%22%27self%27%22%7D%2C%22exportApplicationGlobal%22%3Afalse%7D' + 'content' => '%7B%22rootElement%22%3A%22%23corpus-app%22%2C%22modulePrefix%22%3A%22app-client%22%2C%22environment%22%3A%22production%22%2C%22baseURL%22%3A%22/corpus%22%2C%22APP%22%3A%7B%22baseStatic%22%3A%22%22%2C%22name%22%3A%22app-client%22%2C%22version%22%3A%220.0.0+%22%7D%2C%22contentSecurityPolicyHeader%22%3A%22Content-Security-Policy-Report-Only%22%2C%22contentSecurityPolicy%22%3A%7B%22default-src%22%3A%22%27none%27%22%2C%22script-src%22%3A%22%27self%27%20%27unsafe-eval%27%22%2C%22font-src%22%3A%22%27self%27%22%2C%22connect-src%22%3A%22%27self%27%22%2C%22img-src%22%3A%22%27self%27%22%2C%22style-src%22%3A%22%27self%27%22%2C%22media-src%22%3A%22%27self%27%22%7D%2C%22exportApplicationGlobal%22%3Atrue%7D' ), ); drupal_add_html_head($element, 'ember_init'); + drupal_add_js("https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1.1','packages':['treemap']}]}"); drupal_add_js("{$path}/assets/vendor.js"); drupal_add_css("{$path}/assets/vendor.css"); drupal_add_css("{$path}/assets/{$app}.css"); @@ -51,5 +52,5 @@ drupal_add_js("{$path}/assets/{$app}.js", array('type' => 'file', 'scope' => 'footer')); // drupal_add_js("{$path}/dist/assets/{$app}.js"); - return "
"; + return "
"; }