diff --git a/.idea/workspace.xml b/.idea/workspace.xml index b24344b..d4b117e 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,13 +2,13 @@ - + + + + - - - @@ -63,19 +63,64 @@ - - + + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -94,21 +139,18 @@ @@ -241,20 +286,6 @@ - - - - - - - - - - @@ -409,6 +440,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -651,7 +796,7 @@ - + @@ -692,76 +837,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -777,44 +852,29 @@ - - - - - - - - + - - - + - - - + - - - + - - - + @@ -824,198 +884,268 @@ - - - - - - - - - - + - - - + - - - + - - - + - - - + - - - + - - - + - - - + - - - - - - - - - - - - - - - - - + - - - + - + - - - + - + - - - + - + - - - + - + - - - + - + - + + + + + + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DB_Changes.txt b/DB_Changes.txt index 698befd..604ccfc 100644 --- a/DB_Changes.txt +++ b/DB_Changes.txt @@ -8,8 +8,15 @@ programme -> Changed Sieb_des_Erasthothenes -> Sieb des Erasthothenes (also re programme -> Adjusted Star Ratings programme -> Niripsa[visible] = 0 programme -> ms4_programs +programme -> Removed Column viewable_code +programme -> update_identifier is no VARCHAR(64) idx_info -> ms4_log idx_info -> new columns + full content change -othervalues -> ms4_othervalues \ No newline at end of file +othervalues -> ms4_othervalues + +updates -> ms4_updates +updates -> 'Name' is primary key +updates -> Adjust 'Link' +updates -> 'Name' Type is VARCHAR(64) \ No newline at end of file diff --git a/www/css/styles.css b/www/css/styles.css index 4f42532..34bb28a 100644 --- a/www/css/styles.css +++ b/www/css/styles.css @@ -513,3 +513,52 @@ ul.nav li.dropdown-append:hover > ul.dropdown-menu { color: #777; font-size: 11px; } + +/* programs/view +-------------------------------------------------- */ + +.progview_image { + border-radius: 6px; + margin-bottom: 15px; +} + +.progview_donwloadbtns { + background-color: white; + margin-left: -16px; + margin-right: -16px; + margin-bottom: -16px; + padding: 19px; + + border-radius: 0px 0px 6px 6px; +} + +.progview_infocontent { + background-color: white; + margin-left: -14px; + margin-right: -14px; + margin-bottom: 10px; + padding: 19px; + + border-radius: 16px; +} + +.progview_infocontent td { + font-style: italic; + margin: 5px 0px; +} + +.progview_infocontent tr > td:not(:first-child) { + padding-left: 10px; +} + +.progview_infocol span.badge { + font-style: normal; + padding: 2px 4px; + border-radius: 3px; +} + +.progview_infocol { + padding-top: 2px; + padding-bottom: 10px; +} + diff --git a/www/data/programs/.gitignore b/www/data/programs/.gitignore new file mode 100644 index 0000000..6f66c74 --- /dev/null +++ b/www/data/programs/.gitignore @@ -0,0 +1 @@ +*.zip \ No newline at end of file diff --git a/www/protected/controllers/ProgramsController.php b/www/protected/controllers/ProgramsController.php index e5d3cec..5035245 100644 --- a/www/protected/controllers/ProgramsController.php +++ b/www/protected/controllers/ProgramsController.php @@ -53,10 +53,15 @@ class ProgramsController extends MSController */ public function actionView($id) { + $this->layout = '//layouts/main'; + if (is_numeric($id)) { - throw new CHttpException(400, "You can't access a program by ID"); - //$model = $this->loadModelByID($id); + if (Yii::app()->user->name == 'admin') { + $model = $this->loadModelByID($id); + } else { + throw new CHttpException(400, "You can't access a program by ID"); + } } else { diff --git a/www/protected/models/Program.php b/www/protected/models/Program.php index 28e3c62..4ddd845 100644 --- a/www/protected/models/Program.php +++ b/www/protected/models/Program.php @@ -17,7 +17,6 @@ * @property string $Description * @property string $add_date * @property string $download_url - * @property integer $viewable_code * @property string $sourceforge_url * @property string $homepage_url * @property string $github_url @@ -43,14 +42,14 @@ class Program extends CActiveRecord // NOTE: you should only define rules for those attributes that // will receive user inputs. return array( - array('Name, Thumbnailname, Downloads, Kategorie, Sterne, enabled, visible, Language, programming_lang, Description, add_date, download_url, viewable_code, sourceforge_url, homepage_url, github_url, uses_absCanv, update_identifier', 'required'), - array('enabled, visible, viewable_code, uses_absCanv, highscore_gid', 'numerical', 'integerOnly'=>true), + array('Name, Thumbnailname, Downloads, Kategorie, Sterne, enabled, visible, Language, programming_lang, Description, add_date, download_url, sourceforge_url, homepage_url, github_url, uses_absCanv, update_identifier', 'required'), + array('enabled, visible, uses_absCanv, highscore_gid', 'numerical', 'integerOnly'=>true), array('Downloads, Sterne', 'numerical'), - array('update_identifier', 'length', 'max'=>28), + array('update_identifier', 'length', 'max'=>64), array('programming_lang', 'length', 'max'=>16), // The following rule is used by search(). // @TODO-MS Please remove those attributes that should not be searched. - array('ID, Name, Thumbnailname, Downloads, Kategorie, Sterne, enabled, visible, Language, programming_lang, Description, add_date, download_url, viewable_code, sourceforge_url, homepage_url, github_url, uses_absCanv, update_identifier, highscore_gid', 'safe', 'on'=>'search'), + array('ID, Name, Thumbnailname, Downloads, Kategorie, Sterne, enabled, visible, Language, programming_lang, Description, add_date, download_url, sourceforge_url, homepage_url, github_url, uses_absCanv, update_identifier, highscore_gid', 'safe', 'on'=>'search'), ); } @@ -84,7 +83,6 @@ class Program extends CActiveRecord 'Description' => 'Description', 'add_date' => 'Add Date', 'download_url' => 'Download Url', - 'viewable_code' => 'Viewable Code', 'sourceforge_url' => 'Sourceforge Url', 'homepage_url' => 'Homepage Url', 'github_url' => 'Github Url', @@ -123,7 +121,6 @@ class Program extends CActiveRecord $criteria->compare('Description',$this->Description,true); $criteria->compare('add_date',$this->add_date,true); $criteria->compare('download_url',$this->download_url,true); - $criteria->compare('viewable_code',$this->viewable_code); $criteria->compare('sourceforge_url',$this->sourceforge_url,true); $criteria->compare('homepage_url',$this->homepage_url,true); $criteria->compare('github_url',$this->github_url,true); @@ -186,4 +183,26 @@ class Program extends CActiveRecord public function getDateTime() { return new DateTime($this->add_date); } + + public function getStarHTML() + { + $out = ''; + + for ($i = 0; $i < 4; $i++) { + if ($i < $this->Sterne) + $out .= MsHtml::icon(MsHtml::ICON_STAR); + else + $out .= MsHtml::icon(MsHtml::ICON_STAR_EMPTY); + } + + return $out; + } + + public function hasVersionInfo() { + return ! empty($this->update_identifier); + } + + public function getVersionInfo() { + return 0; //TODO + } } diff --git a/www/protected/views/programs/_form.php b/www/protected/views/programs/_form.php index 6ff3c3c..91b0d34 100644 --- a/www/protected/views/programs/_form.php +++ b/www/protected/views/programs/_form.php @@ -41,8 +41,6 @@ textFieldControlGroup($model,'download_url',array('rows'=>6,'span'=>8)); ?> - textFieldControlGroup($model,'viewable_code',array('span'=>5)); ?> - textFieldControlGroup($model,'sourceforge_url',array('rows'=>6,'span'=>8)); ?> textFieldControlGroup($model,'homepage_url',array('rows'=>6,'span'=>8)); ?> diff --git a/www/protected/views/programs/_search.php b/www/protected/views/programs/_search.php index e4e221b..0cebb6f 100644 --- a/www/protected/views/programs/_search.php +++ b/www/protected/views/programs/_search.php @@ -35,8 +35,6 @@ textAreaControlGroup($model,'download_url',array('rows'=>6,'span'=>8)); ?> - textFieldControlGroup($model,'viewable_code',array('span'=>5)); ?> - textAreaControlGroup($model,'sourceforge_url',array('rows'=>6,'span'=>8)); ?> textAreaControlGroup($model,'homepage_url',array('rows'=>6,'span'=>8)); ?> diff --git a/www/protected/views/programs/index.php b/www/protected/views/programs/index.php index 2433f71..4cedba7 100644 --- a/www/protected/views/programs/index.php +++ b/www/protected/views/programs/index.php @@ -13,11 +13,6 @@ $this->pageTitle = 'Programs - ' . Yii::app()->name; $this->breadcrumbs = array( 'Programs', ); - - $this->menu = array( - array('label' => 'Create Program', 'url' => array('create')), - array('label' => 'Manage Program', 'url' => array('admin')), - ); ?>
diff --git a/www/protected/views/programs/update.php b/www/protected/views/programs/update.php index 0f1373a..17d8ed2 100644 --- a/www/protected/views/programs/update.php +++ b/www/protected/views/programs/update.php @@ -8,8 +8,8 @@ $this->pageTitle = 'Update Program - ' . Yii::app()->name; $this->breadcrumbs=array( - 'Programs'=>array('index'), - $model->Name=>array('view','id'=>$model->ID), + 'Programs' => array('index'), + $model->Name => array($model->getLink()), 'Update', ); diff --git a/www/protected/views/programs/view.php b/www/protected/views/programs/view.php index 6913feb..a7e5ee6 100644 --- a/www/protected/views/programs/view.php +++ b/www/protected/views/programs/view.php @@ -7,45 +7,145 @@ $this->pageTitle = $model->Name . ' - ' . Yii::app()->name; -$this->breadcrumbs=array( - 'Programs'=>array('index'), +$this->breadcrumbs = array( + 'Programs' => array('index'), $model->Name, ); - -$this->menu=array( - array('label'=>'List Program', 'url'=>array('index')), - array('label'=>'Create Program', 'url'=>array('create')), - array('label'=>'Update Program', 'url'=>array('update', 'id'=>$model->ID)), - array('label'=>'Delete Program', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model->ID),'confirm'=>'Are you sure you want to delete this item?')), - array('label'=>'Manage Program', 'url'=>array('admin')), -); ?> -

View Program #ID; ?>

+visible && Yii::app()->user->name != 'admin') { + throw new CHttpException(400, "You cannot view this program"); +} +?> -widget('zii.widgets.CDetailView',array( - 'htmlOptions' => array( - 'class' => 'table table-striped table-condensed table-hover', - ), - 'data'=>$model, - 'attributes'=>array( - 'ID', - 'Name', - 'Downloads', - 'Kategorie', - 'Sterne', - 'enabled', - 'visible', - 'Language', - 'Description', - 'add_date', - 'download_url', - 'viewable_code', - 'sourceforge_url', - 'homepage_url', - 'github_url', - 'uses_absCanv', - 'update_identifier', - 'highscore_gid', - ), -)); ?> \ No newline at end of file +
+
+
+
+

