error label for 'no access' and info label for 'empty directory'
This commit is contained in:
parent
2cca641d2e
commit
c506c7b0da
@ -3,6 +3,7 @@
|
|||||||
namespace ManiaControl\Maps;
|
namespace ManiaControl\Maps;
|
||||||
|
|
||||||
use FML\Controls\Frame;
|
use FML\Controls\Frame;
|
||||||
|
use FML\Controls\Label;
|
||||||
use FML\Controls\Labels\Label_Button;
|
use FML\Controls\Labels\Label_Button;
|
||||||
use FML\Controls\Labels\Label_Text;
|
use FML\Controls\Labels\Label_Text;
|
||||||
use FML\Controls\Quads\Quad_BgsPlayerCard;
|
use FML\Controls\Quads\Quad_BgsPlayerCard;
|
||||||
@ -154,75 +155,91 @@ class DirectoryBrowser implements ManialinkPageAnswerListener {
|
|||||||
$mapFiles = $this->scanMapFiles($folderPath);
|
$mapFiles = $this->scanMapFiles($folderPath);
|
||||||
|
|
||||||
if (is_array($mapFiles)) {
|
if (is_array($mapFiles)) {
|
||||||
foreach ($mapFiles as $filePath => $fileName) {
|
if (empty($mapFiles)) {
|
||||||
$shortFilePath = substr($filePath, strlen($folderPath));
|
$emptyLabel = new Label();
|
||||||
|
$frame->add($emptyLabel);
|
||||||
|
$emptyLabel->setY(20)
|
||||||
|
->setTextColor('aaa')
|
||||||
|
->setText('No files found.')
|
||||||
|
->setTranslate(true);
|
||||||
|
} else {
|
||||||
|
foreach ($mapFiles as $filePath => $fileName) {
|
||||||
|
$shortFilePath = substr($filePath, strlen($folderPath));
|
||||||
|
|
||||||
if ($index % 15 === 0) {
|
if ($index % 15 === 0) {
|
||||||
// New Page
|
// New Page
|
||||||
$pageFrame = new Frame();
|
$pageFrame = new Frame();
|
||||||
$frame->add($pageFrame);
|
$frame->add($pageFrame);
|
||||||
$posY = $height / 2 - 10;
|
$posY = $height / 2 - 10;
|
||||||
$paging->addPage($pageFrame);
|
$paging->addPage($pageFrame);
|
||||||
}
|
|
||||||
|
|
||||||
// Map Frame
|
|
||||||
$mapFrame = new Frame();
|
|
||||||
$pageFrame->add($mapFrame);
|
|
||||||
$mapFrame->setY($posY);
|
|
||||||
|
|
||||||
if ($index % 2 === 0) {
|
|
||||||
// Striped background line
|
|
||||||
$lineQuad = new Quad_BgsPlayerCard();
|
|
||||||
$mapFrame->add($lineQuad);
|
|
||||||
$lineQuad->setSize($width, 4)
|
|
||||||
->setSubStyle($lineQuad::SUBSTYLE_BgPlayerCardBig);
|
|
||||||
}
|
|
||||||
|
|
||||||
// File name Label
|
|
||||||
$nameLabel = new Label_Text();
|
|
||||||
$mapFrame->add($nameLabel);
|
|
||||||
$nameLabel->setX($width * -0.48)
|
|
||||||
->setSize($width * 0.8, 4)
|
|
||||||
->setHAlign($nameLabel::LEFT)
|
|
||||||
->setTextSize(1)
|
|
||||||
->setText($fileName)
|
|
||||||
->setAreaColor('f00')
|
|
||||||
->setAreaFocusColor('0f0');
|
|
||||||
|
|
||||||
if (is_dir($filePath)) {
|
|
||||||
// Folder
|
|
||||||
$folderAction = self::ACTION_OPEN_FOLDER . substr($shortFilePath, 0, -1);
|
|
||||||
$nameLabel->setAction($folderAction);
|
|
||||||
} else {
|
|
||||||
// File
|
|
||||||
if ($this->maniaControl->authenticationManager->checkPermission($player, MapManager::SETTING_PERMISSION_ADD_MAP)) {
|
|
||||||
// 'Add' button
|
|
||||||
$addButton = new Label_Button();
|
|
||||||
$mapFrame->add($addButton);
|
|
||||||
$addButton->setPosition($width / 2 - 9, 0, 0.2)
|
|
||||||
->setSize(3, 3)
|
|
||||||
->setTextSize(2)
|
|
||||||
->setText('Add')
|
|
||||||
->setAction(self::ACTION_ADD_FILE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->maniaControl->authenticationManager->checkPermission($player, MapManager::SETTING_PERMISSION_ERASE_MAP)) {
|
// Map Frame
|
||||||
// 'Erase' button
|
$mapFrame = new Frame();
|
||||||
$eraseButton = new Label_Button();
|
$pageFrame->add($mapFrame);
|
||||||
$mapFrame->add($eraseButton);
|
$mapFrame->setY($posY);
|
||||||
$eraseButton->setPosition($width / 2 - 9, 0, 0.2)
|
|
||||||
->setSize(3, 3)
|
|
||||||
->setTextSize(2)
|
|
||||||
->setText('Erase')
|
|
||||||
->setAction(self::ACTION_ERASE_FILE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$posY -= 4;
|
if ($index % 2 === 0) {
|
||||||
$index++;
|
// Striped background line
|
||||||
|
$lineQuad = new Quad_BgsPlayerCard();
|
||||||
|
$mapFrame->add($lineQuad);
|
||||||
|
$lineQuad->setSize($width, 4)
|
||||||
|
->setSubStyle($lineQuad::SUBSTYLE_BgPlayerCardBig);
|
||||||
|
}
|
||||||
|
|
||||||
|
// File name Label
|
||||||
|
$nameLabel = new Label_Text();
|
||||||
|
$mapFrame->add($nameLabel);
|
||||||
|
$nameLabel->setX($width * -0.48)
|
||||||
|
->setSize($width * 0.8, 4)
|
||||||
|
->setHAlign($nameLabel::LEFT)
|
||||||
|
->setTextSize(1)
|
||||||
|
->setText($fileName)
|
||||||
|
->setAreaColor('f00')
|
||||||
|
->setAreaFocusColor('0f0');
|
||||||
|
|
||||||
|
if (is_dir($filePath)) {
|
||||||
|
// Folder
|
||||||
|
$folderAction = self::ACTION_OPEN_FOLDER . substr($shortFilePath, 0, -1);
|
||||||
|
$nameLabel->setAction($folderAction);
|
||||||
|
} else {
|
||||||
|
// File
|
||||||
|
if ($this->maniaControl->authenticationManager->checkPermission($player, MapManager::SETTING_PERMISSION_ADD_MAP)) {
|
||||||
|
// 'Add' button
|
||||||
|
$addButton = new Label_Button();
|
||||||
|
$mapFrame->add($addButton);
|
||||||
|
$addButton->setPosition($width / 2 - 9, 0, 0.2)
|
||||||
|
->setSize(3, 3)
|
||||||
|
->setTextSize(2)
|
||||||
|
->setText('Add')
|
||||||
|
->setTranslate(true)
|
||||||
|
->setAction(self::ACTION_ADD_FILE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->maniaControl->authenticationManager->checkPermission($player, MapManager::SETTING_PERMISSION_ERASE_MAP)) {
|
||||||
|
// 'Erase' button
|
||||||
|
$eraseButton = new Label_Button();
|
||||||
|
$mapFrame->add($eraseButton);
|
||||||
|
$eraseButton->setPosition($width / 2 - 9, 0, 0.2)
|
||||||
|
->setSize(3, 3)
|
||||||
|
->setTextSize(2)
|
||||||
|
->setText('Erase')
|
||||||
|
->setTranslate(true)
|
||||||
|
->setAction(self::ACTION_ERASE_FILE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$posY -= 4;
|
||||||
|
$index++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// TODO: show error label
|
$errorLabel = new Label();
|
||||||
|
$frame->add($errorLabel);
|
||||||
|
$errorLabel->setY(20)
|
||||||
|
->setTextColor('f30')
|
||||||
|
->setText('No access to the directory.')
|
||||||
|
->setTranslate(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->maniaControl->manialinkManager->displayWidget($maniaLink, $player, self::WIDGET_NAME);
|
$this->maniaControl->manialinkManager->displayWidget($maniaLink, $player, self::WIDGET_NAME);
|
||||||
|
Loading…
Reference in New Issue
Block a user