src/egonomy/static/egonomy/js/main.js
author cavaliet
Tue, 25 Feb 2014 18:46:27 +0100
changeset 260 ebcc7a401ae9
parent 258 bfa951bac3e3
permissions -rwxr-xr-x
enhance dbpedia overlay and v0.8.5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
121
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
     1
$(function(){
191
d7b30914607d enhance collection and add slideshow with images and fragments.
cavaliet
parents: 184
diff changeset
     2
121
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
     3
//masonry
149
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
     4
	var masonry465 = $('.masonry-465');
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
     5
	masonry465.masonry({
121
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
     6
	  columnWidth: 465,
149
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
     7
	  itemSelector: '.item-masonry',
121
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
     8
	  gutter : 20
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
     9
	});
149
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
    10
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
    11
	var masonry225 = $('.masonry-225');
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
    12
	masonry225.masonry({
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
    13
	  columnWidth: 225,
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
    14
	  itemSelector: '.item-masonry',
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
    15
	  gutter : 16
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
    16
	});
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
    17
121
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    18
//popin
140
bfe995fae627 update js and new view image template
cavaliet
parents: 121
diff changeset
    19
	$('.open-popin').bind('click', function(e){
121
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    20
		e.preventDefault();
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    21
		var target = $(this).attr('href');
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    22
		$('.popin-wrap').fadeIn(function(){
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    23
			$(target).show();
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    24
		});
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    25
	});
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    26
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    27
	$('.close-popin, .popin-wrap').bind('click', function(e){
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    28
		e.preventDefault();
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    29
		e.stopPropagation();
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    30
		$('.popin-wrap').fadeOut(function(){
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    31
			$('.popin').hide();
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    32
		});
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    33
	});
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    34
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    35
	$('.popin').bind('click', function(e){
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    36
		e.stopPropagation();
447ffbbddc7f first step of redesign before adding collection
cavaliet
parents:
diff changeset
    37
	});
257
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    38
	
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    39
	/* DBPEDIA OVERLAY */
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    40
    
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    41
    var sparqlTpl = 'select distinct * where { '
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    42
		            + 'OPTIONAL { <<%= uri %>> rdfs:label ?l FILTER( langMatches( lang(?l), "<%- lang %>" ) ) }. '
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    43
		            + 'OPTIONAL { <<%= uri %>> dbpedia-owl:thumbnail ?t }. '
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    44
		            + 'OPTIONAL { <<%= uri %>> dbpedia-owl:abstract ?a FILTER( langMatches( lang(?a), "<%- lang %>" ) ) }. '
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    45
		            + 'OPTIONAL { <<%= uri %>> dbpedia-owl:wikiPageRedirects ?r }. '
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    46
		            + 'OPTIONAL { ?r rdfs:label ?lr FILTER( langMatches( lang(?lr), "<%- lang %>" ) ) }. '
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    47
		            + 'OPTIONAL { ?r dbpedia-owl:thumbnail ?tr }. '
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    48
		            + 'OPTIONAL { ?r dbpedia-owl:abstract ?ar FILTER( langMatches( lang(?ar), "<%- lang %>" ) ) }. '
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    49
		            + '}',
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    50
        $overlay = $(".dbpedia-overlay"),
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    51
        hovering = null,
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    52
        anchor = null,
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    53
        $win = $(window),
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    54
        dbpediaCache = {},
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    55
        $overlayImg = $overlay.find("img"),
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    56
        $h2 = $overlay.find("h2"),
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    57
        $abstract = $overlay.find(".dbpedia-abstract"),
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    58
        $source = $overlay.find(".dbpedia-source a");
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    59
    
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    60
    function setDbpediaBoxAnchor(a) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    61
        anchor = a || null;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    62
        if (anchor) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    63
            recentreDbpediaBox();
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    64
        }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    65
    }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    66
    
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    67
    function recentreDbpediaBox() {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    68
        if (!anchor) { return; }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    69
        var ovw = $overlay.outerWidth(),
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    70
            ovh = $overlay.outerHeight(),
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    71
            refbox;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    72
        switch (anchor.type) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    73
            case "dom":
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    74
                var $refdiv = anchor.selector,
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    75
                    refoff = $refdiv.offset(),
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    76
                    refw = $refdiv.outerWidth(),
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    77
                    refh = $refdiv.outerHeight(),
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    78
                    refx = refoff.left,
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    79
                    refy = refoff.top;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    80
                refbox = { left: refx, right: refx + refw, top: refy, bottom: refy + refh };
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    81
            break;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    82
            case "box":
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    83
                refbox = anchor.box;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    84
            break;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    85
            case "callback":
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    86
                refbox = anchor.callback();
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    87
            break;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    88
        }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    89
        if (!refbox) { return; }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    90
        if (!refbox.right) { refbox.right = refbox.left; }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    91
        if (!refbox.bottom) { refbox.bottom = refbox.top; }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    92
        refbox.hcentre = (refbox.left + refbox.right) / 2;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    93
        switch (anchor.positioning) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    94
            case "side":
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    95
                var showLeft = (refbox.right + ovw) > $win.width();
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    96
                css = { left: showLeft ? (refbox.left - ovw) : (refbox.right), top: refbox.top };
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    97
            break;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    98
            case "bottom":
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
    99
                css = { left: refbox.hcentre - ovw / 2, top: refbox.bottom };
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   100
            break;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   101
            case "vertical":
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   102
            default:
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   103
                var showAbove = (refbox.bottom + ovh) > ($win.height() + $win.scrollTop());
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   104
                css = { left: refbox.hcentre - ovw / 2, top: showAbove ? refbox.top - ovh : refbox.bottom };
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   105
        }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   106
        if (css) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   107
            css.left = Math.max(5, Math.min($win.width() - ovw - 5, css.left));
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   108
            $overlay.css(css);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   109
        }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   110
    }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   111
    
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   112
	function showDbpediaBox(dbpediaUri) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   113
        if (!dbpediaUri) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   114
            return;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   115
        }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   116
        hovering = dbpediaUri;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   117
        $overlay.hide();
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   118
        $overlayImg.attr("src","");
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   119
        var uriData = dbpediaCache[dbpediaUri];
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   120
        if (!uriData) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   121
            getUriData(dbpediaUri);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   122
            return;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   123
        }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   124
        $overlay.show().attr("data-dbpedia-uri", dbpediaUri);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   125
        if (uriData.t || uriData.tr) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   126
            $overlayImg.attr("src",uriData.t || uriData.tr).show();
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   127
        } else {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   128
            $overlayImg.hide();
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   129
        }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   130
        var label = uriData.l || uriData.lr || "",
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   131
            wkUrl = "http://fr.wikipedia.org/";
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   132
        if (label) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   133
            wkUrl += "wiki/" + encodeURI(label.replace(/ /g,'_'));
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   134
        } 
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   135
        $h2.text((uriData.l && uriData.lr) ? (uriData.l + " → " + uriData.lr) : label);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   136
        $abstract.text((uriData.a || uriData.ar || "").replace(/^(.{240,260})\s.+$/,'$1…').substr(0,261));
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   137
        $source.attr("href", wkUrl);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   138
        recentreDbpediaBox();
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   139
    }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   140
	
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   141
	function getUriData(dbpediaUri) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   142
        if (typeof dbpediaCache[dbpediaUri] !== "undefined") {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   143
            return;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   144
        }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   145
        var sparqlEndpoint = dbpediaUri.replace(/\/resource\/.*$/,'/sparql'),
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   146
            query = sparqlTpl.replace(new RegExp("<%= uri %>", "g"), decodeURI(dbpediaUri)).replace(new RegExp("<%- lang %>", "g"), "fr");
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   147
        dbpediaCache[dbpediaUri] = false;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   148
        $.getJSON(sparqlEndpoint, {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   149
            query: query,
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   150
            format: "application/sparql-results+json"
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   151
        }, function(data) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   152
            if (!data.results || !data.results.bindings || !data.results.bindings.length) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   153
                return;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   154
            }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   155
            var res = data.results.bindings[0], cacheData = {};
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   156
            for (var k in res) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   157
                if (res.hasOwnProperty(k)) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   158
                    cacheData[k] = res[k].value;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   159
                }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   160
            }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   161
            dbpediaCache[dbpediaUri] = cacheData;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   162
            if (hovering === dbpediaUri) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   163
                showDbpediaBox(dbpediaUri);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   164
            }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   165
        });
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   166
    }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   167
	
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   168
	function hideDbpediaBox() {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   169
        hovering = null;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   170
        setTimeout(function() {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   171
            if (!hovering) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   172
                $overlay.hide();
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   173
                setDbpediaBoxAnchor();
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   174
            }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   175
        }, 0);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   176
    }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   177
    
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   178
    function bindDbpediaBox(selector, defaultUri) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   179
        var $sel = $(selector);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   180
        $sel.off("mouseenter mouseleave");
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   181
        $sel.mouseenter(function(e) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   182
            var $this = $(this);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   183
            setDbpediaBoxAnchor({ selector: $this, type: "dom", positioning: "vertical" });
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   184
            var dbpediaUri = $this.attr("data-dbpedia-uri") || defaultUri;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   185
            if (!dbpediaUri || dbpediaUri === "None") {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   186
                return;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   187
            }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   188
            showDbpediaBox(dbpediaUri);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   189
        });
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   190
        $sel.mouseleave(hideDbpediaBox);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   191
    }
