Added setPublicUpload to OcsShareJob

This commit is contained in:
Roeland Jago Douma 2015-10-15 20:34:56 +02:00
parent b293aa762c
commit 3ea944d1b3
3 changed files with 22 additions and 13 deletions

View file

@ -80,6 +80,18 @@ void OcsShareJob::setPassword(const QString &password)
start();
}
void OcsShareJob::setPublicUpload(bool publicUpload)
{
setVerb("PUT");
QList<QPair<QString, QString> > postParams;
const QString value = QString::fromLatin1(publicUpload ? "true" : "false");
postParams.append(qMakePair(QString::fromLatin1("publicUpload"), value));
setPostParams(postParams);
start();
}
void OcsShareJob::createShare(const QString &path, SHARETYPE shareType, const QString &password, const QDate &date)
{
setVerb("POST");

View file

@ -74,6 +74,13 @@ public:
*/
void setPassword(const QString& password);
/**
* Void set the a share to be public upload
*
* @param publicUpload Set or remove public upload
*/
void setPublicUpload(bool publicUpload);
/**
* Create a new share
*

View file

@ -33,8 +33,6 @@
#include <QFileInfo>
namespace {
int SHARETYPE_PUBLIC = 3;
// int PERMISSION_READ = 1;
int PERMISSION_UPDATE = 2;
int PERMISSION_CREATE = 4;
@ -564,23 +562,15 @@ void ShareDialog::setPublicUpload(bool publicUpload)
_ui->checkBox_editing->setEnabled(false);
_pi_editing->startAnimation();
const QUrl url = Account::concatUrlPath(_account->url(), QString("ocs/v1.php/apps/files_sharing/api/v1/shares/%1").arg(_public_share_id));
QList<QPair<QString, QString> > requestParams;
const QString value = QString::fromLatin1(publicUpload ? "true" : "false");
requestParams.append(qMakePair(QString::fromLatin1("publicUpload"), value));
OcsShareJob *job = new OcsShareJob("PUT", url, _account, this);
job->setPostParams(requestParams);
OcsShareJob *job = new OcsShareJob(_public_share_id, _account, this);
connect(job, SIGNAL(jobFinished(QVariantMap)), this, SLOT(slotPublicUploadSet(QVariantMap)));
job->start();
job->setPublicUpload(publicUpload);
}
void ShareDialog::slotPublicUploadSet(const QVariantMap &reply)
{
QString message;
int code = getJsonReturnCode(reply, message);
int code = OcsShareJob::getJsonReturnCode(reply, message);
if (code == 100) {
_ui->checkBox_editing->setEnabled(true);
} else {