In container.js the links go to canvas/id/id instead of canvas/base64(id)/base64(id)

Index: container.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/ShindigIntegrator/shindig_integrator/container.js,v
retrieving revision 1.1 
diff -b -r1.1 container.js
59c96
<       return '/application_canvas/' + app + '/' + module;
---
>       return '/application_canvas/' + encode64(app) + '/' + encode64(module);
95a133,168
> // This code was written by Tyler Akins and has been placed in the
> // public domain.  It would be nice if you left this header intact.
> // Base64 code from Tyler Akins -- http://rumkin.com
> 
> var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
> 
> function encode64(input) {
>    var output = "";
>    var chr1, chr2, chr3;
>    var enc1, enc2, enc3, enc4;
>    var i = 0;
> 
>    do {
>       chr1 = input.charCodeAt(i++);
>       chr2 = input.charCodeAt(i++);
>       chr3 = input.charCodeAt(i++);
> 
>       enc1 = chr1 >> 2;
>       enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
>       enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
>       enc4 = chr3 & 63;
> 
>       if (isNaN(chr2)) {
>          enc3 = enc4 = 64;
>       } else if (isNaN(chr3)) {
>          enc4 = 64;
>       }
> 
>       output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
>          keyStr.charAt(enc3) + keyStr.charAt(enc4);
>    } while (i < input.length);
>    
>    return output;
> }
> 
> 
CommentFileSizeAuthor
container-add64.patch1.38 KBpletcher

Comments

ramsharma2005’s picture

Hi pletcher,

Thanks for bringing this up.
In my opinion, it is better to encode both ids at server side instead of client side. I have done that.

Thanks again.

pletcher’s picture

I'm sorry, but I don't understand. Without this (or a similar) patch, applications will try to link to /application_canvas/1/1 (for example), and will get a 404. Did I miss something, was another patch applied to fix this problem?

To recreate it, add the basic ToDo gadget shindig recommends for testing. Click the 'full screen' link.

ToDo Gadget:
http://www.labpixies.com/campaigns/todo/todo.xml

Thanks,
jrp

ramsharma2005’s picture

Hi pletcher,

Sorry for late reply, as I was busy in some other work.

I have encoded both application id and module id while iframe url creation and all such kind of encoding-decoding is done at back end. So at client side, now it will try to link /application_canvas/base64_encode(1)/base64_encode(1) and displays correctly.

I hope my answer will satisfy you. If any questions or you will get any issue, please let me know.

Thanks.

ramsharma2005’s picture

Status: Active » Closed (fixed)

Resolved