260
ebcc7a401ae9 enhance dbpedia overlay and v0.8.5
cavaliet
parents: 258
diff changeset
   192
    bindDbpediaBox(".for-overlay");
257
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   193
        
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   194
    $overlay.hover(function() {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   195
        var $this = $(this),
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   196
            dbpediaUri = $this.attr("data-dbpedia-uri");
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   197
        if (dbpediaUri) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   198
            hovering = dbpediaUri;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   199
        }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   200
    }, hideDbpediaBox);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   201
    
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   202
    $overlay.find(".dbpedia-close").click(function() {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   203
        hideDbpediaBox();
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   204
        return false;
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   205
    });
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   206
    
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   207
    window.dbpediaBox = {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   208
        bind: bindDbpediaBox,
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   209
        hide: hideDbpediaBox,
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   210
        show: showDbpediaBox,
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   211
        setAnchor: setDbpediaBoxAnchor,
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   212
        recentre: recentreDbpediaBox
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   213
    };
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   214
    
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   215
    /* END DBPEDIA OVERLAY MANAGEMENT */
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   216
	
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   217
	// TAG IT
149
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
   218
	if($('.tag-it').length){
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
   219
		var keywordsTagIt = $('.tag-it').tagit({
256
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   220
			allowSpaces : true,
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   221
			tagSource: function(search, showChoices){
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   222
                $.ajax({
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   223
                	url : "http://fr.wikipedia.org/w/api.php",
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   224
                    dataType: "jsonp",
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   225
                    data : {
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   226
                        action: "opensearch",
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   227
                        search: search.term,
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   228
                        format: "json",
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   229
                        limit: 10
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   230
                    },
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   231
                    success:function(data){
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   232
                    	var datas = data[1];
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   233
                    	var n = datas.length;
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   234
                    	var choices = [];
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   235
                    	for(var i=0;i<n;i++){
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   236
                    		var l = data[1][i];
257
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   237
                    		var l_uri = l.replace(new RegExp(" ","g"),"_");
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   238
                    		choices.push({ label:l, value:( 'http://fr.wikipedia.org/wiki/' + l_uri), dbpedia_uri: ('http://fr.dbpedia.org/resource/' + l_uri) });
256
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   239
                    	}
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   240
                        showChoices(choices);
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   241
                    }
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   242
                });
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   243
            },
257
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   244
			autocomplete: {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   245
	            focus: function(e, ui) {
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   246
                    showDbpediaBox(ui.item.dbpedia_uri);
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   247
                    setDbpediaBoxAnchor({type: "dom", selector: $(e.target).autocomplete("widget"), positioning: "side"});
258
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   248
	            },
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   249
	            close: function(e, ui){
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   250
	            	hideDbpediaBox();
257
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   251
	            }
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   252
	        },
256
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   253
            beforeTagAdded: function(event, ui) {
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   254
                if($(ui.tag.children()[0]).hasClass("tagit-label")){
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   255
                	var tagit_label = $(ui.tag.children()[0]).html();
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   256
                	if(tagit_label.substr(0, 29) == 'http://fr.wikipedia.org/wiki/'){
257
47dd76d18891 wikipedia overlay with sparql request.
cavaliet
parents: 256
diff changeset
   257
                		var label = tagit_label.substr(29).replace(new RegExp("_","g")," ");
256
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   258
                		$(ui.tag.children()[0]).html(label + ' <a href="' + tagit_label + '" target="_blank"><span class="logo_wikipedia f-right">&nbsp;</span></a>');
260
ebcc7a401ae9 enhance dbpedia overlay and v0.8.5
cavaliet
parents: 258
diff changeset
   259
                		ui.tag.attr("data-dbpedia-uri", "http://fr.dbpedia.org/resource/" + tagit_label.substr(29));
ebcc7a401ae9 enhance dbpedia overlay and v0.8.5
cavaliet
parents: 258
diff changeset
   260
                		bindDbpediaBox(ui.tag);
256
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   261
                	}
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   262
                }
258
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   263
                hideDbpediaBox();
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   264
            },
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   265
            beforeTagRemoved: function(event, ui) {
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   266
                // test if tag label is wikipedia url
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   267
                if($(ui.tag.children()[0]).children().length>0){
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   268
                	var $a_tag = $($(ui.tag.children()[0]).children()[0]);
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   269
                	if($a_tag.attr("href").substr(0, 29) == 'http://fr.wikipedia.org/wiki/'){
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   270
                		// Before removing, turn label into url
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   271
                		$(ui.tag.children()[0]).html($a_tag.attr("href").replace(new RegExp(" ","g"),"_"));
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   272
                	}
bfa951bac3e3 debug remove tags and 0.8.4
cavaliet
parents: 257
diff changeset
   273
                }
256
f4b443fcddc7 wikipedia fr for fragment tags
cavaliet
parents: 240
diff changeset
   274
            }
149
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
   275
		});
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
   276
		$('.list-key-add a').bind('click', function(e){
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
   277
			e.preventDefault();
226
d602d53379e7 finally senseetive api
cavaliet
parents: 211
diff changeset
   278
			keywordsTagIt.tagit("createTag", $(this).attr('data-tag'));
149
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
   279
		});
af59627418e7 view fragment with new style
cavaliet
parents: 140
diff changeset
   280
	}
