diff --git a/main/css/base.css b/main/css/base.css index 98392ce1a8..f53ad52096 100644 --- a/main/css/base.css +++ b/main/css/base.css @@ -3947,6 +3947,30 @@ footer { box-shadow:none; } +.collapsible .handle{ + background-image: url('../img/div_hide.gif'); + background-repeat: no-repeat; + background-position:left center; + padding-left: 25px; + box-shadow:none; +} + +.collapsible .handle.collapsed{ + background-image: url('../img/div_show.gif'); + background-repeat: no-repeat; + background-position:left center; + padding-left: 25px; + box-shadow:none; +} + +.collapsible.expanded .handle{ + background-image: url('../img/div_hide.gif'); + background-repeat: no-repeat; + background-position:left center; + padding-left: 25px; + box-shadow:none; +} + .btn.show{ border:none; border-radius: 0; @@ -4007,6 +4031,66 @@ footer { box-shadow:none; } +.btn.new_folder{ + border:none; + border-radius: 0; + background-color: transparent; + width:32px; + height:32px; + margin:0; + padding:0; + display:inline-block; + background-image: url('../img/icons/32/new_folder.png'); + background-repeat: no-repeat; + background-position:center center; + box-shadow:none; +} + +.btn.new_link{ + border:none; + border-radius: 0; + background-color: transparent; + width:32px; + height:32px; + margin:0; + padding:0; + display:inline-block; + background-image: url('../img/icons/32/new_link.png'); + background-repeat: no-repeat; + background-position:center center; + box-shadow:none; +} + +.btn.expand{ + border:none; + border-radius: 0; + background-color: transparent; + width:32px; + height:32px; + margin:0; + padding:0; + display:inline-block; + background-image: url('../img/div_hide.gif'); + background-repeat: no-repeat; + background-position:center center; + box-shadow:none; +} + +.btn.collapse{ + border:none; + border-radius: 0; + background-color: transparent; + width:32px; + height:32px; + margin:0; + padding:0; + display:inline-block; + background-image: url('../img/div_show.gif'); + background-repeat: no-repeat; + background-position:center center; + box-shadow:none; +} + .announce.btn.delete-all{ border:none; border-radius: 0; @@ -4101,3 +4185,76 @@ li.annoucement{ padding-top: 5px; display:inline-block; } + +.link_category{ + background-color: #FFFFFF; + margin-bottom: 5px; +} + +.link_category .head { + background-color: #EFEFEF; + border: 1px solid #CCCCCC; + margin-bottom: 5px; + padding-top: 2px; + padding-right: 2px; + padding-bottom: 2px; + vertical-align: middle; +} + +.link_category .body{ + margin-left: 32px; +} + +.link:nth-child(2n) { + background-color: #F9F9F9; +} + +.link{ + border-top: 1px solid #DDDDDD; + border-left: 1px solid #DDDDDD; + border-right: 1px solid #DDDDDD; +} + +.link:last-child{ + border-bottom: 1px solid #DDDDDD; + border-left: 1px solid #DDDDDD; + border-right: 1px solid #DDDDDD; +} + +.link{ + border-collapse: collapse; + /*border: 1px solid #CCCCCC;*/ + padding-top: 6px; + padding-right: 6px; + padding-bottom: 6px; + padding-left: 6px; + vertical-align: middle; +} + +.link .icon{ + position: absolute; + float: left; +} + +.link:hover{ + background-color: #E5EDF9; +} + +.link .title, +.link .description{ + margin-left: 32px; +} + +.link .description{ + font-weight: normal; + color: #000000; +} + +.link.invisible img{ + opacity:0.4; + filter:alpha(opacity=40); /* For IE8 and earlier */ +} + +.link.invisible .description{ + color: #999999; +} \ No newline at end of file diff --git a/main/inc/lib/autoload.class.php b/main/inc/lib/autoload.class.php index 499a69570c..ed442d3337 100644 --- a/main/inc/lib/autoload.class.php +++ b/main/inc/lib/autoload.class.php @@ -68,9 +68,18 @@ class Autoload $result['AddManySessionToCategoryFunctions'] = '/main/inc/lib/add_many_session_to_category_functions.lib.php'; $result['AdminPage'] = '/main/admin/admin_page.class.php'; $result['Agenda'] = '/main/calendar/agenda.lib.php'; - $result['Announcement'] = '/main/coursecopy/classes/Announcement.class.php'; - $result['AnnouncementManager'] = '/main/announcements/announcements.inc.php'; + $result['Announcement'] = '/main/coursecopy/classes/Announcement.class.php'; $result['AnnouncementEmail'] = '/main/announcements/announcement_email.class.php'; + $result['Announcement\AjaxController'] = '/main/announcements/ajax_controller.class.php'; + $result['Announcement\Announcement'] = '/main/announcements/announcement.class.php'; + $result['Announcement\AnnouncementAttachementRepo'] = '/main/announcements/repo.class.php'; + $result['Announcement\AnnouncementAttachment'] = '/main/announcements/announcement_attachment.class.php'; + $result['Announcement\Controller'] = '/main/announcements/controller.class.php'; + $result['Announcement\EditForm'] = '/main/announcements/edit_form.class.php'; + $result['Announcement\Email'] = '/main/announcements/email.class.php'; + $result['Announcement\MessageProcessor'] = '/main/announcements/message_processor.class.php'; + $result['Announcement\Param'] = '/main/announcements/controller.class.php'; + $result['Announcement\Repo'] = '/main/announcements/repo.class.php'; $result['Answer'] = '/main/exercice/answer.class.php'; $result['AppPlugin'] = '/main/inc/lib/plugin.lib.php'; $result['AssetAggregatedRenderer'] = '/main/inc/lib/system/media/renderer/asset_aggregated_renderer.class.php'; @@ -106,6 +115,7 @@ class Autoload $result['ClassManager'] = '/main/inc/lib/classmanager.lib.php'; $result['ClosureCompiler'] = '/main/inc/lib/system/closure_compiler.class.php'; $result['ConditionalLogin'] = '/main/inc/lib/conditional_login.class.php'; + $result['Controller'] = '/main/inc/lib/controller.class.php'; $result['Converter'] = '/main/inc/lib/system/text/converter.class.php'; $result['Course'] = '/main/coursecopy/classes/Course.class.php'; $result['CourseArchiver'] = '/main/coursecopy/classes/CourseArchiver.class.php'; @@ -571,6 +581,7 @@ class Autoload $result['ExerciseShowFunctions'] = '/main/inc/lib/exercise_show_functions.lib.php'; $result['FileManager'] = '/main/inc/lib/fileManage.lib.php'; $result['FileReader'] = '/main/inc/lib/system/io/file_reader.class.php'; + $result['FileStore'] = '/main/inc/lib/file_store.class.php'; $result['FileWriter'] = '/main/inc/lib/system/io/file_writer.class.php'; $result['FillBlanks'] = '/main/exercice/fill_blanks.class.php'; $result['FlatViewDataGenerator'] = '/main/gradebook/lib/flatview_data_generator.class.php'; @@ -675,6 +686,15 @@ class Autoload $result['LinkCategory'] = '/main/coursecopy/classes/LinkCategory.class.php'; $result['LinkFactory'] = '/main/gradebook/lib/be/linkfactory.class.php'; $result['LinkForm'] = '/main/gradebook/lib/fe/linkform.class.php'; + $result['Link\AjaxController'] = '/main/link/ajax_controller.class.php'; + $result['Link\CategoryForm'] = '/main/link/category_form.class.php'; + $result['Link\Controller'] = '/main/link/controller.class.php'; + $result['Link\Link'] = '/main/link/link.class.php'; + $result['Link\LinkCategory'] = '/main/link/link_category.class.php'; + $result['Link\LinkCategoryRepository'] = '/main/link/repo.class.php'; + $result['Link\LinkForm'] = '/main/link/link_form.class.php'; + $result['Link\LinkRepository'] = '/main/link/repo.class.php'; + $result['Link\Request'] = '/main/link/request.class.php'; $result['Log'] = '/main/inc/lib/log.class.php'; $result['Login'] = '/main/inc/lib/login.lib.php'; $result['LoginRedirection'] = '/main/inc/lib/login_redirection.class.php'; @@ -923,8 +943,6 @@ class Autoload $result['vtimezone'] = '/main/inc/lib/icalcreator/iCalcreator.class.php'; $result['vtodo'] = '/main/inc/lib/icalcreator/iCalcreator.class.php'; $result['xhtdoc'] = '/main/inc/lib/xht.lib.php'; - - return $result; } diff --git a/main/inc/lib/display.lib.php b/main/inc/lib/display.lib.php index d3e578daea..0e6f58dc93 100644 --- a/main/inc/lib/display.lib.php +++ b/main/inc/lib/display.lib.php @@ -333,7 +333,7 @@ class Display { * @param bool Whether to XSS-filter or not * @return string Message wrapped into an HTML div */ - public function return_message($message, $type='normal', $filter = true) { + public static function return_message($message, $type='normal', $filter = true) { if ($filter) { $message = api_htmlentities($message, ENT_QUOTES, api_is_xml_http_request() ? 'UTF-8' : api_get_system_encoding()); //$message = Security::remove_XSS($message); diff --git a/main/inc/lib/formvalidator/FormValidator.class.php b/main/inc/lib/formvalidator/FormValidator.class.php index ef5f929476..b396c6f2a4 100644 --- a/main/inc/lib/formvalidator/FormValidator.class.php +++ b/main/inc/lib/formvalidator/FormValidator.class.php @@ -251,6 +251,36 @@ EOT; } } + function add_hidden($name, $value) + { + $this->addElement('hidden', $name, $value); + } + + function add_textarea($name, $label, $attributes = array()) + { + $this->addElement('textarea', $name, $label, $attributes); + } + + function add_button($name, $label, $attributes = array()) + { + $this->addElement('button', $name, $label, $attributes); + } + + function add_checkbox($name, $label, $trailer = '', $attributes = array()) + { + $this->addElement('checkbox', $name, $label, $trailer, $attributes); + } + + function add_select($name, $label, $options = '', $attributes = array()) + { + $this->addElement('select', $name, $label, $options, $attributes); + } + + function add_label($name, $text) + { + $this->addElement('label', $name, $text); + } + function add_header($text) { $this->addElement('header', $text); diff --git a/main/inc/lib/template.lib.php b/main/inc/lib/template.lib.php index 29d1e62433..3c1aa45fb0 100644 --- a/main/inc/lib/template.lib.php +++ b/main/inc/lib/template.lib.php @@ -19,6 +19,31 @@ class Template { public static function format_date($timestamp, $format = null) { return api_format_date($timestamp, $format); } + + /** + * Return the item's url key: + * + * c_id=xx&id=xx + * + * @param object $item + * @return string + */ + public static function key($item){ + $id = isset($item->id) ? $item->id : null; + $c_id = isset($item->c_id) ? $item->c_id : null; + $result = ''; + if($c_id){ + $result = "c_id=$c_id"; + } + if($id){ + if($result){ + $result .= "&id=$id"; + }else{ + $result .= "&id=$id"; + } + } + return $result; + } var $style = 'default'; //see the template folder var $preview_theme = null; diff --git a/main/install/migrate-db-1.8.6.1-1.8.6.2-pre.sql b/main/install/migrate-db-1.8.6.1-1.8.6.2-pre.sql index 7c854d400c..3b1743d009 100644 --- a/main/install/migrate-db-1.8.6.1-1.8.6.2-pre.sql +++ b/main/install/migrate-db-1.8.6.1-1.8.6.2-pre.sql @@ -12,7 +12,6 @@ -- -- This first part is for the main database -- xxMAINxx -ALTER TABLE gradebook_evaluation ADD COLUMN type varchar(40) NOT NULL; ALTER TABLE session ADD COLUMN visibility int NOT NULL default 1; ALTER TABLE session ADD COLUMN session_category_id INT NOT NULL;