Skip to content
Snippets Groups Projects
Commit 513f9260 authored by Rasmus Fuhse's avatar Rasmus Fuhse
Browse files

Merge branch 'master' of github.com:studip/PluginMarket

parents 158a4976 8c18ba1c
No related branches found
No related tags found
No related merge requests found
Showing
with 91 additions and 21 deletions
...@@ -55,6 +55,7 @@ class PluginMarket extends StudIPPlugin implements SystemPlugin, HomepagePlugin ...@@ -55,6 +55,7 @@ class PluginMarket extends StudIPPlugin implements SystemPlugin, HomepagePlugin
public function initialize() public function initialize()
{ {
PageLayout::addSqueezePackage('lightbox');
$this->addStylesheet('assets/pluginmarket.less'); $this->addStylesheet('assets/pluginmarket.less');
PageLayout::addHeadElement('link', array( PageLayout::addHeadElement('link', array(
'rel' => 'alternate', 'rel' => 'alternate',
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
.flex-justify-content(center); .flex-justify-content(center);
.flex-align-items(stretch); .flex-align-items(stretch);
> .image { .image {
padding: 5px; padding: 5px;
border: 5px solid #eeeeee; border: 5px solid #eeeeee;
margin: 5px; margin: 5px;
......
...@@ -167,4 +167,15 @@ class MypluginsController extends MarketController ...@@ -167,4 +167,15 @@ class MypluginsController extends MarketController
$this->redirect('presenting/details/' . $this->release->plugin->getId()); $this->redirect('presenting/details/' . $this->release->plugin->getId());
} }
public function delete_action($plugin_id) {
$this->marketplugin = MarketPlugin::find($plugin_id);
if (Request::submitted('delete') && $this->marketplugin->isWritable()) {
CSRFProtection::verifyUnsafeRequest();
$this->marketplugin->delete();
$this->redirect('myplugins/overview');
}
}
} }
\ No newline at end of file
...@@ -163,12 +163,14 @@ class PresentingController extends MarketController ...@@ -163,12 +163,14 @@ class PresentingController extends MarketController
public function details_action($plugin_id) { public function details_action($plugin_id) {
Navigation::addItem('/pluginmarket/presenting/details', new AutoNavigation(_('Details'), $this->url_for('presenting/details/'.$plugin_id))); Navigation::addItem('/pluginmarket/presenting/details', new AutoNavigation(_('Details'), $this->url_for('presenting/details/'.$plugin_id)));
$this->marketplugin = new MarketPlugin($plugin_id); $this->marketplugin = new MarketPlugin($plugin_id);
if (Request::isPost() && Request::submitted("delete_plugin") && $this->marketplugin->isRootable()) { if (Request::isPost() && Request::submitted("delete_plugin") && $this->marketplugin->isRootable()) {
$this->marketplugin->delete(); $this->marketplugin->delete();
PageLayout::postMessage(MessageBox::success(_("Plugin wurde gelscht."))); PageLayout::postMessage(MessageBox::success(_("Plugin wurde gelscht.")));
$this->redirect('presenting/overview'); $this->redirect('presenting/overview');
return; return;
} }
$this->marketplugin['rating'] = $this->marketplugin->calculateRating(); $this->marketplugin['rating'] = $this->marketplugin->calculateRating();
$this->marketplugin->store(); $this->marketplugin->store();
...@@ -342,5 +344,4 @@ class PresentingController extends MarketController ...@@ -342,5 +344,4 @@ class PresentingController extends MarketController
} }
} }
...@@ -27,6 +27,26 @@ class UpdateController extends MarketController ...@@ -27,6 +27,26 @@ class UpdateController extends MarketController
$this->render_text("Insecure request."); $this->render_text("Insecure request.");
} }
} }
public function usage_action() {
$this->plugins = MarketPlugin::findManyByName(Request::getArray('plugins'));
$this->mostlikely = MarketPluginUsage::findOneBySQL('user_id = ? GROUP BY name ORDER BY count(*) DESC', array(User::findCurrent()->id))->name;
}
public function save_usage_action() {
// delete old usage
MarketPluginUsage::deleteBySQL('user_id = ? AND name = ?', array(User::findCurrent()->id, Request::get('tag')));
// create new usages
foreach (Request::getArray('plugins') as $pluginid) {
MarketPluginUsage::create(array(
'plugin_id' => $pluginid,
'user_id' => User::findCurrent()->id,
'name' => Request::get('tag')
));
$this->done++;
}
}
protected function verify_secret($secret) protected function verify_secret($secret)
{ {
......
pluginname=PluginMarktplatz pluginname=PluginMarktplatz
pluginclassname=PluginMarket pluginclassname=PluginMarket
origin=studip origin=studip
version=1.0.14 version=1.0.15
<form action="<?= $controller->url_for('approving/approve/' . $marketplugin->getId()) ?>" method="post" class="studip_form"> <form action="<?= $controller->url_for('approving/approve/' . $marketplugin->getId()) ?>" method="post" class="default">
<fieldset> <fieldset>
<legend> <legend>
<?= _("Review schreiben") ?> <?= _("Review schreiben") ?>
......
...@@ -9,7 +9,9 @@ ...@@ -9,7 +9,9 @@
<li class="image"> <li class="image">
<input type="checkbox" name="delete_image[]" value="<?= htmlReady($image->getId()) ?>" id="delete_image_<?= htmlReady($image->getId()) ?>"> <input type="checkbox" name="delete_image[]" value="<?= htmlReady($image->getId()) ?>" id="delete_image_<?= htmlReady($image->getId()) ?>">
<div> <div>
<img src="<?= htmlReady($image->getURL()) ?>" style="max-height: 150px;"> <a href="<?= htmlReady($image->getURL()) ?>" data-lightbox="plugin_gallery">
<img src="<?= htmlReady($image->getURL()) ?>" style="max-height: 150px;">
</a>
<input type="hidden" name="image_order[]" value="<?= htmlReady($image->getId()) ?>"> <input type="hidden" name="image_order[]" value="<?= htmlReady($image->getId()) ?>">
<label for="delete_image_<?= htmlReady($image->getId()) ?>"> <label for="delete_image_<?= htmlReady($image->getId()) ?>">
<?= Assets::img("icons/20/blue/trash", array('style' => "cursor: pointer;")) ?> <?= Assets::img("icons/20/blue/trash", array('style' => "cursor: pointer;")) ?>
......
<form method="post" action="<?= $controller->url_for('myplugins/delete/' . $marketplugin->getId()) ?>">
<?= CSRFProtection::tokenTag() ?>
<p><?= sprintf(_('Soll das Plugin %s wirklich unwiederruflich gelscht werden?'), htmlReady($marketplugin->name)) ?></p>
<div data-dialog-button>
<?= \Studip\Button::create(_('Endgltig lschen'), 'delete') ?>
</div>
</form>
\ No newline at end of file
<form action="<?= $controller->url_for('myplugins/save') ?>" method="post" class="studip_form" enctype="multipart/form-data"> <form action="<?= $controller->url_for('myplugins/save') ?>" method="post" class="default" enctype="multipart/form-data">
<input type="hidden" name="id" value="<?= $marketplugin->getId() ?>"> <input type="hidden" name="id" value="<?= $marketplugin->getId() ?>">
<fieldset> <fieldset>
<legend> <legend>
......
<form action="<?= $controller->url_for('myplugins/save') ?>" method="post" enctype="multipart/form-data" class="studip_form"> <form action="<?= $controller->url_for('myplugins/save') ?>" method="post" enctype="multipart/form-data" class="default">
<input type="hidden" name="id" value="<?= $marketplugin->getId() ?>"> <input type="hidden" name="id" value="<?= $marketplugin->getId() ?>">
<?= $this->render_partial("myplugins/_edit_images.php", compact("marketplugin")) ?> <?= $this->render_partial("myplugins/_edit_images.php", compact("marketplugin")) ?>
......
<form action="<?= $controller->url_for('myplugins/save_release') ?>" method="post" class="studip_form" enctype="multipart/form-data"> <form action="<?= $controller->url_for('myplugins/save_release') ?>" method="post" class="default" enctype="multipart/form-data">
<input type="hidden" name="id" value="<?= $release->getId() ?>"> <input type="hidden" name="id" value="<?= $release->getId() ?>">
<input type="hidden" name="plugin_id" value="<?= $marketplugin->getId() ?>"> <input type="hidden" name="plugin_id" value="<?= $marketplugin->getId() ?>">
<?= $this->render_partial("myplugins/_edit_release.php", array('release' => $release)) ?> <?= $this->render_partial("myplugins/_edit_release.php", array('release' => $release)) ?>
......
...@@ -30,7 +30,9 @@ if ($icon) { ...@@ -30,7 +30,9 @@ if ($icon) {
<ol id="pluginmarket_galery_view" class="pluginmarket_galery"> <ol id="pluginmarket_galery_view" class="pluginmarket_galery">
<? foreach ($marketplugin->images as $image) : ?> <? foreach ($marketplugin->images as $image) : ?>
<div class="image"> <div class="image">
<img src="<?= htmlReady($image->getURL()) ?>"> <a href="<?= htmlReady($image->getURL()) ?>" data-lightbox="plugin_gallery">
<img src="<?= htmlReady($image->getURL()) ?>">
</a>
</div> </div>
<? endforeach ?> <? endforeach ?>
<? if ($marketplugin->isWritable()) : ?> <? if ($marketplugin->isWritable()) : ?>
...@@ -293,16 +295,11 @@ if ($icon) { ...@@ -293,16 +295,11 @@ if ($icon) {
<div style="text-align: center"> <div style="text-align: center">
<? if ($marketplugin->isWritable()) : ?> <? if ($marketplugin->isWritable()) : ?>
<?= \Studip\LinkButton::create(_("Plugin lschen"), PluginEngine::getURL($plugin, array(), 'myplugins/delete/' . $marketplugin->getId()), array('data-dialog' => 1)) ?>
<?= \Studip\LinkButton::create(_("bearbeiten"), PluginEngine::getURL($plugin, array(), "myplugins/edit/" . $marketplugin->getId()), array('data-dialog' => 1)) ?> <?= \Studip\LinkButton::create(_("bearbeiten"), PluginEngine::getURL($plugin, array(), "myplugins/edit/" . $marketplugin->getId()), array('data-dialog' => 1)) ?>
<?= \Studip\LinkButton::create(_("Release hinzufgen"), PluginEngine::getURL($plugin, array(), "myplugins/add_release/" . $marketplugin->getId()), array('data-dialog' => 1)) ?> <?= \Studip\LinkButton::create(_("Release hinzufgen"), PluginEngine::getURL($plugin, array(), "myplugins/add_release/" . $marketplugin->getId()), array('data-dialog' => 1)) ?>
<? endif ?> <? endif ?>
<? if ($marketplugin['user_id'] !== $GLOBALS['user']->id) : ?> <? if ($marketplugin['user_id'] !== $GLOBALS['user']->id) : ?>
<?= \Studip\LinkButton::create(_("Plugin abonnieren"), PluginEngine::getURL($plugin, array(), "presenting/register_for_pluginnews/" . $marketplugin->getId()), array('title' => _("Neuigkeiten des Plugins per Nachricht bekommen."), 'data-dialog' => "1")) ?> <?= \Studip\LinkButton::create(_("Plugin abonnieren"), PluginEngine::getURL($plugin, array(), "presenting/register_for_pluginnews/" . $marketplugin->getId()), array('title' => _("Neuigkeiten des Plugins per Nachricht bekommen."), 'data-dialog' => "1")) ?>
<? endif ?> <? endif ?>
<? if ($marketplugin->isRootable()) : ?>
<form action="?" method="post" style="display: inline-block; margin: 0px;">
<input type="hidden" name="plugin_id" value="<?= htmlReady($marketplugin->getId()) ?>">
<?= \Studip\Button::create(_("Lschen"), "delete_plugin", array('onclick' => "return window.confirm('"._("Plugin wirklich unwiderrufbar lschen?")."');")) ?>
</form>
<? endif ?>
</div> </div>
<? foreach (PageLayout::getMessages() as $message) : ?> <? foreach (PageLayout::getMessages() as $message) : ?>
<?= $message ?> <?= $message ?>
<? endforeach ?> <? endforeach ?>
<form action="<?= $controller->url_for('presenting/follow_release/' . $release->getId()) ?>" method="post" data-dialog class="studip_form"> <form action="<?= $controller->url_for('presenting/follow_release/' . $release->getId()) ?>" method="post" data-dialog class="default">
<p class="info"> <p class="info">
<?= _("Immer aktuell bleiben mit automatischen Updates! Sie finden in Ihrem eigenen Stud.IP in der Pluginverwaltung rechts neben dem Plugin ein Icon, das Sie zu einem Popup führt. Geben Sie dort die unten stehende Download-URL ein und geben Sie hier die URL ein, die Sie danach dort in Ihrer Pluginverwaltung sehen. Sind beide Systeme korrekt konfiguriert, wird der Marktplatz dann eine jede neue Version dieses Releases automatisch in ihrem Stud.IP installieren.") ?> <?= _("Immer aktuell bleiben mit automatischen Updates! Sie finden in Ihrem eigenen Stud.IP in der Pluginverwaltung rechts neben dem Plugin ein Icon, das Sie zu einem Popup führt. Geben Sie dort die unten stehende Download-URL ein und geben Sie hier die URL ein, die Sie danach dort in Ihrer Pluginverwaltung sehen. Sind beide Systeme korrekt konfiguriert, wird der Marktplatz dann eine jede neue Version dieses Releases automatisch in ihrem Stud.IP installieren.") ?>
</p> </p>
......
<form class="studip_form" method="post" action="<?= $controller->url_for('presenting/propose_usage/' . $plugin->id) ?>"> <form class="default" method="post" action="<?= $controller->url_for('presenting/propose_usage/' . $plugin->id) ?>">
<fieldset> <fieldset>
<?= CSRFProtection::tokenTag(); ?> <?= CSRFProtection::tokenTag(); ?>
<legend><?= sprintf(_('Pluginnutzung mitteilen fr %s'), htmlReady($plugin->name)) ?></legend> <legend><?= sprintf(_('Pluginnutzung mitteilen fr %s'), htmlReady($plugin->name)) ?></legend>
......
<form action="<?= $controller->url_for('presenting/save_review/' . $review['plugin_id']) ?>" method="post" class="studip_form"> <form action="<?= $controller->url_for('presenting/save_review/' . $review['plugin_id']) ?>" method="post" class="default">
<fieldset> <fieldset>
<legend> <legend>
<?= _("Bewertung") ?> <?= _("Bewertung") ?>
......
<h2><?= _("Erstellen von Siderbar-Grafiken") ?></h2> <h2><?= _("Erstellen von Sidebar-Grafiken") ?></h2>
<table> <table>
<tbody> <tbody>
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<td><input type="color" id="color" value="#24437c" onChange="STUDIP.SidebarGraphicsGenerator.drawImage();"></td> <td><input type="color" id="color" value="#24437c" onChange="STUDIP.SidebarGraphicsGenerator.drawImage();"></td>
</tr> </tr>
<tr> <tr>
<td><label for="localicon"><?= _("Bilddatei (SVG, quadratisch, wei)") ?></label></td> <td><label for="localicon"><?= _("Bilddatei (SVG, quadratisch, weiß)") ?></label></td>
<td><input type="file" id="localicon" onChange="STUDIP.SidebarGraphicsGenerator.setFile(this); return false;"></td> <td><input type="file" id="localicon" onChange="STUDIP.SidebarGraphicsGenerator.setFile(this); return false;"></td>
</tr> </tr>
<tr style="display: none;"> <tr style="display: none;">
...@@ -31,4 +31,4 @@ ...@@ -31,4 +31,4 @@
<?= Assets::img("icons/16/blue/download") ?> <?= Assets::img("icons/16/blue/download") ?>
<?= _("Speichern unter ...") ?> <?= _("Speichern unter ...") ?>
</a> </a>
</div> </div>
\ No newline at end of file
<p>
<?= sprintf(_('%s Benutzungen eingetragen'), $done) ?>
</p>
\ No newline at end of file
<form class="studip_form" method="post" action="<?= PluginEngine::getLink($plugin, array(), 'update/save_usage/') ?>">
<fieldset>
<legend>
<?= _('Pluginnutzung') ?>
</legend>
<fieldset>
<legend>
<?= _('Plugins') ?>
</legend>
<? foreach ($plugins as $plugin): ?>
<label>
<input type="checkbox" name="plugins[]" value="<?= $plugin->id ?>" checked>
<?= htmlReady($plugin->name); ?>
</label>
<? endforeach; ?>
</fieldset>
<label>
<?= _('In Benutzung bei') ?>
<input type="text" name="tag" value="<?= htmlReady($mostlikely) ?>">
</label>
<?= Studip\Button::create(_('Eintragen')) ?>
</fieldset>
</form>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment