...
 
Commits (67)
......@@ -2393,6 +2393,23 @@ li.list-projects a {
border: 1px solid transparent;
}
.myProjectsHeader {
display: flex;
}
.noProjectsMsg {
margin: 30px;
}
.smallIconProjectItem {
position: absolute;
top: 5px;
font-size: 12px;
}
.discussion-item:hover {
color: #F28131;
}
......@@ -2572,12 +2589,14 @@ span[data-cal-date] {
.left-column .group-overview {
margin-right: 10px;
overflow-y: auto;
overflow-x: hidden;
height: 100%;
scrollbar-color: black white;
scrollbar-width: thin;
}
.search-bar-project {
margin: auto 5px auto 0;
width: 100%;
}
......@@ -2660,6 +2679,7 @@ span[data-cal-date] {
width: 35px;
}
.right-menu-icon .project-icon {
margin: 0 auto;
display: flex;
......@@ -7088,7 +7108,7 @@ textarea.fullWidth, input.fullWidth {
margin-top: 20px;
padding-bottom: 5px;
text-transform: uppercase;
border-bottom: 2px solid rgb(253, 133, 2);
border-bottom: 2px solid #fd8502;
}
.showcasebox {
......@@ -7119,6 +7139,25 @@ textarea.fullWidth, input.fullWidth {
max-width: 20px;
}
.showcaseDeliverables {
padding: 5px;
}
.showcaseDeliverablesSubmits {
margin-top: 10px;
}
.showcaseDeliverablesDocs {
display: flex;
margin-top: 5px;
border-top: 1px dotted #fd8502;
padding: 5px;
}
.showcaseDeliverablesDownload{
margin-left: auto;
}
#dashboardView {
height: 100%;
}
......@@ -642,4 +642,26 @@ p.placeholder {
.price-card-selected {
border: orange solid 2px;
}
\ No newline at end of file
}
article.post {
display: flex;
margin-bottom: 15px;
border-bottom: solid 1px lightgray;
padding-bottom: 5px;
}
.post-content {
flex: 1;
}
.post-image {
width: 10%;
display: flex;
margin-right: 10px;
}
.post-image img {
width: 100%;
margin: auto;
}
......@@ -131,6 +131,9 @@ p {
text-decoration: none;
}
#login a:hover {
color: #FD8502;
}
.common-button {
display: inline-block;
......@@ -1105,4 +1108,4 @@ table.postes td.poste {
#taches .taskBlock.taskElement.finalize .range {
width: 0;
background: #a1a4a6;
}
\ No newline at end of file
}
/* Add here all your CSS customizations */
\ No newline at end of file
/* Add here all your CSS customizations */
.thumbnail-project {
display: block;
margin-left: auto;
margin-right: auto;
}
\ No newline at end of file
......@@ -563,7 +563,7 @@ section.page-top h2 {
#blogPage {
width: 100%;
margin: 100px auto;
margin: 50px auto;
}
#entryBlog-hidden {
......@@ -573,20 +573,31 @@ section.page-top h2 {
transition: 0.4s;
}
#entryDeliv-hidden {
display: none;
-moz-transition: 0.4s;
-webkit-transition: 0.4s;
transition: 0.4s;
}
.fiche {
height: 218px;
margin-bottom: 20px;
overflow: hidden;
border: 2px solid white;
display: flex;
background-color: #FFF;
}
.fiche img {
position: absolute;
left: 0;
top: 0;
.fiche-image img {
max-width: 100%;
margin: auto;
}
.fiche-image {
display: flex;
width: 100%;
}
.fiche .overlay {
position: absolute;
left: 0;
......@@ -753,16 +764,16 @@ body, html {
#content > .container:nth-child(odd) {
background-color: white;
padding-bottom: 40px;
min-height: 400px;
min-height: 200px;
width: 100%
}
#content > .container:nth-child(even) {
background-color: #1E1A35;
padding-bottom: 40px;
background-color: #f1ece6;
padding-bottom: 10px;
width: 100%;
color: white;
min-height: 400px;
color: #1E1A35;
min-height: 200px;
}
#content > .container:nth-child(odd) .feature-box i {
......@@ -784,7 +795,7 @@ body, html {
#content > .container:nth-child(even) h2 {
color: white;
color: #1E1A35;
}
h2.big-title {
......@@ -952,7 +963,7 @@ ul {
}
.container img {
max-height: 200px;
max-height: 218px;
}
.height-100 {
......@@ -3085,4 +3096,4 @@ header > .navbar-collapse > .container {
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
}
}
\ No newline at end of file
}
/* Posts */
div.blog-posts article {
border-bottom: 1px solid #DDD;
margin-bottom: 50px;
padding-bottom: 10px;
}
div.blog-posts div.pagination {
margin: -10px 0 20px;
}
div.single-post article {
border-bottom: 0;
margin-bottom: 0;
}
/* Post */
article.post h2 a {
text-decoration: none;
}
article.post div.post-meta {
font-size: 0.9em;
margin-bottom: 7px;
}
article.post div.post-meta > span {
display: inline-block;
padding-right: 8px;
}
article.post div.post-meta i {
margin-right: 3px;
}
/* Post Date */
article.post div.post-date {
-moz-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1);
-webkit-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1);
float: left;
margin-right: 10px;
text-align: center;
}
article.post div.post-date span.month {
-moz-border-radius: 0 0 2px 2px;
-moz-box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.07) inset;
-webkit-border-radius: 0 0 2px 2px;
-webkit-box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.07) inset;
background: #CCC;
border-radius: 0 0 2px 2px;
box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.07) inset;
color: #FFFFFF;
font-size: 0.9em;
padding: 0 10px 2px;
}
article.post div.post-date span.day {
-moz-border-radius: 2px 2px 0 0;
-webkit-border-radius: 2px 2px 0 0;
background: #F4F4F4;
border-radius: 2px 2px 0 0;
color: #CCC;
display: block;
font-size: 16px;
font-weight: 500;
font-weight: bold;
padding: 10px;
}
article.post div.post-image .owl-carousel {
width: 100.1%;
}
article.post-medium div.post-image .owl-carousel {
width: 100.2%;
}
/* Post Large Image */
article.post-large {
margin-left: 60px;
}
article.post-large div.post-image,
article.post-large div.post-date {
margin-left: -60px;
}
article.post-large div.post-image {
article.post {
display: flex;
margin-bottom: 15px;
border-bottom: solid 1px lightgray;
padding-bottom: 5px;
}
article.post-large div.post-image.single {
margin-bottom: 30px;
}
article.post-large h2 {
margin-bottom: 5px;
}
/* Post Video */
article div.post-video {
padding: 0;
background-color: #FFF;
border: 1px solid #DDD;
border-radius: 8px;
-webkit-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
display: block;
height: auto;
position: relative;
margin: 0 0 30px 0;
padding-bottom: 61%;
}
article.post-large div.post-video {
margin-left: -60px;
}
article div.post-video iframe {
bottom: 0;
height: auto;
left: 0;
margin: 0;
min-height: 100%;
min-width: 100%;
padding: 4px;
position: absolute;
right: 0;
top: 0;
width: auto;
}
/* Post Audio */
article div.post-audio {
padding: 0;
background-color: #FFF;
border: 1px solid #DDD;
border-radius: 8px;
-webkit-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
display: block;
height: auto;
position: relative;
margin: 0 0 30px 0;
padding-bottom: 25%;
}
article.post-large div.post-audio {
margin-left: -60px;
}
article div.post-audio iframe {
bottom: 0;
height: auto;
left: 0;
margin: 0;
min-height: 100%;
min-width: 100%;
padding: 4px;
position: absolute;
right: 0;
top: 0;
width: auto;
/* Post content */
.post-content {
flex: 1;
}
/* Single Post */
article.blog-single-post div.post-meta {
margin-bottom: 20px;
.post-details {
display: flex;
}
/* Block */
div.post-block {
border-top: 1px solid #DDD;
margin: 15px 0 0 0;
padding: 20px 0 15px 0;
.post-details i {
margin-left: 10px;
}
div.post-block h3 {
font-size: 1.8em;
font-weight: 200;
margin: 0 0 20px;
text-transform: none;
}
div.post-block h3 i {
margin-right: 7px;
}
/* Author */
div.post-author {
margin: 15px 0 0 0;
}
div.post-author div.img-thumbnail {
display: inline-block;
float: left;
margin-right: 20px;
}
div.post-author img {
max-height: 80px;
max-width: 80px;
}
div.post-author p {
font-size: 0.9em;
line-height: 22px;
margin: 0;
padding: 0;
}
div.post-author p strong.name {
font-size: 1.1em;
}
/* Share */
div.post-share {
margin: 55px 0 0 0;
padding-bottom: 0;
}
/* Comments */
div.post-comments {
margin-top: 45px;
}
ul.comments {
list-style: none;
margin: 0;
padding: 0;
}
ul.comments div.comment-arrow {
border-bottom: 15px solid transparent;
border-right: 15px solid #F4F4F4;
border-top: 15px solid transparent;
height: 0;
left: -15px;
position: absolute;
top: 28px;
width: 0;
}
ul.comments div.comment-block {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
background: #F4F4F4;
border-radius: 5px;
padding: 20px 20px 30px;
position: relative;
}
ul.comments div.comment-block span.comment-by {
display: block;
font-size: 1em;
line-height: 21px;
margin: 0;
padding: 0 0 5px 0;
}
ul.comments div.comment-block span.date {
color: #999;
font-size: 0.9em;
}
ul.comments div.comment-block p {
font-size: 0.9em;
line-height: 21px;
margin: 0;
padding: 0;
}
ul.comments li {
clear: both;
padding: 10px 0 0 115px;
}
ul.comments li div.img-thumbnail {
margin-left: -115px;
position: absolute;
}
ul.comments li div.comment {
margin-bottom: 10px;
}
ul.comments li img.avatar {
height: 80px;
width: 80px;
}
ul.comments li ul.reply {
margin: 0;
}
ul.comments li a {
text-decoration: none;
/* Post image */
.post-image {
width: 10%;
display: flex;
margin-right: 10px;
}
/* Leave a Comment */
div.post-leave-comment {
margin-top: 25px;
padding-top: 45px;
.post-image img {
width: 100%;
margin: auto;
}
div.post-leave-comment h3 {
margin: 0 0 40px;
}
\ No newline at end of file
......@@ -66,25 +66,33 @@ $lastProjects = array();
<h2><?php echo $translation->translate_m('_FOOTER_ABOUT') ?></h2>
<!-- <a href="--><?php //go2('mission') ?><!--"><p>--><?php //echo $translation->translate_m('MENU_MISSION') ?><!--</p>-->
<!-- </a>-->
<a href="https://disrupt-campus.univ-grenoble-alpes.fr" class="small">
<p>Disrupt Campus </p></a>
<a href="https://disrupt-campus.univ-grenoble-alpes.fr" class="small">
<p>L'équipe EDCampus</p></a>
<a href="<?php go2('privacy') ?>" class="small">
<p><?php echo $translation->translate_m('MENU_PRIVACY') ?></p></a>
<a href="<?php go2('terms') ?>" class="small">
<p><?php echo $translation->translate_m('MENU_CGU') ?></p></a>
<a href="<?php go2('career') ?>" class="small">
<p><?php echo $translation->translate_m('_FOOTER_CONTRIBUTE') ?></p></a>
<a href="https://disrupt-campus.univ-grenoble-alpes.fr">
Disrupt Campus </a>
<br>
<a href="https://disrupt-campus.univ-grenoble-alpes.fr/la-plateforme/" >
<?php echo $translation->translate_m('_FOOTER_MORE_EDCAMPUS') ?></a>
<br>
<a href="<?php go2('privacy') ?>" >
<?php echo $translation->translate_m('MENU_PRIVACY') ?></a>
<br>
<a href="<?php go2('terms') ?>" >
<?php echo $translation->translate_m('MENU_CGU') ?></a>
<br>
<!--<a href="<?php go2('career') ?>" >
<?php echo $translation->translate_m('_FOOTER_CONTRIBUTE') ?></a>
<br>-->
</section>
</div>
<div class="col-md-4 col-sm-4">
<section class="small">
<h2><?php echo $translation->translate_m('_FOOTER_CONTACT') ?></h2>
<address>
<div>FabMSTIC</div>
<div>11 rue des mathématiques</div>
<div>38400 Saint Martin d'hères</div>
<div><?php echo $translation->translate_m('_FOOTER_ADRESS') ?></div>
<div><?php echo $translation->translate_m('_FOOTER_ADRESS1') ?></div>
<div><?php echo $translation->translate_m('_FOOTER_ADRESS2') ?></div>
<figure>
<div class="info">
<i class="fa fa-envelope"></i>
......@@ -95,8 +103,10 @@ $lastProjects = array();
<span>disrupt-campus@univ-grenoble-alpes.fr</span>
</div>
<div class="info">
<i class="fa fa-globe"></i>
<a href="#">https://disrupt-campus.univ-grenoble-alpes.fr</a>
<i class="fa fa-globe"></i>
<a href="https://disrupt-campus.univ-grenoble-alpes.fr">
https://disrupt-campus.univ-grenoble-alpes.fr
</a>
</div>
</figure>
</address>
......@@ -137,7 +147,7 @@ $lastProjects = array();
<!--/.footer-top-->
<!--<div class="footer-bottom">
<div class="container">
<span class="left">(C) WAZA Education, 2016</span>
<span class="left">EDCampus, 2020</span>
<span class="right">
<a href="#page-top" class="to-top roll"><i class="fa fa-angle-up"></i></a>
</span>
......
......@@ -213,7 +213,7 @@
"_CONTACT_STUDENT_ACADEMIC": "Étudiant",
"_CONTACT_TUTOR_PRO": "Entreprise",
"_CONTACT_EXTERNAL_PRO": "Autre",
"_FOOTER_COPYRIGHT": "Copyright © 2019 EDCampus . Tous droits réservés.",
"_FOOTER_COPYRIGHT": "Copyright © 2020 EDCampus . Tous droits réservés.",
"_FOOTER_CONTACT": "Nous contacter",
"_FOOTER_CONTRIBUTE" : "Contribuer à EDCampus",
"_FOOTER_RECRUTE": "EDCampus recrute",
......@@ -222,6 +222,10 @@
"_FOOTER_ACCESS": "Accès rapide",
"_FOOTER_ABOUT": "À propos",
"_FOOTER_LOGIN": "Se connecter à EDCampus",
"_FOOTER_ADRESS" : "MaCI, B311",
"_FOOTER_ADRESS1" : "339 Avenue Centrale",
"_FOOTER_ADRESS2" : "38400 Saint-Martin-d'Hères",
"_FOOTER_MORE_EDCAMPUS" : "Plus d'informations sur EDCampus",
"PROJECTS_TITLE": "Artem Insight",
"PROJECTS_INSIGHT": "350 étudiants de l'alliance Artem au coeur des problématiques de 40 entreprises et organisations lorraines",
"PROJECTS_TITLE2": "Ils ont utilisé EDCampus !",
......
This diff is collapsed.
......@@ -19,7 +19,7 @@ function openModal(id) {
if (result.thumbnailUrl !== "undefined" && result.thumbnailUrl !== "") {
var thumb = result.thumbnailUrl;
} else {
var thumb = "img/projects/project-1.jpg";
var thumb = "/app/assets/images/logo.png";
}
$("#myModal #project-thumbnail").html('<img src="' + thumb + '" style="width: 100%;"/>')
......@@ -50,6 +50,14 @@ function showMoreProjects(elem) {
}
}
function showMoreDeliverables(elem) {
$('#entryDeliv-hidden').toggle();
if ($('#entryDeliv-hidden').is(":visible")) {
$(elem).html("Afficher moins de livrables");
} else {
$(elem).html("Afficher plus de livrables");
}
}
$(document).ready(function ($) {
var sizeMenu = $("#mainMenu").children().length;
......@@ -59,4 +67,4 @@ $(document).ready(function ($) {
console.log($("#mainMenu").css("width"));
});
\ No newline at end of file
});
......@@ -85,9 +85,19 @@
<input type="checkBox" ng-model="adminComCtrl.campus.settings.displayCourses"/>
<span>{{::_labels.displayCourses}}</span>
</label>-->
<label class="blockLabel">
<input type="checkBox" ng-model="adminComCtrl.campus.settings.displayHighlightedDeliverables"/>
<span>{{::_labels.displayHighlightedDeliverables}}</span>
</label>
<label class="blockLabel hide">
<input type="checkBox" ng-model="adminComCtrl.campus.settings.displayDeliverablesBrowser"/>
<span>{{::_labels.displayDeliverablesBrowser}}</span>
</label>
</div>
</section>
<button ng-click="adminComCtrl.setUniversitySettings();">{{::_labels.updateBtn}}</button>
</div>
\ No newline at end of file
</div>
......@@ -14,6 +14,7 @@ root.controller('DashboardCtrl', ['$scope', '$http', '$stateParams', '$location'
$scope.searchInput = {searchActivity: ""};
var lang = "";
$scope.prices = [];
$scope.showHiddenProjects = true;
var session = $scope._getSession();
if ($stateParams.action == "switchManager") {
......@@ -149,6 +150,53 @@ root.controller('DashboardCtrl', ['$scope', '$http', '$stateParams', '$location'
}
$scope.getListProjects = function() {
$scope.showHiddenProjects = !$scope.showHiddenProjects;
$scope.membershipList = [];
$scope.listShowProjects = [];
if (!$scope._listProjects) {
// If the list variable is not ready, we try again after 0.5s
setTimeout(() => {
$scope.showHiddenProjects = !$scope.showHiddenProjects;
this.getListProjects();
}, 500);
} else {
if ($scope.showHiddenProjects) {
$scope.listShowProjects = $scope._listProjects;
} else {
$scope.listShowProjects = $scope._listProjects.filter(
project => project.membership == 1
);
}
$scope.listShowProjects.forEach(project => {
$scope.membershipList[project.id] = project.membership == 1;
});
}
};
$scope.putMembership = function(projectId) {
$projectFactory.putMembership(projectId, function(data) {
if (data.status == "success") {
$scope._listProjects = $scope._listProjects.map(project => {
if (project.id == projectId) {
project.membership == 1
? (project.membership = 2)
: (project.membership = 1);
}
return project;
});
if (!$scope.showHiddenProjects)
$scope.listShowProjects = $scope._listProjects.filter(
project => project.membership == 1
);
$scope.membershipList[projectId] = !$scope.membershipList[projectId];
}
});
};
$scope.searchActivities = function () {
$scope.loadingActivities = true;
......
......@@ -11,8 +11,11 @@ root.controller('DashboardCalendarCtrl', ['$scope', "$http", '$languageFactory',
$scope.currentDate = {"month": currDate.getMonth() + 1, "year": currDate.getFullYear()};
$scope.events = [];
calendarCtr.loadingCalendar = false;
calendarCtr.init = function () {
calendarCtr.loadingCalendar = true;
if ($stateParams.projectName) {
var promise = calendarCtr.getProjectEvents();
} else {
......@@ -20,7 +23,7 @@ root.controller('DashboardCalendarCtrl', ['$scope', "$http", '$languageFactory',
}
promise.success(function (data, status, headers, config) {
calendarCtr.loadingCalendar = false;
window.calendar_languages = {'fr-FR': $languageFactory._labels.calendarLanguage}
calendarCtr.calendar = $("#calendar").calendar(
......@@ -124,7 +127,7 @@ root.controller('DashboardCalendarCtrl', ['$scope', "$http", '$languageFactory',
includes: {
"events": true,
'tasks': true,
'deliverables': false,
'deliverables': true,
'assessments': true,
'workshops': true
}, projectId: $scope._getProject(), beginDate: beginDate, endDate: endDate
......@@ -182,7 +185,7 @@ root.controller('DashboardCalendarCtrl', ['$scope', "$http", '$languageFactory',
element.title = element.title;
break;
case "deliverables":
element.class = "event-file";
element.class = "event-assessment";
break;
case "files":
element.class = "event-file";
......
......@@ -19,4 +19,10 @@
<div>
<div id="calendar"></div>
</div>
<div class="alert alert-info" ng-if="calendarCtr.loadingCalendar">
<i class="fa fa-spinner fa-pulse"></i>
{{::_labels.loading_calendar}}
</div>
</div>
\ No newline at end of file
<div class="clearfix group-overview">
<div class="clearfix group-overview" ng-init="getListProjects();">
<div class="fixed-title">
<h4 style="text-align:center">
<h4>
<i style="cursor: default" class="fa fa-cube active"></i>
<span ng-if='_userGroups[_getFullGroup()]=="STUDENT"'>{{::_labels.myprojects}}</span>
<span ng-if='_userGroups[_getFullGroup()]!="STUDENT"'>{{::_labels.myProjectPortfolio}}</span>
<span ng-if="_userGroups[_getFullGroup()]=='STUDENT'">{{::_labels.myprojects}}</span>
<span ng-if="_userGroups[_getFullGroup()]!='STUDENT'">{{::_labels.myProjectPortfolio}}</span>
</h4>
<div class="sepator"></div>
<input class="search-bar-project" type='text' ng-model='searchText' placeholder="Rechercher un projet"/>
<div class="myProjectsHeader">
<input class="search-bar-project" type="text" ng-model="searchText" placeholder="Rechercher un projet" />
<button ng-if="!showHiddenProjects" class="small" style="width: 30%; height: auto;" ng-click="getListProjects()">
{{::_labels.seeProjects}}
</button>
<button ng-if="showHiddenProjects" class="small" style="width: 30%; height: auto;" ng-click="getListProjects()">
{{::_labels.seeActProjects}}
</button>
</div>
</div>
<div id="projects-wrapper" ng-if="_listProjects">
<div class="project-item col-md-12" ng-repeat="project in (_listProjects) | filter:searchText | orderBy:'label'" ng-init="loadNotifExists(project.id);">
<div id="projects-wrapper" ng-if="listShowProjects">
<div class="project-item col-md-12" ng-repeat="project in (listShowProjects) | filter:searchText | orderBy:'label'"
ng-init="loadNotifExists(project.id);">
<div class="project-item-header">
<label style="max-width: 90%;padding:5px;margin: auto; display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap ;font-size: 12px;">
<span ui-sref="project.overview({projectName:project.label})" class='pointerOn'>{{::project.fullName}}</span>
<div class="smallIconProjectItem custom-tooltip smalltooltip" style="left:10px;color:#666;">
<i ng-class="{'fa fa-star':membershipList[project.id]}"
ng-click="putMembership(project.id); $event.stopPropagation();"></i>
<i ng-class="{'fa fa-star-o':!membershipList[project.id]}"
ng-click="putMembership(project.id); $event.stopPropagation();"></i>
<span ng-if="!membershipList[project.id]" class="tooltiptext"
style="line-height:12px;width:50px;margin-left:-25px;">
{{::_labels.showproject}}
</span>
<span ng-if="membershipList[project.id]" class="tooltiptext"
style="line-height:12px;width:50px;margin-left:-25px;">
{{::_labels.hideproject}}
</span>
</div>
<label
style="max-width: 90%;padding:5px;margin: auto; display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap ;font-size: 12px;">
<span ui-sref="project.overview({projectName:project.label})" class="pointerOn">{{::project.fullName}}</span>
</label>
<div ng-if="::project.fullChildren.length" style="position:absolute;top:5px;right:10px;font-size: 12px;"
class="pull-right" ng-click="project.showChildren = !project.showChildren">
<i class="fa fa-caret-down" aria-hidden="true"></i>
<div ng-if="::project.fullChildren.length" style="right:10px;" class="pull-right smallIconProjectItem"
ng-click="project.showChildren = !project.showChildren">
<i class="fa fa-caret-down" aria-hidden="true"></i>
</div>
<div class="clearfix"></div>
<div ng-if='project.showChildren' class="project-item-children">
<label style="width: 100%;display: block; overflow: hidden;text-overflow: ellipsis;white-space: nowrap ;" ng-repeat="child in ::project.fullChildren ">
<span ui-sref="project.overview({projectName:child.label})" class='pointerOn'>
<i class="fa fa-cube"></i>
{{::child.fullName}}
</span>
<div ng-if="project.showChildren" class="project-item-children">
<label style="width: 100%;display: block; overflow: hidden;text-overflow: ellipsis;white-space: nowrap ;"
ng-repeat="child in ::project.fullChildren ">
<span ui-sref="project.overview({projectName:child.label})" class="pointerOn">
<i class="fa fa-cube"></i>
{{::child.fullName}}
</span>
</label>
</div>
......@@ -58,7 +86,7 @@
</div>
<div class="project-icon-section col-md-2 col-xs-3 pointerOn">
<div class="project-icon custom-tooltip smalltooltip event-calendar">
<div class="project-icon custom-tooltip smalltooltip event-calendar">
<span class="activity-notification-menu" ng-if="::project.events"></span>
<span ui-sref="project.events({projectName:project.label})" class="fa fa-calendar"></span>
<span class="tooltiptext" style="line-height:12px;">{{::_labels.events}}</span>
......@@ -68,4 +96,7 @@
</div>
</div>
</div>
<div class="noProjectsMsg" ng-if="listShowProjects.length==0 && !showHiddenProjects">
{{::_labels.noProjectsMsg}} <strong>{{::_labels.seeProjects}}</strong>
</div>
</div>
......@@ -2,10 +2,10 @@
<div>
<form name="newContactForm" ng-submit="newContactCtrl.updateItem()">
<h6 style='font-family: "SSPBold";text-transform: uppercase;'>{{::_labels.firstName}}<span class="required-item"> *</span></h6>
<h6 style='font-family: "SSPBold";text-transform: uppercase;'>{{::_labels.contactFirstName}}<span class="required-item"> *</span></h6>
<input type="text" value="" ng-model="newContactCtrl.newElement.firstName" required />
<h6 style='font-family: "SSPBold";text-transform: uppercase;'>{{::_labels.lastName}}<span class="required-item"> *</span></h6>
<h6 style='font-family: "SSPBold";text-transform: uppercase;'>{{::_labels.contactLastName}}<span class="required-item"> *</span></h6>
<input type="text" value="" ng-model="newContactCtrl.newElement.lastName" required />
<h6 style='font-family: "SSPBold";text-transform: uppercase;'>{{::_labels.contactsFields.mainPhone}}</h6>
......
......@@ -13,7 +13,8 @@ root.controller('DeliverablePopupCtrl', ['$scope', '$stateParams', '$http', '$me
listProjects: [],
listProjectsMember: [],
listProjectsNotMember: [],
target: "0"
target: "0",
public: "0"
};
vm.positions = [];
vm.members = [];
......@@ -28,32 +29,23 @@ root.controller('DeliverablePopupCtrl', ['$scope', '$stateParams', '$http', '$me
vm.projectsPool = {};
function initPopup() {
$portfolioManagerFactory.onNewModalPrompt($scope, function (param) {
vm.unselected = false;
vm.group = param.group;
vm.editMode = param.editMode;
initDatePicker();
//getChildren();
})
fetchChildrenProject();
//vm.newElement=vm.chatPopupManager;
}
function initDatePicker() {
$("#deadline").datepicker({
dateFormat: 'yy-mm-dd', minDate: 0, onSelect: function (date) {
//$scope.$apply();
vm.newElement.date = $("#deadline").val();
}
});
}
function createNewRequest() {
var session = $scope._getSession();
vm.newElement.deadline = vm.newElement.date + " " + vm.newElement.hour;
......@@ -66,15 +58,13 @@ root.controller('DeliverablePopupCtrl', ['$scope', '$stateParams', '$http', '$me
});
vm.newElement.reminder = vm.newElement.parameters.sendMail;
var parameters = {projectId: vm.group, request: vm.newElement};
return $projectFactory.post_deliverableRequest(session, parameters).success(function (data, status, headers, config) {
return $projectFactory.post_deliverableRequest(session, parameters).success(function (data, status, headers, config) {
if (data.status = "success") {
vm.newElement.label = "";
vm.newElement.description = "";
$portfolioManagerFactory.closeModalPrompt({success: true, data: vm.newElement});
}
});
}
......@@ -82,14 +72,11 @@ root.controller('DeliverablePopupCtrl', ['$scope', '$stateParams', '$http', '$me
var session = $scope._getSession();
vm.newElement.deadline = vm.newElement.date + " " + vm.newElement.hour;
var parameters = {groupId: vm.group.id, request: vm.newElement}
return $projectFactory.post_projectClone(session, parameters).success(function (data, status, headers, config) {
return $projectFactory.post_projectClone(session, parameters).success(function (data, status, headers, config) {
if (data.status = "success") {
$portfolioManagerFactory.closeModalPrompt({success: true, data: vm.newElement});
}
});
}
......@@ -98,7 +85,6 @@ root.controller('DeliverablePopupCtrl', ['$scope', '$stateParams', '$http', '$me
}
function createRequest() {
clearErrors();
console.log(vm.newElement);
if (!vm.newElement.label) {
......@@ -120,8 +106,6 @@ root.controller('DeliverablePopupCtrl', ['$scope', '$stateParams', '$http', '$me
createNewRequest();
}
}
}
function clearErrors() {
......@@ -131,20 +115,15 @@ root.controller('DeliverablePopupCtrl', ['$scope', '$stateParams', '$http', '$me
vm.hourError = false;
}
function getProjectDetailsFromGroup(project) {
var session = $scope._getSession();
var parameters = {projectId: project.childProject, full: false};
$projectFactory.get_projectDetails(project.childProject, false, function (data) {
if (data.status == "success") {
//selectProject(data.details[0]);
vm.projects.push(data.details[0]);
_unselectAll(false);
//return group.children;
}
})
}
function unselectAll() {
......@@ -191,19 +170,14 @@ root.controller('DeliverablePopupCtrl', ['$scope', '$stateParams', '$http', '$me
e.id = e.childProject;
return e;
})
//vm.newElement.listProjects=data.details;
vm.projectsPool.notMembers = data.details.filter(function (project) {
return !project.isMember
});
vm.projectsPool.members = data.details.filter(function (project) {
return project.isMember
});
})
}
//$scope.getPositions();
}]);
\ No newline at end of file
}]);
<div class="dialog big">
<i class="fa fa-times closePopup" ng-click="deliverablePopup.cancelManager()" aria-hidden="true"></i>
<h4 style="text-align: center">{{::_labels.newDeliverableRequest}}</h4>
<div class="sepator" style="background: #f08317; height: 2px; width: 200px; margin: 0 auto 40px auto;"></div>
<div class="sepator" style="background: #f08317; height: 2px; width: 200px; margin: 0 auto 40px auto;"></div>
<form name="deliverableForm" ng-submit="deliverablePopup.createRequest()" input-error>
<div class="form-group has-error">
<label for="title">{{::_labels.deliverableName}}</label><span class="required-item"> *</span>
<input name="label" placeholder="{{::_labels.placeholderDeliverableName}}" required
ng-model="deliverablePopup.newElement.label"></input>
</div>
<div class="form-group">
<label for="description">{{::_labels.description}}</label>
<textarea name="description" placeholder="{{::_labels.placeholderDeliverableDescription}}"
ng-model="deliverablePopup.newElement.description"></textarea>
</div>
<div class="form-group row has-error">
......@@ -24,45 +23,60 @@
<input name="date" placeholder="aaaa-mm-jj" required id="deadline"
ng-model="deliverablePopup.newElement.date"></input>
</div>
<div class="col-md-6" selected-value="deliverablePopup.newElement.hour" time-picker>
</div>
<div class="col-md-6" selected-value="deliverablePopup.newElement.hour" time-picker></div>
</div>
<div class="form-group has-error">
<div ng-if="deliverablePopup.projectsPool.notMembers.length || deliverablePopup.projectsPool.members.length">
<label>{{::_labels.affectedProjects}}</label>
<div class="form-group has-error" style="margin-left:10px;" ng-if="_projectChildren">
<label>{{::_labels.allMyProjects}}</label>
<checkbox-list pool="deliverablePopup.projectsPool.members" columns="3"
model="deliverablePopup.newElement.listProjectsMember" edit-mode="true"
type="'projects'"></checkbox-list>
<div class="separator"></div>
<label>{{::_labels.otherProjects}}</label>
<checkbox-list pool="deliverablePopup.projectsPool.notMembers" columns="3"
model="deliverablePopup.newElement.listProjectsNotMember" edit-mode="true"
type="'projects'"></checkbox-list>
</div>
</div>
</div>
<div class="form-group">
<label for="description">Type de livrable</label>
<label for="description">{{::_labels.deliverableType}}</label>
<div class="row">
<div class="col-md-6">
<input type="radio" ng-model="deliverablePopup.newElement.target" value="0"></input>
<label class="small" for="group">Un livrable pour le groupe</label>
<label class="small" for="group">{{::_labels.deliverableForGroup}}</label>
</div>
<div class="col-md-6">
<input type="radio" ng-model="deliverablePopup.newElement.target" value="1"></input>
<label class="small" for="individual">Un livrable par personne</label>
<label class="small" for="individual">{{::_labels.deliverableForPerson}}</label>
</div>
</div>
</div>
<div class="form-group">
<label for="description">{{::_labels.publicDeliverable}}</label>
<div class="row">
<div class="col-md-6">
<input type="radio" ng-model="deliverablePopup.newElement.public" value="1"></input>
<label class="small" for="group">{{::_labels.activeModule}}</label>
</div>
<div class="col-md-6">
<input type="radio" ng-model="deliverablePopup.newElement.public" value="0"></input>
<label class="small" for="individual">{{::_labels.deactiveModule}}</label>
</div>
</div>
</div>
<div class="form-group">
<input name="reminder" type="checkbox" ng-model="deliverablePopup.newElement.parameters.sendMail" disabled
style="width:20px;"></input>
......@@ -70,10 +84,10 @@
<div class="custom-tooltip"><i class="fa fa-question-circle" aria-hidden="true"></i><span
class="tooltiptext">{{::_labels.mailAutoDescription}}</span>
</div>
</div>
<div class="clearfixbutton"></div>
<div class="WelcomeCtrlBtns" style="right: 10px;bottom: 10px;text-align: right">
<button class="WelcomeCtrlBtn cancel" type="button" ng-click="deliverablePopup.cancelManager()">
{{::_labels.cancelBtn}}
......@@ -81,6 +95,4 @@
<button class="WelcomeCtrlBtn primary" type="submit">{{::_labels.editModeOn}}</button>
</div>
</form>
</div>
\ No newline at end of file
</div>
......@@ -97,7 +97,7 @@
</form>
</div>
<div ng-if="newEventCtrl.eventPopup.mode=='edit'">
<h4 style="text-align: center">{{::_labels.newEvent}}</h4>
<h4 style="text-align: center">{{::newEventCtrl.newEvent.fullName}}</h4>
<div class="sepator"
style="background: #f08317; height: 2px; width: 200px; margin: 0 auto 20px auto;"></div>
......
<div class="chatPopupManager" ng-controller='FinanceElemNewCtrl as newOperationCtrl'>
<div class="dialog" style='width: 650px;min-height:340px;'>
<i class="fa fa-times closePopup" ng-click="newOperationCtrl.cancelManager()" aria-hidden="true"></i>
<h4 style="text-align: center">{{::_labels.financeNewElemTitle}} :
{{::_labels.quickLaunches[2*newElem.index]}}</h4>
<h4 style="text-align: center" ng-if="newOperationCtrl.title == ''">{{::_labels.financeNewElemTitle}}</h4>
<h4 style="text-align: center" ng-if="newOperationCtrl.title != ''">{{::_labels.financeNewElemTitle}} :
{{::newOperationCtrl.title}}</h4>
<div class="sepator"
style="background: #f08317; height: 2px; width: 200px; margin: 0 auto 20px auto;"></div>
......@@ -91,7 +92,7 @@
<div style="margin-top:10px">
<label style="width: 100%" class="radio-custom"
ng-click='newOperationCtrl.newElem.facture=0'>
<i class="fa fa-circle-o" ng-class='{"fa-circle":!newElem.facture}'></i>
<i class="fa fa-circle-o" ng-class='{"fa-circle":!newOperationCtrl.newElem.facture}'></i>
<span ng-if="newOperationCtrl.newElem.index!='11'">{{::_labels.financeNewElemFactureNow}}</span>
<span ng-if="newOperationCtrl.newElem.index=='11'">{{::_labels.financeNewElemReceiveNow}}</span>
</label>
......@@ -167,7 +168,9 @@
<button class="WelcomeCtrlBtn cancel" type="button" ng-click="newOperationCtrl.cancelManager()">
{{::_labels.cancelBtn}}
</button>
<button class="WelcomeCtrlBtn primary" type="submit">{{::_labels.editModeOn}}</button>
<button class="WelcomeCtrlBtn primary" type="submit" ng-click="newOperationCtrl.submitOperation()">
{{::_labels.editModeOn}}
</button>
</div>
</div>
......
......@@ -8,6 +8,7 @@ root.controller('FinanceElemNewCtrl', ['$scope', '$stateParams', '$http', '$fina
newOperationCtrl.shortName = $stateParams.projectName;
newOperationCtrl.section = "financeNewOperation";
newOperationCtrl.title = "";
var session = $scope._getSession();
......@@ -23,8 +24,9 @@ root.controller('FinanceElemNewCtrl', ['$scope', '$stateParams', '$http', '$fina
if (params.boxAccounts) newOperationCtrl.newElem.boxAccounts = params.boxAccounts;
var ignoreTVATbl = [2, 5, 7, 8, 9, 10, 11];
newOperationCtrl.title = $languageFactory._labels.quickLaunches[2*newOperationCtrl.newElem.index];
newOperationCtrl.newElem.enableTVA = newOperationCtrl.newElem.account.parameters.type != "0" && ignoreTVATbl.indexOf(newOperationCtrl.newElem.index) != -1;
}
$scope._showAlert({status: 1, message: ""});
......@@ -37,13 +39,13 @@ root.controller('FinanceElemNewCtrl', ['$scope', '$stateParams', '$http', '$fina
$("#factureDate").datepicker({
dateFormat: 'yy-mm-dd', onSelect: function (date) {
newOperationCtrl.$apply();
$scope.$apply();
newOperationCtrl.newElem.factureDate = $("#factureDate").val();
}
});
$("#encaissDate").datepicker({
dateFormat: 'yy-mm-dd', onSelect: function (date) {
newOperationCtrl.$apply();
$scope.$apply();
newOperationCtrl.newElem.encaissDate = $("#encaissDate").val();
}
});
......@@ -57,6 +59,7 @@ root.controller('FinanceElemNewCtrl', ['$scope', '$stateParams', '$http', '$fina
newOperationCtrl.cancelManager = function () {
$("#newFinances").hide();
newOperationCtrl.title = ""; // remove title to provoke ng-if in html to reload the label (title)...
}
newOperationCtrl.submitOperation = function () {
......
</
......@@ -41,18 +41,21 @@
</div>
<div>
<label>{{::_labels.newProjectSectors}}</label>
<div class="form-group has-error">
<label style='margin-top: 10px;'>{{::_labels.newProjectSectors}} (MAX 3)</label>
<div style=''>
<select class="name" ng-model="settingsCtrl.inputSector" style='margin-top: 0px;'
ng-change="settingsCtrl.addSector(inputSector)">
ng-change="settingsCtrl.addSector(settingsCtrl.inputSector)">
<option ng-repeat="sector in settingsCtrl.listSectors">{{sector.label}}</option>
</select>
</div>
<div class='jt-editor' style='margin-left: 0;background: none;' ng-show='settingsCtrl.settings.sectors.length'>
<span ng-repeat="sector in settingsCtrl.settings.sectors" style='padding: 5px; height: auto;color: inherit' class='jt-tag'>
{{sector.label}}
<span class="remove-button" ng-click="settingsCtrl.removeSector(sector)" title='{{::_labels.deleteMode}}' style='padding-left: 3px;'>×</span>
<div class='jt-editor' style='margin-left: 0;' ng-show='settingsCtrl.settings.sectors.length'>
<span ng-repeat="sector in settingsCtrl.settings.sectors"
style='padding: 5px; height: auto;color: inherit' class='jt-tag'>
{{sector.label}}<span class="remove-button" ng-click="settingsCtrl.removeSector(sector)"
title='{{::_labels.deleteMode}}' style='padding-left: 3px;'>×</span>
</span>
</div>
</div>
......@@ -293,9 +296,9 @@
<a ng-click='settingsCtrl.removeUniversity(module.id);' title="Close"
class="fa fa-trash"
style="position: absolute; right: 0; top:0; margin: 1px;"></a>
<div style="padding: 3px; padding-top: 15px; height: 92px;">
<p ng-if="module.thumbnailUrl"><img ng-src="{{module.thumbnailUrl}}"/></p>
<p ng-if="!module.thumbnailUrl"><i class="fa fa-graduation-cap fa-2x"></i></p>
<div style="height: 100px;">
<p ng-if="module.thumbnailUrl" style="margin-bottom: 0px;" ><img ng-src="{{module.thumbnailUrl}}"/></p>
<p ng-if="!module.thumbnailUrl" style="margin-bottom: 0px;"><i class="fa fa-graduation-cap fa-2x" style="padding-top: 21px; padding-bottom: 21px;"></i></p>
{{module.fullName | limitTo:25}}
</div>
</li>
......@@ -307,9 +310,9 @@
<a ng-click='settingsCtrl.removeEntreprise(module.id);' title="Close"