From c411826fe5e7662fb0f6dc5fbcb074c68b467ea4 Mon Sep 17 00:00:00 2001 From: Bartek Przybylski Date: Sun, 4 Mar 2012 00:35:37 +0100 Subject: [PATCH] moving gallery op to one file, migrate gallery dialogs to oc dialogs --- apps/gallery/ajax/galleryOp.php | 19 +++++++ apps/gallery/ajax/getAlbums.php | 41 --------------- apps/gallery/js/album_cover.js | 92 +++++++++++---------------------- apps/gallery/lib/scanner.php | 2 +- core/js/oc-dialogs.js | 28 +++++----- 5 files changed, 66 insertions(+), 116 deletions(-) delete mode 100644 apps/gallery/ajax/getAlbums.php diff --git a/apps/gallery/ajax/galleryOp.php b/apps/gallery/ajax/galleryOp.php index c19344c0fbb..e768ce00c17 100644 --- a/apps/gallery/ajax/galleryOp.php +++ b/apps/gallery/ajax/galleryOp.php @@ -88,6 +88,22 @@ function handleStoreSettings($root, $order) { OC_JSON::success(array('rescan' => $rescan)); } + +function handleGetGalleries() { + $a = array(); + + $result = OC_Gallery_Album::find(OC_User::getUser()); + + while ($r = $result->fetchRow()) { + $album_name = $r['album_name']; + $tmp_res = OC_Gallery_Photo::find($r['album_id']); + + $a[] = array('name' => utf8_encode($album_name), 'numOfItems' => min($tmp_res->numRows(), 10), 'bgPath' => OC::$WEBROOT.'/data/'.OC_User::getUser().'/gallery/'.$album_name.'.png'); + } + + OC_JSON::success(array('albums'=>$a)); +} + if ($_GET['operation']) { switch($_GET['operation']) { case 'rename': @@ -113,6 +129,9 @@ if ($_GET['operation']) { case 'store_settings': handleStoreSettings($_GET['root'], $_GET['order']); break; + case 'get_galleries': + handleGetGalleries(); + break; default: OC_JSON::error(array('cause' => 'Unknown operation')); } diff --git a/apps/gallery/ajax/getAlbums.php b/apps/gallery/ajax/getAlbums.php deleted file mode 100644 index be87af2abd3..00000000000 --- a/apps/gallery/ajax/getAlbums.php +++ /dev/null @@ -1,41 +0,0 @@ -. -* -*/ - -require_once('../../../lib/base.php'); -OC_JSON::checkLoggedIn(); -OC_JSON::checkAppEnabled('gallery'); - -$a = array(); - -$result = OC_Gallery_Album::find(OC_User::getUser()); - -while ($r = $result->fetchRow()) { - $album_name = $r['album_name']; - $tmp_res = OC_Gallery_Photo::find($r['album_id']); - - $a[] = array('name' => utf8_encode($album_name), 'numOfItems' => min($tmp_res->numRows(), 10), 'bgPath' => OC::$WEBROOT.'/data/'.OC_User::getUser().'/gallery/'.$album_name.'.png'); -} - -OC_JSON::success(array('albums'=>$a)); - -?> diff --git a/apps/gallery/js/album_cover.js b/apps/gallery/js/album_cover.js index d328a2d58e5..e63bed05fe4 100644 --- a/apps/gallery/js/album_cover.js +++ b/apps/gallery/js/album_cover.js @@ -1,6 +1,6 @@ var actual_cover; $(document).ready(function() { - $.getJSON('ajax/getAlbums.php', function(r) { + $.getJSON('ajax/galleryOp.php', {operation: 'get_galleries'}, function(r) { if (r.status == 'success') { for (var i in r.albums) { var a = r.albums[i]; @@ -81,71 +81,39 @@ function scanForAlbums(cleanup) { } function galleryRemove(albumName) { - // a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore! - $( "#dialog:ui-dialog" ).dialog( "destroy" ); - $('#albumName', $("#dialog-confirm")).text(albumName); - - $( '#dialog-confirm' ).dialog({ - resizable: false, - height:150, - buttons: [{ - text: t('gallery', 'OK'), - click: function() { - $.getJSON("ajax/galleryOp.php", {operation: "remove", name: albumName}, function(r) { - if (r.status == "success") { - $(".gallery_album_box").filterAttr('data-album',albumName).remove(); - Albums.remove(albumName); - } else { - alert("Error: " + r.cause); - } - $('#dialog-confirm').dialog('close'); - }); - }}, - { - text: t('gallery', 'Cancel'), - click: function() { - $( this ).dialog( 'close' ); - }}] + OC.dialogs.confirm(t('gallery', 'Do you want to remove album ') + decodeURIComponent(escape(albumName)), + t('gallery', 'Remove confirmation'), + function(decision) { + if (decision) { + $.getJSON("ajax/galleryOp.php", {operation: "remove", name: decodeURIComponent(escape(albumName))}, function(r) { + if (r.status == "success") { + $(".gallery_album_box").filterAttr('data-album',albumName).remove(); + Albums.remove(albumName); + } else { + OC.dialogs.alert(r.cause, "Error"); + } + }); + } }); } function galleryRename(name) { - $('#name', $('#dialog-form')).val(name); - $( "#dialog-form" ).dialog({ - height: 140, - width: 350, - modal: false, - buttons: [{ - text: t('gallery', 'Change name'), - click: function() { - var newname = $('#name', $('#dialog-form')).val(); - if (newname == name || newname == '') { - $(this).dialog("close"); - return; - } - if (Albums.find(newname)) { - alert("Album ", newname, " exists"); - $(this).dialog("close"); - return; - } - $.getJSON('ajax/galleryOp.php', {operation: 'rename', oldname: name, newname: newname}, function(r) { - if (r.status == "success") { - Albums.rename($(".gallery_album_box").filterAttr('data-album',name), newname); - } else { - alert("Error: " + r.cause); - } - $('#dialog-form').dialog('close'); - }); - - } - }, - { - text: t('gallery', 'Cancel'), - click: function() { - $( this ).dialog('close'); - } - } - ], + OC.dialogs.prompt(t('gallery', 'New album name'), + t('gallery', 'Change name'), + name, + function(newname) { + if (newname == name || newname == '') return; + if (Albums.find(newname)) { + OC.dialogs.alert('Album ' + newname + ' exists', 'Alert'); + return; + } + $.getJSON('ajax/galleryOp.php', {operation: 'rename', oldname: name, newname: newname}, function(r) { + if (r.status == 'success') { + Albums.rename($(".gallery_album_box").filterAttr('data-album',name), newname); + } else { + OC.dialogs.alert('Error: ' + r.cause, 'Error'); + } + }); }); } diff --git a/apps/gallery/lib/scanner.php b/apps/gallery/lib/scanner.php index 9c381acf389..19906c07152 100644 --- a/apps/gallery/lib/scanner.php +++ b/apps/gallery/lib/scanner.php @@ -64,7 +64,7 @@ class OC_Gallery_Scanner { } $current_album['imagesCount'] = count($current_album['images']); $albums['imagesCount'] = $current_album['imagesCount']; - $albums['albumName'] = $current_album['name']; + $albums['albumName'] = utf8_encode($current_album['name']); $result = OC_Gallery_Album::find(OC_User::getUser(), /*$current_album['name']*/ null, $path); // don't duplicate galleries with same path (bug oc-33) diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index de67c342a71..9ce2bae1642 100644 --- a/core/js/oc-dialogs.js +++ b/core/js/oc-dialogs.js @@ -52,7 +52,7 @@ OCdialogs = { */ confirm:function(text, title, callback) { var content = '

'+text+'

'; - OCdialogs.message(content, title, OCdialogs.ALERT_DIALOG, OCdialogs.YES_NO_BUTTON, callback); + OCdialogs.message(content, title, OCdialogs.ALERT_DIALOG, OCdialogs.YES_NO_BUTTONS, callback); }, /** * prompt for user input @@ -60,8 +60,8 @@ OCdialogs = { * @param title dialog title * @param callback which will be triggered when user press OK (input text will be passed to callback) */ - prompt:function(text, title, callback) { - var content = '

'+text+':

'; + prompt:function(text, title, default_value, callback) { + var content = '

'+text+':

'; OCdialogs.message(content, title, OCdialogs.PROMPT_DIALOG, OCdialogs.OK_CANCEL_BUTTONS, callback); }, /** @@ -131,15 +131,19 @@ OCdialogs = { } return $(element).val(); }, - prompt_ok_handler: function(callback, c_id){callback(true, $(c_id + " input#oc-dialog-prompt-input").val()); $(c_id).dialog('close');}, + prompt_ok_handler: function(callback, c_id) { $(c_id).dialog('close'); if (callback != undefined) callback($(c_id + " input#oc-dialog-prompt-input").val()); }, form_ok_handler: function(callback, c_id) { - var r = []; - var c = 0; - $(c_id + ' input').each(function(i, elem) { - r[c] = {name: $(elem).attr('name'), value: OCdialogs.determineValue(elem)}; - c++; - }); - $(c_id).dialog('close'); - callback(r); + if (callback != undefined) { + var r = []; + var c = 0; + $(c_id + ' input').each(function(i, elem) { + r[c] = {name: $(elem).attr('name'), value: OCdialogs.determineValue(elem)}; + c++; + }); + $(c_id).dialog('close'); + callback(r); + } else { + $(c_id).dialog('close'); + } } }; -- 2.39.5