Skip to content
Snippets Groups Projects
Commit 4ef2de60 authored by User expired's avatar User expired
Browse files

Merge remote-tracking branch 'upstream/OpenOLAT_12.5'

parents 01786192 966988fc
No related branches found
No related tags found
No related merge requests found
Showing
with 143 additions and 50 deletions
/bin/
/target/
/cargo/
/.settings/
# deprecated scripting files
*.pl
*.php
# editor backup files
*~
*.bak
*.swp
# sundry useless files
*.out
mvn*.log
# Mac idiosyncrasies
.DS_Store
#ignore project/.classpath file at this gets created by maven
.classpath
.project
src/main/java/olat.local.properties
.classpath .classpath
/.project /.project
/.settings /.settings
*/target */target
*.sw? *.sw?
*/.classpath */.classpath
*/.project */.project
*/.settings/* \ No newline at end of file
*/.settings/org.eclipse.core.resources.prefs
*/.settings/org.eclipse.wst.common.component
*/.settings/org.eclipse.wst.common.project.facet.core.xml
*/.settings/org.eclipse.jdt.core.prefs
*/.settings/org.eclipse.m2e.core.prefs
*/.settings/org.eclipse.wst.jsdt.ui.*
*/.settings/org.sonarlint.*
*/.settings/.jsdtscope
\ No newline at end of file
...@@ -1271,17 +1271,18 @@ ...@@ -1271,17 +1271,18 @@
</testResource> </testResource>
</testResources> </testResources>
<plugins> <plugins>
<!-- Set the build number from mercurial --> <!-- Set the build number from git -->
<plugin> <plugin>
<groupId>org.openolat.mojo</groupId> <groupId>pl.project13.maven</groupId>
<artifactId>buildnumber-maven-plugin</artifactId> <artifactId>git-commit-id-plugin</artifactId>
<version>1.2.0</version> <version>2.2.4</version>
<executions> <executions>
<execution> <execution>
<phase>validate</phase> <id>get-the-git-infos</id>
<goals> <goals>
<goal>hgchangeset</goal> <goal>revision</goal>
</goals> </goals>
<phase>validate</phase>
</execution> </execution>
<execution> <execution>
<id>execution-create</id> <id>execution-create</id>
...@@ -1299,6 +1300,7 @@ ...@@ -1299,6 +1300,7 @@
<items> <items>
<item>timestamp</item> <item>timestamp</item>
</items> </items>
<dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
...@@ -1408,7 +1410,7 @@ ...@@ -1408,7 +1410,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version> <version>3.7.0</version>
<configuration> <configuration>
<source>1.8</source> <source>1.8</source>
<target>1.8</target> <target>1.8</target>
...@@ -1430,9 +1432,9 @@ ...@@ -1430,9 +1432,9 @@
<addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest> </manifest>
<manifestEntries> <manifestEntries>
<Build-Change-Set>${changeSet}</Build-Change-Set> <Build-Change-Set>${git.commit.id}</Build-Change-Set>
<Build-Change-Set-Date>${changeSetDate}</Build-Change-Set-Date> <Build-Change-Set-Date>${git.commit.time}</Build-Change-Set-Date>
<Build-Revision-Number>${revisionNumber}</Build-Revision-Number> <Build-Revision-Number>${git.commit.id.abbrev}</Build-Revision-Number>
<Implementation-Build>${buildNumber}</Implementation-Build> <Implementation-Build>${buildNumber}</Implementation-Build>
</manifestEntries> </manifestEntries>
</archive> </archive>
...@@ -1445,6 +1447,43 @@ ...@@ -1445,6 +1447,43 @@
</webResources> </webResources>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<versionRange>[1.8,)</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<versionRange>[1.5,)</versionRange>
<goals>
<goal>execute</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
<!-- The Eclipse plugin is only of interest to developers and requires <!-- The Eclipse plugin is only of interest to developers and requires
that WTP be installed. --> that WTP be installed. -->
......
#Thu Nov 23 17:52:35 CET 2017 #Tue Jun 19 22:51:25 CEST 2018
action.bulkedit=Editar os atributos desses usu\u00E1rios action.bulkedit=Editar os atributos desses usu\u00E1rios
action.choose=Choose action.choose=Choose
action.choose.finish=Fechar e terminar action.choose.finish=Fechar e terminar
action.select=Selecionar action.select=Selecionar
admins=Administrador
authedit.delete.confirm=Are you sure you want to delete the authentication provider {0} for user {1}? authedit.delete.confirm=Are you sure you want to delete the authentication provider {0} for user {1}?
authedit.delete.success=Authentication provider {0} deleted for user {1}. authedit.delete.success=Authentication provider {0} deleted for user {1}.
authors=Autor
autocomplete.noresults=$org.olat.core.gui.control.generic.ajax.autocompletion\:autocomplete.noresults autocomplete.noresults=$org.olat.core.gui.control.generic.ajax.autocompletion\:autocomplete.noresults
autocompletion.info=Pesquisa por login, primeiro nome, \u00FAltimo nome, e-mail ou matr\u00EDcula (n\u00FAmero de registro) autocompletion.info=Pesquisa por login, primeiro nome, \u00FAltimo nome, e-mail ou matr\u00EDcula (n\u00FAmero de registro)
bgroupcoach=Coach de grupo
btn.back=Voltar btn.back=Voltar
bulkChange.failed=Nenhuma modifica\u00E7\u00E3o feita bulkChange.failed=Nenhuma modifica\u00E7\u00E3o feita
bulkChange.partialsuccess={0} de {1} modifica\u00E7\u00F5es sucedidas. Os seguintes atributos de usu\u00E1rio n\u00E3o poderam ser modificados\: {3} bulkChange.partialsuccess={0} de {1} modifica\u00E7\u00F5es sucedidas. Os seguintes atributos de usu\u00E1rio n\u00E3o poderam ser modificados\: {3}
...@@ -15,10 +18,13 @@ bulkChange.title=Modifica\u00E7\u00E3o de atributos de usu\u00E1rio ...@@ -15,10 +18,13 @@ bulkChange.title=Modifica\u00E7\u00E3o de atributos de usu\u00E1rio
changeuserpwd.cancel=Action was cancelled. Password remains unchanged. changeuserpwd.cancel=Action was cancelled. Password remains unchanged.
changeuserpwd.failed=Sua nova senha n\u00E3o pode ser salva. Houve um erro inesperado no servidor. changeuserpwd.failed=Sua nova senha n\u00E3o pode ser salva. Houve um erro inesperado no servidor.
changeuserpwd.successful=New password saved successfully. It is valid from now on. changeuserpwd.successful=New password saved successfully. It is valid from now on.
clear=Limpar
command.mail=Send e-mail to these users command.mail=Send e-mail to these users
confirm.clear.identity=Deseja realmente limpar o nome e sobrenome desse usu\u00E1rio exclu\u00EDdo "{0}"?
content.usermgmt.text1=Aqui voc\u00EA pode modificar ou gerenciar dados de usu\u00E1rios existentes do OLAT. Favor iniciar sua busca de usu\u00E1rio. content.usermgmt.text1=Aqui voc\u00EA pode modificar ou gerenciar dados de usu\u00E1rios existentes do OLAT. Favor iniciar sua busca de usu\u00E1rio.
content.usermgmt.title=Gerenciamento do usu\u00E1rio content.usermgmt.title=Gerenciamento do usu\u00E1rio
content.usermgmt.userfound=Gerenciar configura\u00E7\u00F5es de usu\u00E1rio content.usermgmt.userfound=Gerenciar configura\u00E7\u00F5es de usu\u00E1rio
deleted.user.list=Lista de usu\u00E1rios exclu\u00EDdos
deselectall=$org.olat.core.gui.components.table\:uncheckall deselectall=$org.olat.core.gui.components.table\:uncheckall
edit.uauth=Authentications edit.uauth=Authentications
edit.uhomepage=Cart\u00E3o de visitas edit.uhomepage=Cart\u00E3o de visitas
...@@ -38,6 +44,8 @@ error.search.form.no.wildcard.dublicates=Termos de pesquisa, incluindo `**` n\u0 ...@@ -38,6 +44,8 @@ error.search.form.no.wildcard.dublicates=Termos de pesquisa, incluindo `**` n\u0
error.search.form.notempty=Please fill in at least one of the available fields. error.search.form.notempty=Please fill in at least one of the available fields.
error.search.form.to.short=Termo de pesquisa muito curto. error.search.form.to.short=Termo de pesquisa muito curto.
error.search.maxResults=Muitos resultados encontrados. Apenas o primeiro {0} s\u00E3o exibidos. error.search.maxResults=Muitos resultados encontrados. Apenas o primeiro {0} s\u00E3o exibidos.
export.user.data=Exportar dados
export.user.data.title=Exportar dados do usu\u00E1rio "{0}"
form.password.new1=New password form.password.new1=New password
form.password.new2=Confirm password form.password.new2=Confirm password
form.please.enter.new=Please enter a new password for this user form.please.enter.new=Please enter a new password for this user
...@@ -46,8 +54,10 @@ form.token.new.text=Mensagem ...@@ -46,8 +54,10 @@ form.token.new.text=Mensagem
form.token.new.title=Enviar link de senha form.token.new.title=Enviar link de senha
form.username=User name form.username=User name
found.property=Property selected found.property=Property selected
groupmanagers=Gestor de grupo
header.autocompletion=Busca combinada com auto-completar header.autocompletion=Busca combinada com auto-completar
header.normal=Pesquisa com atributos de usu\u00E1rio header.normal=Pesquisa com atributos de usu\u00E1rio
instoresmanager=Gestor de recurso did\u00E1tico
mailtemplate.login.denied.body=Sua conta OpenOLAT {0} com o endere\u00E7o de e-mail {1} est\u00E1 bloqueada.\r\n\r\n\r\nSe voc\u00EA n\u00E3o concorda com esta mudan\u00E7a, por favor, contate o suporte imediatamente em {3}. mailtemplate.login.denied.body=Sua conta OpenOLAT {0} com o endere\u00E7o de e-mail {1} est\u00E1 bloqueada.\r\n\r\n\r\nSe voc\u00EA n\u00E3o concorda com esta mudan\u00E7a, por favor, contate o suporte imediatamente em {3}.
mailtemplate.login.denied.subject=Conta OpenOLAT bloqueada mailtemplate.login.denied.subject=Conta OpenOLAT bloqueada
mailto.userlist=List of users mailto.userlist=List of users
...@@ -71,6 +81,9 @@ new.user.cancel=Action cancelled. No new user account created. ...@@ -71,6 +81,9 @@ new.user.cancel=Action cancelled. No new user account created.
new.user.successful=The new user account has been created successfully. new.user.successful=The new user account has been created successfully.
notification.noNews=Nenhum novo usu\u00E1rio se conectou desde essa data. notification.noNews=Nenhum novo usu\u00E1rio se conectou desde essa data.
notification.noSubscription=Voc\u00EA n\u00E3o est\u00E1 inscrito para receber not\u00EDcias sobre novos usu\u00E1rios. notification.noSubscription=Voc\u00EA n\u00E3o est\u00E1 inscrito para receber not\u00EDcias sobre novos usu\u00E1rios.
owner=Propriet\u00E1rio do Curso
poolsmanager=Gestor do banco de perguntas
repocoach=Coach de Curso
rightForm.error.anonymous.no.roles=Anonymous guests can not exercise system roles rightForm.error.anonymous.no.roles=Anonymous guests can not exercise system roles
rightsForm.isAdmin=System administrator rightsForm.isAdmin=System administrator
rightsForm.isAnonymous=User type rightsForm.isAnonymous=User type
...@@ -130,6 +143,10 @@ table.header.action=Action ...@@ -130,6 +143,10 @@ table.header.action=Action
table.header.vcard=Cart\u00E3o de visitas table.header.vcard=Cart\u00E3o de visitas
table.identity.action=A\u00E7\u00E3o table.identity.action=A\u00E7\u00E3o
table.identity.creationdate=Criado table.identity.creationdate=Criado
table.identity.deleted.name=Del_User name
table.identity.deletedby=Exclu\u00EDdo por
table.identity.deleteddate=Exclu\u00EDdo
table.identity.deletedroles=Fun\u00E7\u00F5es
table.identity.lastlogin=Ultimo Login table.identity.lastlogin=Ultimo Login
table.identity.name=Nome de usu\u00E1rio table.identity.name=Nome de usu\u00E1rio
table.identity.vcard=<i class\='o_icon o_icon-lg o_icon_home'> </i> table.identity.vcard=<i class\='o_icon o_icon-lg o_icon_home'> </i>
...@@ -150,6 +167,7 @@ title.user.search=Search for an OLAT user ...@@ -150,6 +167,7 @@ title.user.search=Search for an OLAT user
title.userlist=User list title.userlist=User list
title.usersearch=User search title.usersearch=User search
user.found=User was found user.found=User was found
usermanagers=Gestor de usu\u00E1rios
view.access=Reservas view.access=Reservas
view.competences=Compet\u00EAncias view.competences=Compet\u00EAncias
view.courses=Cursos view.courses=Cursos
......
...@@ -42,7 +42,7 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; ...@@ -42,7 +42,7 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
import org.olat.core.gui.components.form.flexible.impl.elements.FormSubmit; import org.olat.core.gui.components.form.flexible.impl.elements.FormSubmit;
import org.olat.core.gui.components.form.flexible.impl.elements.MultipleSelectionElementImpl; import org.olat.core.gui.components.form.flexible.impl.elements.MultipleSelectionElementImpl;
import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnDef;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModel;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory;
...@@ -139,12 +139,12 @@ public class GroupSearchController extends StepFormBasicController { ...@@ -139,12 +139,12 @@ public class GroupSearchController extends StepFormBasicController {
//group rights //group rights
FlexiTableColumnModel tableColumnModel = FlexiTableDataModelFactory.createFlexiTableColumnModel(); FlexiTableColumnModel tableColumnModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.groupName.i18n(), Cols.groupName.ordinal())); tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.key));
tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, Cols.description.i18n(), Cols.description.ordinal(), tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.groupName));
false, null, FlexiColumnModel.ALIGNMENT_LEFT, new TextFlexiCellRenderer(EscapeMode.antisamy))); tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.description, new TextFlexiCellRenderer(EscapeMode.antisamy)));
tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.courses.i18n(), Cols.courses.ordinal())); tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.courses));
tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.tutor.i18n(), Cols.tutor.ordinal())); tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.tutor));
tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.participant.i18n(), Cols.participant.ordinal())); tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.participant));
tableDataModel = new GroupTableDataModel(Collections.<GroupWrapper>emptyList(), tableColumnModel); tableDataModel = new GroupTableDataModel(Collections.<GroupWrapper>emptyList(), tableColumnModel);
table = uifactory.addTableElement(getWindowControl(), "groupList", tableDataModel, getTranslator(), tableCont); table = uifactory.addTableElement(getWindowControl(), "groupList", tableDataModel, getTranslator(), tableCont);
...@@ -155,10 +155,7 @@ public class GroupSearchController extends StepFormBasicController { ...@@ -155,10 +155,7 @@ public class GroupSearchController extends StepFormBasicController {
saveLink = uifactory.addFormLink("save", formLayout, Link.BUTTON); saveLink = uifactory.addFormLink("save", formLayout, Link.BUTTON);
} }
} }
/**
* @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#formOK(org.olat.core.gui.UserRequest)
*/
@Override @Override
protected void formOK(UserRequest ureq) { protected void formOK(UserRequest ureq) {
doSearchGroups(); doSearchGroups();
...@@ -414,6 +411,7 @@ public class GroupSearchController extends StepFormBasicController { ...@@ -414,6 +411,7 @@ public class GroupSearchController extends StepFormBasicController {
public Object getValueAt(int row, int col) { public Object getValueAt(int row, int col) {
GroupWrapper option = getObject(row); GroupWrapper option = getObject(row);
switch(Cols.values()[col]) { switch(Cols.values()[col]) {
case key: return option.getGroupKey();
case groupName: return option.getGroupName(); case groupName: return option.getGroupName();
case description: case description:
String description = option.getDescription(); String description = option.getDescription();
...@@ -433,7 +431,8 @@ public class GroupSearchController extends StepFormBasicController { ...@@ -433,7 +431,8 @@ public class GroupSearchController extends StepFormBasicController {
} }
} }
public static enum Cols { public static enum Cols implements FlexiColumnDef {
key("table.group.key"),
groupName("table.group.name"), groupName("table.group.name"),
description("description"), description("description"),
courses("table.header.resources"), courses("table.header.resources"),
...@@ -446,7 +445,8 @@ public class GroupSearchController extends StepFormBasicController { ...@@ -446,7 +445,8 @@ public class GroupSearchController extends StepFormBasicController {
this.i18n = i18n; this.i18n = i18n;
} }
public String i18n() { @Override
public String i18nHeaderKey() {
return i18n; return i18n;
} }
} }
......
...@@ -4,6 +4,7 @@ attende.and.owner=Besitzer und Teilnehmer ...@@ -4,6 +4,7 @@ attende.and.owner=Besitzer und Teilnehmer
group.removed=Diese Gruppe existiert nicht mehr\! group.removed=Diese Gruppe existiert nicht mehr\!
owner=Besitzer owner=Besitzer
table.group.name=Gruppenname table.group.name=Gruppenname
table.group.key=ID
table.group.type=Typ der Gruppe table.group.type=Typ der Gruppe
table.group.add.tutor=Hinzuf\u00fcgen als Betreuer table.group.add.tutor=Hinzuf\u00fcgen als Betreuer
table.group.add.participant=Hinzuf\u00fcgen als Teilnehmer table.group.add.participant=Hinzuf\u00fcgen als Teilnehmer
......
...@@ -21,6 +21,7 @@ send.email=Send invitational email ...@@ -21,6 +21,7 @@ send.email=Send invitational email
send.email.notif=Do you want to send a notification to the user? send.email.notif=Do you want to send a notification to the user?
table.group.add.participant=Add as participant table.group.add.participant=Add as participant
table.group.add.tutor=Add as coach table.group.add.tutor=Add as coach
table.group.key=ID
table.group.name=Group name table.group.name=Group name
table.group.type=Type of group table.group.type=Type of group
table.header.resources=$org.olat.group.ui.main\:table.header.resources table.header.resources=$org.olat.group.ui.main\:table.header.resources
......
...@@ -85,7 +85,7 @@ public class GroupMembershipImpl implements GroupMembership, ModifiedInfo, Persi ...@@ -85,7 +85,7 @@ public class GroupMembershipImpl implements GroupMembership, ModifiedInfo, Persi
private Date creationDate; private Date creationDate;
@Temporal(TemporalType.TIMESTAMP) @Temporal(TemporalType.TIMESTAMP)
@Column(name="lastmodified", nullable=false, insertable=true, updatable=false) @Column(name="lastmodified", nullable=false, insertable=true, updatable=true)
private Date lastModified; private Date lastModified;
@Column(name="g_role", nullable=false, insertable=true, updatable=false) @Column(name="g_role", nullable=false, insertable=true, updatable=false)
......
#Tue May 02 23:52:16 CEST 2017 #Tue Jun 19 22:42:05 CEST 2018
calendar.access=Direito de grava\u00E7\u00E3o no calend\u00E1rio calendar.access=Direito de grava\u00E7\u00E3o no calend\u00E1rio
calendar.access.all=Propriet\u00E1rios e membros calendar.access.all=Propriet\u00E1rios e membros
calendar.access.owners=Propriet\u00E1rios calendar.access.owners=Propriet\u00E1rios
...@@ -12,6 +12,7 @@ collabtools.named.hasNews=Informa\u00E7\u00E3o para membros ...@@ -12,6 +12,7 @@ collabtools.named.hasNews=Informa\u00E7\u00E3o para membros
collabtools.named.hasOpenMeetings=OpenMeetings collabtools.named.hasOpenMeetings=OpenMeetings
collabtools.named.hasPortfolio=ePortfolio collabtools.named.hasPortfolio=ePortfolio
collabtools.named.hasWiki=Wiki collabtools.named.hasWiki=Wiki
error.missing.map=O fich\u00E1rio foi exclu\u00EDdo.
folder=Pasta folder=Pasta
folder.access=Permiss\u00E3o de grava\u00E7\u00E3o na pasta folder.access=Permiss\u00E3o de grava\u00E7\u00E3o na pasta
folder.access.all=Todos os membros folder.access.all=Todos os membros
......
#Fri May 11 23:58:52 CEST 2018 #Tue Jun 19 22:51:26 CEST 2018
cal.add.event=Adicionar evento cal.add.event=Adicionar evento
cal.add.readonly=(somente leitura) cal.add.readonly=(somente leitura)
cal.color.choose=Escolher cor cal.color.choose=Escolher cor
......
...@@ -86,6 +86,7 @@ mf.author=Autor ...@@ -86,6 +86,7 @@ mf.author=Autor
mf.cancel=Abbrechen mf.cancel=Abbrechen
mf.comment=Beschreibung mf.comment=Beschreibung
mf.edit=Metadaten bearbeiten mf.edit=Metadaten bearbeiten
mf.elements=Element(e)
mf.error.filename.empty=Der Name des Objektes darf nicht leer sein. mf.error.filename.empty=Der Name des Objektes darf nicht leer sein.
mf.error.filename.exists=Es gibt bereits ein Objekt mit diesem Namen. mf.error.filename.exists=Es gibt bereits ein Objekt mit diesem Namen.
mf.error.filename.invalidchars=Der Name des Objekts enth\u00E4lt ung\u00FCltige Zeichen. mf.error.filename.invalidchars=Der Name des Objekts enth\u00E4lt ung\u00FCltige Zeichen.
......
...@@ -86,6 +86,7 @@ mf.author=Author ...@@ -86,6 +86,7 @@ mf.author=Author
mf.cancel=Cancel mf.cancel=Cancel
mf.comment=Description mf.comment=Description
mf.edit=Edit metadata mf.edit=Edit metadata
mf.elements=element(s)
mf.error.filename.empty=You have to enter a name for this object. mf.error.filename.empty=You have to enter a name for this object.
mf.error.filename.exists=An object with this name already exists. mf.error.filename.exists=An object with this name already exists.
mf.error.filename.invalidchars=Name of object contains invalid characters. mf.error.filename.invalidchars=Name of object contains invalid characters.
......
...@@ -61,6 +61,7 @@ import org.olat.core.util.vfs.VFSItem; ...@@ -61,6 +61,7 @@ import org.olat.core.util.vfs.VFSItem;
import org.olat.core.util.vfs.VFSLeaf; import org.olat.core.util.vfs.VFSLeaf;
import org.olat.core.util.vfs.VFSLockManager; import org.olat.core.util.vfs.VFSLockManager;
import org.olat.core.util.vfs.VirtualContainer; import org.olat.core.util.vfs.VirtualContainer;
import org.olat.core.util.vfs.filters.SystemItemFilter;
import org.olat.core.util.vfs.lock.LockInfo; import org.olat.core.util.vfs.lock.LockInfo;
import org.olat.core.util.vfs.version.Versionable; import org.olat.core.util.vfs.version.Versionable;
import org.olat.core.util.vfs.version.Versions; import org.olat.core.util.vfs.version.Versions;
...@@ -357,6 +358,11 @@ public class ListRenderer { ...@@ -357,6 +358,11 @@ public class ListRenderer {
sb.append(Formatter.formatBytes(leaf.getSize())); sb.append(Formatter.formatBytes(leaf.getSize()));
sb.append("</span>"); sb.append("</span>");
} }
else if (child instanceof VFSContainer) {
sb.append("<span class='text-muted small'>");
sb.append(((VFSContainer) child).getItems(new SystemItemFilter()).size());
sb.append(" "+translator.translate("mf.elements")+"</span>");
}
sb.append("</td><td>"); sb.append("</td><td>");
// last modified // last modified
......
...@@ -44,6 +44,7 @@ public class TooledStackedPanel extends BreadcrumbedStackedPanel implements Stac ...@@ -44,6 +44,7 @@ public class TooledStackedPanel extends BreadcrumbedStackedPanel implements Stac
private static final ComponentRenderer RENDERER = new TooledStackedPanelRenderer(); private static final ComponentRenderer RENDERER = new TooledStackedPanelRenderer();
private boolean toolbarEnabled = true; private boolean toolbarEnabled = true;
private boolean toolbarAutoEnabled = false; private boolean toolbarAutoEnabled = false;
private boolean breadcrumbEnabled = true;
private String message; private String message;
private String messageCssClass; private String messageCssClass;
...@@ -219,6 +220,14 @@ public class TooledStackedPanel extends BreadcrumbedStackedPanel implements Stac ...@@ -219,6 +220,14 @@ public class TooledStackedPanel extends BreadcrumbedStackedPanel implements Stac
} }
} }
public boolean isBreadcrumbEnabled() {
return breadcrumbEnabled;
}
public void setBreadcrumbEnabled(boolean breadcrumbEnabled) {
this.breadcrumbEnabled = breadcrumbEnabled;
}
public String getMessage() { public String getMessage() {
return message; return message;
} }
......
...@@ -55,10 +55,10 @@ public class TooledStackedPanelRenderer extends DefaultComponentRenderer { ...@@ -55,10 +55,10 @@ public class TooledStackedPanelRenderer extends DefaultComponentRenderer {
String mainCssClass = panel.getCssClass(); String mainCssClass = panel.getCssClass();
sb.append("<div id='o_c").append(source.getDispatchID()).append("' class='").append(mainCssClass, mainCssClass != null).append("'>"); sb.append("<div id='o_c").append(source.getDispatchID()).append("' class='").append(mainCssClass, mainCssClass != null).append("'>");
if(breadCrumbs.size() > panel.getInvisibleCrumb() || tools.size() > 0 && panel.isToolbarEnabled()) { if((panel.isBreadcrumbEnabled() && breadCrumbs.size() > panel.getInvisibleCrumb()) || (tools.size() > 0 && panel.isToolbarEnabled())) {
sb.append("<div id='o_main_toolbar' class='o_toolbar'>"); sb.append("<div id='o_main_toolbar' class='o_toolbar'>");
if(breadCrumbs.size() > panel.getInvisibleCrumb()) { if(panel.isBreadcrumbEnabled() && breadCrumbs.size() > panel.getInvisibleCrumb()) {
sb.append("<div class='o_breadcrumb'><ol class='breadcrumb'>"); sb.append("<div class='o_breadcrumb'><ol class='breadcrumb'>");
Link backLink = panel.getBackLink(); Link backLink = panel.getBackLink();
int numOfCrumbs = breadCrumbs.size(); int numOfCrumbs = breadCrumbs.size();
......
#Thu Feb 08 13:30:43 CET 2018 #Tue Jun 19 22:04:40 CEST 2018
add.email=Adicionar add.email=Adicionar
at.least.one.recipient=Voc\u00EA precisa escolher pelo menos um destinat\u00E1rio.
contact.cp.from=C\u00F3pia enviada ao endere\u00E7o contact.cp.from=C\u00F3pia enviada ao endere\u00E7o
error.too.long=O modelo \u00E9 muito grande. O tamanho m\u00E1ximo \u00E9 {0}\! error.too.long=O modelo \u00E9 muito grande. O tamanho m\u00E1ximo \u00E9 {0}\!
footer.no.userdata=<p>Esta mensagem foi enviada automaticamente via OpenOLAT\: {0}</p> footer.no.userdata=<p>Esta mensagem foi enviada automaticamente via OpenOLAT\: {0}</p>
......
...@@ -521,7 +521,7 @@ public class MailManagerImpl implements MailManager, InitializingBean { ...@@ -521,7 +521,7 @@ public class MailManagerImpl implements MailManager, InitializingBean {
.append(" inner join fromRecipient.recipient fromRecipientIdentity") .append(" inner join fromRecipient.recipient fromRecipientIdentity")
.append(" inner join ").append(fetchRecipients ? "fetch" : "").append(" mail.recipients recipient") .append(" inner join ").append(fetchRecipients ? "fetch" : "").append(" mail.recipients recipient")
.append(" inner join ").append(fetchRecipients ? "fetch" : "").append(" recipient.recipient recipientIdentity") .append(" inner join ").append(fetchRecipients ? "fetch" : "").append(" recipient.recipient recipientIdentity")
.append(" where fromRecipientIdentity.key=:fromKey and fromRecipient.deleted=false and recipientIdentity.key!=:fromKey") .append(" where fromRecipientIdentity.key=:fromKey and fromRecipient.deleted=false ")
.append(" order by mail.creationDate desc"); .append(" order by mail.creationDate desc");
TypedQuery<DBMailLight> query = dbInstance.getCurrentEntityManager() TypedQuery<DBMailLight> query = dbInstance.getCurrentEntityManager()
......
#Fri May 11 23:51:11 CEST 2018 #Tue Jun 19 22:05:16 CEST 2018
command.new_db=Criar novo banco de dados command.new_db=Criar novo banco de dados
customDb.category=Nome customDb.category=Nome
customDb.create=Criar customDb.create=Criar
......
#Thu Apr 28 20:32:25 CEST 2016 #Tue Jun 19 22:05:50 CEST 2018
chooseFolder=Escolher pasta chooseFolder=Escolher pasta
condition.accessDownloaders.title=Apenas ler (download) condition.accessDownloaders.title=Apenas ler (download)
condition.accessUploaders.title=Ler e escrever (up/download) condition.accessUploaders.title=Ler e escrever (up/download)
...@@ -30,4 +30,5 @@ subPathLab.dummy=N\u00E3o existe nenhuma pasta configurada ainda ...@@ -30,4 +30,5 @@ subPathLab.dummy=N\u00E3o existe nenhuma pasta configurada ainda
subPathLab.label=Caminho de arquivo subPathLab.label=Caminho de arquivo
title_bc=Pasta title_bc=Pasta
warn.folderdelete=Aviso\: Todos os arquivos nesta pasta ser\u00E3o apagados. warn.folderdelete=Aviso\: Todos os arquivos nesta pasta ser\u00E3o apagados.
warning.no.linkedfolder=A pasta configurada n\u00E3o est\u00E1 dispon\u00EDvel na pasta de armazenamento do curso.
warning.no.sharedfolder=A pasta de recursos configurada n\u00E3o est\u00E1 mais dispon\u00EDvel\! warning.no.sharedfolder=A pasta de recursos configurada n\u00E3o est\u00E1 mais dispon\u00EDvel\!
#Fri May 11 23:52:28 CEST 2018 #Tue Jun 19 22:06:07 CEST 2018
add.member=Adicionar add.member=Adicionar
already.all.selected=Voc\u00EA j\u00E1 escolheu todos usu\u00E1rios already.all.selected=Voc\u00EA j\u00E1 escolheu todos usu\u00E1rios
coaches=Treinadores do Curso coaches=Treinadores do Curso
......
...@@ -425,12 +425,9 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im ...@@ -425,12 +425,9 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
toolbarPanel.setToolbarEnabled(true); toolbarPanel.setToolbarEnabled(true);
} }
// make bread crumb disappear if not enabled // make bread crumb disappear if not enabled
if (!course.getCourseConfig().isBreadCrumbEnabled()) { if (!course.getCourseConfig().isBreadCrumbEnabled() && !toolbarPanel.isToolbarEnabled()) {
toolbarPanel.setInvisibleCrumb(100); // disable if toolbar also not visible
if (!toolbarPanel.isToolbarEnabled()) { toolbarPanel.setBreadcrumbEnabled(false);
// disable if toolbar also not visible
toolbarPanel.setEnabled(false);
}
} }
if(!isAssessmentLock()) { if(!isAssessmentLock()) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment