1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-03 01:39:24 +02:00

Merge remote-tracking branch 'origin/master' into julzxcapz-yp

This commit is contained in:
Julius 2023-07-24 13:46:51 +00:00
commit e97ef28c31
29 changed files with 2982 additions and 4340 deletions

24
composer.lock generated
View file

@ -281,16 +281,16 @@
}, },
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
"version": "3.275.7", "version": "3.276.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/aws/aws-sdk-php.git", "url": "https://github.com/aws/aws-sdk-php.git",
"reference": "54dcef3349c81b46c0f5f6e54b5f9bfb5db19903" "reference": "c8b38cfab677a3ec98e3f40bccd1a2bf851a014f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/54dcef3349c81b46c0f5f6e54b5f9bfb5db19903", "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/c8b38cfab677a3ec98e3f40bccd1a2bf851a014f",
"reference": "54dcef3349c81b46c0f5f6e54b5f9bfb5db19903", "reference": "c8b38cfab677a3ec98e3f40bccd1a2bf851a014f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -370,9 +370,9 @@
"support": { "support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues", "issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.275.7" "source": "https://github.com/aws/aws-sdk-php/tree/3.276.3"
}, },
"time": "2023-07-13T18:21:04+00:00" "time": "2023-07-21T18:30:18+00:00"
}, },
{ {
"name": "brick/math", "name": "brick/math",
@ -3988,16 +3988,16 @@
}, },
{ {
"name": "stripe/stripe-php", "name": "stripe/stripe-php",
"version": "v10.17.0", "version": "v10.18.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/stripe/stripe-php.git", "url": "https://github.com/stripe/stripe-php.git",
"reference": "73383b44de153f4d602b90dad3ef075259bcecef" "reference": "c32549e443a619d1b885b99d624568ecae82d6a0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/stripe/stripe-php/zipball/73383b44de153f4d602b90dad3ef075259bcecef", "url": "https://api.github.com/repos/stripe/stripe-php/zipball/c32549e443a619d1b885b99d624568ecae82d6a0",
"reference": "73383b44de153f4d602b90dad3ef075259bcecef", "reference": "c32549e443a619d1b885b99d624568ecae82d6a0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4043,9 +4043,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/stripe/stripe-php/issues", "issues": "https://github.com/stripe/stripe-php/issues",
"source": "https://github.com/stripe/stripe-php/tree/v10.17.0" "source": "https://github.com/stripe/stripe-php/tree/v10.18.0"
}, },
"time": "2023-07-13T22:12:18+00:00" "time": "2023-07-20T16:59:49+00:00"
}, },
{ {
"name": "symfony/console", "name": "symfony/console",

File diff suppressed because it is too large Load diff

View file

@ -1648,9 +1648,10 @@ if (!class_exists('Video')) {
$created = !empty($_POST['sort']['v.created']) ? $_POST['sort']['v.created'] : $_POST['sort']['created']; $created = !empty($_POST['sort']['v.created']) ? $_POST['sort']['v.created'] : $_POST['sort']['created'];
unset($_POST['sort']); unset($_POST['sort']);
$_POST['sort'] = array(); $_POST['sort'] = array();
if(strtoupper($created) === 'DESC'){
$_POST['sort']['v.`order`'] = 'IS NOT NULL DESC'; $_POST['sort']['v.`order`'] = 'IS NOT NULL DESC';
$_POST['sort']['`order`'] = 'ASC'; $_POST['sort']['`order`'] = 'ASC';
}
$_POST['sort']['v.created'] = $created; $_POST['sort']['v.created'] = $created;
} }
@ -1700,7 +1701,7 @@ if (!class_exists('Video')) {
} }
} }
//echo $sql;//var_dump($_REQUEST['doNotShowCatChilds']);exit; //echo $sql;//exit;
//_error_log("getAllVideos($status, $showOnlyLoggedUserVideos , $ignoreGroup , ". json_encode($videosArrayId).")" . $sql); //_error_log("getAllVideos($status, $showOnlyLoggedUserVideos , $ignoreGroup , ". json_encode($videosArrayId).")" . $sql);
$timeLogName = TimeLogStart("video::getAllVideos"); $timeLogName = TimeLogStart("video::getAllVideos");

View file

