summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ajax/changefoldername.php34
-rw-r--r--css/news.css4
-rw-r--r--js/main.js8
-rw-r--r--js/menu.js7
-rw-r--r--js/news.js30
-rw-r--r--lib/foldermapper.php14
-rw-r--r--templates/main.php37
-rw-r--r--templates/part.dialogues.php46
8 files changed, 140 insertions, 40 deletions
diff --git a/ajax/changefoldername.php b/ajax/changefoldername.php
new file mode 100644
index 000000000..7031364f6
--- /dev/null
+++ b/ajax/changefoldername.php
@@ -0,0 +1,34 @@
+<?php
+/**
+* ownCloud - News app
+*
+* @author Bernhard Posselt
+* Copyright (c) 2012 - Bernhard Posselt <nukeawhale@gmail.com>
+*
+* This file is licensed under the Affero General Public License version 3 or later.
+* See the COPYING-README file
+*
+*/
+
+// Check if we are a user
+OCP\JSON::checkLoggedIn();
+OCP\JSON::checkAppEnabled('news');
+OCP\JSON::callCheck();
+
+$folderId = (int)$_POST['folderId'];
+$folderName = $_POST['folderName'];
+
+$folderMapper = new OCA\News\FolderMapper();
+$folder = $folderMapper->find($folderId);
+$folder->setName($folderName);
+$success = $folderMapper->update($folder);
+
+$l = OC_L10N::get('news');
+
+if(!$success) {
+ OCP\JSON::error(array('data' => array('message' => $l->t('Error changing name of folder ' . $folderId . ' to ' . $folderName))));
+ OCP\Util::writeLog('news','ajax/setallitemsread.php: Error changing name of folder ' . $folderId . ' to ' . $folderName, OCP\Util::ERROR);
+ exit();
+}
+
+OCP\JSON::success(); \ No newline at end of file
diff --git a/css/news.css b/css/news.css
index 69fdc2473..13b9ef47b 100644
--- a/css/news.css
+++ b/css/news.css
@@ -645,8 +645,8 @@ div.add_parentfolder {
}
/* dialog/menues */
-div.dialog {
- overflow: visible;
+#addfolder_dialog, #addfeed_dialog, #changefolder_dialog {
+ display: none;
}
.ui-dialog tbody tr:hover, .ui-dialog tr:active {
diff --git a/js/main.js b/js/main.js
index 2cfe51e8e..f219448de 100644
--- a/js/main.js
+++ b/js/main.js
@@ -77,11 +77,15 @@ $(document).ready(function(){
}
});
- $('#addfolder_dialog,#addfeed_dialog').dialog({
+ $('#addfolder_dialog,#addfeed_dialog,#changefolder_dialog').dialog({
dialogClass:'dialog',
minWidth: 600,
autoOpen: false
- }).css('overflow','visible');
+ });
+
+ $('#changefolder_dialog input[type=submit]').click(function(){
+ News.Folder.changeName(this);
+ });
$('#folder_add_submit').click(function(){
News.Folder.submit(this);
diff --git a/js/menu.js b/js/menu.js
index e4453599c..0591fa828 100644
--- a/js/menu.js
+++ b/js/menu.js
@@ -546,7 +546,12 @@ var News = News || {};
* @param id the id
*/
Menu.prototype._edit = function(type, id){
- // TODO:
+ var $node = this._getNodeFromTypeAndId(type, id);
+ var name = $node.children('.title').html();
+ var id = $node.data('id');
+ $('#changefolder_dialog').find('input[type=text]').val(name);
+ $('#changefolder_dialog').find('input[type=hidden]').val(id);
+ $('#changefolder_dialog').dialog('open');
};
/**
diff --git a/js/news.js b/js/news.js
index deb3bfaba..483888005 100644
--- a/js/news.js
+++ b/js/news.js
@@ -50,6 +50,36 @@ News = {
$(button).prop('value', t('news','Add folder'));
});
},
+ changeName:function(button){
+ var folderName = $("#changefolder_dialog input[type=text]").val().trim();
+ var folderId = parseInt($('#changefolder_dialog input[type=hidden]').val().trim());
+
+ if(folderName.length == 0) {
+ OC.dialogs.alert(t('news', 'Name of the folder cannot be empty.'), t('news', 'Error'));
+ return false;
+ }
+
+ $(button).attr("disabled", true);
+ $(button).prop('value', t('news', 'Changing...'));
+
+ var url = OC.filePath('news', 'ajax', 'changefoldername.php');
+ var data = {
+ folderName: folderName,
+ folderId: folderId
+ };
+
+ $.post(url, data, function(jsonData){
+ if(jsonData.status == 'success'){
+ folderName = $('<div>').text(folderName).html();
+ News.Objects.Menu.updateNode(News.MenuNodeType.Folder, folderId, {title: folderName});
+ $('#changefolder_dialog').dialog('close');
+ } else {
+ OC.dialogs.alert(jsonData.data.message, t('news', 'Error'));
+ }
+ $(button).attr("disabled", false);
+ $(button).prop('value', t('news','Change folder name'));
+ });
+ }
},
Feed: {
id:'',
diff --git a/lib/foldermapper.php b/lib/foldermapper.php
index abc89b5af..eb64fa871 100644
--- a/lib/foldermapper.php
+++ b/lib/foldermapper.php
@@ -128,6 +128,20 @@ class FolderMapper {
return $folderid;
}
+
+ /**
+ * @brief Updates the folder
+ * @param folder the folder to be updated
+ */
+ public function update(Folder $folder){
+ $query = \OCP\DB::prepare('UPDATE ' . self::tableName
+ . ' SET name = ? ' . ' WHERE id = ?');
+
+ $params = array(htmlspecialchars_decode($folder->getName()), $folder->getId());
+ $query->execute($params);
+ return true;
+ }
+
/**
* @brief Delete the folder and all its feeds from the database
* @param folder the folder to be deleted (an instance of OCA\News\Folder)
diff --git a/templates/main.php b/templates/main.php
index 099a1a5a5..95e6ca976 100644
--- a/templates/main.php
+++ b/templates/main.php
@@ -61,40 +61,7 @@ if($showAll){
} else {
echo $this->inc("part.nofeeds");
}
-?>
-
-<div id="addfolder_dialog" title="<?php echo $l->t("Add Folder"); ?>">
- <table width="100%" style="border: 0;">
- <tr>
- <td>Add new folder</td>
- <td></td>
- </tr>
- <tr>
- <td><input type="text" id="folder_add_name" placeholder="<?php echo $l->t('Folder name'); ?>" class="news_input" /></td>
- <td><input type="submit" value="<?php echo $l->t('Add folder'); ?>" id="folder_add_submit" /></td>
- </tr>
- </table>
-</div>
+ echo $this->inc("part.dialogues");
+?>
-<div id="addfeed_dialog" title="<?php echo $l->t("Add Subscription"); ?>">
- <table width="100%" style="border: 0;">
- <tr>
- <td>Add new feed</td>
- <td>
- <div class="add_parentfolder">
- <button class="dropdownBtn">
- <?php echo $l->t('Choose folder'); ?>
- </button>
- <input class="inputfolderid" type="hidden" name="folderid" value="0" />
- <ul class="menu dropdownmenu">
- </ul>
- </div>
- </td>
- </tr>
- <tr>
- <td><input type="text" id="feed_add_url" placeholder="<?php echo $l->t('Address'); ?>" class="news_input" /></td>
- <td><input type="submit" value="<?php echo $l->t('Add'); ?>" id="feed_add_submit" /></td>
- </tr>
- </table>
-</div> \ No newline at end of file
diff --git a/templates/part.dialogues.php b/templates/part.dialogues.php
new file mode 100644
index 000000000..114cbcfb5
--- /dev/null
+++ b/templates/part.dialogues.php
@@ -0,0 +1,46 @@
+<div id="addfolder_dialog" title="<?php echo $l->t('Add Folder'); ?>">
+ <table>
+ <tr>
+ <td><?php echo $l->t('Add new folder'); ?></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><input type="text" id="folder_add_name" placeholder="<?php echo $l->t('Folder name'); ?>" class="news_input" /></td>
+ <td><input type="submit" value="<?php echo $l->t('Add folder'); ?>" id="folder_add_submit" /></td>
+ </tr>
+ </table>
+</div>
+
+<div id="addfeed_dialog" title="<?php echo $l->t('Add Subscription'); ?>">
+ <table>
+ <tr>
+ <td><?php echo $l->t('Add new feed'); ?></td>
+ <td>
+ <div class="add_parentfolder">
+ <button class="dropdownBtn"><?php echo $l->t('Choose folder'); ?></button>
+ <input class="inputfolderid" type="hidden" name="folderid" value="0" />
+ <ul class="menu dropdownmenu">
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td><input type="text" id="feed_add_url" placeholder="<?php echo $l->t('Address'); ?>" class="news_input" /></td>
+ <td><input type="submit" value="<?php echo $l->t('Add'); ?>" id="feed_add_submit" /></td>
+ </tr>
+ </table>
+</div>
+
+<div id="changefolder_dialog" title="<?php echo $l->t('Change folder name'); ?>">
+ <input class="inputfolderid" type="hidden" name="folderid" value="" />
+ <table>
+ <tr>
+ <td><?php echo $l->t('Change folder name'); ?></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><input type="text" placeholder="<?php echo $l->t('Folder name'); ?>" class="news_input" /></td>
+ <td><input type="submit" value="<?php echo $l->t('Change folder name'); ?>" /></td>
+ </tr>
+ </table>
+</div>