Exemplo n.º 1
0
 protected function renderContent()
 {
     $homeUrl = Yii::app()->createUrl('home/default');
     $content = '<div class="clearfix">';
     $content .= '<a href="#" id="nav-trigger" title="Toggle Navigation">&rsaquo;</a>';
     $content .= '<div id="corp-logo">';
     if ($logoFileModelId = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'logoFileModelId')) {
         $logoFileModel = FileModel::getById($logoFileModelId);
         $logoFileSrc = Yii::app()->getAssetManager()->getPublishedUrl(Yii::getPathOfAlias('application.runtime.uploads') . DIRECTORY_SEPARATOR . $logoFileModel->name);
     } else {
         $logoFileSrc = Yii::app()->themeManager->baseUrl . '/default/images/Zurmo_logo.png';
     }
     $logoHeight = ZurmoConfigurationFormAdapter::resolveLogoHeight();
     $logoWidth = ZurmoConfigurationFormAdapter::resolveLogoWidth();
     if (Yii::app()->userInterface->isMobile()) {
         $content .= '<a href="' . $homeUrl . '"><img src="' . $logoFileSrc . '" alt="Zurmo Logo" /></a>';
         //make sure width and height are NEVER defined
     } else {
         $content .= '<a href="' . $homeUrl . '"><img src="' . $logoFileSrc . '" alt="Zurmo Logo" height="' . $logoHeight . '" width="' . $logoWidth . '" /></a>';
     }
     if ($this->applicationName != null) {
         $content .= ZurmoHtml::tag('span', array(), $this->applicationName);
     }
     $content .= '</div>';
     if (!empty($this->userMenuItems) && !empty($this->settingsMenuItems)) {
         $content .= '<div id="user-toolbar" class="clearfix">';
         $content .= static::renderHeaderMenus($this->userMenuItems, $this->settingsMenuItems);
         $content .= '</div>';
     }
     $content .= '</div>';
     return $content;
 }
Exemplo n.º 2
0
 public function actionDelete($id)
 {
     $fileModel = FileModel::getById((int) $id);
     $fileModel->delete();
     //todo: add error handling.
 }
Exemplo n.º 3
0
 /**
  * @param array $filesIds
  * @param EmailMessage $emailMessage
  */
 public static function attachFilesToMessage(array $filesIds, $emailMessage)
 {
     foreach ($filesIds as $fileId) {
         $attachment = FileModel::getById((int) $fileId);
         $emailMessage->files->add($attachment);
     }
 }
 public static function deleteCurrentCustomLogo()
 {
     if ($logoFileModelId = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'logoFileModelId')) {
         //Get path of currently uploaded logo, required to delete/unlink legacy logo from runtime/uploads
         $logoFileModel = FileModel::getById($logoFileModelId);
         $currentLogoFileName = $logoFileModel->name;
         $currentLogoFilePath = Yii::getPathOfAlias('application.runtime.uploads') . DIRECTORY_SEPARATOR . $currentLogoFileName;
         if (file_exists($currentLogoFilePath)) {
             unlink($currentLogoFilePath);
         }
     }
 }
