@@ -40,7 +40,7 @@
{assign var="_duration" value=$i.duration}
{niceTime in=$_duration} |
- {if $_PL_activeId == $i.id}
+ {if $i.type == 'playlist' && $PL->isAvailable($i.id) == false}
{else}
diff --git a/src/modules/storageServer/var/BasicStor.php b/src/modules/storageServer/var/BasicStor.php
index 28ef99779..cb69d9a36 100644
--- a/src/modules/storageServer/var/BasicStor.php
+++ b/src/modules/storageServer/var/BasicStor.php
@@ -1173,14 +1173,12 @@ class BasicStor {
}
$sql = "SELECT * FROM ((".$plSelect."PL.id, 'playlist' AS ftype
- FROM ".$CC_CONFIG["playListTable"]." AS PL,
- (SELECT playlist_id AS id, text(SUM(cliplength)) AS length
- FROM ".$CC_CONFIG["playListContentsTable"]." group by playlist_id) AS T
- WHERE PL.id = T.id)
-
+ FROM ".$CC_CONFIG["playListTable"]." AS PL
+ LEFT JOIN ".$CC_CONFIG['playListTimeView']." PLT ON PL.id = PLT.id)
+
UNION
- ".$fileSelect."id, ftype FROM " .$CC_CONFIG["filesTable"].") AS Content ";
+ (".$fileSelect."id, ftype FROM ".$CC_CONFIG["filesTable"]." AS FILES)) AS RESULTS ";
$sql .= $whereClause;
@@ -1188,7 +1186,7 @@ class BasicStor {
$sql .= " ORDER BY ".join(",", $orderBySql);
}
- $_SESSION["br"] = $sql;
+ //$_SESSION["br"] = $sql;
$res = $CC_DBC->getAll($sql);
if (PEAR::isError($res)) {
@@ -1199,6 +1197,7 @@ class BasicStor {
}
$count = count($res);
+ $_SESSION["br"] .= " COUNT: ".$count;
$res = array_slice($res, $offset != 0 ? $offset : 0, $limit != 0 ? $limit : 10);
@@ -1295,10 +1294,12 @@ class BasicStor {
else if ($category === "dcterms:extent") {
$columnName = $pl_cat[$category];
- $sql = "SELECT DISTINCT SUM(cliplength) AS $columnName FROM ".$CC_CONFIG["playListContentsTable"]." GROUP BY playlist_id";
$limitPart = ($limit != 0 ? " LIMIT $limit" : '' ).
($offset != 0 ? " OFFSET $offset" : '' );
- $countRowsSql = "SELECT COUNT(DISTINCT SUM(cliplength)) FROM ".$CC_CONFIG["playListContentsTable"]." GROUP BY playlist_id";
+
+ $sql = "SELECT DISTINCT length AS $columnName FROM ".$CC_CONFIG["playListTimeView"];
+
+ $countRowsSql = "SELECT COUNT(DISTINCT length) FROM ".$CC_CONFIG["playListTimeView"];
$pl_cnt = $CC_DBC->GetOne($countRowsSql);
if (PEAR::isError($cnt)) {
diff --git a/src/modules/storageServer/var/conf.php b/src/modules/storageServer/var/conf.php
index fe984b5cb..7194f95cb 100644
--- a/src/modules/storageServer/var/conf.php
+++ b/src/modules/storageServer/var/conf.php
@@ -127,6 +127,7 @@ $CC_CONFIG['prefTable'] = $CC_CONFIG['tblNamePrefix'].'pref';
//$CC_CONFIG['playlogTable'] = $CC_CONFIG['tblNamePrefix'].'playlog';
$CC_CONFIG['scheduleTable'] = $CC_CONFIG['tblNamePrefix'].'schedule';
$CC_CONFIG['backupTable'] = $CC_CONFIG['tblNamePrefix'].'backup';
+$CC_CONFIG['playListTimeView'] = $CC_CONFIG['tblNamePrefix'].'playlisttimes';
$CC_CONFIG['playListSequence'] = $CC_CONFIG['playListTable'].'_id';
$CC_CONFIG['filesSequence'] = $CC_CONFIG['filesTable'].'_id';
diff --git a/src/modules/storageServer/var/install/install.php b/src/modules/storageServer/var/install/install.php
index f6e897e5e..6b67cc6c7 100644
--- a/src/modules/storageServer/var/install/install.php
+++ b/src/modules/storageServer/var/install/install.php
@@ -308,7 +308,18 @@ if (!camp_db_table_exists($CC_CONFIG['playListContentsTable'])) {
LANGUAGE 'plpgsql';
CREATE TRIGGER calculate_position AFTER INSERT OR DELETE ON ".$CC_CONFIG['playListContentsTable']."
- FOR EACH ROW EXECUTE PROCEDURE calculate_position();";
+ FOR EACH ROW EXECUTE PROCEDURE calculate_position();
+
+ CREATE OR REPLACE VIEW cc_playlisttimes AS (
+ SELECT PL.id, COALESCE(T.length, '00:00:00') AS length
+ from ".$CC_CONFIG['playListTable']." AS PL LEFT JOIN
+ (SELECT playlist_id AS id, text(SUM(cliplength)) AS length
+ FROM ".$CC_CONFIG['playListContentsTable']." GROUP BY playlist_id) AS T
+
+ ON PL.id = T.id
+ );
+
+ ";
camp_install_query($sql);
|