diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2010-06-13 17:58:50 -0700 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2010-06-13 17:58:50 -0700 |
commit | 47aa65143060ff376d95ca182c55132d821917fb (patch) | |
tree | 9ebd2c5c673ef803f5e9452235bc2eb723ff3681 | |
parent | 938eea7fc45d5ad26529a14f349b7e4be2fecb15 (diff) |
Fix problems ith IE and flex initialization when one of the flashvars contains a json encoded string. Also address the problem that IE returns the color values differently that Firefox and Chrome
-rw-r--r-- | modules/organize/controllers/organize.php | 11 | ||||
-rw-r--r-- | modules/organize/lib/Gallery3WebClient.swf | bin | 145339 -> 142627 bytes | |||
-rw-r--r-- | modules/organize/views/organize_dialog.html.php | 104 |
3 files changed, 60 insertions, 55 deletions
diff --git a/modules/organize/controllers/organize.php b/modules/organize/controllers/organize.php index d2c273b6..b5a25400 100644 --- a/modules/organize/controllers/organize.php +++ b/modules/organize/controllers/organize.php @@ -28,23 +28,24 @@ class Organize_Controller extends Controller { $v = new View("organize_dialog.html"); $v->album = $album; // @todo turn this into an api call. - $v->file_filter = json_encode( + $v->file_filter = addslashes(json_encode( array("photo" => array("label" => "Images", "types" => array("*.jpg", "*.jpeg", "*.png", "*.gif")), - "movie" => array("label" => "Movies", "types" => array("*.flv", "*.mp4")))); + "movie" => array("label" => "Movies", "types" => array("*.flv", "*.mp4"))))); $v->domain = $input->server("SERVER_NAME"); // @todo figure out how to connect this w/o a dependency $v->base_url = url::abs_site("rest") . "/"; - $v->sort_order = json_encode(array("ASC" => (string)t("Ascending"), "DESC" => (string)t("Descending"))); + $v->sort_order = addslashes(json_encode(array("ASC" => (string)t("Ascending"), "DESC" => (string)t("Descending")))); $sort_fields = array(); foreach (album::get_sort_order_options() as $field => $description) { $sort_fields[$field] = (string)$description; } - $v->sort_fields = json_encode($sort_fields); + $v->sort_fields = addslashes(json_encode($sort_fields)); $user = identity::active_user(); - $v->api_key = rest::get_access_key($user->id)->access_key; + $v->access_key = rest::get_access_key($user->id)->access_key; + Kohana_Log::add("error", $v->__toString()); print $v; } diff --git a/modules/organize/lib/Gallery3WebClient.swf b/modules/organize/lib/Gallery3WebClient.swf Binary files differindex 6ff0d5ba..879a4fec 100644 --- a/modules/organize/lib/Gallery3WebClient.swf +++ b/modules/organize/lib/Gallery3WebClient.swf diff --git a/modules/organize/views/organize_dialog.html.php b/modules/organize/views/organize_dialog.html.php index 2d340f13..8c5ba133 100644 --- a/modules/organize/views/organize_dialog.html.php +++ b/modules/organize/views/organize_dialog.html.php @@ -27,63 +27,76 @@ }); function closeOrganizeDialog() { - console.log("closeOrganizeDialog"); $("#g-dialog").dialog("close"); } function setTitle(title) { - $("#ui-dialog-title-g-dialog").text(<?= t("Organize: ")->for_js() ?> + title); + $("#ui-dialog-title-g-dialog").text(<?= t("Organize :: ")->for_js() ?> + title); } function getOrganizeStyles() { - var styles = { - "color": colorToHex($("#g-organize").css("color")), - "backgroundColor": colorToHex($("#g-organize").css("backgroundColor")), - "borderColor": colorToHex($("#g-organize").css("borderLeftColor")), - "rollOverColor": colorToHex($("#g-organize-hover").css("backgroundColor")), - "selectionColor": colorToHex($("#g-organize-active").css("backgroundColor")) + return { + color: colorToHex($("#g-organize").css("color")), + backgroundColor: colorToHex($("#g-organize").css("backgroundColor")), + borderColor: colorToHex($("#g-organize").css("borderLeftColor")), + rollOverColor: colorToHex($("#g-organize-hover").css("backgroundColor")), + selectionColor: colorToHex($("#g-organize-active").css("backgroundColor")) }; - return styles; } function colorToHex(color) { - var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); + // Surprising no one, the color extracted from the css is in a different format + // in IE than it is when extracted from FF or Chrome. FF and Chrome return + // the of "rgb(nn,nn,nn)". Where as IE returns it as #hhhhhh. - var red = parseInt(digits[2]); - var green = parseInt(digits[3]); - var blue = parseInt(digits[4]); + if (color.indexOf("#") === 0) { + return '0x' + color.substring(1); + } else { + var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); - var rgb = blue | (green << 8) | (red << 16); - return digits[1] + '0x' + rgb.toString(16); + var red = parseInt(digits[2]); + var green = parseInt(digits[3]); + var blue = parseInt(digits[4]); + + var rgb = blue | (green << 8) | (red << 16); + return digits[1] + '0x' + rgb.toString(16); + } } function getTextStrings() { - var strings = { - "statusText": <?= t("Drag and drop photos to re-order or move between album")->for_js() ?>, - "remoteError": + return { + statusText: <?= t("Drag and drop photos to re-order or move between album")->for_js() ?>, + remoteError: <?= t("Remote server error, please contact your gallery administrator")->for_js() ?>, - "addAlbumError": <?= t("The above highlighted fields are invalid")->for_js() ?>, - "errorOccurred": <?= t("Remote error ocurred")->for_js() ?>, - "addAlbum": <?= t("Add album")->for_js() ?>, - "addImages": <?= t("Add photo")->for_js() ?>, - "deleteSelected": <?= t("Delete")->for_js() ?>, - "uploadedText": <?= t("Uploaded {0}")->for_js() ?>, - "removeFileText": <?= t("Remove")->for_js() ?>, - "bytes": <?= t("{0} bytes")->for_js() ?>, - "kilobytes": <?= t("{0} KB")->for_js() ?>, - "megabytes": <?= t("{0} MB")->for_js() ?>, - "gigabytes": <?= t("{0} GB")->for_js() ?>, - "progressLabel": <?= t("Completed image %1 of %2")->for_js() ?>, - "uploadLabel": <?= t("Loaded %1 of %2 bytes")->for_js() ?>, - "moveTitle": <?= t("Move images")->for_js() ?>, - "deleteTitle": <?= t("Delete image")->for_js() ?>, - "uploadTitle": <?= t("Upload image")->for_js() ?>, - "cancel": <?= t("Cancel")->for_js() ?>, - "close": <?= t("Close")->for_js() ?> + addAlbumError: <?= t("The above highlighted fields are invalid")->for_js() ?>, + errorOccurred: <?= t("Remote error ocurred")->for_js() ?>, + addAlbum: <?= t("Add album")->for_js() ?>, + addImages: <?= t("Add photo")->for_js() ?>, + deleteSelected: <?= t("Delete")->for_js() ?>, + uploadedText: <?= t("Uploaded {0}")->for_js() ?>, + removeFileText: <?= t("Remove")->for_js() ?>, + progressLabel: <?= t("Completed image %1 of %2")->for_js() ?>, + uploadLabel: <?= t("Loaded %1 of %2 bytes")->for_js() ?>, + moveTitle: <?= t("Move images")->for_js() ?>, + deleteTitle: <?= t("Delete image")->for_js() ?>, + uploadTitle: <?= t("Upload image")->for_js() ?>, + cancel: <?= t("Cancel")->for_js() ?>, + close: <?= t("Close")->for_js() ?> }; - return strings; } + function getGalleryParameters() { + return { + fileFilter: "<?= $file_filter ?>", + domain: "<?= $domain ?>", + sortOrder: "<?= $sort_order ?>", + sortFields: "<?= $sort_fields ?>", + baseUrl: "<?= $base_url ?>", + accessKey: "<?= $access_key ?>", + albumId: "<?= $album->id ?>", + controller: "<?= url::abs_site("organize") ?>/" + }; + }; /* For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. @@ -91,16 +104,7 @@ var swfVersionStr = "0.0.0"; /* To use express install, set to playerProductInstall.swf, otherwise the empty string.*/ var xiSwfUrlStr = ""; - var flashvars = { - fileFilter: '<?= $file_filter ?>', - domains: '["<?= $domain ?>"]', - sortOrder: '<?= $sort_order ?>', - sortFields: '<?= $sort_fields ?>', - baseUrl: '<?= $base_url ?>', - apiKey: '<?= $api_key ?>', - albumId: "<?= $album->id ?>", - controller: '<?= url::abs_site("organize") ?>/' - }; + var flashvars = {}; var size = $.gallery_get_viewport_size(); @@ -111,8 +115,8 @@ params.allowscriptaccess = "sameDomain"; params.allowfullscreen = "true"; var attributes = {}; - attributes.id = "g-organize-object"; - attributes.name = "organize"; + attributes.id = "Gallery3WebClient"; + attributes.name = "Gallery3WebClient"; attributes.align = "middle"; swfobject.embedSWF("<?= url::file("modules/organize/lib/Gallery3WebClient.swf") ?>", "flashContent", size.width() - 100, size.height() - 135, @@ -121,6 +125,6 @@ <div id="g-organize" class="g-dialog-panel"> <!-- The following spans are placeholders so we can load the hover and active styles for the flex component --> <span id="g-organize-hover" /><span id="g-organize-active" /> - <h1 style="display:none"><?= t("Organize: %name", array("name" => html::purify($album->title))) ?></h1> + <h1 style="display:none"><?= t("Organize :: %name", array("name" => html::purify($album->title))) ?></h1> <div id="flashContent"> </div> </div> |