client/js/space-editor.js
author rougeronj
Wed, 03 Jun 2015 17:27:46 +0200
changeset 471 e0c7be5dc02c
parent 293 fba23fde14ba
permissions -rw-r--r--
Add a router to handle fragment identifier Set up a listener of the router in the scene to update it Start Backbone.history (eventlistener of the router) when all the project is loaded Include router.js to all the test file
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
     1
$(function() {
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
     2
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
     3
    var originalData = {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
     4
        show_editor: false,
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
     5
        container: "preview"
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
     6
    };
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
     7
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
     8
    var userData = {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
     9
        bins: [
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    10
            {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    11
                type: "ResourceList",
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    12
                title: "Resource List",
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    13
                list: [
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    14
                    {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    15
                        title: "IRI",
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    16
                        url: "http://www.iri.centrepompidou.fr/",
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    17
                        image: "http://www.iri.centrepompidou.fr/wp-content/themes/IRI-Theme/images/logo-iri-petit_fr_fr.png",
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    18
                        description: "Institut de Recherche et d'Innovation"
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    19
                    }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    20
                ]
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    21
            }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    22
        ],
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    23
        search: [
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    24
            {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    25
                type: "Wikipedia",
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    26
                lang: "en"
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    27
            }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    28
        ]
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    29
    };
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    30
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    31
    function getNormalizedHtml(jqsel) {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    32
        return jqsel.html().replace(/[\r\n]/gm,' ').replace(/\s{2,}/g,' ').replace(/(^\s+|\s+$)/g,'');
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    33
    }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    34
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    35
    var searchEngineTemplate = getNormalizedHtml($(".search-engine-list"));
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    36
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    37
    $(".search-engine-list").empty().sortable();
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    38
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    39
    var resourceTemplate = getNormalizedHtml($(".resource-list"));
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    40
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    41
    $(".resource-list").empty();
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    42
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    43
    var binTemplate = getNormalizedHtml($(".bin-list"));
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    44
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    45
    $(".bin-list").empty().sortable();
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    46
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    47
    function addSearchEngine(data, editMode) {
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    48
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    49
        $(".item").removeClass("item-editing");
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    50
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    51
        var element = $(searchEngineTemplate),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    52
            allfields = element.find(".edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    53
            typefield = element.find(".search-engine-type .edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    54
            typedisplay = element.find(".search-engine-type .display-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    55
            langsection = element.find(".search-engine-language"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    56
            langfield = element.find(".search-engine-language .edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    57
            langdisplay = element.find(".search-engine-language .display-value");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    58
        element.data("userdata",data);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    59
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    60
        if (editMode) {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    61
            element.addClass("item-editing");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    62
        }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    63
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    64
        var onChange = function() {
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    65
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    66
            data.type = typefield.val();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    67
            typedisplay.text(typefield.find("[value=" + data.type + "]").text());
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    68
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    69
            if (data.type === "Wikipedia") {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    70
                data.lang = langfield.val() || "en";
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    71
                langdisplay.text(langfield.find("[value=" + data.lang + "]").text());
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    72
                langsection.show();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    73
            } else {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    74
                delete data.lang;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    75
                langsection.hide();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    76
            }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    77
        };
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    78
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    79
        typefield.val(data.type);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    80
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    81
        if (data.type === "Wikipedia") {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    82
            langfield.val(data.lang || "en");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    83
        }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    84
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    85
        allfields.on("keyup paste change", onChange);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    86
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    87
        onChange();
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    88
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    89
        element.click(function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    90
            $(".item").removeClass("item-editing");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    91
            element.addClass("item-editing");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    92
            return false;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    93
        });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    94
        element.find(".remove-item").click(function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    95
            element.remove();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    96
            return false;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    97
        });
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
    98
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    99
        $(".search-engine-list").append(element);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   100
    }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   101
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   102
    function addBin(data, editMode) {
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   103
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   104
        $(".item").removeClass("item-editing");
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   105
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   106
        var element = $(binTemplate),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   107
            allfields = element.find(".edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   108
            typefield = element.find(".bin-type .edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   109
            typedisplay = element.find(".bin-type .display-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   110
            langsection = element.find(".bin-language"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   111
            langfield = langsection.find(".edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   112
            langdisplay = langsection.find(".display-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   113
            ldtsection = element.find(".ldt-options"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   114
            ldttypefield = element.find(".bin-ldt-type .edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   115
            ldttypedisplay = element.find(".bin-ldt-type .display-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   116
            ldtpffield = element.find(".bin-ldt-platform .edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   117
            ldtpfdisplay = element.find(".bin-ldt-platform .display-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   118
            ldtprojsection = element.find(".bin-ldt-project"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   119
            ldtprojfield = ldtprojsection.find(".edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   120
            ldtprojdisplay = ldtprojsection.find(".display-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   121
            kwsection = element.find(".bin-keyword"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   122
            kwfield = kwsection.find(".edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   123
            kwdisplay = kwsection.find(".display-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   124
            ressection = element.find(".bin-resources"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   125
            titlefield = element.find(".bin-title .edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   126
            titledisplay = element.find(".bin-title .display-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   127
            reslist = element.find(".resource-list");
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   128
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   129
        reslist.sortable({
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   130
            stop: updateListData
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   131
        });
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   132
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   133
        element.data("userdata",data);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   134
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   135
        if (editMode) {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   136
            element.addClass("item-editing");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   137
        }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   138
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   139
        var onChange = function() {
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   140
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   141
            data.type = typefield.val();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   142
            typedisplay.text(typefield.find("[value=" + data.type + "]").text());
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   143
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   144
            if (data.type === "Wikipedia") {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   145
                data.lang = langfield.val() || "en";
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   146
                langdisplay.text(langfield.find("[value=" + data.lang + "]").text());
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   147
                langsection.show();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   148
            } else {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   149
                delete data.lang;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   150
                langsection.hide();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   151
            }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   152
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   153
            if (data.type === "Ldt") {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   154
                ldtsection.show();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   155
                data.ldt_type = ldttypefield.val() || "Results";
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   156
                ldttypedisplay.text(ldttypefield.find("[value=" + data.ldt_type + "]").text());
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   157
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   158
                data.ldt_platform = ldtpffield.val() || ldtpffield.val("http://ldt.iri.centrepompidou.fr/").val();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   159
                ldtpfdisplay.text(data.ldt_platform);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   160
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   161
                if (data.ldt_type === "Project") {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   162
                    data.project_id = ldtprojfield.val();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   163
                    ldtprojdisplay.text(data.ldt_project);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   164
                    ldtprojsection.show();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   165
                } else {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   166
                    delete data.ldt_project;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   167
                    ldtprojsection.hide();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   168
                }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   169
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   170
            } else {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   171
                delete data.ldt_type;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   172
                delete data.project_id;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   173
                delete data.ldt_platform;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   174
                ldtsection.hide();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   175
            }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   176
192
47aa37d3e750 Saying goodbye to the Twitter Search API :-(
veltr
parents: 188
diff changeset
   177
            if (data.type === "Wikipedia" || (data.type === "Ldt" && data.ldt_type === "Results")) {
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   178
                data.search = kwfield.val();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   179
                kwdisplay.text(data.search);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   180
                kwsection.show();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   181
            } else {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   182
                delete data.search;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   183
                kwsection.hide();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   184
            }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   185
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   186
            if (data.type === "ResourceList") {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   187
                data.title = titlefield.val() || titlefield.val("Untitled Resource List").val();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   188
                titledisplay.text(data.title);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   189
                ressection.show();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   190
            } else {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   191
                ressection.hide();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   192
            }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   193
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   194
            updateListData();
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   195
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   196
        };
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   197
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   198
        var updateListData = function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   199
            if (data.type === "ResourceList") {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   200
                data.list = Array.prototype.slice.call(
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   201
                    reslist.find(".resource").map(function(){return $(this).data("userdata");})
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   202
                );
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   203
            } else {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   204
                delete data.list;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   205
            }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   206
        };
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   207
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   208
        var addResource = function(resdata, editmode) {
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   209
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   210
            var resel = $(resourceTemplate),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   211
                all_fields = resel.find(".edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   212
                title_field = resel.find(".resource-title .edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   213
                title_text = resel.find(".resource-title .display-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   214
                url_field = resel.find(".resource-url .edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   215
                url_text = resel.find(".resource-url .display-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   216
                description_field = resel.find(".resource-description .edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   217
                description_text = resel.find(".resource-description .display-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   218
                image_field = resel.find(".resource-image .edit-value"),
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   219
                image_text = resel.find(".resource-image .display-value");
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   220
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   221
            resel.data("userdata",resdata);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   222
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   223
            if (editmode) {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   224
                resel.addClass("resource-editing");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   225
            }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   226
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   227
            var onResourceChange = function() {
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   228
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   229
                resdata.title = title_field.val();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   230
                title_text.text(resdata.title);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   231
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   232
                resdata.description = description_field.val();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   233
                description_text.text(resdata.description);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   234
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   235
                resdata.url = url_field.val();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   236
                url_text.text(resdata.url);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   237
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   238
                resdata.image = image_field.val();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   239
                image_text.text(resdata.image);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   240
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   241
                updateListData();
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   242
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   243
            };
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   244
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   245
            title_field.val( resdata.title || "" );
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   246
            url_field.val( resdata.url || "" );
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   247
            description_field.val( resdata.description || "" );
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   248
            image_field.val( resdata.image || "" );
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   249
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   250
            all_fields.on("keyup paste change", onResourceChange);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   251
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   252
            onResourceChange();
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   253
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   254
            resel.find(".remove-item").click(function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   255
                resel.remove();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   256
                updateListData();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   257
                return false;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   258
            });
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   259
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   260
            resel.click(function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   261
                $(".resource").removeClass("resource-editing");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   262
                resel.addClass("resource-editing");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   263
                return false;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   264
            });
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   265
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   266
            reslist.append(resel);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   267
        };
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   268
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   269
        if (data.list) {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   270
            data.list.forEach(addResource);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   271
        }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   272
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   273
        typefield.val(data.type);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   274
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   275
        if (data.type === "Wikipedia") {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   276
            langfield.val(data.lang || "en");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   277
        }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   278
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   279
        if (data.type === "Ldt") {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   280
            ldttypefield.val(data.ldt_type || "Results");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   281
            ldtpffield.val(data.ldt_platform || "http://ldt.iri.centrepompidou.fr/");
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   282
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   283
            if (data.ldt_type === "Project") {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   284
                ldtprojfield.val(data.ldt_project);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   285
            }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   286
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   287
        }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   288
192
47aa37d3e750 Saying goodbye to the Twitter Search API :-(
veltr
parents: 188
diff changeset
   289
        if (data.type === "Wikipedia" || (data.type === "Ldt" && data.ldt_type === "Results")) {
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   290
            kwfield.val(data.search || "");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   291
        }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   292
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   293
        if (data.type === "ResourceList") {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   294
            titlefield.val(data.title || "Untitled Resource List");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   295
        }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   296
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   297
        allfields.on("keyup paste change", onChange);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   298
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   299
        onChange();
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   300
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   301
        element.click(function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   302
            $(".item").removeClass("item-editing");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   303
            element.addClass("item-editing");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   304
            return false;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   305
        });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   306
        element.find(".remove-item").click(function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   307
            element.remove();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   308
            return false;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   309
        });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   310
        element.find(".add-resource").click(function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   311
            addResource({"title": "New Resource"},true);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   312
            return false;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   313
        });
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   314
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   315
        $(".bin-list").append(element);
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   316
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   317
    }
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   318
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   319
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   320
    userData.search.forEach(function(data) {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   321
        addSearchEngine(data,false);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   322
    });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   323
    userData.bins.forEach(function(data) {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   324
        addBin(data,false);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   325
    });
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   326
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   327
    $(".add-search-engine").click(function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   328
        addSearchEngine({
192
47aa37d3e750 Saying goodbye to the Twitter Search API :-(
veltr
parents: 188
diff changeset
   329
            type: "Wikipedia",
47aa37d3e750 Saying goodbye to the Twitter Search API :-(
veltr
parents: 188
diff changeset
   330
            lang: "en"
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   331
        }, true);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   332
        return false;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   333
    });
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   334
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   335
    $(".add-bin").click(function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   336
        addBin({
192
47aa37d3e750 Saying goodbye to the Twitter Search API :-(
veltr
parents: 188
diff changeset
   337
            type: "Wikipedia",
47aa37d3e750 Saying goodbye to the Twitter Search API :-(
veltr
parents: 188
diff changeset
   338
            lang: "en",
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   339
            search: ""
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   340
        }, true);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   341
        return false;
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   342
    });
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   343
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   344
    $(".update-preview").click(function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   345
        userData.search = Array.prototype.slice.call(
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   346
            $(".search-engine").map(function(){return $(this).data("userdata");})
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   347
        );
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   348
        userData.bins = Array.prototype.slice.call(
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   349
            $(".bin").map(function(){return $(this).data("userdata");})
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   350
        );
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   351
        new Rkns.Renkan(_.extend({}, originalData, userData));
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   352
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   353
    });
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   354
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   355
    new Rkns.Renkan(_.extend({}, originalData, userData));
293
fba23fde14ba Correct jshint errors and force it on build
ymh <ymh.work@gmail.com>
parents: 192
diff changeset
   356
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   357
});