Info

+ + +
+ + + + + + + + + + + + + + + + + + + + + +
Stars:getStarHTML(); ?>
Downloads:Downloads, array('color' => TbHtml::BADGE_COLOR_SUCCESS)); ?>
Languages:getLanguageList() as $lang) echo TbHtml::badge($lang, array('color' => TbHtml::BADGE_COLOR_INFO)); ?>
Added:getDateTime()->format('d.m.Y'), array('color' => TbHtml::BADGE_COLOR_INFO)); ?>
Version: TbHtml::BADGE_COLOR_INFO)); ?>
+
+ +
+ uses_absCanv): ?> + + TbHtml::BADGE_COLOR_WARNING)); ?> + + + + programming_lang, array('color' => TbHtml::BADGE_COLOR_WARNING)); ?> +
+
+
+ +
+
+

Name; ?>

+
+ +
+
+

+ beginWidget('CMarkdown'); + + for ($i = 0; $i < 24; $i++) + echo $model->Description . '
'; + + $this->endWidget(); + ?> +

+
+
+
+
+ + +
+
+ + +
+ true, + 'color' => TbHtml::BUTTON_COLOR_PRIMARY, + 'size' => TbHtml::BUTTON_SIZE_DEFAULT, + 'url' => '#', + ]); + ?> + + github_url)) + echo TbHtml::linkbutton('Github', + [ + 'block' => true, + 'color' => TbHtml::BUTTON_COLOR_INFO, + 'size' => TbHtml::BUTTON_SIZE_DEFAULT, + 'url' => $model->github_url, + ]); + ?> + + sourceforge_url)) + echo TbHtml::linkbutton('Sourceforge', + [ + 'block' => true, + 'color' => TbHtml::BUTTON_COLOR_INFO, + 'size' => TbHtml::BUTTON_SIZE_DEFAULT, + 'url' => $model->sourceforge_url, + ]); + ?> + + homepage_url)) + echo TbHtml::linkbutton('Homepage', + [ + 'block' => true, + 'color' => TbHtml::BUTTON_COLOR_INFO, + 'size' => TbHtml::BUTTON_SIZE_DEFAULT, + 'url' => $model->homepage_url, + ]); + ?> + + highscore_gid >= 0) + echo TbHtml::linkbutton('Highscore', + [ + 'block' => true, + 'color' => TbHtml::BUTTON_COLOR_SUCCESS, + 'size' => TbHtml::BUTTON_SIZE_DEFAULT, + 'url' => '#', + ]); + ?> +
+
+
+
+