summaryrefslogtreecommitdiffstats
path: root/settings
diff options
context:
space:
mode:
authorLukas Reschke <lukas@statuscode.ch>2013-01-31 08:30:55 -0800
committerLukas Reschke <lukas@statuscode.ch>2013-01-31 08:30:55 -0800
commitb471177439ec7550fecae61d6218ac456a6e208c (patch)
tree33d988aa7b72da9eb2372ed0c3ac4ed3328c20f4 /settings
parent0dd9e6cb12beb58d07fc81d5d70f4b25262b9e4b (diff)
parent85a12970c7a593a99016353fd66bd5270b013498 (diff)
downloadnextcloud-server-b471177439ec7550fecae61d6218ac456a6e208c.tar.gz
nextcloud-server-b471177439ec7550fecae61d6218ac456a6e208c.zip
Merge pull request #1379 from owncloud/improved_appsmanagement
Improved appsmanagement
Diffstat (limited to 'settings')
-rw-r--r--settings/ajax/apps/ocs.php8
-rw-r--r--settings/ajax/updateapp.php17
-rw-r--r--settings/apps.php9
-rw-r--r--settings/css/settings.css3
-rw-r--r--settings/js/apps.js30
-rw-r--r--settings/routes.php2
-rw-r--r--settings/templates/apps.php7
7 files changed, 68 insertions, 8 deletions
diff --git a/settings/ajax/apps/ocs.php b/settings/ajax/apps/ocs.php
index 1ffba26ad1d..d0205a1ba34 100644
--- a/settings/ajax/apps/ocs.php
+++ b/settings/ajax/apps/ocs.php
@@ -44,6 +44,11 @@ if(is_array($catagoryNames)) {
} else {
$pre=$app['preview'];
}
+ if($app['label']=='recommended') {
+ $label='3rd Party App';
+ } else {
+ $label='Recommended';
+ }
$apps[]=array(
'name'=>$app['name'],
'id'=>$app['id'],
@@ -53,7 +58,8 @@ if(is_array($catagoryNames)) {
'license'=>$app['license'],
'preview'=>$pre,
'internal'=>false,
- 'internallabel'=>'3rd Party App',
+ 'internallabel'=>$label,
+ 'update'=>false,
);
}
}
diff --git a/settings/ajax/updateapp.php b/settings/ajax/updateapp.php
new file mode 100644
index 00000000000..77c0bbc3e36
--- /dev/null
+++ b/settings/ajax/updateapp.php
@@ -0,0 +1,17 @@
+<?php
+
+OC_JSON::checkAdminUser();
+OCP\JSON::callCheck();
+
+$appid = $_POST['appid'];
+
+$result = OC_Installer::updateApp($appid);
+if($result !== false) {
+ OC_JSON::success(array('data' => array('appid' => $appid)));
+} else {
+ $l = OC_L10N::get('settings');
+ OC_JSON::error(array("data" => array( "message" => $l->t("Couldn't update app.") )));
+}
+
+
+
diff --git a/settings/apps.php b/settings/apps.php
index b6426a31c97..4f8eba159c2 100644
--- a/settings/apps.php
+++ b/settings/apps.php
@@ -31,13 +31,13 @@ OC_App::setActiveNavigationEntry( "core_apps" );
function app_sort( $a, $b ) {
if ($a['active'] != $b['active']) {
-
+
return $b['active'] - $a['active'];
-
+
}
-
+
return strcmp($a['name'], $b['name']);
-
+
}
$combinedApps = OC_App::listAllApps();
@@ -52,3 +52,4 @@ $appid = (isset($_GET['appid'])?strip_tags($_GET['appid']):'');
$tmpl->assign('appid', $appid);
$tmpl->printPage();
+
diff --git a/settings/css/settings.css b/settings/css/settings.css
index 8fad055f2e6..35c7176d45e 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -50,10 +50,13 @@ li { color:#888; }
li.active { color:#000; }
small.externalapp { color:#FFF; background-color:#BBB; font-weight:bold; font-size: 0.6em; margin: 0; padding: 0.1em 0.2em; border-radius: 4px;}
small.externalapp.list { float: right; }
+small.recommendedapp { color:#FFF; background-color:#888; font-weight:bold; font-size: 0.6em; margin: 0; padding: 0.1em 0.2em; border-radius: 4px;}
+small.recommendedapp.list { float: right; }
span.version { margin-left:1em; margin-right:1em; color:#555; }
.app { position: relative; display: inline-block; padding: 0.2em 0 0.2em 0 !important; text-overflow: hidden; overflow: hidden; white-space: nowrap; /*transition: .2s max-width linear; -o-transition: .2s max-width linear; -moz-transition: .2s max-width linear; -webkit-transition: .2s max-width linear; -ms-transition: .2s max-width linear;*/ }
.app.externalapp { max-width: 12.5em; z-index: 100; }
+.app.recommendedapp { max-width: 12.5em; z-index: 100; }
/* Transition to complete width! */
.app:hover, .app:active { max-width: inherit; }
diff --git a/settings/js/apps.js b/settings/js/apps.js
index c4c36b4bb12..68a3fa54de7 100644
--- a/settings/js/apps.js
+++ b/settings/js/apps.js
@@ -24,6 +24,14 @@ OC.Settings.Apps = OC.Settings.Apps || {
page.find('span.author').text(app.author);
page.find('span.licence').text(app.licence);
+ if (app.update != false) {
+ page.find('input.update').show();
+ page.find('input.update').data('appid', app.id);
+ page.find('input.update').attr('value',t('settings', 'Update to {appversion}', {appversion:app.update}));
+ } else {
+ page.find('input.update').hide();
+ }
+
page.find('input.enable').show();
page.find('input.enable').val((app.active) ? t('settings', 'Disable') : t('settings', 'Enable'));
page.find('input.enable').data('appid', app.id);
@@ -44,6 +52,7 @@ OC.Settings.Apps = OC.Settings.Apps || {
appData = appitem.data('app');
appData.active = !active;
appitem.data('app', appData);
+ element.val(t('settings','Please wait....'));
if(active) {
$.post(OC.filePath('settings','ajax','disableapp.php'),{appid:appid},function(result) {
if(!result || result.status!='success') {
@@ -70,6 +79,20 @@ OC.Settings.Apps = OC.Settings.Apps || {
$('#leftcontent li[data-id="'+appid+'"]').addClass('active');
}
},
+ updateApp:function(appid, element) {
+ console.log('updateApp:', appid, element);
+ element.val(t('settings','Updateing....'));
+ $.post(OC.filePath('settings','ajax','updateapp.php'),{appid:appid},function(result) {
+ if(!result || result.status!='success') {
+ OC.dialogs.alert(t('settings','Error while updating app'),t('settings','Error'));
+ }
+ else {
+ element.val(t('settings','Updated'));
+ element.hide();
+ }
+ },'json');
+ },
+
insertApp:function(appdata) {
var applist = $('#leftcontent li');
var app =
@@ -154,6 +177,13 @@ $(document).ready(function(){
OC.Settings.Apps.enableApp(appid, active, element);
}
});
+ $('#rightcontent input.update').click(function(){
+ var element = $(this);
+ var appid=$(this).data('appid');
+ if(appid) {
+ OC.Settings.Apps.updateApp(appid, element);
+ }
+ });
if(appid) {
var item = $('#leftcontent li[data-id="'+appid+'"]');
diff --git a/settings/routes.php b/settings/routes.php
index 0a5b2fbfd38..0a8af0dde2b 100644
--- a/settings/routes.php
+++ b/settings/routes.php
@@ -53,6 +53,8 @@ $this->create('settings_ajax_enableapp', '/settings/ajax/enableapp.php')
->actionInclude('settings/ajax/enableapp.php');
$this->create('settings_ajax_disableapp', '/settings/ajax/disableapp.php')
->actionInclude('settings/ajax/disableapp.php');
+$this->create('settings_ajax_updateapp', '/settings/ajax/updateapp.php')
+ ->actionInclude('settings/ajax/updateapp.php');
$this->create('settings_ajax_navigationdetect', '/settings/ajax/navigationdetect.php')
->actionInclude('settings/ajax/navigationdetect.php');
$this->create('apps_custom', '/settings/js/apps-custom.js')
diff --git a/settings/templates/apps.php b/settings/templates/apps.php
index d418b9a66a1..3f0d2a9d1c6 100644
--- a/settings/templates/apps.php
+++ b/settings/templates/apps.php
@@ -7,7 +7,7 @@
<script type="text/javascript" src="<?php echo OC_Helper::linkTo('settings/js', 'apps.js');?>"></script>
<div id="controls">
- <a class="button" target="_blank" href="http://owncloud.org/dev/apps/getting-started/"><?php echo $l->t('Add your App');?></a>
+ <a class="button" target="_blank" href="http://owncloud.org/dev"><?php echo $l->t('Add your App');?></a>
<a class="button" target="_blank" href="http://apps.owncloud.com"><?php echo $l->t('More Apps');?></a>
</div>
<ul id="leftcontent" class="applist">
@@ -15,7 +15,7 @@
<li <?php if($app['active']) echo 'class="active"'?> data-id="<?php echo $app['id'] ?>" <?php if ( isset( $app['ocs_id'] ) ) { echo "data-id-ocs=\"{$app['ocs_id']}\""; } ?>
data-type="<?php echo $app['internal'] ? 'internal' : 'external' ?>" data-installed="1">
<a class="app<?php if(!$app['internal']) echo ' externalapp' ?>" href="?appid=<?php echo $app['id'] ?>"><?php echo htmlentities($app['name']) ?></a>
- <?php if(!$app['internal']) echo '<small class="externalapp list">3rd party</small>' ?>
+ <?php if(!$app['internal']) echo '<small class="'.$app['internalclass'].' list">'.$app['internallabel'].'</small>' ?>
</li>
<?php endforeach;?>
</ul>
@@ -28,5 +28,6 @@
<p class="appslink hidden"><a href="#" target="_blank"><?php echo $l->t('See application page at apps.owncloud.com');?></a></p>
<p class="license hidden"><?php echo $l->t('<span class="licence"></span>-licensed by <span class="author"></span>');?></p>
<input class="enable hidden" type="submit" />
+ <input class="update hidden" type="submit" value="<?php echo($l->t('Update')); ?>" />
</div>
-</div> \ No newline at end of file
+</div>