Exemplo n.º 5
0
 public function testDifferentMimeTypes()
 {
     Yii::app()->user->userModel = User::getByUsername('super');
     $pathToFiles = Yii::getPathOfAlias('application.modules.zurmo.tests.unit.files');
     $contents1 = file_get_contents($pathToFiles . DIRECTORY_SEPARATOR . 'testNote.txt');
     $contents2 = file_get_contents($pathToFiles . DIRECTORY_SEPARATOR . 'testDocument.docx');
     $contents3 = file_get_contents($pathToFiles . DIRECTORY_SEPARATOR . 'testImage.png');
     $contents4 = file_get_contents($pathToFiles . DIRECTORY_SEPARATOR . 'testPDF.pdf');
     $contents5 = file_get_contents($pathToFiles . DIRECTORY_SEPARATOR . 'testZip.zip');
     $file1 = ZurmoTestHelper::createFileModel();
     $file2 = ZurmoTestHelper::createFileModel('testDocument.docx');
     $file3 = ZurmoTestHelper::createFileModel('testImage.png');
     $file4 = ZurmoTestHelper::createFileModel('testPDF.pdf');
     $file5 = ZurmoTestHelper::createFileModel('testZip.zip');
     $file1Id = $file1->id;
     $file2Id = $file2->id;
     $file3Id = $file3->id;
     $file4Id = $file4->id;
     $file5Id = $file5->id;
     $file1->forget();
     $file2->forget();
     $file3->forget();
     $file4->forget();
     $file5->forget();
     $file1 = FileModel::getById($file1Id);
     $this->assertEquals($contents1, $file1->fileContent->content);
     $this->assertEquals('testNote.txt', $file1->name);
     $this->assertEquals('text/plain', $file1->type);
     $this->assertEquals(6495, $file1->size);
     $file2 = FileModel::getById($file2Id);
     $this->assertEquals($contents2, $file2->fileContent->content);
     $this->assertEquals('testDocument.docx', $file2->name);
     $this->assertEquals('application/msword', $file2->type);
     $this->assertEquals(14166, $file2->size);
     $file3 = FileModel::getById($file3Id);
     $this->assertEquals($contents3, $file3->fileContent->content);
     $this->assertEquals('testImage.png', $file3->name);
     $this->assertEquals('image/png', $file3->type);
     $this->assertEquals(3332, $file3->size);
     $file4 = FileModel::getById($file4Id);
     $this->assertEquals($contents4, $file4->fileContent->content);
     $this->assertEquals('testPDF.pdf', $file4->name);
     $this->assertEquals('application/pdf', $file4->type);
     $this->assertEquals(81075, $file4->size);
     $file5 = FileModel::getById($file5Id);
     $this->assertEquals($contents5, $file5->fileContent->content);
     $this->assertEquals('testZip.zip', $file5->name);
     $this->assertEquals('application/zip', $file5->type);
     $this->assertEquals(3492, $file5->size);
 }
Exemplo n.º 6
0
 protected function resolveAndRenderLogoContent()
 {
     $homeUrl = Yii::app()->createUrl('home/default');
     $content = null;
     if ($logoFileModelId = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'logoFileModelId')) {
         $logoFileModel = FileModel::getById($logoFileModelId);
         $logoFileSrc = Yii::app()->getAssetManager()->getPublishedUrl(Yii::getPathOfAlias('application.runtime.uploads') . DIRECTORY_SEPARATOR . $logoFileModel->name);
     } else {
         $logoFileSrc = Yii::app()->themeManager->baseUrl . '/default/images/Zurmo_logo.png';
     }
     $logoHeight = ZurmoUserInterfaceConfigurationFormAdapter::resolveLogoHeight();
     $logoWidth = ZurmoUserInterfaceConfigurationFormAdapter::resolveLogoWidth();
     if (Yii::app()->userInterface->isMobile()) {
         //make sure width and height are NEVER defined
         $content .= '<img src="' . $logoFileSrc . '" alt="Zurmo Logo" />';
     } else {
         $content .= '<img src="' . $logoFileSrc . '" alt="Zurmo Logo" height="' . $logoHeight . '" width="' . $logoWidth . '" />';
     }
     if ($this->applicationName != null) {
         $content .= ZurmoHtml::tag('span', array(), $this->applicationName);
     }
     return ZurmoHtml::link($content, $homeUrl, array('class' => 'clearfix', 'id' => 'corp-logo'));
 }
 public function handlePublishLogoAssets($event)
 {
     if (null !== ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'logoFileModelId')) {
         $logoFileModelId = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'logoFileModelId');
         $logoFileModel = FileModel::getById($logoFileModelId);
         $logoFileSrc = Yii::app()->getAssetManager()->getPublishedUrl(Yii::getPathOfAlias('application.runtime.uploads') . DIRECTORY_SEPARATOR . $logoFileModel->name);
         //logoFile is either not published or we have dangling url for asset
         if ($logoFileSrc === false || file_exists($logoFileSrc) === false) {
             //Logo file is not published in assets
             //Check if it exists in runtime/uploads
             if (file_exists(Yii::getPathOfAlias('application.runtime.uploads') . DIRECTORY_SEPARATOR . $logoFileModel->name) === false) {
                 $logoFilePath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $logoFileModel->name;
                 file_put_contents($logoFilePath, $logoFileModel->fileContent->content, LOCK_EX);
                 ZurmoUserInterfaceConfigurationFormAdapter::publishLogo($logoFileModel->name, $logoFilePath);
             } else {
                 //Logo File exist in runtime/uploads but not published
                 Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('application.runtime.uploads') . DIRECTORY_SEPARATOR . $logoFileModel->name);
             }
         }
     }
 }