@ -63,7 +63,19 @@ if ($seconds_watching_video < 0) {
$seconds_watching_video = 0; $seconds_watching_video = 0;
} }
// Comparison and update
$current_time = time();
if (isset($_SESSION['addViewCount'][$_REQUEST['id']]['last_update_time'])) {
$elapsed_time = $current_time - $_SESSION['addViewCount'][$_REQUEST['id']]['last_update_time'];
if ($seconds_watching_video > $elapsed_time) {
$seconds_watching_video = $elapsed_time;
}
}
$_SESSION['addViewCount'][$_REQUEST['id']]['last_update_time'] = $current_time;
$obj2->seconds_watching_video = $seconds_watching_video; $obj2->seconds_watching_video = $seconds_watching_video;
if (empty($_SESSION['addViewCount'][$_REQUEST['id']]['time'])) { if (empty($_SESSION['addViewCount'][$_REQUEST['id']]['time'])) {
//_error_log("videos_statistics addView {$_REQUEST['id']} {$_SERVER['HTTP_USER_AGENT']} ".json_encode($_SESSION['addViewCount'])); //_error_log("videos_statistics addView {$_REQUEST['id']} {$_SERVER['HTTP_USER_AGENT']} ".json_encode($_SESSION['addViewCount']));
$resp = $obj->addView(); $resp = $obj->addView();

View file

@ -20,6 +20,6 @@ Video::resetOrder();
foreach ($_REQUEST['videos'] as $key => $value) { foreach ($_REQUEST['videos'] as $key => $value) {
$obj->responses[] = Video::updateOrder($value['videos_id'], $value['order']); $obj->responses[] = Video::updateOrder($value['videos_id'], $value['order']);
} }
$obj->error = empty($obj->responses); $obj->error = empty($obj->responses) && !empty($_REQUEST['videos']);
mysqlCommit(); mysqlCommit();
echo json_encode($obj); echo json_encode($obj);

View file

@ -22,6 +22,7 @@ class VideoStatistic extends ObjectYPT {
protected $seconds_watching_video; protected $seconds_watching_video;
protected $json; protected $json;
protected $rewarded; protected $rewarded;
protected $created_php_time;
public static function getSearchFieldsNames() { public static function getSearchFieldsNames() {
return ['json', 'ip', 'when', 'user', 'name', 'email', 'channelName']; return ['json', 'ip', 'when', 'user', 'name', 'email', 'channelName'];
@ -105,6 +106,10 @@ class VideoStatistic extends ObjectYPT {
$vs->setWhen(date("Y-m-d h:i:s")); $vs->setWhen(date("Y-m-d h:i:s"));
} else { } else {
$vs = new VideoStatistic($lastStatistic['id']); $vs = new VideoStatistic($lastStatistic['id']);
$elapsedTime = time() - $vs->created_php_time;
if ($seconds_watching_video > $elapsedTime) {
$seconds_watching_video = $elapsedTime;
}
} }
$vs->setLastVideoTime($lastVideoTime); $vs->setLastVideoTime($lastVideoTime);
$vs->setIp(getRealIpAddr()); $vs->setIp(getRealIpAddr());

289
package-lock.json generated
View file

@ -16,7 +16,7 @@
"flickity": "^3.0.0", "flickity": "^3.0.0",
"flickity-bg-lazyload": "^2.0.0", "flickity-bg-lazyload": "^2.0.0",
"fontawesome-free": "^1.0.4", "fontawesome-free": "^1.0.4",
"hls.js": "^1.4.9", "hls.js": "^1.4.10",
"infinite-scroll": "^4.0.1", "infinite-scroll": "^4.0.1",
"inputmask": "^5.0.8", "inputmask": "^5.0.8",
"jquery": "^3.7.0", "jquery": "^3.7.0",
@ -32,13 +32,13 @@
"p2p-media-loader-hlsjs": "^0.6.2", "p2p-media-loader-hlsjs": "^0.6.2",
"pouchdb": "^8.0.0", "pouchdb": "^8.0.0",
"sweetalert": "^2.1.2", "sweetalert": "^2.1.2",
"tinymce": "^6.4.2", "tinymce": "^6.6.0",
"tinymce-langs": "^1.0.0", "tinymce-langs": "^1.0.0",
"video.js": "^8.3.0", "video.js": "^8.3.0",
"videojs-contrib-ads": "^7.2.0", "videojs-contrib-ads": "^7.3.2",
"videojs-contrib-quality-levels": "^4.0.0", "videojs-contrib-quality-levels": "^4.0.0",
"videojs-font": "^4.1.0", "videojs-font": "^4.1.0",
"videojs-ima": "^2.1.0", "videojs-ima": "^2.2.0",
"videojs-landscape-fullscreen": "^11.1111.0", "videojs-landscape-fullscreen": "^11.1111.0",
"videojs-overlay": "^3.1.0", "videojs-overlay": "^3.1.0",
"videojs-playlist": "^5.1.0", "videojs-playlist": "^5.1.0",
@ -801,9 +801,9 @@
} }
}, },
"node_modules/hls.js": { "node_modules/hls.js": {
"version": "1.4.9", "version": "1.4.10",
"resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.4.9.tgz", "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.4.10.tgz",
"integrity": "sha512-i2BuNh7C7sd+wpW1V9p+P37KKCWNc6Ph/3BiPr+8nfJ7eZdtQQvSQUn2QwKU+7Fvc7b5BpS/lM6RJ3LUf+XbWg==" "integrity": "sha512-wAVSj4Fm2MqOHy5+BlYnlKxXvJlv5IuZHjlzHu18QmjRzSDFQiUDWdHs5+NsFMQrgKEBwuWDcyvaMC9dUzJ5Uw=="
}, },
"node_modules/ieee754": { "node_modules/ieee754": {
"version": "1.2.1", "version": "1.2.1",
@ -1731,9 +1731,9 @@
} }
}, },
"node_modules/tinymce": { "node_modules/tinymce": {
"version": "6.4.2", "version": "6.6.0",
"resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.4.2.tgz", "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.6.0.tgz",
"integrity": "sha512-te+4c8PoAwTKPMBQtMQehnSZlOO9Ay5tDgaRFJKBehYb6SlX2PYZ0v3oe/cmiv5EfqdwZLkEMXk2MNOeApZZLg==" "integrity": "sha512-b9Mb7z8ryFOwLm8WCmlpwzdgOt1xD1u5Jjdh68B4QjkIyTLyHRBsfsrbiCUGonnVTymDlkexPkaP8sj24zexKQ=="
}, },
"node_modules/tinymce-langs": { "node_modules/tinymce-langs": {
"version": "1.0.0", "version": "1.0.0",
@ -1911,9 +1911,9 @@
} }
}, },
"node_modules/videojs-contrib-ads": { "node_modules/videojs-contrib-ads": {
"version": "7.2.0", "version": "7.3.2",
"resolved": "https://registry.npmjs.org/videojs-contrib-ads/-/videojs-contrib-ads-7.2.0.tgz", "resolved": "https://registry.npmjs.org/videojs-contrib-ads/-/videojs-contrib-ads-7.3.2.tgz",
"integrity": "sha512-5DAO8BpD4mm/xKCGm4JhmIkjYOC+TByiO0XXInoc981Gr71xcFpO2wxPHMFrojhKROmYGWnYKcLsKNMkvYOWHg==", "integrity": "sha512-O5zSqP9GePr8XDUgCKQoRdDr5dUX5GEbNx7s2R7LC/Pxn8L10x3RNCrijzO56bli7Vr5wAlTJgAk1dR5lqQ44A==",
"dependencies": { "dependencies": {
"global": "^4.3.2" "global": "^4.3.2"
}, },
@ -1946,143 +1946,22 @@
"integrity": "sha512-X1LuPfLZPisPLrANIAKCknZbZu5obVM/ylfd1CN+SsCmPZQ3UMDPcvLTpPBJxcBuTpHQq2MO1QCFt7p8spnZ/w==" "integrity": "sha512-X1LuPfLZPisPLrANIAKCknZbZu5obVM/ylfd1CN+SsCmPZQ3UMDPcvLTpPBJxcBuTpHQq2MO1QCFt7p8spnZ/w=="
}, },
"node_modules/videojs-ima": { "node_modules/videojs-ima": {
"version": "2.1.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/videojs-ima/-/videojs-ima-2.1.0.tgz", "resolved": "https://registry.npmjs.org/videojs-ima/-/videojs-ima-2.2.0.tgz",
"integrity": "sha512-Zb+J4by0d4FbserGOiSbdNo0U4vXSDuiPVCKFMksbaj4DO3mC8IpmvZ9Vci3tUwOhb/ladmUdhif9euSwq92Sw==", "integrity": "sha512-VKg7mZsaiW89ko2Sjfz/sDcCbCTjj2OAkg8CakvCs9ZiVg20g6QYVtEWj249V/HTm0/1X01GEPk9hnIrRzgd+A==",
"dependencies": { "dependencies": {
"@hapi/cryptiles": "^5.1.0", "@hapi/cryptiles": "^5.1.0",
"can-autoplay": "^3.0.2", "can-autoplay": "^3.0.2",
"extend": ">=3.0.2", "extend": ">=3.0.2",
"videojs-contrib-ads": "^6.9.0" "videojs-contrib-ads": "^6.9.0 || ^7"
}, },
"engines": { "engines": {
"node": ">=0.8.0" "node": ">=0.8.0"
}, },
"peerDependencies": { "peerDependencies": {
"video.js": "^5.19.2 || ^6 || ^7" "video.js": "^5.19.2 || ^6 || ^7 || ^8"
} }
}, },
"node_modules/videojs-ima/node_modules/@videojs/http-streaming": {
"version": "2.16.2",
"resolved": "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-2.16.2.tgz",
"integrity": "sha512-etPTUdCFu7gUWc+1XcbiPr+lrhOcBu3rV5OL1M+3PDW89zskScAkkcdqYzP4pFodBPye/ydamQoTDScOnElw5A==",
"dependencies": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "3.0.5",
"aes-decrypter": "3.1.3",
"global": "^4.4.0",
"m3u8-parser": "4.8.0",
"mpd-parser": "^0.22.1",
"mux.js": "6.0.1",
"video.js": "^6 || ^7"
},
"engines": {
"node": ">=8",
"npm": ">=5"
},
"peerDependencies": {
"video.js": "^6 || ^7"
}
},
"node_modules/videojs-ima/node_modules/@videojs/http-streaming/node_modules/video.js": {
"version": "7.21.4",
"resolved": "https://registry.npmjs.org/video.js/-/video.js-7.21.4.tgz",
"integrity": "sha512-R5e57M/5uqxQMQpFpybNbd8GtiRwFJPqkHjrhv0QTJ2tqnesbjETbck5kU5dhFr1FevsJRFhjBG4hAnvRGnXbw==",
"dependencies": {
"@babel/runtime": "^7.12.5",
"@videojs/http-streaming": "2.16.2",
"@videojs/vhs-utils": "^3.0.4",
"@videojs/xhr": "2.6.0",
"aes-decrypter": "3.1.3",
"global": "^4.4.0",
"keycode": "^2.2.0",
"m3u8-parser": "4.8.0",
"mpd-parser": "0.22.1",
"mux.js": "6.0.1",
"safe-json-parse": "4.0.0",
"videojs-font": "3.2.0",
"videojs-vtt.js": "^0.15.4"
}
},
"node_modules/videojs-ima/node_modules/aes-decrypter": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-3.1.3.tgz",
"integrity": "sha512-VkG9g4BbhMBy+N5/XodDeV6F02chEk9IpgRTq/0bS80y4dzy79VH2Gtms02VXomf3HmyRe3yyJYkJ990ns+d6A==",
"dependencies": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.5",
"global": "^4.4.0",
"pkcs7": "^1.0.4"
}
},
"node_modules/videojs-ima/node_modules/mpd-parser": {
"version": "0.22.1",
"resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-0.22.1.tgz",
"integrity": "sha512-fwBebvpyPUU8bOzvhX0VQZgSohncbgYwUyJJoTSNpmy7ccD2ryiCvM7oRkn/xQH5cv73/xU7rJSNCLjdGFor0Q==",
"dependencies": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.5",
"@xmldom/xmldom": "^0.8.3",
"global": "^4.4.0"
},
"bin": {
"mpd-to-m3u8-json": "bin/parse.js"
}
},
"node_modules/videojs-ima/node_modules/mux.js": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/mux.js/-/mux.js-6.0.1.tgz",
"integrity": "sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w==",
"dependencies": {
"@babel/runtime": "^7.11.2",
"global": "^4.4.0"
},
"bin": {
"muxjs-transmux": "bin/transmux.js"
},
"engines": {
"node": ">=8",
"npm": ">=5"
}
},
"node_modules/videojs-ima/node_modules/videojs-contrib-ads": {
"version": "6.9.0",
"resolved": "https://registry.npmjs.org/videojs-contrib-ads/-/videojs-contrib-ads-6.9.0.tgz",
"integrity": "sha512-nzKz+jhCGMTYffSNVYrmp9p70s05v6jUMOY3Z7DpVk3iFrWK4Zi/BIkokDWrMoHpKjdmCdKzfJVBT+CrUj6Spw==",
"dependencies": {
"global": "^4.3.2",
"video.js": "^6 || ^7"
},
"engines": {
"node": ">=8",
"npm": ">=5"
}
},
"node_modules/videojs-ima/node_modules/videojs-contrib-ads/node_modules/video.js": {
"version": "7.21.4",
"resolved": "https://registry.npmjs.org/video.js/-/video.js-7.21.4.tgz",
"integrity": "sha512-R5e57M/5uqxQMQpFpybNbd8GtiRwFJPqkHjrhv0QTJ2tqnesbjETbck5kU5dhFr1FevsJRFhjBG4hAnvRGnXbw==",
"dependencies": {
"@babel/runtime": "^7.12.5",
"@videojs/http-streaming": "2.16.2",
"@videojs/vhs-utils": "^3.0.4",
"@videojs/xhr": "2.6.0",
"aes-decrypter": "3.1.3",
"global": "^4.4.0",
"keycode": "^2.2.0",
"m3u8-parser": "4.8.0",
"mpd-parser": "0.22.1",
"mux.js": "6.0.1",
"safe-json-parse": "4.0.0",
"videojs-font": "3.2.0",
"videojs-vtt.js": "^0.15.4"
}
},
"node_modules/videojs-ima/node_modules/videojs-font": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-3.2.0.tgz",
"integrity": "sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA=="
},
"node_modules/videojs-landscape-fullscreen": { "node_modules/videojs-landscape-fullscreen": {
"version": "11.1111.0", "version": "11.1111.0",
"resolved": "https://registry.npmjs.org/videojs-landscape-fullscreen/-/videojs-landscape-fullscreen-11.1111.0.tgz", "resolved": "https://registry.npmjs.org/videojs-landscape-fullscreen/-/videojs-landscape-fullscreen-11.1111.0.tgz",
@ -2805,9 +2684,9 @@
} }
}, },
"hls.js": { "hls.js": {
"version": "1.4.9", "version": "1.4.10",
"resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.4.9.tgz", "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.4.10.tgz",
"integrity": "sha512-i2BuNh7C7sd+wpW1V9p+P37KKCWNc6Ph/3BiPr+8nfJ7eZdtQQvSQUn2QwKU+7Fvc7b5BpS/lM6RJ3LUf+XbWg==" "integrity": "sha512-wAVSj4Fm2MqOHy5+BlYnlKxXvJlv5IuZHjlzHu18QmjRzSDFQiUDWdHs5+NsFMQrgKEBwuWDcyvaMC9dUzJ5Uw=="
}, },
"ieee754": { "ieee754": {
"version": "1.2.1", "version": "1.2.1",
@ -3491,9 +3370,9 @@
} }
}, },
"tinymce": { "tinymce": {
"version": "6.4.2", "version": "6.6.0",
"resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.4.2.tgz", "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.6.0.tgz",
"integrity": "sha512-te+4c8PoAwTKPMBQtMQehnSZlOO9Ay5tDgaRFJKBehYb6SlX2PYZ0v3oe/cmiv5EfqdwZLkEMXk2MNOeApZZLg==" "integrity": "sha512-b9Mb7z8ryFOwLm8WCmlpwzdgOt1xD1u5Jjdh68B4QjkIyTLyHRBsfsrbiCUGonnVTymDlkexPkaP8sj24zexKQ=="
}, },
"tinymce-langs": { "tinymce-langs": {
"version": "1.0.0", "version": "1.0.0",
@ -3644,9 +3523,9 @@
} }
}, },
"videojs-contrib-ads": { "videojs-contrib-ads": {
"version": "7.2.0", "version": "7.3.2",
"resolved": "https://registry.npmjs.org/videojs-contrib-ads/-/videojs-contrib-ads-7.2.0.tgz", "resolved": "https://registry.npmjs.org/videojs-contrib-ads/-/videojs-contrib-ads-7.3.2.tgz",
"integrity": "sha512-5DAO8BpD4mm/xKCGm4JhmIkjYOC+TByiO0XXInoc981Gr71xcFpO2wxPHMFrojhKROmYGWnYKcLsKNMkvYOWHg==", "integrity": "sha512-O5zSqP9GePr8XDUgCKQoRdDr5dUX5GEbNx7s2R7LC/Pxn8L10x3RNCrijzO56bli7Vr5wAlTJgAk1dR5lqQ44A==",
"requires": { "requires": {
"global": "^4.3.2" "global": "^4.3.2"
} }
@ -3665,120 +3544,14 @@
"integrity": "sha512-X1LuPfLZPisPLrANIAKCknZbZu5obVM/ylfd1CN+SsCmPZQ3UMDPcvLTpPBJxcBuTpHQq2MO1QCFt7p8spnZ/w==" "integrity": "sha512-X1LuPfLZPisPLrANIAKCknZbZu5obVM/ylfd1CN+SsCmPZQ3UMDPcvLTpPBJxcBuTpHQq2MO1QCFt7p8spnZ/w=="
}, },
"videojs-ima": { "videojs-ima": {
"version": "2.1.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/videojs-ima/-/videojs-ima-2.1.0.tgz", "resolved": "https://registry.npmjs.org/videojs-ima/-/videojs-ima-2.2.0.tgz",
"integrity": "sha512-Zb+J4by0d4FbserGOiSbdNo0U4vXSDuiPVCKFMksbaj4DO3mC8IpmvZ9Vci3tUwOhb/ladmUdhif9euSwq92Sw==", "integrity": "sha512-VKg7mZsaiW89ko2Sjfz/sDcCbCTjj2OAkg8CakvCs9ZiVg20g6QYVtEWj249V/HTm0/1X01GEPk9hnIrRzgd+A==",
"requires": { "requires": {
"@hapi/cryptiles": "^5.1.0", "@hapi/cryptiles": "^5.1.0",
"can-autoplay": "^3.0.2", "can-autoplay": "^3.0.2",
"extend": ">=3.0.2", "extend": ">=3.0.2",
"videojs-contrib-ads": "^6.9.0" "videojs-contrib-ads": "^6.9.0 || ^7"
},
"dependencies": {
"@videojs/http-streaming": {
"version": "2.16.2",
"resolved": "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-2.16.2.tgz",
"integrity": "sha512-etPTUdCFu7gUWc+1XcbiPr+lrhOcBu3rV5OL1M+3PDW89zskScAkkcdqYzP4pFodBPye/ydamQoTDScOnElw5A==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "3.0.5",
"aes-decrypter": "3.1.3",
"global": "^4.4.0",
"m3u8-parser": "4.8.0",
"mpd-parser": "^0.22.1",
"mux.js": "6.0.1",
"video.js": "^6 || ^7"
},
"dependencies": {
"video.js": {
"version": "7.21.4",
"resolved": "https://registry.npmjs.org/video.js/-/video.js-7.21.4.tgz",
"integrity": "sha512-R5e57M/5uqxQMQpFpybNbd8GtiRwFJPqkHjrhv0QTJ2tqnesbjETbck5kU5dhFr1FevsJRFhjBG4hAnvRGnXbw==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/http-streaming": "2.16.2",
"@videojs/vhs-utils": "^3.0.4",
"@videojs/xhr": "2.6.0",
"aes-decrypter": "3.1.3",
"global": "^4.4.0",
"keycode": "^2.2.0",
"m3u8-parser": "4.8.0",
"mpd-parser": "0.22.1",
"mux.js": "6.0.1",
"safe-json-parse": "4.0.0",
"videojs-font": "3.2.0",
"videojs-vtt.js": "^0.15.4"
}
}
}
},
"aes-decrypter": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-3.1.3.tgz",
"integrity": "sha512-VkG9g4BbhMBy+N5/XodDeV6F02chEk9IpgRTq/0bS80y4dzy79VH2Gtms02VXomf3HmyRe3yyJYkJ990ns+d6A==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.5",
"global": "^4.4.0",
"pkcs7": "^1.0.4"
}
},
"mpd-parser": {
"version": "0.22.1",
"resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-0.22.1.tgz",
"integrity": "sha512-fwBebvpyPUU8bOzvhX0VQZgSohncbgYwUyJJoTSNpmy7ccD2ryiCvM7oRkn/xQH5cv73/xU7rJSNCLjdGFor0Q==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.5",
"@xmldom/xmldom": "^0.8.3",
"global": "^4.4.0"
}
},
"mux.js": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/mux.js/-/mux.js-6.0.1.tgz",
"integrity": "sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w==",
"requires": {
"@babel/runtime": "^7.11.2",
"global": "^4.4.0"
}
},
"videojs-contrib-ads": {
"version": "6.9.0",
"resolved": "https://registry.npmjs.org/videojs-contrib-ads/-/videojs-contrib-ads-6.9.0.tgz",
"integrity": "sha512-nzKz+jhCGMTYffSNVYrmp9p70s05v6jUMOY3Z7DpVk3iFrWK4Zi/BIkokDWrMoHpKjdmCdKzfJVBT+CrUj6Spw==",
"requires": {
"global": "^4.3.2",
"video.js": "^6 || ^7"
},
"dependencies": {
"video.js": {
"version": "7.21.4",
"resolved": "https://registry.npmjs.org/video.js/-/video.js-7.21.4.tgz",
"integrity": "sha512-R5e57M/5uqxQMQpFpybNbd8GtiRwFJPqkHjrhv0QTJ2tqnesbjETbck5kU5dhFr1FevsJRFhjBG4hAnvRGnXbw==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/http-streaming": "2.16.2",
"@videojs/vhs-utils": "^3.0.4",
"@videojs/xhr": "2.6.0",
"aes-decrypter": "3.1.3",
"global": "^4.4.0",
"keycode": "^2.2.0",
"m3u8-parser": "4.8.0",
"mpd-parser": "0.22.1",
"mux.js": "6.0.1",
"safe-json-parse": "4.0.0",
"videojs-font": "3.2.0",
"videojs-vtt.js": "^0.15.4"
}
}
}
},
"videojs-font": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-3.2.0.tgz",
"integrity": "sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA=="
}
} }
}, },
"videojs-landscape-fullscreen": { "videojs-landscape-fullscreen": {

View file

@ -11,7 +11,7 @@
"flickity": "^3.0.0", "flickity": "^3.0.0",
"flickity-bg-lazyload": "^2.0.0", "flickity-bg-lazyload": "^2.0.0",
"fontawesome-free": "^1.0.4", "fontawesome-free": "^1.0.4",
"hls.js": "^1.4.9", "hls.js": "^1.4.10",
"infinite-scroll": "^4.0.1", "infinite-scroll": "^4.0.1",
"inputmask": "^5.0.8", "inputmask": "^5.0.8",
"jquery": "^3.7.0", "jquery": "^3.7.0",
@ -27,13 +27,13 @@
"p2p-media-loader-hlsjs": "^0.6.2", "p2p-media-loader-hlsjs": "^0.6.2",
"pouchdb": "^8.0.0", "pouchdb": "^8.0.0",
"sweetalert": "^2.1.2", "sweetalert": "^2.1.2",
"tinymce": "^6.4.2", "tinymce": "^6.6.0",
"tinymce-langs": "^1.0.0", "tinymce-langs": "^1.0.0",
"video.js": "^8.3.0", "video.js": "^8.3.0",
"videojs-contrib-ads": "^7.2.0", "videojs-contrib-ads": "^7.3.2",
"videojs-contrib-quality-levels": "^4.0.0", "videojs-contrib-quality-levels": "^4.0.0",
"videojs-font": "^4.1.0", "videojs-font": "^4.1.0",
"videojs-ima": "^2.1.0", "videojs-ima": "^2.2.0",
"videojs-landscape-fullscreen": "^11.1111.0", "videojs-landscape-fullscreen": "^11.1111.0",
"videojs-overlay": "^3.1.0", "videojs-overlay": "^3.1.0",
"videojs-playlist": "^5.1.0", "videojs-playlist": "^5.1.0",

View file

@ -245,12 +245,12 @@ class ADs extends PluginAbstract
{ {
global $global; global $global;
if (isBot()) { if (isBot()) {
return false; return array();
} }
$paths = self::getAdsPath($type, $is_regular_user); $paths = self::getAdsPath($type, $is_regular_user);
if (empty($paths)) { if (empty($paths)) {
return false; return array();
} }
$files = _glob($paths['path'], '/.png$/'); $files = _glob($paths['path'], '/.png$/');
@ -280,10 +280,8 @@ class ADs extends PluginAbstract
{ {
global $global; global $global;
$emptyAd = ['adCode' => '', 'label' => '', 'paths' => array()];
if (isBot()) { if (isBot()) {
return $emptyAd; return ['adCode' => '', 'label' => '', 'paths' => array()];
} }
if (empty($videos_id)) { if (empty($videos_id)) {
@ -298,9 +296,15 @@ class ADs extends PluginAbstract
$users_id = 0; $users_id = 0;
} }
return self::getAdsFromUsersId($type, $users_id);
}
public static function getAdsFromUsersId($type, $users_id)
{
$ad = AVideoPlugin::getObjectDataIfEnabled('ADs'); $ad = AVideoPlugin::getObjectDataIfEnabled('ADs');
if(empty($ad->$type)){ if(empty($ad->$type)){
return $emptyAd; return ['adCode' => '', 'label' => '', 'paths' => array()];
} }
$label = ''; $label = '';
eval("\$label = \$ad->{$type}Label;"); eval("\$label = \$ad->{$type}Label;");
@ -325,7 +329,6 @@ class ADs extends PluginAbstract
return ['adCode' => $adCode, 'label' => $label, 'paths' => $array['paths']]; return ['adCode' => $adCode, 'label' => $label, 'paths' => $array['paths']];
} }
public static function getAdsCode($type) public static function getAdsCode($type)
{ {
global $global; global $global;
@ -349,6 +352,34 @@ class ADs extends PluginAbstract
return $adCode; return $adCode;
} }
public static function getAdsCodeReason($type)
{
$reasons = array();
if (isBot()) {
$reasons[] = 'Is a bot';
}
$videos_id = 0;
if (empty($videos_id)) {
$videos_id = getVideos_id();
}
$reasons[] = 'videos_id='.$videos_id;
$ad = AVideoPlugin::getObjectDataIfEnabled('ADs');
if (!empty($ad)) {
if (isMobile()) {
$type = $type . 'Mobile';
}
$adC = self::getAdsFromVideosId($type, $videos_id);
$reasons[] = 'type='.$type;
$reasons[] = 'label='.$adC['label'];
if(empty($adC['adCode'])){
$reasons[] = 'adCode is empty';
}
}else{
$reasons[] = 'ADs plugin disabled';
}
return $reasons;
}
public static function getSize($type) public static function getSize($type)
{ {
$obj = AVideoPlugin::getObjectData("ADs"); $obj = AVideoPlugin::getObjectData("ADs");

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,6 @@
<?php
saveRequestVars();
?>
<div class="row mainArea"> <div class="row mainArea">
<?php <?php
if (!empty($currentCat)) { if (!empty($currentCat)) {
@ -163,3 +166,6 @@
} }
?> ?>
</div> </div>
<?php
restoreRequestVars();
?>

View file

@ -1,31 +1,18 @@
<?php <?php
if(empty($obj) || !isset($obj->categoriesTopButtonsFluid)){ if (empty($obj) || !isset($obj->categoriesTopButtonsFluid)) {
$obj = AVideoPlugin::loadPlugin('Layout'); $obj = AVideoPlugin::loadPlugin('Layout');
} }
?> global $advancedCustom;
<style> $_rowCount = getRowCount();
.categoriesTobButtons{ $current = getCurrentPage();
border: none; $_REQUEST['rowCount'] = 1000;
} $_REQUEST['current'] = 1;
.categoriesTobButtons li a{ $parsed_cats = array();
border-radius:23px; $categories = Category::getAllCategories();
} $_REQUEST['rowCount'] = $_rowCount;
</style> $_REQUEST['current'] = $current;
<div class="container-fluid"> $items = array();
<div class="row"> foreach ($categories as $value) {
<div class="<?php echo empty($obj->categoriesTopButtonsFluid) ? '' : 'col-lg-10 col-lg-offset-1'; ?>">
<center>
<ul class="nav nav-tabs nav-tabs-horizontal categoriesTobButtons" >
<?php
global $advancedCustom;
$_rowCount = getRowCount();
$current = getCurrentPage();
$_REQUEST['rowCount'] = 1000;
$_REQUEST['current'] = 1;
$parsed_cats = array();
$categories = Category::getAllCategories();
foreach ($categories as $value) {
if ($value['parentId']) { if ($value['parentId']) {
continue; continue;
} }
@ -40,33 +27,19 @@ if(empty($obj) || !isset($obj->categoriesTopButtonsFluid)){
if (in_array($value['id'], $parsed_cats)) { if (in_array($value['id'], $parsed_cats)) {
continue; continue;
} }
?> $label = '<i class="' . (empty($value['iconClass']) ? "fa fa-folder" : $value['iconClass']) . '"></i> '
<li data-toggle="tooltip" title="<?php echo __($value['name']); ?>" data-placement="bottom"
class="<?php echo ($value['clean_name'] == @$_REQUEST['catName'] ? "active" : ""); ?>">
<a href="<?php echo Category::getCategoryLinkFromName($value['clean_name']); ?>" >
<?php
echo '<i class="' . (empty($value['iconClass']) ? "fa fa-folder" : $value['iconClass']) . '"></i> '
. '<span class="">' . __($value['name']) . '</span>'; . '<span class="">' . __($value['name']) . '</span>';
if (!empty($obj->categoriesTopButtonsShowVideosCount)) { if (!empty($obj->categoriesTopButtonsShowVideosCount)) {
echo ' <span class="badge">' . $total . '</span>'; $label .= ' <span class="badge">' . $total . '</span>';
} }
?> $items[] = array(
</a> 'href' => Category::getCategoryLinkFromName($value['clean_name']),
</li> 'tooltip' => __($value['name']),
<?php 'onclick' => '',
} 'label' => $label,
$_REQUEST['rowCount'] = $_rowCount; 'isActive' => $value['clean_name'] == @$_REQUEST['catName'],
$_REQUEST['current'] = $current; 'clean_name' => $value['clean_name']
/* );
for ($i = 0; $i < 100; $i++) { }
?> <li data-toggle="tooltip" title="<?php echo __($i); ?>" data-placement="bottom"> <a href="#"> <?php echo '<i class="fa fa-folder"></i> <span class="hidden-xs">' . $i . '</span>'; //var_dump($_REQUEST['catName'], $items);exit;
if (!empty($obj->categoriesTopButtonsShowVideosCount)) { generateHorizontalFlickity($items);
echo ' <span class="badge">' . $i . '</span>';
} ?> </a> </li> <?php }
*/
?>
</ul>
</center>
</div>
</div>
</div>

View file

@ -123,3 +123,69 @@ foreach ($rows as $key => $value) {
} }
}); });
</script> </script>
<?php
$videosData = [];
foreach ($data as $value) {
$videosId = $value['videos_id'];
$reward = $value['total_reward'];
$title = $value['title'];
// If this videos_id is already in the $videosData array, update its reward, otherwise add it as a new entry.
if (isset($videosData[$videosId])) {
$videosData[$videosId]['reward'] += $reward;
} else {
$videosData[$videosId] = [
'reward' => $reward,
'title' => $title,
];
}
}
$videosIds = [];
$rewards = [];
$titles = [];
foreach ($videosData as $videosId => $videoInfo) {
$videosIds[] = $videosId;
$rewards[] = $videoInfo['reward'];
$titles[] = $videoInfo['title'];
}
?>
<div class="container">
<div class="panel">
<div class="panel-body">
<canvas id="rewardChart2" style="width:100%; height:400px;"></canvas>
</div>
</div>
</div>
<script>
let videosIds = <?php echo json_encode($videosIds); ?>;
let rewards2 = <?php echo json_encode($rewards); ?>;
let titles = <?php echo json_encode($titles); ?>;
new Chart(document.getElementById("rewardChart2"), {
type: 'bar',
data: {
labels: titles, // Use the video titles as labels
datasets: [{
data: rewards2,
label: "Money Made",
backgroundColor: "#3e95cd",
}]
},
options: {
title: {
display: true,
text: 'Money Made per Video'
},
scales: {
yAxes: [{
ticks: {
beginAtZero: true,
}
}]
}
}
});
</script>

View file

@ -169,7 +169,6 @@ class PlayerSkins extends PluginAbstract {
$htmlMediaTag .= '<video '.self::getPlaysinline().' id="mainVideo" style="display: none; height: 0;width: 0;" ></video>'; $htmlMediaTag .= '<video '.self::getPlaysinline().' id="mainVideo" style="display: none; height: 0;width: 0;" ></video>';
//$htmlMediaTag .= '<div id="main-video" class="embed-responsive-item">'; //$htmlMediaTag .= '<div id="main-video" class="embed-responsive-item">';
$htmlMediaTag .= '<iframe class="embed-responsive-item" scrolling="no" '.Video::$iframeAllowAttributes.' src="' . $url . '"></iframe>'; $htmlMediaTag .= '<iframe class="embed-responsive-item" scrolling="no" '.Video::$iframeAllowAttributes.' src="' . $url . '"></iframe>';
$htmlMediaTag .= '<script>$(document).ready(function () {addView(' . intval($video['id']) . ', 0);});</script>';
//$htmlMediaTag .= '</div>'; //$htmlMediaTag .= '</div>';
} else { } else {
// youtube! // youtube!
@ -650,18 +649,14 @@ class PlayerSkins extends PluginAbstract {
$url = Video::getURLFriendly($videos_id); $url = Video::getURLFriendly($videos_id);
$js .= " $js .= "
player.on('play', function () { player.on('play', function () {
addView({$videos_id}, this.currentTime());
_addViewBeaconAdded = false;
sendAVideoMobileMessage('play', this.currentTime()); sendAVideoMobileMessage('play', this.currentTime());
}); });
player.on('ended', function () { player.on('ended', function () {
var time = Math.round(this.currentTime()); var time = Math.round(this.currentTime());
addView({$videos_id}, time);
sendAVideoMobileMessage('ended', time); sendAVideoMobileMessage('ended', time);
}); });
player.on('pause', function () { player.on('pause', function () {
var time = Math.round(this.currentTime()); var time = Math.round(this.currentTime());
addView({$videos_id}, time);
sendAVideoMobileMessage('pause', time); sendAVideoMobileMessage('pause', time);
}); });
player.on('volumechange', function () { player.on('volumechange', function () {
@ -683,13 +678,6 @@ class PlayerSkins extends PluginAbstract {
$('#linkCurrentTime, .linkCurrentTime').val(url); $('#linkCurrentTime, .linkCurrentTime').val(url);
if (time >= 5 && time % 1 === 0) {
addView({$videos_id}, time);
} else {
addViewFromCookie();
addViewSetCookie(PHPSESSID, {$videos_id}, time, seconds_watching_video);
}
sendAVideoMobileMessage('timeupdate', time); sendAVideoMobileMessage('timeupdate', time);
}); });
;"; ;";

View file

@ -22,9 +22,6 @@ if ($removeAnimation || !empty($advancedCustom->disableAnimations)) {
cursor: move; cursor: move;
} }
.playingShorts .scrtabs-tab-container {
display: none;
}
body.playingShorts { body.playingShorts {
overflow: hidden; overflow: hidden;
@ -162,6 +159,7 @@ if ($removeAnimation || !empty($advancedCustom->disableAnimations)) {
#buttonsCarousel { #buttonsCarousel {
bottom: 50px; bottom: 50px;
} }
.circleCarouselBtn { .circleCarouselBtn {
width: 35px; width: 35px;
height: 35px; height: 35px;
@ -220,7 +218,7 @@ if ($removeAnimation || !empty($advancedCustom->disableAnimations)) {
carouselPlayerResetLikesResponse(); carouselPlayerResetLikesResponse();
$.ajax({ $.ajax({
url: url, url: url,
success: function (response) { success: function(response) {
carouselPlayerProcessLikesResponse(response) carouselPlayerProcessLikesResponse(response)
} }
}); });
@ -277,10 +275,10 @@ if ($removeAnimation || !empty($advancedCustom->disableAnimations)) {
$.ajax({ $.ajax({
url: url, url: url,
success: function (response) { success: function(response) {
carouselPlayerProcessLikesResponse(response) carouselPlayerProcessLikesResponse(response)
}, },
complete: function (response) { complete: function(response) {
modal.hidePleaseWait(); modal.hidePleaseWait();
} }
}); });
@ -290,7 +288,7 @@ if ($removeAnimation || !empty($advancedCustom->disableAnimations)) {
function shortsOpen(index) { function shortsOpen(index) {
shortIsOpen = true; shortIsOpen = true;
$('body').addClass('playingShorts'); $('body').addClass('playingShorts');
<?php echo $shortsOpen; ?> <?php echo $shortsOpen; ?>
console.log('shortsPlay', index); console.log('shortsPlay', index);
$('#ShortsPlayerContent').show(); $('#ShortsPlayerContent').show();
$('#ShortsPlayer').flickity('destroy'); $('#ShortsPlayer').flickity('destroy');
@ -306,10 +304,10 @@ if ($removeAnimation || !empty($advancedCustom->disableAnimations)) {
currentCell.html(''); currentCell.html('');
} }
console.log('shortsClose 1'); console.log('shortsClose 1');
setTimeout(function () { setTimeout(function() {
console.log('shortsClose 2'); console.log('shortsClose 2');
$('body').removeClass('playingShorts'); $('body').removeClass('playingShorts');
<?php echo $shortsClose; ?> <?php echo $shortsClose; ?>
$('#ShortsPlayerContent').hide(); $('#ShortsPlayerContent').hide();
$('#ShortsPlayerContent').removeClass('animate__bounceOutLeft'); $('#ShortsPlayerContent').removeClass('animate__bounceOutLeft');
}, 100); }, 100);
@ -336,6 +334,10 @@ if ($removeAnimation || !empty($advancedCustom->disableAnimations)) {
var iframe; var iframe;
var currentShortsPlayerIndex = -1; var currentShortsPlayerIndex = -1;
function playNextShorts() {
$('#ShortsPlayer').flickity('next');
}
function createShortsPlayerFlickity(initialIndex) { function createShortsPlayerFlickity(initialIndex) {
var $carouselPlayer = $('#ShortsPlayer'); var $carouselPlayer = $('#ShortsPlayer');
@ -348,7 +350,7 @@ if ($removeAnimation || !empty($advancedCustom->disableAnimations)) {
adaptiveHeight: true, adaptiveHeight: true,
cellSelector: '.carousel-cell', cellSelector: '.carousel-cell',
}); });
$carouselPlayer.on('scroll.flickity', function (event, progress) { $carouselPlayer.on('scroll.flickity', function(event, progress) {
if (typeof currentCell != 'undefined') { if (typeof currentCell != 'undefined') {
currentCell.html(''); currentCell.html('');
} }
@ -356,7 +358,7 @@ if ($removeAnimation || !empty($advancedCustom->disableAnimations)) {
loadShorts(); loadShorts();
} }
}); });
$carouselPlayer.on('settle.flickity', function (event, index) { $carouselPlayer.on('settle.flickity', function(event, index) {
if (isSettling) { if (isSettling) {
return; return;
} }
@ -369,7 +371,7 @@ if ($removeAnimation || !empty($advancedCustom->disableAnimations)) {
if (typeof currentCell != 'undefined') { if (typeof currentCell != 'undefined') {
currentCell.html(''); currentCell.html('');
} }
timeoutId = setTimeout(function () { timeoutId = setTimeout(function() {
var index2 = $('#ShortsPlayer .carousel-cell.is-selected').index(); var index2 = $('#ShortsPlayer .carousel-cell.is-selected').index();
if (currentShortsPlayerIndex !== index2) { if (currentShortsPlayerIndex !== index2) {
carouselPlayerGetLikes(); carouselPlayerGetLikes();
@ -406,22 +408,22 @@ if ($removeAnimation || !empty($advancedCustom->disableAnimations)) {
resetPlayerFlickity(); // reset the timeoutId resetPlayerFlickity(); // reset the timeoutId
}); });
$carouselPlayer.on('change.flickity', function (event, index) { $carouselPlayer.on('change.flickity', function(event, index) {
console.log('Slide changed to ' + index) console.log('Slide changed to ' + index)
}); });
$carouselPlayer.on('select.flickity', function (event, index) { $carouselPlayer.on('select.flickity', function(event, index) {
if (shortIsOpen) { if (shortIsOpen) {
var browserWidth = $(window).width(); var browserWidth = $(window).width();
<?php <?php
foreach ($totalFlickityCells as $key => $value) { foreach ($totalFlickityCells as $key => $value) {
if (empty($key)) { if (empty($key)) {
echo "var newIndex = Math.floor(index/{$value});"; echo "var newIndex = Math.floor(index/{$value});";
} else { } else {
echo "if(browserWidth<{$key}){newIndex = Math.floor(index/{$value});}"; echo "if(browserWidth<{$key}){newIndex = Math.floor(index/{$value});}";
} }
} }
?> ?>
$('#Shorts').flickity('select', newIndex); $('#Shorts').flickity('select', newIndex);
console.log('Flickity select ' + index) console.log('Flickity select ' + index)
} }
@ -430,10 +432,20 @@ foreach ($totalFlickityCells as $key => $value) {
} }
$(document).ready(function () { $(document).ready(function() {
createShortsPlayerFlickity(); createShortsPlayerFlickity();
$('#closeCarousel').on('click', function () { $('#closeCarousel').on('click', function() {
shortsClose(); shortsClose();
}); });
}); });
// Event listener to receive messages from the iframe
window.addEventListener('message', function(event) {
if (event.data === 'playNextShorts') {
// Call the function
playNextShorts();
} else {
// Execute another code if the function doesn't exist
console.log("playNextShorts() does not exist in the parent page");
}
});
</script> </script>

View file

@ -1,65 +0,0 @@
/**
* jquery-bootstrap-scrolling-tabs
* @version v2.6.1
* @link https://github.com/mikejacobson/jquery-bootstrap-scrolling-tabs
* @author Mike Jacobson <michaeljjacobson1@gmail.com>
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
.scrtabs-tab-container * {
box-sizing: border-box; }
.scrtabs-tab-container {
height: 42px; }
.scrtabs-tab-container .tab-content {
clear: left; }
.scrtabs-tab-container.scrtabs-bootstrap4 .scrtabs-tabs-movable-container > .navbar-nav {
-ms-flex-direction: row;
flex-direction: row; }
.scrtabs-tabs-fixed-container {
float: left;
height: 42px;
overflow: hidden;
width: 100%; }
.scrtabs-tabs-movable-container {
position: relative; }
.scrtabs-tabs-movable-container .tab-content {
display: none; }
.scrtabs-tab-container.scrtabs-rtl .scrtabs-tabs-movable-container > ul.nav-tabs {
padding-right: 0; }
.scrtabs-tab-scroll-arrow {
border: 1px solid #dddddd;
border-top: none;
color: #428bca;
display: none;
float: left;
font-size: 12px;
height: 42px;
margin-bottom: -1px;
padding-left: 2px;
padding-top: 13px;
width: 20px; }
.scrtabs-tab-scroll-arrow:hover {
background-color: #eeeeee; }
.scrtabs-tab-scroll-arrow,
.scrtabs-tab-scroll-arrow .scrtabs-click-target {
cursor: pointer; }
.scrtabs-tab-scroll-arrow.scrtabs-with-click-target {
cursor: default; }
.scrtabs-tab-scroll-arrow.scrtabs-disable,
.scrtabs-tab-scroll-arrow.scrtabs-disable .scrtabs-click-target {
color: #ddd;
cursor: default; }
.scrtabs-tab-scroll-arrow.scrtabs-disable:hover {
background-color: initial; }
.scrtabs-tabs-fixed-container ul.nav-tabs > li {
white-space: nowrap; }

View file

@ -1,8 +0,0 @@
/**
* jquery-bootstrap-scrolling-tabs
* @version v2.6.1
* @link https://github.com/mikejacobson/jquery-bootstrap-scrolling-tabs
* @author Mike Jacobson <michaeljjacobson1@gmail.com>
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
.scrtabs-tab-container *{box-sizing:border-box}.scrtabs-tab-container{height:42px}.scrtabs-tab-container .tab-content{clear:left}.scrtabs-tab-container.scrtabs-bootstrap4 .scrtabs-tabs-movable-container>.navbar-nav{-ms-flex-direction:row;flex-direction:row}.scrtabs-tabs-fixed-container{float:left;height:42px;overflow:hidden;width:100%}.scrtabs-tabs-movable-container{position:relative}.scrtabs-tabs-movable-container .tab-content{display:none}.scrtabs-tab-container.scrtabs-rtl .scrtabs-tabs-movable-container>ul.nav-tabs{padding-right:0}.scrtabs-tab-scroll-arrow{border:1px solid #ddd;border-top:none;color:#428bca;display:none;float:left;font-size:12px;height:42px;margin-bottom:-1px;padding-left:2px;padding-top:13px;width:20px}.scrtabs-tab-scroll-arrow:hover{background-color:#eee}.scrtabs-tab-scroll-arrow,.scrtabs-tab-scroll-arrow .scrtabs-click-target{cursor:pointer}.scrtabs-tab-scroll-arrow.scrtabs-with-click-target{cursor:default}.scrtabs-tab-scroll-arrow.scrtabs-disable,.scrtabs-tab-scroll-arrow.scrtabs-disable .scrtabs-click-target{color:#ddd;cursor:default}.scrtabs-tab-scroll-arrow.scrtabs-disable:hover{background-color:initial}.scrtabs-tabs-fixed-container ul.nav-tabs>li{white-space:nowrap}

File diff suppressed because one or more lines are too long

View file

@ -18,3 +18,7 @@ span.selection > span.select2-selection--single{
border-bottom-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204);
border-left-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204);
} }
#filterDropdown label{
color: #333;
}

View file

@ -1,6 +1,7 @@
html, html,
body { body {
height: 100vh; height: 100vh;
transition: all 0.3s ease-in-out;
} }
html { html {
@ -21,6 +22,7 @@ body.fullscreen {
padding: 0 !important; padding: 0 !important;
margin: 0 !important; margin: 0 !important;
} }
/* /*
.videoLink > .duration, .videoLink > .duration,
time.duration{ time.duration{
@ -36,7 +38,7 @@ time.duration{
*/ */
time.duration { time.duration {
position: absolute; position: absolute;
background: rgba(0, 0, 0, 0.6)!important; background: rgba(0, 0, 0, 0.6) !important;
padding: 1px 4px; padding: 1px 4px;
color: #FFF; color: #FFF;
top: 5px; top: 5px;
@ -52,7 +54,8 @@ time.duration {
position: relative; position: relative;
} }
.thumbsImageContainer .thumbsImage, #channelLive .thumbsImage { .thumbsImageContainer .thumbsImage,
#channelLive .thumbsImage {
border: none; border: none;
position: absolute; position: absolute;
top: 0; top: 0;
@ -75,13 +78,13 @@ time.duration {
left: 50%; left: 50%;
margin: -25px 0 0 -25px; margin: -25px 0 0 -25px;
position: absolute; position: absolute;
color: rgba(255, 255, 255, 0.3)!important; color: rgba(255, 255, 255, 0.3) !important;
font-size: 50px; font-size: 50px;
} }
.gallery:hover .glyphicon-play-circle, .gallery:hover .glyphicon-play-circle,
.videoLink:hover .glyphicon-play-circle { .videoLink:hover .glyphicon-play-circle {
color: rgba(255, 255, 255, 0.6)!important; color: rgba(255, 255, 255, 0.6) !important;
} }
.bottom-border { .bottom-border {
@ -172,14 +175,17 @@ footer ul.list-inline li {
/* Safari */ /* Safari */
transition: ease 1s; transition: ease 1s;
} }
/* to fix the click on mobile */ /* to fix the click on mobile */
.rightBar div { .rightBar div {
z-index: 10; z-index: 10;
} }
#videosList, #videosList div { #videosList,
#videosList div {
z-index: 1; z-index: 1;
} }
/* end for main video */ /* end for main video */
.form-compact .form-control { .form-compact .form-control {
position: relative; position: relative;
@ -213,7 +219,10 @@ footer ul.list-inline li {
transition: width 0.3s, margin 0.3s; transition: width 0.3s, margin 0.3s;
} }
.panel, #mainNavBar, #sidebar, .swal-modal { .panel,
#mainNavBar,
#sidebar,
.swal-modal {
box-shadow: 0 1px 8px 0 rgb(0 0 0 / 8%); box-shadow: 0 1px 8px 0 rgb(0 0 0 / 8%);
} }
@ -227,19 +236,28 @@ footer ul.list-inline li {
} }
@media (max-width: 767px) { @media (max-width: 767px) {
.navbar-form, #modeYoutubeBottomContent, .principalContainer,
.nopaddingOnSmall,.container-fluid,.container, #yptRightBar, .navbar-form,
body > div.container-fluid.gallery > div { #modeYoutubeBottomContent,
.principalContainer,
.nopaddingOnSmall,
.container-fluid,
.container,
#yptRightBar,
body>div.container-fluid.gallery>div {
padding: 0; padding: 0;
} }
.panel-body, .tabbable-panel { .panel-body,
.tabbable-panel {
padding: 5px; padding: 5px;
} }
} }
@media (max-width: 450px) { @media (max-width: 450px) {
#captchaText, .captcha .input-group {
#captchaText,
.captcha .input-group {
display: block; display: block;
} }
@ -265,6 +283,7 @@ footer ul.list-inline li {
.commentDetails { .commentDetails {
margin: 0 0 0 60px; margin: 0 0 0 60px;
} }
/* End Comments */ /* End Comments */
@ -274,49 +293,49 @@ footer ul.list-inline li {
} }
/* Default mode */ /* Default mode */
.tabbable-line > .nav-tabs { .tabbable-line>.nav-tabs {
border: none; border: none;
margin: 0px; margin: 0px;
} }
.tabbable-line > .nav-tabs > li > a { .tabbable-line>.nav-tabs>li>a {
border: 0; border: 0;
margin-right: 0; margin-right: 0;
} }
.tabbable-line > .nav-tabs > li.open > a, .tabbable-line>.nav-tabs>li.open>a,
.tabbable-line > .nav-tabs > li:hover > a { .tabbable-line>.nav-tabs>li:hover>a {
border: 0; border: 0;
background: none !important; background: none !important;
} }
.tabbable-line > .nav-tabs > li.open > a > i, .tabbable-line>.nav-tabs>li.open>a>i,
.tabbable-line > .nav-tabs > li:hover > a > i { .tabbable-line>.nav-tabs>li:hover>a>i {
color: #a6a6a6; color: #a6a6a6;
} }
.tabbable-line > .nav-tabs > li.open .dropdown-menu, .tabbable-line>.nav-tabs>li.open .dropdown-menu,
.tabbable-line > .nav-tabs > li:hover .dropdown-menu { .tabbable-line>.nav-tabs>li:hover .dropdown-menu {
margin-top: 0px; margin-top: 0px;
} }
.tabbable-line > .nav-tabs > li.active > a { .tabbable-line>.nav-tabs>li.active>a {
border: 0; border: 0;
background: none !important; background: none !important;
} }
.tabbable-line > .nav-tabs > li.active > a > i { .tabbable-line>.nav-tabs>li.active>a>i {
color: #404040; color: #404040;
} }
.tabbable-line > .tab-content { .tabbable-line>.tab-content {
margin-top: -3px; margin-top: -3px;
border: 0; border: 0;
border-top: 1px solid #eee; border-top: 1px solid #eee;
padding: 15px 0; padding: 15px 0;
} }
.tabbable-line > .nav-tabs>li:after { .tabbable-line>.nav-tabs>li:after {
content: ""; content: "";
background: #DDD; background: #DDD;
height: 4px; height: 4px;
@ -326,7 +345,7 @@ footer ul.list-inline li {
bottom: 1px; bottom: 1px;
} }
.tabbable-line > .nav-tabs>li>a::after { .tabbable-line>.nav-tabs>li>a::after {
content: ""; content: "";
background: #f3565d; background: #f3565d;
height: 4px; height: 4px;
@ -339,23 +358,24 @@ footer ul.list-inline li {
z-index: 1; z-index: 1;
} }
.tabbable-line > .nav-tabs>li:hover>a::after { .tabbable-line>.nav-tabs>li:hover>a::after {
background: #F99; background: #F99;
} }
.tabbable-line > .nav-tabs>li.active>a::after { .tabbable-line>.nav-tabs>li.active>a::after {
background: #f3565d; background: #f3565d;
} }
.tabbable-line > .nav-tabs > li.open, .tabbable-line>.nav-tabs>li.open,
.tabbable-line > .nav-tabs>li.active>a::after, .tabbable-line>.nav-tabs>li.active>a::after,
.tabbable-line > .nav-tabs>li:hover>a::after { .tabbable-line>.nav-tabs>li:hover>a::after {
transform: scale(1); transform: scale(1);
} }
.portlet .tabbable-line > .tab-content { .portlet .tabbable-line>.tab-content {
padding-bottom: 0; padding-bottom: 0;
} }
/* END Tabs panel */ /* END Tabs panel */
.nowrapCell td { .nowrapCell td {
@ -416,19 +436,20 @@ footer ul.list-inline li {
.myVote small { .myVote small {
color: #167ac6; color: #167ac6;
} }
/* fancy checkbox */ /* fancy checkbox */
.material-switch > input[type="checkbox"] { .material-switch>input[type="checkbox"] {
display: none; display: none;
} }
.material-switch > label { .material-switch>label {
cursor: pointer; cursor: pointer;
height: 0px; height: 0px;
position: relative; position: relative;
width: 40px; width: 40px;
} }
.material-switch > label::before { .material-switch>label::before {
background: rgb(0, 0, 0); background: rgb(0, 0, 0);
box-shadow: inset 0px 0px 10px rgba(0, 0, 0, 0.5); box-shadow: inset 0px 0px 10px rgba(0, 0, 0, 0.5);
border-radius: 8px; border-radius: 8px;
@ -441,7 +462,7 @@ footer ul.list-inline li {
width: 40px; width: 40px;
} }
.material-switch > label::after { .material-switch>label::after {
background: rgb(255, 255, 255); background: rgb(255, 255, 255);
border-radius: 16px; border-radius: 16px;
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3); box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3);
@ -455,12 +476,12 @@ footer ul.list-inline li {
width: 24px; width: 24px;
} }
.material-switch > input[type="checkbox"]:checked + label::before { .material-switch>input[type="checkbox"]:checked+label::before {
background: inherit; background: inherit;
opacity: 0.5; opacity: 0.5;
} }
.material-switch > input[type="checkbox"]:checked + label::after { .material-switch>input[type="checkbox"]:checked+label::after {
background: inherit; background: inherit;
left: 20px; left: 20px;
} }
@ -468,28 +489,28 @@ footer ul.list-inline li {
/* fancy checkbox */ /* fancy checkbox */
.material-small.material-switch > input[type="checkbox"] { .material-small.material-switch>input[type="checkbox"] {
display: none; display: none;
} }
.material-small.material-switch > label { .material-small.material-switch>label {
width: 20px; width: 20px;
margin-right: 5px; margin-right: 5px;
} }
.material-small.material-switch > label::before { .material-small.material-switch>label::before {
margin-top: -5px; margin-top: -5px;
width: 20px; width: 20px;
height: 10px; height: 10px;
} }
.material-small.material-switch > label::after { .material-small.material-switch>label::after {
margin-top: -4px; margin-top: -4px;
width: 15px; width: 15px;
height: 15px; height: 15px;
} }
.material-small.material-switch > input[type="checkbox"]:checked + label::after { .material-small.material-switch>input[type="checkbox"]:checked+label::after {
left: 10px; left: 10px;
} }
@ -534,7 +555,8 @@ img.rotate-270 {
-webkit-transform: rotate(90deg); -webkit-transform: rotate(90deg);
/* Safari and Chrome */ /* Safari and Chrome */
-o-transform: rotate(90deg); -o-transform: rotate(90deg);
/* Opera */; /* Opera */
;
} }
img.rotate180, img.rotate180,
@ -547,7 +569,8 @@ img.rotate-180 {
-webkit-transform: rotate(180deg); -webkit-transform: rotate(180deg);
/* Safari and Chrome */ /* Safari and Chrome */
-o-transform: rotate(180deg); -o-transform: rotate(180deg);
/* Opera */; /* Opera */
;
} }
img.rotate270, img.rotate270,
@ -560,7 +583,8 @@ img.rotate-90 {
-webkit-transform: rotate(270deg); -webkit-transform: rotate(270deg);
/* Safari and Chrome */ /* Safari and Chrome */
-o-transform: rotate(270deg); -o-transform: rotate(270deg);
/* Opera */; /* Opera */
;
} }
.notificationButton button { .notificationButton button {
@ -701,6 +725,7 @@ nav ul.items-container li ul.right-menus li li {
.navbar-left { .navbar-left {
padding-right: 0; padding-right: 0;
} }
/** header **/ /** header **/
.navbar .container { .navbar .container {
@ -708,7 +733,7 @@ nav ul.items-container li ul.right-menus li li {
align-items: center; align-items: center;
} }
.list-inline > li { .list-inline>li {
display: flex; display: flex;
} }
@ -758,6 +783,7 @@ nav ul.items-container li ul.right-menus li li {
padding-top: 12px; padding-top: 12px;
padding-bottom: 12px; padding-bottom: 12px;
} }
/* End Play List */ /* End Play List */
#videoContainer { #videoContainer {
@ -771,7 +797,7 @@ nav ul.items-container li ul.right-menus li li {
height: 25px; height: 25px;
} }
.progress > .progress-type { .progress>.progress-type {
position: absolute; position: absolute;
left: 0px; left: 0px;
font-weight: 800; font-weight: 800;
@ -780,7 +806,7 @@ nav ul.items-container li ul.right-menus li li {
background-color: rgba(25, 25, 25, 0.2); background-color: rgba(25, 25, 25, 0.2);
} }
.progress > .progress-completed { .progress>.progress-completed {
position: absolute; position: absolute;
right: 0px; right: 0px;
font-weight: 800; font-weight: 800;
@ -811,7 +837,7 @@ nav ul.items-container li ul.right-menus li li {
.zoom:active, .zoom:active,
.zoom:focus { .zoom:focus {
/**adjust scale to desired size, /**adjust scale to desired size,
add browser prefixes**/ add browser prefixes**/
-ms-transform: scale(2.5); -ms-transform: scale(2.5);
-moz-transform: scale(2.5); -moz-transform: scale(2.5);
-webkit-transform: scale(2.5); -webkit-transform: scale(2.5);
@ -833,13 +859,15 @@ nav ul.items-container li ul.right-menus li li {
.navbar-collapse.in { .navbar-collapse.in {
overflow-y: visible; overflow-y: visible;
/* Bootstrap default is "auto" */; /* Bootstrap default is "auto" */
;
} }
.transparent { .transparent {
opacity: 0.3; opacity: 0.3;
filter: alpha(opacity=30); filter: alpha(opacity=30);
/* For IE8 and earlier */; /* For IE8 and earlier */
;
} }
.principalContainer { .principalContainer {
@ -850,7 +878,8 @@ nav ul.items-container li ul.right-menus li li {
font-size: 14px !important; font-size: 14px !important;
} }
a.h6 h2, a.h6 h1 { a.h6 h2,
a.h6 h1 {
font-weight: bold; font-weight: bold;
} }
@ -858,7 +887,8 @@ img.blur {
filter: blur(5px); filter: blur(5px);
} }
.navbar-default .navbar-default, .navbar-inverse .navbar-default { .navbar-default .navbar-default,
.navbar-inverse .navbar-default {
border-width: 0; border-width: 0;
} }
@ -890,27 +920,28 @@ img.blur {
border-radius: 15px; border-radius: 15px;
} }
.btn-circle:hover, .btn-group.open .btn-circle { .btn-circle:hover,
.btn-group.open .btn-circle {
box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.05) inset, 0px 0px 8px rgba(82, 168, 236, 0.6); box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.05) inset, 0px 0px 8px rgba(82, 168, 236, 0.6);
} }
::-webkit-scrollbar-track { ::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 4px; border-radius: 4px;
background-color: rgba(100,100,100,0.01); background-color: rgba(100, 100, 100, 0.01);
} }
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 12px; width: 12px;
height: 8px; height: 8px;
background-color: rgba(100,100,100,0.01); background-color: rgba(100, 100, 100, 0.01);
overflow: hidden; overflow: hidden;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
border-radius: 4px; border-radius: 4px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3); -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
background-color: rgba(100,100,100,0.05); background-color: rgba(100, 100, 100, 0.05);
} }
.videoAdUiSkipContainer { .videoAdUiSkipContainer {
@ -956,11 +987,13 @@ img.blur {
opacity: 0.2; opacity: 0.2;
} }
.btn-group.justified, .btn-group-justified { .btn-group.justified,
.btn-group-justified {
display: flex; display: flex;
} }
.btn-group-justified .btn, .justified .btn { .btn-group-justified .btn,
.justified .btn {
flex: 1; flex: 1;
} }
@ -987,7 +1020,8 @@ img.blur {
max-height: 3.7em; max-height: 3.7em;
} }
.vjs-menu-item, .vjs-menu-title { .vjs-menu-item,
.vjs-menu-title {
margin: 0 !important; margin: 0 !important;
padding: 0 !important; padding: 0 !important;
border-radius: 0 !important; border-radius: 0 !important;
@ -1032,7 +1066,9 @@ img.blur {
border-right-width: 1px; border-right-width: 1px;
} }
#modeYoutubeTop, #mvideo, #videoContainer { #modeYoutubeTop,
#mvideo,
#videoContainer {
position: relative; position: relative;
} }
@ -1055,10 +1091,10 @@ img.blur {
} }
#closeBtnFull i { #closeBtnFull i {
text-shadow: 1px 1px rgba(255,255,255,0.7); text-shadow: 1px 1px rgba(255, 255, 255, 0.7);
} }
li.dropdown-submenu > ul > li > a { li.dropdown-submenu>ul>li>a {
width: 100%; width: 100%;
} }
@ -1085,7 +1121,7 @@ li.dropdown-submenu > ul > li > a {
content: ''; content: '';
} }
#topMenuUserNotifications > ul > div.list-group { #topMenuUserNotifications>ul>div.list-group {
overflow-x: hidden; overflow-x: hidden;
} }
@ -1093,7 +1129,8 @@ li.dropdown-submenu > ul > li > a {
display: none; display: none;
} }
.socket_connected .socket_loading_icon, .socket_disconnected .socket_loading_icon { .socket_connected .socket_loading_icon,
.socket_disconnected .socket_loading_icon {
display: none; display: none;
} }
@ -1336,6 +1373,7 @@ li.dropdown-submenu > ul > li > a {
/* sm */ /* sm */
@media (max-width: 992px) { @media (max-width: 992px) {
.btn-group.justified.keepLabels span.hidden-sm, .btn-group.justified.keepLabels span.hidden-sm,
.btn-group.justified.keepLabels span.hidden-xs { .btn-group.justified.keepLabels span.hidden-xs {
display: block !important; display: block !important;
@ -1390,7 +1428,9 @@ li.dropdown-submenu > ul > li > a {
background-color: #00000077; background-color: #00000077;
} }
.pleaseWaitDialog>div, .pleaseWaitDialog .progress, .pleaseWaitDialog h2 { .pleaseWaitDialog>div,
.pleaseWaitDialog .progress,
.pleaseWaitDialog h2 {
margin: 0; margin: 0;
position: absolute; position: absolute;
top: 50%; top: 50%;
@ -1403,7 +1443,8 @@ li.dropdown-submenu > ul > li > a {
left: 50%; left: 50%;
} }
.pleaseWaitDialog .progress, .pleaseWaitDialog h2 { .pleaseWaitDialog .progress,
.pleaseWaitDialog h2 {
margin: 0 0 0 -50%; margin: 0 0 0 -50%;
width: 100%; width: 100%;
left: 50%; left: 50%;
@ -1422,23 +1463,40 @@ li.dropdown-submenu > ul > li > a {
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
.pleaseWaitDialog .progress, .pleaseWaitDialog h2 {
.pleaseWaitDialog .progress,
.pleaseWaitDialog h2 {
margin: 0 0 0 -200px; margin: 0 0 0 -200px;
width: 400px; width: 400px;
left: 50%; left: 50%;
} }
.playerFullHeight, .playerFullHeight video, .playerFullHeight audio, .playerFullHeight iframe, .playerFullHeight #mainVideo, .playerFullHeight #main-video { .playerFullHeight,
.playerFullHeight video,
.playerFullHeight audio,
.playerFullHeight iframe,
.playerFullHeight #mainVideo,
.playerFullHeight #main-video {
width: 100%; width: 100%;
padding: 0; padding: 0;
} }
.ypt-is-expanded .playerFullHeight, .ypt-is-expanded .playerFullHeight video, .ypt-is-expanded .playerFullHeight audio, .ypt-is-expanded .playerFullHeight iframe, .ypt-is-expanded .playerFullHeight,
.ypt-is-expanded .playerFullHeight #mainVideo, .ypt-is-expanded .playerFullHeight #main-video { .ypt-is-expanded .playerFullHeight video,
.ypt-is-expanded .playerFullHeight audio,
.ypt-is-expanded .playerFullHeight iframe,
.ypt-is-expanded .playerFullHeight #mainVideo,
.ypt-is-expanded .playerFullHeight #main-video,
.ypt-is-compressed .playerFullHeight #videoContainer,
.ypt-is-compressed .playerFullHeight #main-video {
height: calc(100vh - 60px); height: calc(100vh - 60px);
} }
.playerFullHeight .floatVideo video, .playerFullHeight .floatVideo audio, .playerFullHeight .floatVideo iframe, .playerFullHeight .floatVideo #mainVideo, .playerFullHeight .floatVideo #main-video { .playerFullHeight .floatVideo video,
.playerFullHeight .floatVideo audio,
.playerFullHeight .floatVideo iframe,
.playerFullHeight .floatVideo #mainVideo,
.playerFullHeight .floatVideo #main-video {
height: 300px; height: 300px;
} }
@ -1451,19 +1509,6 @@ li.dropdown-submenu > ul > li > a {
overflow: auto !important; overflow: auto !important;
} }
.nav-tabs-horizontal {
display: -webkit-box;
display: -webkit-inline-box;
}
.scrtabs-tab-container {
margin: 5px 0;
}
.scrtabs-tab-scroll-arrow {
border-top: 1px solid #ddd;
}
.videoCreator { .videoCreator {
display: inline-block; display: inline-block;
} }
@ -1484,7 +1529,8 @@ li.dropdown-submenu > ul > li > a {
margin: 2px 10px 2px 2px; margin: 2px 10px 2px 2px;
} }
.videoCreator>img, .videoCreatorSmall img { .videoCreator>img,
.videoCreatorSmall img {
float: left; float: left;
} }
@ -1811,7 +1857,8 @@ button.btn-sm.hamburger svg {
margin: 15px 0; margin: 15px 0;
} }
.SeoTags h1, .SeoTags h2 { .SeoTags h1,
.SeoTags h2 {
margin: 10px 0; margin: 10px 0;
padding: 0; padding: 0;
} }
@ -1824,7 +1871,7 @@ button.btn-sm.hamburger svg {
font-size: 1em; font-size: 1em;
} }
.ypt-article{ .ypt-article {
padding: 15px 20px; padding: 15px 20px;
} }
@ -1834,7 +1881,7 @@ button.btn-sm.hamburger svg {
} }
} }
.bootgrid-footer ul.pagination > li { .bootgrid-footer ul.pagination>li {
cursor: pointer; cursor: pointer;
} }
@ -1867,29 +1914,44 @@ button.btn-sm.hamburger svg {
text-transform: uppercase; text-transform: uppercase;
} }
.live-icon::before{ .live-icon::before {
content: "\1f534"; /* insert the high voltage sign */ content: "\1f534";
animation: glow 1s ease-in-out infinite alternate, flash 1s infinite; /* animate the glow and flash */ /* insert the high voltage sign */
animation: glow 1s ease-in-out infinite alternate, flash 1s infinite;
/* animate the glow and flash */
} }
@keyframes glow { @keyframes glow {
from { from {
text-shadow: 0 0 10px rgba(255, 0, 0, 0.096); text-shadow: 0 0 10px rgba(255, 0, 0, 0.096);
} }
to { to {
text-shadow: 0 0 20px #f00; text-shadow: 0 0 20px #f00;
} }
} }
@keyframes flash { @keyframes flash {
0% { 0% {
opacity: 1; opacity: 1;
} }
50% { 50% {
opacity: 0; opacity: 0;
} }
100% { 100% {
opacity: 1; opacity: 1;
} }
} }
.HorizontalFlickity .btn {
border-radius: 32px;
margin: 5px 2px;
}
.HorizontalFlickity .flickity-button {
width: 22px;
height: 22px;
}

View file

@ -219,7 +219,7 @@ li.navsub-toggle a + ul {
@media screen and (min-width: 992px) { @media screen and (min-width: 992px) {
body.youtube>div.container-fluid{ body.youtube{
margin-left: 300px; margin-left: 300px;
} }
body.youtube div.container-fluid .col-sm-10.col-sm-offset-1.list-group-item{ body.youtube div.container-fluid .col-sm-10.col-sm-offset-1.list-group-item{

View file

@ -78,7 +78,6 @@ $jsFiles[] = "view/js/webui-popover/jquery.webui-popover.min.js";
$jsFiles[] = "view/js/bootstrap-list-filter/bootstrap-list-filter.min.js"; $jsFiles[] = "view/js/bootstrap-list-filter/bootstrap-list-filter.min.js";
$jsFiles[] = "node_modules/js-cookie/dist/js.cookie.js"; $jsFiles[] = "node_modules/js-cookie/dist/js.cookie.js";
$jsFiles[] = "node_modules/jquery-toast-plugin/dist/jquery.toast.min.js"; $jsFiles[] = "node_modules/jquery-toast-plugin/dist/jquery.toast.min.js";
$jsFiles[] = "view/bootstrap/jquery-bootstrap-scrolling-tabs/jquery.scrolling-tabs.min.js";
$jsFiles[] = "view/js/BootstrapMenu.min.js"; $jsFiles[] = "view/js/BootstrapMenu.min.js";
$jsFiles = array_merge($jsFiles, AVideoPlugin::getJSFiles()); $jsFiles = array_merge($jsFiles, AVideoPlugin::getJSFiles());

View file

@ -94,7 +94,6 @@ if (!isBot()) {
?> ?>
<link href="<?php echo getURL('view/css/font-awesome-animation.min.css'); ?>" rel="stylesheet" type="text/css" onload="this.media = 'all'" /> <link href="<?php echo getURL('view/css/font-awesome-animation.min.css'); ?>" rel="stylesheet" type="text/css" onload="this.media = 'all'" />
<link href="<?php echo getURL('node_modules/jquery-toast-plugin/dist/jquery.toast.min.css'); ?>" rel="stylesheet" type="text/css" onload="this.media = 'all'" /> <link href="<?php echo getURL('node_modules/jquery-toast-plugin/dist/jquery.toast.min.css'); ?>" rel="stylesheet" type="text/css" onload="this.media = 'all'" />
<link href="<?php echo getURL('view/bootstrap/jquery-bootstrap-scrolling-tabs/jquery.scrolling-tabs.min.css'); ?>" rel="stylesheet" type="text/css" onload="this.media = 'all'" />
<link href="<?php echo getURL('view/js/webui-popover/jquery.webui-popover.min.css'); ?>" rel="stylesheet" type="text/css" onload="this.media = 'all'" /> <link href="<?php echo getURL('view/js/webui-popover/jquery.webui-popover.min.css'); ?>" rel="stylesheet" type="text/css" onload="this.media = 'all'" />
<link href="<?php echo getURL('view/js/bootgrid/jquery.bootgrid.css'); ?>" rel="stylesheet" type="text/css" onload="this.media = 'all'" /> <link href="<?php echo getURL('view/js/bootgrid/jquery.bootgrid.css'); ?>" rel="stylesheet" type="text/css" onload="this.media = 'all'" />
<link href="<?php echo getURL('node_modules/jquery-ui-dist/jquery-ui.min.css'); ?>" rel="stylesheet" type="text/css" media="print" onload="this.media = 'all'" /> <link href="<?php echo getURL('node_modules/jquery-ui-dist/jquery-ui.min.css'); ?>" rel="stylesheet" type="text/css" media="print" onload="this.media = 'all'" />

View file

@ -1,11 +1,31 @@
var last_videos_id = 0; var last_videos_id = 0;
var last_currentTime = -1; var last_currentTime = -1;
var videoViewAdded = false; var videoViewAdded = false;
var addViewBeaconTimeout;
var _addViewCheck = false; var _addViewCheck = false;
var isVideoPlaying = false;
// Create an encapsulation for seconds_watching_video
var VideoWatchTime = (function () {
var seconds_watching_video = 0;
return {
increment: function() {
if (isVideoPlaying) {
seconds_watching_video++;
}
},
reset: function() {
seconds_watching_video = 0;
},
getValue: function() {
return seconds_watching_video;
}
};
})();
// Modify the addView function
function addView(videos_id, currentTime) { function addView(videos_id, currentTime) {
addViewSetCookie(PHPSESSID, videos_id, currentTime, seconds_watching_video); addViewSetCookie(PHPSESSID, videos_id, currentTime, VideoWatchTime.getValue());
if (_addViewCheck) { if (_addViewCheck) {
return false; return false;
@ -15,15 +35,12 @@ function addView(videos_id, currentTime) {
return false; return false;
} }
if (currentTime > 5 && currentTime % 30 !== 0) { // only update each 30 seconds // Removed the currentTime condition
return false;
}
_addViewCheck = true; _addViewCheck = true;
last_videos_id = videos_id; last_videos_id = videos_id;
last_currentTime = currentTime; last_currentTime = currentTime;
_addView(videos_id, currentTime, seconds_watching_video); _addView(videos_id, currentTime, VideoWatchTime.getValue());
setTimeout(function() { setTimeout(function() {
_addViewCheck = false; _addViewCheck = false;
@ -41,7 +58,6 @@ function _addView(videos_id, currentTime, seconds_watching_video) {
} }
console.log('_addView 2', videos_id, currentTime, seconds_watching_video); console.log('_addView 2', videos_id, currentTime, seconds_watching_video);
isVideoAddViewCount = true;
if (typeof PHPSESSID === 'undefined') { if (typeof PHPSESSID === 'undefined') {
PHPSESSID = ''; PHPSESSID = '';
@ -53,22 +69,28 @@ function _addView(videos_id, currentTime, seconds_watching_video) {
return false; return false;
} }
isVideoAddViewCount = true;
console.log('_addView 3', videos_id, currentTime, seconds_watching_video); console.log('_addView 3', videos_id, currentTime, seconds_watching_video);
url = addGetParam(url, 'PHPSESSID', PHPSESSID); url = addGetParam(url, 'PHPSESSID', PHPSESSID);
// reset seconds_watching_video
var seconds_watching_video_to_send = seconds_watching_video;
VideoWatchTime.reset();
//console.trace();
$.ajax({ $.ajax({
url: url, url: url,
method: 'POST', method: 'POST',
data: { data: {
id: videos_id, id: videos_id,
currentTime: currentTime, currentTime: currentTime,
seconds_watching_video: seconds_watching_video seconds_watching_video: seconds_watching_video_to_send
}, },
success: function(response) { success: function(response) {
console.log('_addView 4', response); console.log('_addView 4', response);
isVideoAddViewCount = false;
$('.view-count' + videos_id).text(response.countHTML); $('.view-count' + videos_id).text(response.countHTML);
PHPSESSID = response.session_id; PHPSESSID = response.session_id;
}, complete: function(response) {
console.log('_addView 5', response);
isVideoAddViewCount = false;
} }
}); });
} }
@ -122,6 +144,49 @@ async function addViewSetCookie(PHPSESSID, videos_id, playerCurrentTime, seconds
Cookies.set('addView_seconds_watching_video', seconds_watching_video, { path: '/', expires: 1 }); Cookies.set('addView_seconds_watching_video', seconds_watching_video, { path: '/', expires: 1 });
} }
$(document).ready(function() { async function startAddViewCountInPlayer(){
if(typeof player !== 'undefined' && typeof mediaId !== 'undefined'){
player.on('play', function () {
isVideoPlaying = true;
addView(mediaId, this.currentTime());
});
player.on('pause', function () {
isVideoPlaying = false;
var time = Math.round(this.currentTime());
addView(mediaId, time);
});
player.on('ended', function () {
isVideoPlaying = false;
var time = Math.round(this.currentTime());
addView(mediaId, time);
});
player.on('timeupdate', function() {
var time = Math.round(this.currentTime());
if (time === 0 || time % 30 === 0) {
addView(mediaId, time);
}
});
} else {
setTimeout(function() {
startAddViewCountInPlayer();
}, 5000);
}
}
// Add beforeunload event
window.addEventListener('beforeunload', (event) => {
addViewFromCookie(); addViewFromCookie();
}); });
$(document).ready(function() {
// Use setInterval to update seconds_watching_video every second
setInterval(function () {
VideoWatchTime.increment();
}, 1000);
// Call addViewFromCookie on the next page load
addViewFromCookie();
startAddViewCountInPlayer();
});

View file

@ -125,8 +125,6 @@ async function openLeftMenu() {
closeRightMenu(); closeRightMenu();
closeSearchMenu(); closeSearchMenu();
} }
var selector = '#buttonMenu svg';
$(selector).addClass('active');
YPTSidebarOpen(); YPTSidebarOpen();
} }
@ -213,6 +211,8 @@ function YPTSidebarIsOpen() {
return $('body').hasClass('youtube'); return $('body').hasClass('youtube');
} }
async function YPTSidebarOpen() { async function YPTSidebarOpen() {
var selector = '#buttonMenu svg';
$(selector).addClass('active');
$("#sidebar").removeClass('animate__bounceOutLeft'); $("#sidebar").removeClass('animate__bounceOutLeft');
$("#sidebar").show(); $("#sidebar").show();
$("#sidebar").addClass('animate__animated animate__bounceInLeft'); $("#sidebar").addClass('animate__animated animate__bounceInLeft');

View file

@ -266,8 +266,6 @@ async function lazyImage() {
} }
var pauseIfIsPlayinAdsInterval; var pauseIfIsPlayinAdsInterval;
var seconds_watching_video = 0;
var _startCountPlayingTime;
async function setPlayerListners() { async function setPlayerListners() {
if (typeof player !== 'undefined') { if (typeof player !== 'undefined') {
player.on('pause', function () { player.on('pause', function () {
@ -275,7 +273,6 @@ async function setPlayerListners() {
//console.log("setPlayerListners: pause"); //console.log("setPlayerListners: pause");
//userIsControling = true; //userIsControling = true;
clearInterval(pauseIfIsPlayinAdsInterval); clearInterval(pauseIfIsPlayinAdsInterval);
clearInterval(_startCountPlayingTime);
}); });
player.on('play', function () { player.on('play', function () {
isTryingToPlay = false; isTryingToPlay = false;
@ -291,10 +288,6 @@ async function setPlayerListners() {
pauseIfIsPlayinAdsInterval = setInterval(function () { pauseIfIsPlayinAdsInterval = setInterval(function () {
pauseIfIsPlayinAds(); pauseIfIsPlayinAds();
}, 500); }, 500);
clearInterval(_startCountPlayingTime);
_startCountPlayingTime = setInterval(function () {
seconds_watching_video++;
}, 1000);
}); });
$("#mainVideo .vjs-mute-control").click(function () { $("#mainVideo .vjs-mute-control").click(function () {
Cookies.set('muted', player.muted(), { Cookies.set('muted', player.muted(), {
@ -849,7 +842,11 @@ function playNext(url) {
}, 1000); }, 1000);
} else if (isPlayNextEnabled()) { } else if (isPlayNextEnabled()) {
modal.showPleaseWait(); modal.showPleaseWait();
if (typeof autoPlayAjax == 'undefined' || !autoPlayAjax) { if (window.parent && typeof window.parent.playNextShorts === 'function') {
// Function exists, send a message to call it
console.log(" window.parent.postMessage(playNextShorts ");
window.parent.postMessage('playNextShorts', '*');
} else if (typeof autoPlayAjax == 'undefined' || !autoPlayAjax) {
//console.log("playNext changing location " + url); //console.log("playNext changing location " + url);
document.location = url; document.location = url;
} else { } else {
@ -2832,17 +2829,6 @@ $(document).ready(function () {
expires: 365 expires: 365
}); });
tabsCategoryDocumentHeight = $(document).height(); tabsCategoryDocumentHeight = $(document).height();
if (typeof $('.nav-tabs-horizontal').scrollingTabs == 'function') {
$('.nav-tabs-horizontal').scrollingTabs();
//$('.nav-tabs-horizontal').fadeIn();
}
setInterval(function () {
if (tabsCategoryDocumentHeightChanged()) {
if (typeof $('.nav-tabs-horizontal').scrollingTabs == 'function') {
$('.nav-tabs-horizontal').scrollingTabs('refresh');
}
}
}, 2000);
modal = getPleaseWait(); modal = getPleaseWait();
try { try {
$('[data-toggle="popover"]').popover(); $('[data-toggle="popover"]').popover();

View file

@ -14,9 +14,11 @@ foreach ($userGroups as $value) {
$users_tabs[] = ['selector' => 'userGroupGrid' . $value['id'], 'queryString' => '?status=a&user_groups_id=' . $value['id'], 'icon' => 'fas fa-users', 'title' => $value['group_name'], 'active' => '', 'userGroupID' => $value['id']]; $users_tabs[] = ['selector' => 'userGroupGrid' . $value['id'], 'queryString' => '?status=a&user_groups_id=' . $value['id'], 'icon' => 'fas fa-users', 'title' => $value['group_name'], 'active' => '', 'userGroupID' => $value['id']];
} }
?> ?>
<link href="<?php echo getURL('node_modules/flickity/dist/flickity.min.css'); ?>" rel="stylesheet" type="text/css" />
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading tabbable-line"> <div class="panel-heading tabbable-line">
<div class="btn-group pull-right" > <div class="btn-group pull-right">
<button type="button" class="btn btn-default" id="addUserBtn"> <button type="button" class="btn btn-default" id="addUserBtn">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> <?php echo __("New User"); ?> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span> <?php echo __("New User"); ?>
</button> </button>
@ -34,19 +36,16 @@ foreach ($userGroups as $value) {
</div> </div>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
<ul class="nav nav-tabs nav-tabs-horizontal">
<?php <?php
$_REQUEST['rowCount'] = $_rowCount;
$_REQUEST['current'] = $current;
$items = array();
foreach ($users_tabs as $value) { foreach ($users_tabs as $value) {
?> $label = "<i class=\"{$value['icon']}\"></i> " . __($value['title']);
<li class="<?php echo $value['active']; ?>"> $items[] = array('href' => "#{$value['selector']}Tab", 'tooltip' => __($value['title']), 'onclick' => "startUserGrid('#{$value['selector']}', '{$value['queryString']}', " . intval($value['userGroupID']) . ");", 'label' => $label);
<a data-toggle="tab" href="#<?php echo $value['selector']; ?>Tab" onclick="startUserGrid('#<?php echo $value['selector']; ?>', '<?php echo $value['queryString']; ?>', <?php echo intval($value['userGroupID']); ?>);">
<i class="<?php echo $value['icon']; ?>"></i> <?php echo __($value['title']); ?>
</a>
</li>
<?php
} }
generateHorizontalFlickity($items);
?> ?>
</ul>
</div> </div>
<div class="panel-body"> <div class="panel-body">
<div class="tab-content"> <div class="tab-content">
@ -78,11 +77,11 @@ foreach ($userGroups as $value) {
<th data-column-id="id" data-width="80px"><?php echo __("#"); ?></th> <th data-column-id="id" data-width="80px"><?php echo __("#"); ?></th>
<th data-column-id="user" data-formatter="user"><?php echo __("User"); ?></th> <th data-column-id="user" data-formatter="user"><?php echo __("User"); ?></th>
<th data-column-id="name" data-order="desc"><?php echo __("Name"); ?></th> <th data-column-id="name" data-order="desc"><?php echo __("Name"); ?></th>
<th data-column-id="email" ><?php echo __("E-mail"); ?></th> <th data-column-id="email"><?php echo __("E-mail"); ?></th>
<th data-column-id="phone" ><?php echo __("Phone"); ?></th> <th data-column-id="phone"><?php echo __("Phone"); ?></th>
<th data-column-id="created" ><?php echo __("Created"); ?></th> <th data-column-id="created"><?php echo __("Created"); ?></th>
<th data-column-id="modified" ><?php echo __("Modified"); ?></th> <th data-column-id="modified"><?php echo __("Modified"); ?></th>
<th data-column-id="tags" data-formatter="tags" data-sortable="false" ><?php echo __("Tags"); ?></th> <th data-column-id="tags" data-formatter="tags" data-sortable="false"><?php echo __("Tags"); ?></th>
<th data-column-id="commands" data-formatter="commands" data-sortable="false" data-width="200px"></th> <th data-column-id="commands" data-formatter="commands" data-sortable="false" data-width="200px"></th>
</tr> </tr>
</thead> </thead>
@ -105,7 +104,7 @@ foreach ($userGroups as $value) {
</div> </div>
<div class="modal-body"> <div class="modal-body">
<form class="form-compact" id="updateUserForm" onsubmit=""> <form class="form-compact" id="updateUserForm" onsubmit="">
<input type="hidden" id="inputUserId" > <input type="hidden" id="inputUserId">
<label for="inputUser" class="sr-only"><?php echo __("User"); ?></label> <label for="inputUser" class="sr-only"><?php echo __("User"); ?></label>
<input type="text" id="inputUser" class="form-control first" placeholder="<?php echo __("User"); ?>" autofocus required="required" data-toggle="tooltip" title="<?php echo __('User'); ?>"> <input type="text" id="inputUser" class="form-control first" placeholder="<?php echo __("User"); ?>" autofocus required="required" data-toggle="tooltip" title="<?php echo __('User'); ?>">
<?php <?php
@ -118,7 +117,7 @@ foreach ($userGroups as $value) {
<label for="inputChannelName" class="sr-only"><?php echo __("Channel Name"); ?></label> <label for="inputChannelName" class="sr-only"><?php echo __("Channel Name"); ?></label>
<input type="text" id="inputChannelName" class="form-control" placeholder="<?php echo __("Channel Name"); ?>" data-toggle="tooltip" title="<?php echo __('Channel Name'); ?>"> <input type="text" id="inputChannelName" class="form-control" placeholder="<?php echo __("Channel Name"); ?>" data-toggle="tooltip" title="<?php echo __('Channel Name'); ?>">
<label for="inputPhone" class="sr-only"><?php echo __("Phone"); ?></label> <label for="inputPhone" class="sr-only"><?php echo __("Phone"); ?></label>
<input type="text" id="inputPhone" class="form-control" placeholder="<?php echo __("Phone"); ?>" data-toggle="tooltip" title="<?php echo __('Phone'); ?>" > <input type="text" id="inputPhone" class="form-control" placeholder="<?php echo __("Phone"); ?>" data-toggle="tooltip" title="<?php echo __('Phone'); ?>">
<label for="inputAnalyticsCode" class="sr-only"><?php echo __("Analytics Code"); ?></label> <label for="inputAnalyticsCode" class="sr-only"><?php echo __("Analytics Code"); ?></label>
<input type="text" id="inputAnalyticsCode" class="form-control last" placeholder="Google Analytics Code: UA-123456789-1" data-toggle="tooltip" title="<?php echo __('Analytics Code'); ?>"> <input type="text" id="inputAnalyticsCode" class="form-control last" placeholder="Google Analytics Code: UA-123456789-1" data-toggle="tooltip" title="<?php echo __('Analytics Code'); ?>">
<small>Do not paste the full javascript code, paste only the gtag id</small> <small>Do not paste the full javascript code, paste only the gtag id</small>
@ -144,49 +143,49 @@ foreach ($userGroups as $value) {
<li class="list-group-item <?php echo User::isAdmin() ? "" : "hidden"; ?>"> <li class="list-group-item <?php echo User::isAdmin() ? "" : "hidden"; ?>">
<?php echo __("is Admin"); ?> <?php echo __("is Admin"); ?>
<div class="material-switch pull-right"> <div class="material-switch pull-right">
<input type="checkbox" value="isAdmin" id="isAdmin"/> <input type="checkbox" value="isAdmin" id="isAdmin" />
<label for="isAdmin" class="label-success"></label> <label for="isAdmin" class="label-success"></label>
</div> </div>
</li> </li>
<li class="list-group-item"> <li class="list-group-item">
<?php echo __("Can Stream Videos"); ?> <?php echo __("Can Stream Videos"); ?>
<div class="material-switch pull-right"> <div class="material-switch pull-right">
<input type="checkbox" value="canStream" id="canStream"/> <input type="checkbox" value="canStream" id="canStream" />
<label for="canStream" class="label-success"></label> <label for="canStream" class="label-success"></label>
</div> </div>
</li> </li>
<li class="list-group-item"> <li class="list-group-item">
<?php echo __("Can Upload Videos"); ?> <?php echo __("Can Upload Videos"); ?>
<div class="material-switch pull-right"> <div class="material-switch pull-right">
<input type="checkbox" value="canUpload" id="canUpload"/> <input type="checkbox" value="canUpload" id="canUpload" />
<label for="canUpload" class="label-success"></label> <label for="canUpload" class="label-success"></label>
</div> </div>
</li> </li>
<li class="list-group-item"> <li class="list-group-item">
<?php echo __("Can view chart"); ?> <?php echo __("Can view chart"); ?>
<div class="material-switch pull-right"> <div class="material-switch pull-right">
<input type="checkbox" value="canViewChart" id="canViewChart"/> <input type="checkbox" value="canViewChart" id="canViewChart" />
<label for="canViewChart" class="label-success"></label> <label for="canViewChart" class="label-success"></label>
</div> </div>
</li> </li>
<li class="list-group-item"> <li class="list-group-item">
<?php echo __("Can create meet"); ?> <?php echo __("Can create meet"); ?>
<div class="material-switch pull-right"> <div class="material-switch pull-right">
<input type="checkbox" value="canCreateMeet" id="canCreateMeet"/> <input type="checkbox" value="canCreateMeet" id="canCreateMeet" />
<label for="canCreateMeet" class="label-success"></label> <label for="canCreateMeet" class="label-success"></label>
</div> </div>
</li> </li>
<li class="list-group-item"> <li class="list-group-item">
<?php echo __("E-mail Verified"); ?> <?php echo __("E-mail Verified"); ?>
<div class="material-switch pull-right"> <div class="material-switch pull-right">
<input type="checkbox" value="isEmailVerified" id="isEmailVerified"/> <input type="checkbox" value="isEmailVerified" id="isEmailVerified" />
<label for="isEmailVerified" class="label-success"></label> <label for="isEmailVerified" class="label-success"></label>
</div> </div>
</li> </li>
<li class="list-group-item"> <li class="list-group-item">
<?php echo __("is Active"); ?> <?php echo __("is Active"); ?>
<div class="material-switch pull-right"> <div class="material-switch pull-right">
<input type="checkbox" value="status" id="status"/> <input type="checkbox" value="status" id="status" />
<label for="status" class="label-success"></label> <label for="status" class="label-success"></label>
</div> </div>
</li> </li>
@ -208,7 +207,7 @@ foreach ($userGroups as $value) {
<span class="label label-info"><?php echo $value['total_videos']; ?> <?php echo __("Videos linked"); ?></span> <span class="label label-info"><?php echo $value['total_videos']; ?> <?php echo __("Videos linked"); ?></span>
<span class="label label-warning dynamicLabel"><i class="fas fa-link"></i> <?php echo __("Dynamic group"); ?></span> <span class="label label-warning dynamicLabel"><i class="fas fa-link"></i> <?php echo __("Dynamic group"); ?></span>
<div class="material-switch pull-right"> <div class="material-switch pull-right">
<input id="userGroup<?php echo $value['id']; ?>" type="checkbox" value="<?php echo $value['id']; ?>" class="userGroups"/> <input id="userGroup<?php echo $value['id']; ?>" type="checkbox" value="<?php echo $value['id']; ?>" class="userGroups" />
<label for="userGroup<?php echo $value['id']; ?>" class="label-warning"></label> <label for="userGroup<?php echo $value['id']; ?>" class="label-warning"></label>
</div> </div>
</li> </li>
@ -240,7 +239,7 @@ foreach ($userGroups as $value) {
<div class="col-md-8 inputGroupContainer"> <div class="col-md-8 inputGroupContainer">
<div class="input-group"> <div class="input-group">
<span class="input-group-addon"><i class="fa fa-lock"></i></span> <span class="input-group-addon"><i class="fa fa-lock"></i></span>
<input id="first_name" class="form-control" type="text" readonly > <input id="first_name" class="form-control" type="text" readonly>
</div> </div>
</div> </div>
</div> </div>
@ -250,7 +249,7 @@ foreach ($userGroups as $value) {
<div class="col-md-8 inputGroupContainer"> <div class="col-md-8 inputGroupContainer">
<div class="input-group"> <div class="input-group">
<span class="input-group-addon"><i class="fa fa-lock"></i></span> <span class="input-group-addon"><i class="fa fa-lock"></i></span>
<input id="last_name" class="form-control" readonly > <input id="last_name" class="form-control" readonly>
</div> </div>
</div> </div>
</div> </div>
@ -260,7 +259,7 @@ foreach ($userGroups as $value) {
<div class="col-md-8 inputGroupContainer"> <div class="col-md-8 inputGroupContainer">
<div class="input-group"> <div class="input-group">
<span class="input-group-addon"><i class="fa fa-lock"></i></span> <span class="input-group-addon"><i class="fa fa-lock"></i></span>
<input id="address" class="form-control" readonly > <input id="address" class="form-control" readonly>
</div> </div>
</div> </div>
</div> </div>
@ -307,7 +306,7 @@ foreach ($userGroups as $value) {
<label class="col-md-4 control-label"><?php echo __("Document"); ?></label> <label class="col-md-4 control-label"><?php echo __("Document"); ?></label>
<div class="col-md-8 inputGroupContainer"> <div class="col-md-8 inputGroupContainer">
<div class="input-group"> <div class="input-group">
<img src="" class="img img-responsive img-thumbnail" id="documentImage"/> <img src="" class="img img-responsive img-thumbnail" id="documentImage" />
</div> </div>
</div> </div>
</div> </div>
@ -317,6 +316,8 @@ foreach ($userGroups as $value) {
</div><!-- /.modal-dialog --> </div><!-- /.modal-dialog -->
</div><!-- /.modal --> </div><!-- /.modal -->
<script src="<?php echo getURL('node_modules/flickity/dist/flickity.pkgd.min.js'); ?>" type="text/javascript"></script>
<script src="<?php echo getURL('node_modules/flickity-bg-lazyload/bg-lazyload.js'); ?>" type="text/javascript"></script>
<script> <script>
function isAnalytics() { function isAnalytics() {
@ -325,10 +326,10 @@ foreach ($userGroups as $value) {
//return str === '' || (/^ua-\d{4,9}-\d{1,4}$/i).test(str.toString()); //return str === '' || (/^ua-\d{4,9}-\d{1,4}$/i).test(str.toString());
} }
$(document).ready(function () { $(document).ready(function() {
startUserGrid("#<?php echo $users_tabs[0]['selector']; ?>", "<?php echo $users_tabs[0]['queryString']; ?>", <?php echo intval($users_tabs[0]['userGroupID']); ?>); startUserGrid("#<?php echo $users_tabs[0]['selector']; ?>", "<?php echo $users_tabs[0]['queryString']; ?>", <?php echo intval($users_tabs[0]['userGroupID']); ?>);
$('#addUserBtn').click(function (evt) { $('#addUserBtn').click(function(evt) {
$('#inputUserId').val(''); $('#inputUserId').val('');
$('#inputUser').val(''); $('#inputUser').val('');
$('#inputPassword').val(''); $('#inputPassword').val('');
@ -346,17 +347,17 @@ foreach ($userGroups as $value) {
$('.userGroups').prop('checked', false); $('.userGroups').prop('checked', false);
$('#status').prop('checked', true); $('#status').prop('checked', true);
$('#isEmailVerified').prop('checked', false); $('#isEmailVerified').prop('checked', false);
<?php <?php
print AVideoPlugin::addUserBtnJS(); print AVideoPlugin::addUserBtnJS();
?> ?>
$('#userFormModal').modal(); $('#userFormModal').modal();
}); });
$('#saveUserBtn').click(function (evt) { $('#saveUserBtn').click(function(evt) {
$('#updateUserForm').submit(); $('#updateUserForm').submit();
}); });
$('#updateUserForm').submit(function (evt) { $('#updateUserForm').submit(function(evt) {
evt.preventDefault(); evt.preventDefault();
if (!isAnalytics()){ if (!isAnalytics()) {
avideoAlert("<?php echo __("Sorry!"); ?>", "<?php echo __("Your analytics code is wrong"); ?>", "error"); avideoAlert("<?php echo __("Sorry!"); ?>", "<?php echo __("Your analytics code is wrong"); ?>", "error");
$('#inputAnalyticsCode').focus(); $('#inputAnalyticsCode').focus();
return false; return false;
@ -364,16 +365,15 @@ print AVideoPlugin::addUserBtnJS();
modal.showPleaseWait(); modal.showPleaseWait();
var selectedUserGroups = []; var selectedUserGroups = [];
$('.userGroups:checked').each(function () { $('.userGroups:checked').each(function() {
selectedUserGroups.push($(this).val()); selectedUserGroups.push($(this).val());
}); });
$.ajax({ $.ajax({
url: '<?php echo $global['webSiteRootURL']; ?>objects/userAddNew.json.php', url: '<?php echo $global['webSiteRootURL']; ?>objects/userAddNew.json.php',
data: { data: {
<?php <?php
print AVideoPlugin::updateUserFormJS(); print AVideoPlugin::updateUserFormJS();
?> ?> "id": $('#inputUserId').val(),
"id": $('#inputUserId').val(),
"user": $('#inputUser').val(), "user": $('#inputUser').val(),
"pass": $('#inputPassword').val(), "pass": $('#inputPassword').val(),
"email": $('#inputEmail').val(), "email": $('#inputEmail').val(),
@ -394,8 +394,8 @@ print AVideoPlugin::updateUserFormJS();
"securityToken": '<?php echo getToken(3600); ?>' "securityToken": '<?php echo getToken(3600); ?>'
}, },
type: 'post', type: 'post',
success: function (response) { success: function(response) {
if(!response.error){ if (!response.error) {
$('#userFormModal').modal('hide'); $('#userFormModal').modal('hide');
$('.bootgrid-table').bootgrid("reload"); $('.bootgrid-table').bootgrid("reload");
} }
@ -405,12 +405,12 @@ print AVideoPlugin::updateUserFormJS();
} }
}); });
return false; return false;
} });
);
}); });
var userGroupShowOnly = ''; var userGroupShowOnly = '';
var userGroupQueryString = ''; var userGroupQueryString = '';
function userGroupFilter(user_groups_id, value) { function userGroupFilter(user_groups_id, value) {
console.log('Filter usergroup', user_groups_id, value); console.log('Filter usergroup', user_groups_id, value);
userGroupShowOnly = value; userGroupShowOnly = value;
@ -427,6 +427,7 @@ print AVideoPlugin::updateUserFormJS();
url = addGetParam(url, 'userGroupShowOnly', userGroupShowOnly); url = addGetParam(url, 'userGroupShowOnly', userGroupShowOnly);
return url; return url;
} }
function startUserGrid(selector, queryString, user_groups_id) { function startUserGrid(selector, queryString, user_groups_id) {
userGroupQueryString = queryString; userGroupQueryString = queryString;
if (user_groups_id) { if (user_groups_id) {
@ -448,14 +449,14 @@ print AVideoPlugin::updateUserFormJS();
ajax: true, ajax: true,
url: getUserGridURL, url: getUserGridURL,
formatters: { formatters: {
"commands": function (column, row) { "commands": function(column, row) {
var editBtn = '<button type="button" class="btn btn-xs btn-default command-edit" data-row-id="' + row.id + '" data-toggle="tooltip" data-placement="left" title="<?php echo __('Edit'); ?>"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span></button>' var editBtn = '<button type="button" class="btn btn-xs btn-default command-edit" data-row-id="' + row.id + '" data-toggle="tooltip" data-placement="left" title="<?php echo __('Edit'); ?>"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span></button>'
var infoBtn = '<button type="button" class="btn btn-xs btn-default command-info" data-row-id="' + row.id + '" data-toggle="tooltip" data-placement="left" title="<?php echo __('Info'); ?>"><i class="fas fa-info-circle"></i></button>' var infoBtn = '<button type="button" class="btn btn-xs btn-default command-info" data-row-id="' + row.id + '" data-toggle="tooltip" data-placement="left" title="<?php echo __('Info'); ?>"><i class="fas fa-info-circle"></i></button>'
//var deleteBtn = '<button type="button" class="btn btn-default btn-xs command-delete" data-row-id="' + row.id + ' data-toggle="tooltip" data-placement="left" title="Delete""><span class="glyphicon glyphicon-erase" aria-hidden="true"></span></button>'; //var deleteBtn = '<button type="button" class="btn btn-default btn-xs command-delete" data-row-id="' + row.id + ' data-toggle="tooltip" data-placement="left" title="Delete""><span class="glyphicon glyphicon-erase" aria-hidden="true"></span></button>';
var pluginsButtons = '<br><?php echo AVideoPlugin::getUsersManagerListButton(); ?>'; var pluginsButtons = '<br><?php echo AVideoPlugin::getUsersManagerListButton(); ?>';
return editBtn + infoBtn + pluginsButtons; return editBtn + infoBtn + pluginsButtons;
}, },
"tags": function (column, row) { "tags": function(column, row) {
var tags = ''; var tags = '';
for (var i in row.tags) { for (var i in row.tags) {
if (typeof row.tags[i].type == "undefined") { if (typeof row.tags[i].type == "undefined") {
@ -465,7 +466,7 @@ print AVideoPlugin::updateUserFormJS();
} }
return tags; return tags;
}, },
"user": function (column, row) { "user": function(column, row) {
var photo = ''; var photo = '';
if (row.photoURL) { if (row.photoURL) {
photo = "<br><img src='" + row.photo + "' class='img img-responsive img-rounded img-thumbnail' style='max-width:100px;'/>"; photo = "<br><img src='" + row.photo + "' class='img img-responsive img-rounded img-thumbnail' style='max-width:100px;'/>";
@ -473,10 +474,9 @@ print AVideoPlugin::updateUserFormJS();
return row.user + photo; return row.user + photo;
} }
} }
}).on("loaded.rs.jquery.bootgrid", function () }).on("loaded.rs.jquery.bootgrid", function() {
{
/* Executes after data is loaded and rendered */ /* Executes after data is loaded and rendered */
grid.find(".command-edit").on("click", function (e) { grid.find(".command-edit").on("click", function(e) {
var row_index = $(this).closest('tr').index(); var row_index = $(this).closest('tr').index();
var row = $(selector).bootgrid("getCurrentRows")[row_index]; var row = $(selector).bootgrid("getCurrentRows")[row_index];
console.log(row); console.log(row);
@ -507,12 +507,12 @@ print AVideoPlugin::updateUserFormJS();
$('#canCreateMeet').prop('checked', (row.canCreateMeet == "1" ? true : false)); $('#canCreateMeet').prop('checked', (row.canCreateMeet == "1" ? true : false));
$('#status').prop('checked', (row.status === "a" ? true : false)); $('#status').prop('checked', (row.status === "a" ? true : false));
$('#isEmailVerified').prop('checked', (row.isEmailVerified == "1" ? true : false)); $('#isEmailVerified').prop('checked', (row.isEmailVerified == "1" ? true : false));
<?php <?php
print AVideoPlugin::loadUsersFormJS(); print AVideoPlugin::loadUsersFormJS();
?> ?>
$('#userFormModal').modal(); $('#userFormModal').modal();
}).end().find(".command-info").on("click", function (e) { }).end().find(".command-info").on("click", function(e) {
var row_index = $(this).closest('tr').index(); var row_index = $(this).closest('tr').index();
var row = $(selector).bootgrid("getCurrentRows")[row_index]; var row = $(selector).bootgrid("getCurrentRows")[row_index];
@ -531,5 +531,4 @@ print AVideoPlugin::loadUsersFormJS();
}); });
}); });
} }
</script> </script>

View file

@ -13,7 +13,11 @@
<?php <?php
echo $getAdsLeaderBoardTop; echo $getAdsLeaderBoardTop;
}else{ }else{
echo "<!-- getAdsLeaderBoardTop is empty -->"; echo "<!-- ";
echo "getAdsLeaderBoardTop is empty ";
echo implode(', ', ADs::getAdsCodeReason('leaderBoardTop'));
echo " -->";
} }
?> ?>
</center> </center>