client/js/space-editor.js
author veltr
Thu, 13 Jun 2013 14:31:35 +0200
changeset 192 47aa37d3e750
parent 188 50b3287d06dd
child 293 fba23fde14ba
permissions -rw-r--r--
Saying goodbye to the Twitter Search API :-(
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
188
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
     1
$(function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
     2
    
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
    };
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
     7
   
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
    };
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    30
    
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
    }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    34
    
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    35
    var searchEngineTemplate = getNormalizedHtml($(".search-engine-list"));
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    36
    
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    37
    $(".search-engine-list").empty().sortable();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    38
    
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    39
    var resourceTemplate = getNormalizedHtml($(".resource-list"));
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    40
    
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    41
    $(".resource-list").empty();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    42
    
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    43
    var binTemplate = getNormalizedHtml($(".bin-list"));
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    44
    
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    45
    $(".bin-list").empty().sortable();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    46
    
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    47
    function addSearchEngine(data, editMode) {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    48
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    49
        $(".item").removeClass("item-editing");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    50
        
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);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    59
        
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
        }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    63
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    64
        var onChange = function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    65
            
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());
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    68
            
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
            }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    77
        }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    78
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    79
        typefield.val(data.type);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    80
        
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
        }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    84
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    85
        allfields.on("keyup paste change", onChange);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    86
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    87
        onChange();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    88
        
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
        });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
    98
        
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
    }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   101
    
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   102
    function addBin(data, editMode) {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   103
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   104
        $(".item").removeClass("item-editing");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   105
        
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");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   128
        
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
        });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   132
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   133
        element.data("userdata",data);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   134
        
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
        }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   138
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   139
        var onChange = function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   140
            
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());
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   143
            
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
            }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   152
            
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());
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   157
                
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);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   160
                
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
                }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   169
                
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
            }
50b3287d06dd Added a basic space editor
veltr
parents:
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
            }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   185
            
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
            }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   193
            
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   194
            updateListData();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   195
            
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   196
        }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   197
        
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
            }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   206
        }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   207
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   208
        var addResource = function(resdata, editmode) {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   209
            
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");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   220
                
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   221
            resel.data("userdata",resdata);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   222
            
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
            }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   226
            
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   227
            var onResourceChange = function() {
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   228
                
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);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   231
                
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);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   234
                
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);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   237
                
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);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   240
                
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   241
                updateListData();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   242
                
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   243
            }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   244
            
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 || "" );
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   249
            
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   250
            all_fields.on("keyup paste change", onResourceChange);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   251
            
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   252
            onResourceChange();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   253
            
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
            });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   259
            
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
            });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   265
            
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   266
            reslist.append(resel);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   267
        }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   268
    
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
        }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   272
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   273
        typefield.val(data.type);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   274
        
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
        }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   278
            
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/");
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   282
            
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
            }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   286
            
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   287
        }
50b3287d06dd Added a basic space editor
veltr
parents:
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
        }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   292
        
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
        }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   296
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   297
        allfields.on("keyup paste change", onChange);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   298
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   299
        onChange();
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   300
        
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
        });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   314
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   315
        $(".bin-list").append(element);
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   316
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   317
    }
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   318
    
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   319
    
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
    });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   326
    
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
    });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   334
    
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
    });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   343
    
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));
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   352
        
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   353
    });
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   354
   
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   355
    new Rkns.Renkan(_.extend({}, originalData, userData));
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   356
   
50b3287d06dd Added a basic space editor
veltr
parents:
diff changeset
   357
});