Exemplo n.º 8
0
 public function testMakeByExistingFileModelId()
 {
     $oldFileContentsCount = FileContent::getCount();
     $file1 = ZurmoTestHelper::createFileModel('testNote.txt');
     $file2 = FileModelUtil::makeByExistingFileModelId($file1->id, true);
     $file1Content = $file1->fileContent;
     $file2Id = $file2->id;
     $this->assertTrue($file2 !== false);
     $this->assertEquals($file1->name, $file2->name);
     $this->assertEquals($file1->type, $file2->type);
     $this->assertEquals($file1->size, $file2->size);
     $this->assertEquals($file1Content->content, $file2->fileContent->content);
     // because fileContent was not replicated but referenced in file2.
     $this->assertEquals($file1Content->id, $file2->fileContent->id);
     $this->assertEquals($oldFileContentsCount + 1, FileContent::getCount());
     $file1->delete();
     FileModel::forgetAll();
     $file2 = FileModel::getById($file2Id);
     $this->assertEquals($file1Content->content, $file2->fileContent->content);
     // deleting file1 should still preserve its content as its being used by file2.
     $this->assertEquals($oldFileContentsCount + 1, FileContent::getCount());
     $file2->delete();
     // deleting fil2 should get rid of the fileContent too.
     $this->assertEquals($oldFileContentsCount, FileContent::getCount());
 }
 public function testSavingFileContentWhenNotModified()
 {
     $fileContent = new FileContent();
     $fileContent->content = 'testContent';
     $file = new FileModel();
     $file->fileContent = $fileContent;
     $file->name = 'aTestName';
     $file->type = 'aTestType';
     $file->size = 500;
     $saved = $file->save();
     $this->assertTrue($saved);
     $fileId = $file->id;
     $file->forget();
     //Now retrieve the file and make sure the content matches.
     $fileModel = FileModel::getById($fileId);
     $this->assertTrue($fileModel->save());
     $file->forget();
     $fileModel = FileModel::getById($fileId);
     $this->assertEquals('testContent', $file->fileContent->content);
 }
 public function actionLogo()
 {
     $id = (int) ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'logoThumbFileModelId');
     $logo = FileModel::getById($id);
     header("Content-Type:   {$logo->type}");
     header("Content-Length: {$logo->size}");
     header("Content-Name:   {$logo->name}");
     echo $logo->fileContent->content;
 }
 protected function resolveAttachmentsByPostSourceData(array $sourceData)
 {
     $attachments = array();
     if (isset($sourceData['attachmentIds']) && is_array($sourceData['attachmentIds'])) {
         foreach ($sourceData['attachmentIds'] as $attachmentId) {
             $attachments[] = FileModel::getById(intval($attachmentId));
         }
     }
     return $attachments;
 }
Exemplo n.º 12
0
 /**
  *
  * @param integer $fileModelId
  * @param bool $sharedContent
  * @return $fileModel or false on failure
  */
 public static function makeByExistingFileModelId($fileModelId, $sharedContent = true)
 {
     assert('is_int($fileModelId) || (is_string($fileModelId) && !empty($fileModelId))');
     $existingFileModel = FileModel::getById($fileModelId);
     return static::makeByFileModel($existingFileModel, $sharedContent);
 }
Exemplo n.º 13
0
 /**
  *
  * @param integer $fileModelId
  * @return $fileModel or false on failure
  */
 public static function makeByExistingFileModelId($fileModelId)
 {
     assert('is_int($fileModelId) || (is_string($fileModelId) && !empty($fileModelId))');
     $existingFileModel = FileModel::getById($fileModelId);
     $file = new FileModel();
     // TODO: @Shoaibi/@Jason: High: Following should also clone FileContent as its HAS_ONE.
     ZurmoCopyModelUtil::copy($existingFileModel, $file);
     $fileContent = new FileContent();
     $fileContent->content = $existingFileModel->fileContent->content;
     $file->fileContent = $fileContent;
     if (!$file->save()) {
         return false;
     }
     return $file;
 }
Exemplo n.º 14
0
 public function actionLogo($id)
 {
     $logo = FileModel::getById($id);
     header("Content-Type:   {$logo->type}");
     header("Content-Length: {$logo->size}");
     header("Content-Name:   {$logo->name}");
     echo $logo->fileContent->content;
 }