168
c90576d18319 argumentaire/list collection view
cavaliet
parents: 149
diff changeset
   281
191
d7b30914607d enhance collection and add slideshow with images and fragments.
cavaliet
parents: 184
diff changeset
   282
140
bfe995fae627 update js and new view image template
cavaliet
parents: 121
diff changeset
   283
	
168
c90576d18319 argumentaire/list collection view
cavaliet
parents: 149
diff changeset
   284
	// add item to collection behaviour
c90576d18319 argumentaire/list collection view
cavaliet
parents: 149
diff changeset
   285
	$('.additemtocollection').bind('click', function(e){
c90576d18319 argumentaire/list collection view
cavaliet
parents: 149
diff changeset
   286
		// When an item meant to be added to a collection is clicked,
c90576d18319 argumentaire/list collection view
cavaliet
parents: 149
diff changeset
   287
		// we fill the form in the add-to-collection div
c90576d18319 argumentaire/list collection view
cavaliet
parents: 149
diff changeset
   288
		$('#add-to-collection .item-type').val($(this).attr('data-type'));
c90576d18319 argumentaire/list collection view
cavaliet
parents: 149
diff changeset
   289
		$('#add-to-collection .item-id').val($(this).attr('data-id'));
c90576d18319 argumentaire/list collection view
cavaliet
parents: 149
diff changeset
   290
	});
