Merge pull request #6449 from owncloud/core-appsorderfix
Fixed apps loading order
This commit is contained in:
commit
efdeba7416
|
@ -166,20 +166,22 @@ class OC_App{
|
|||
* get all enabled apps
|
||||
*/
|
||||
private static $enabledAppsCache = array();
|
||||
public static function getEnabledApps() {
|
||||
public static function getEnabledApps($forceRefresh = false) {
|
||||
if(!OC_Config::getValue('installed', false)) {
|
||||
return array();
|
||||
}
|
||||
if(!empty(self::$enabledAppsCache)) {
|
||||
if(!$forceRefresh && !empty(self::$enabledAppsCache)) {
|
||||
return self::$enabledAppsCache;
|
||||
}
|
||||
$apps=array('files');
|
||||
$sql = 'SELECT `appid` FROM `*PREFIX*appconfig`'
|
||||
.' WHERE `configkey` = \'enabled\' AND `configvalue`=\'yes\'';
|
||||
. ' WHERE `configkey` = \'enabled\' AND `configvalue`=\'yes\''
|
||||
. ' ORDER BY `appid`';
|
||||
if (OC_Config::getValue( 'dbtype', 'sqlite' ) === 'oci') {
|
||||
//FIXME oracle hack: need to explicitly cast CLOB to CHAR for comparison
|
||||
$sql = 'SELECT `appid` FROM `*PREFIX*appconfig`'
|
||||
.' WHERE `configkey` = \'enabled\' AND to_char(`configvalue`)=\'yes\'';
|
||||
. ' WHERE `configkey` = \'enabled\' AND to_char(`configvalue`)=\'yes\''
|
||||
. ' ORDER BY `appid`';
|
||||
}
|
||||
$query = OC_DB::prepare( $sql );
|
||||
$result=$query->execute();
|
||||
|
|
|
@ -52,7 +52,7 @@ class OC_Appconfig {
|
|||
*/
|
||||
public static function getApps() {
|
||||
// No magic in here!
|
||||
$query = OC_DB::prepare('SELECT DISTINCT `appid` FROM `*PREFIX*appconfig`');
|
||||
$query = OC_DB::prepare('SELECT DISTINCT `appid` FROM `*PREFIX*appconfig` ORDER BY `appid`');
|
||||
$result = $query->execute();
|
||||
|
||||
$apps = array();
|
||||
|
|
|
@ -79,4 +79,17 @@ class Test_App extends PHPUnit_Framework_TestCase {
|
|||
$this->assertFalse(OC_App::isAppVersionCompatible($oc, $app));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that the app order is correct
|
||||
*/
|
||||
public function testGetEnabledAppsIsSorted() {
|
||||
$apps = \OC_App::getEnabledApps(true);
|
||||
// copy array
|
||||
$sortedApps = $apps;
|
||||
sort($sortedApps);
|
||||
// 'files' is always on top
|
||||
unset($sortedApps[array_search('files', $sortedApps)]);
|
||||
array_unshift($sortedApps, 'files');
|
||||
$this->assertEquals($sortedApps, $apps);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ class Test_Appconfig extends PHPUnit_Framework_TestCase {
|
|||
}
|
||||
|
||||
public function testGetApps() {
|
||||
$query = \OC_DB::prepare('SELECT DISTINCT `appid` FROM `*PREFIX*appconfig`');
|
||||
$query = \OC_DB::prepare('SELECT DISTINCT `appid` FROM `*PREFIX*appconfig` ORDER BY `appid`');
|
||||
$result = $query->execute();
|
||||
$expected = array();
|
||||
while ($row = $result->fetchRow()) {
|
||||
|
|
Loading…
Reference in New Issue