2 urlConference = urlHandlers.UHConferenceCreation.getURL(categ)
3 urlConference.addParam("event_type","conference")
5 urlLecture = urlHandlers.UHConferenceCreation.getURL(categ)
6 urlLecture.addParam("event_type", "lecture")
8 urlMeeting = urlHandlers.UHConferenceCreation.getURL(categ)
9 urlMeeting.addParam("event_type","meeting")
11 containsCategories = len(categ.getSubCategoryList()) > 0
12 from MaKaC.conference import Link
13 from MaKaC.webinterface.general import strfFileSize
16 <%def name="render_attachments(attachments)">
17 % for attachment in attachments:
18 <li class="icon-file">
19 % if attachment.type.name == 'link':
20 <a href="${attachment.download_url}" target="_blank" class="resource"
21 data-name="${attachment.title}">
25 <a href="${attachment.download_url}" target="_blank" class="resource"
26 data-name="${attachment.file.filename}"
27 data-size="${attachment.file.size}"
28 data-date="${attachment.modified_dt}">
32 % if attachment.is_protected:
33 <i class="icon-lock"></i>
39 <div class="category-container">
40 <div class="category-header">
41 <div id="category-toolbar" class="toolbar right">
43 % if not isRootCategory:
44 <a class="i-button icon-arrow-up" href="${urlHandlers.UHCategoryDisplay.getURL(categ.owner)}">
48 % if categ.conferences:
49 <a id="exportIcal${categ.getUniqueId()}" class="i-button icon-calendar arrow exportIcal" data-id="${categ.getUniqueId()}" title="${_("Export to scheduling tool")}"></a>
50 <span><%include file="CategoryICalExport.tpl" args="item=categ"/></span>
52 <a id="moreLink" class="i-button icon-eye arrow" data-toggle="dropdown" title="${_("View")}"></a>
54 <li><a href="${urlHandlers.UHCategoryOverview.getURL(categ)}">${_("Today's events")}</a></li>
55 <li><a href="${urlHandlers.UHCategoryOverview.getWeekOverviewUrl(categ)}">${_("Week's events")}</a></li>
56 <li><a href="${urlHandlers.UHCalendar.getURL([categ])}">${_("Calendar")}</a></li>
57 <li><a href="${urlHandlers.UHCategoryMap.getURL(categ)}">${_("Category map")}</a></li>
58 <li><a href="${urlHandlers.UHCategoryStatistics.getURL(categ)}">${_("Category statistics")}</a></li>
60 <a id="createEventLink" class="i-button icon-plus arrow" data-toggle="dropdown" title="${_("Create new event")}"></a>
62 <li><a href="${urlLecture}">${_("Lecture")}</a></li>
63 <li><a href="${urlMeeting}">${_("Meeting")}</a></li>
64 <li><a href="${urlConference}">${_("Conference")}</a></li>
67 <a id="manageLink" class="i-button icon-edit arrow" data-toggle="dropdown" title="${_("Management options")}"></a>
69 <li><a href="${urlHandlers.UHCategoryModification.getURL(categ)}">${_("Edit category")}</a></li>
70 <li><a href="${urlHandlers.UHCategoryCreation.getURL(categ)}">${_("Add subcategory")}</a></li>
74 % if isLoggedIn and not isRootCategory:
75 <div id="categFavorite" class="group">
77 class="i-button fav-button icon-only icon-bookmark ${'enabled' if categ in _session.user.favorite_categories else ''}"
78 data-href="${ url_for('users.user_favorites_category_api', category_id=categ.id) }"></button>
83 <h1 class="category-title ${"sidebar-padding" if isRootCategory or categ.attached_items or managers or allowUserModif else ""}">
84 % if isRootCategory and containsCategories:
85 ${ _("Main categories") }
86 % elif isRootCategory:
89 ${ name | remove_tags }
94 % if isRootCategory or categ.attached_items or managers or allowUserModif:
95 <div class="category-sidebar">
98 <h2 class="icon-bullhorn">
100 <a href="${ urlHandlers.UHIndicoNews.getURL()}" class="more-icon">${ _("more...") }</a>
102 <%include file="WelcomeHeader.tpl" args="tz = timezone"/>
105 <h2 class="icon-alarm">${_("Upcoming events")}</h2>
110 <h2 class="icon-medal">${ _("Managers") }</h2>
111 <ul id="manager-list">
112 % for type, mgr_name in managers:
113 <li class="${type}">${mgr_name}</li>
117 % if categ.attached_items or allowUserModif:
121 <a href="#" id="manageMaterial" class="i-button icon-edit"></a>
124 <h2 class="icon-package-download">${ _("Files") }</h2>
126 <ul class="resource-list">
127 ${render_attachments(categ.attached_items.get('files', []))}
130 % for folder in categ.attached_items.get('folders', []):
132 <a class="material-show" data-hidden="true" title="${folder.title}">
133 <div class="left material-title-icon icon-next" ></div>
134 <h3>${folder.title}</h3>
135 % if folder.is_protected:
136 <i class="icon-lock"></i>
139 <ul class="resource-list" style="display: none">
140 ${render_attachments(folder.attachments)}
151 <div class="category-content-wrapper">
152 <div class="category-content">
153 ${ render_template('flashed_messages.html') }
154 <div class="category-info">
157 ${_("Welcome to Indico. The Indico tool allows you to manage complex conferences, workshops and meetings.<br/> In order to start browsing, please select one of the categories below.")}
172 $(document).ready(function(){
174 $("#category-toolbar").dropdown();
176 var PROTECTION_TEXT = {
177 'domain': $T("This category is protected by domain: "),
178 'restricted': $T("This category is restricted to some users")
181 // Make category entries fully clickable (wrap in <a>)
182 $('.category-list li').each(function() {
183 return $(this).children().wrapAll(
184 $('<a class="invisible-block"/>').attr('href', $(this).find('a').attr('href'))
188 $('.protection').qtip({
191 var type = $(this).data('type');
192 var domains = ($(this).data('domain') || []).join(", ");
193 return PROTECTION_TEXT[type] + (type == "domain" ? domains : "");
202 $('a.resource').qtip({
205 var content = $("<div/>");
206 var list = $("<ul/>").addClass("category-resource-qtip");
207 $("<li/>").append($("<span/>").addClass("bold").append("{0}: ".format($T("Name")))).append($(this).data("name")).appendTo(list);
208 if($(this).data("size") !== undefined) {
209 $("<li/>").append($("<span/>").addClass("bold").append("{0}: ".format($T("File size")))).append($(this).data("size")).appendTo(list);
211 if($(this).data("date") !== undefined) {
212 $("<li/>").append($("<span/>").addClass("bold").append("{0}: ".format($T("File creation date")))).append($(this).data("date")).appendTo(list);
214 list.appendTo(content);
220 $('.material-show').click(function() {
227 if ($this.data('hidden')) {
228 $this.siblings('.resource-list').slideDown(transition_opts);
229 $this.data('hidden', false);
230 $this.children(".material-title-icon").removeClass('icon-next').addClass('icon-expand');
232 $this.siblings('.resource-list').slideUp(transition_opts);
233 $this.data('hidden', true);
234 $this.children(".material-title-icon").removeClass('icon-expand').addClass('icon-next');
241 <script type="text/javascript">
242 $(document).ready(function(){
243 $("#manageMaterial").click(function(){
244 openAttachmentManager(${categ.getLocator() | n,j});
247 $('.toolbar .i-button').qtip({
254 $('.i-button.fav-button').on('click', function() {
256 var isFavorite = $this.hasClass('enabled');
257 $this.prop('disabled', true);
259 url: $this.data('href'),
260 method: isFavorite ? 'DELETE' : 'PUT',
261 error: handleAjaxError,
262 success: function() {
263 $this.toggleClass('enabled', !isFavorite);
265 complete: function() {
266 $this.prop('disabled', false);
276 if ($(this).hasClass('enabled')) {
277 return $T("Remove from your favorites");
279 return format($T('<h3>Add to your favorites</h3><p>This will make events in this category visible on your <a href="{0}">Dashboard</a>.</p>'), [${url_for('users.user_dashboard') | n,j}]);