234
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   291
	// modify item in collection behaviour
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   292
	$('.modifyitemincollection').bind('click', function(e){
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   293
		$('#modify-item .item-pk').val($(this).attr('data-pk'));
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   294
		$('#modify-item .item-description').val($(this).attr('data-description'));
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   295
	});
168
c90576d18319 argumentaire/list collection view
cavaliet
parents: 149
diff changeset
   296
	
c90576d18319 argumentaire/list collection view
cavaliet
parents: 149
diff changeset
   297
	
210
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   298
	$(".ajax-form").submit(function(e) { // On submit Ajax Form
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   299
	    var formel = $(this);
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   300
	    $.ajax({
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   301
	        url: formel.attr("action"),
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   302
	        type: formel.attr("method"),
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   303
	        data: formel.serialize(),
211
35aca8206b40 collection parameters with title, delete collection, ajax add item
cavaliet
parents: 210
diff changeset
   304
	        success: function(text) {
234
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   305
	        	// different behaviour if we add or modify an item
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   306
	        	if(text=="modifyok"){
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   307
	        		// modify
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   308
	        		$('.popin-wrap').fadeIn(function(){
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   309
	                    $(".modifyitem-success").show();
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   310
	                });
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   311
	        		// update text. $("item{{ item.pk }}") is the <div> with the text as <p> and <a data-description>
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   312
	        		var item_pk = $('#modify-item .item-pk').val();
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   313
	        		var item_desc = $('#modify-item .item-description').val();
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   314
	        		$("#item" + item_pk).find("a").attr("data-description", item_desc);
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   315
	        		$("#item" + item_pk).find("p").html(item_desc.replace(/\n/g, '<br />'));
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   316
	        	}
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   317
	        	else{
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   318
	        		// add
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   319
	                $('.popin-wrap').fadeIn(function(){
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   320
	                    $(".additem-success").show();
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   321
	                });
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   322
	                $(".additem-success .collection-url").attr("href", text);
886cbc53b854 modify item's comment from collection list
cavaliet
parents: 226
diff changeset
   323
                }
210
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   324
	        },
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   325
            error: function() {
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   326
                $('.popin-wrap').fadeIn(function(){
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   327
                    $(".additem-error").show();
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   328
                });
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   329
            }
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   330
	    });
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   331
	    formel.parents(".popin").hide();
dd0e7cded39d Ajax form handling
veltr
parents: 191
diff changeset
   332
	    return false;
240
9aa2f966465b collection's geographical view
cavaliet
parents: 234
diff changeset
   333
	});
168
c90576d18319 argumentaire/list collection view
cavaliet
parents: 149
diff changeset
   334
c90576d18319 argumentaire/list collection view
cavaliet
parents: 149
diff changeset
   335
});//ready