client/js/space-editor.js
author ymh <ymh.work@gmail.com>
Wed, 09 Sep 2015 18:37:15 +0200
changeset 499 7d374d366b28
parent 293 fba23fde14ba
permissions -rw-r--r--
Correct strange bug on fill of editor box with a difference of beavior between paperjs 0.9.23 and 0.9.24. Real cause not found, but this correction visually solve the problem
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
});