Incubator-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- 26 discussions
r48 - in jtimerhtml5/src/main/resources: html html/css nuiton-js
by qmoriceau@users.chorem.org 19 Jun '13
by qmoriceau@users.chorem.org 19 Jun '13
19 Jun '13
Author: qmoriceau
Date: 2013-06-19 17:31:37 +0200 (Wed, 19 Jun 2013)
New Revision: 48
Url: http://chorem.org/projects/incubator/repository/revisions/48
Log:
L?\195?\169g?\195?\168res modification sur le code de l'interface
Modified:
jtimerhtml5/src/main/resources/html/css/index.css
jtimerhtml5/src/main/resources/html/index.html
jtimerhtml5/src/main/resources/nuiton-js/wro.xml
Modified: jtimerhtml5/src/main/resources/html/css/index.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/index.css 2013-06-19 09:50:36 UTC (rev 47)
+++ jtimerhtml5/src/main/resources/html/css/index.css 2013-06-19 15:31:37 UTC (rev 48)
@@ -4,11 +4,11 @@
}
footer {
- width:100%;
- position:fixed;
- bottom:0px;
- margin:0;
- box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
+ width:100%;
+ position:fixed;
+ bottom:0px;
+ margin:0;
+ box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
background-repeat: repeat-x;
}
@@ -24,8 +24,8 @@
#headTasks span {
border-style:solid;
- border-width:2px;
- border-color:#339999;
+ border-width:2px;
+ border-color:#339999;
}
.colHT {
@@ -67,95 +67,95 @@
}
#divRight{
- width:50%;
- height:100%;
- float:right;
- margin:0;
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- border-radius: 4px;
+ width:50%;
+ height:100%;
+ float:right;
+ margin:0;
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ border-radius: 4px;
}
#divLeft{
- width:49%;
- float:left;
- margin:0;
- height:100%;
+ width:49%;
+ float:left;
+ margin:0;
+ height:100%;
}
#selectThisWeek{
- background: url(img/date_current.png);
- background-repeat:no-repeat;
- background-position:center center;
- width: 40px;
- height: 22px;
+ background: url(img/date_current.png);
+ background-repeat:no-repeat;
+ background-position:center center;
+ width: 40px;
+ height: 22px;
}
#selectLastWeek{
- background: url(img/date_previous.png);
- background-repeat:no-repeat;
- background-position:center center;
- width: 40px;
- height: 22px;
+ background: url(img/date_previous.png);
+ background-repeat:no-repeat;
+ background-position:center center;
+ width: 40px;
+ height: 22px;
}
#endDate{
- margin-left:7px;
- width:70%;
+ margin-left:7px;
+ width:70%;
}
#startDate{
- width:70%;
+ width:70%;
}
#textReport{
- width:96%;
- height:500px;
- margin-left:5px;
- margin-top:10px;
+ width:96%;
+ height:500px;
+ margin-left:5px;
+ margin-top:10px;
}
#generReport{
- width:24%;
- min-height:30px;
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- border-radius: 4px;
- cursor:pointer;
- display:inline-block;
- text-align:center;
- bottom:5px;
+ width:24%;
+ min-height:30px;
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ border-radius: 4px;
+ cursor:pointer;
+ display:inline-block;
+ text-align:center;
+ bottom:5px;
}
#mailReport{
- width:24%;
- min-height:30px;
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- border-radius: 4px;
- cursor:pointer;
- display:inline-block;
- text-align:center;
- bottom:5px;
+ width:24%;
+ min-height:30px;
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ border-radius: 4px;
+ cursor:pointer;
+ display:inline-block;
+ text-align:center;
+ bottom:5px;
}
#optionsReport{
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- height:100%;
- border-radius: 4px;
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ height:100%;
+ border-radius: 4px;
}
#projectsReport{
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- height:100%;
- border-radius: 4px;
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ height:100%;
+ border-radius: 4px;
}
form {
@@ -163,65 +163,65 @@
}
.subtask{
- list-style-type: none;
- margin:0;
+ list-style-type: none;
+ margin:0;
}
#treeTasks {
- list-style-type: none;
- margin:0;
+ list-style-type: none;
+ margin:0;
}
#editionApply {
- width:49%;
- height: 30px;
- display:inline-block;
+ width:49%;
+ height: 30px;
+ display:inline-block;
}
#editionCancel {
- width:49%;
- height: 30px;
- display:inline-block;
+ width:49%;
+ height: 30px;
+ display:inline-block;
}
#dataText {
- margin-left:5px;
+ margin-left:5px;
}
#frame {
- width:99%;
- min-height:155px;
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- border-radius: 4px;
+ width:99%;
+ min-height:155px;
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ border-radius: 4px;
}
#bt1{
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- border-radius: 4px;
- cursor:pointer;
- background-color:#339999;
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ border-radius: 4px;
+ cursor:pointer;
+ background-color:#339999;
}
#bt2{
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- border-radius: 4px;
- cursor:pointer;
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ border-radius: 4px;
+ cursor:pointer;
}
#alertCancel{
- width:70px;
- height:30px;
+ width:70px;
+ height:30px;
}
#alertSave {
- width:70px;
- height:30px;
+ width:70px;
+ height:30px;
}
Modified: jtimerhtml5/src/main/resources/html/index.html
===================================================================
--- jtimerhtml5/src/main/resources/html/index.html 2013-06-19 09:50:36 UTC (rev 47)
+++ jtimerhtml5/src/main/resources/html/index.html 2013-06-19 15:31:37 UTC (rev 48)
@@ -1,153 +1,153 @@
<!DOCTYPE html>
<html lang="fr">
- <head>
- <meta charset="UTF-8"/>
- <title>jTimer</title>
- <link rel="stylesheet" href="jtimer.css"/>
- <script src="jtimer.js"></script>
- </head>
- <body onload="getProjects()">
-
-
-
- <header class="navbar navbar navbar-fixed-top">
- <div class="navbar-inner">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>jTimer</title>
+ <link rel="stylesheet" href="jtimer.css"/>
+ <script src="jtimer.js"></script>
+ </head>
+ <body onload="getProjects()">
+
+
+
+ <header class="navbar navbar navbar-fixed-top">
+ <div class="navbar-inner">
<div class="container">
<a class="brand" href="#">jTimer</a>
<div class="nav-collapse collapse">
<ul class="nav">
- <li class="optH" id="options"><a title="Options général" href="javascript:options()">Options</a></li>
- <li class="optH" id="report"><a title="Création d'un rapport" href="javascript:report()">Rapport</a></li>
- <li class="optH" id="about"><a title="À propos de jTimer" data-toggle="modal" href="#aboutPopUp">À propos</a></li>
- <!--<li class="optH" id="quit"><a title="Quitter l'application" href="javascript:window.close()">Quitter</a></li>-->
- </ul>
+ <li class="optH" id="options"><a title="Options général" href="javascript:options()">Options</a></li>
+ <li class="optH" id="report"><a title="Création d'un rapport" href="javascript:report()">Rapport</a></li>
+ <li class="optH" id="about"><a title="À propos de jTimer" data-toggle="modal" href="#aboutPopUp">À propos</a></li>
+ <!--<li class="optH" id="quit"><a title="Quitter l'application" href="javascript:window.close()">Quitter</a></li>-->
+ </ul>
</div>
</div>
</div>
- </header>
-
-
-
- <div id="jtimer">
- <div id="opts">
- <span><label title="Affiche les projets et tâches fermer"><input type="checkbox" onchange="javascript:displayHidden()">Afficher les cachés</a></label></span>
- <span><label title="Réduit l'application dans le systray au lieu de le fermer"><input type="checkbox" onchange="javascript:systray()">Fermer vers le systray</label></span>
- <span>Rapport - Premier jour de la semaine :
- <select name="day" onchange="dStartWeek()">
- <option>lundi
- <option>mardi
- <option>mercredi
- <option>jeudi
- <option>vendredi
- <option>samedi
- <option>dimanche
- </select></span>
- </div>
-
-
-
- <div class="buttons">
- Nouveau projet : <input class="input-medium" id="newProject" title="Nom du nouveau Projet"><button id="createP" class="btn btn-primary" onclick="newProject()"> Créer le projet</button>
- </div>
-
-
-
- <div id="tabTask">
- <!-- Arborescence des Tasks -->
- <div id="headTasks"><span class='colHT'>Projet et tâches</span><span class='colHT'>Aujourd'hui</span><span class='colHT'>Total</span></div>
- <ul id="treeTasks">
- </ul>
- </div>
- <footer class="footer">
- <!-- footer à garder tel quel -->
- <div id="framefooter"><span id="statutTasks">Inactif</span><span id="recapToday">Aujourd'hui : xx:xx:xx</span></div>
- </footer>
- </div>
-
-
-
- <div id="reportpage">
- <div id="divLeft">
- <div id="optionsReport">
- Options :<br><br>
- De : <input type="text" class="datepicker">
- <input type="button" name="Semaine courante" id="selectThisWeek" value=" "><br>
- A : <input type="text" class="datepicker">
- <input type="button" name="Semaine précédente" id="selectLastWeek" value=" "><br>
- <form>
- <label><input type="radio" name="formatChoice" value="day">Par jour</label>
- <label><input type="radio" name="formatChoice" value="month">Par mois</label>
- <label><input type="radio" name="formatChoice" value="week">Par semaine</label>
- <label><input type="radio" name="formatChoice" value="year">Par année</label>
- <label><input type="radio" name="formatChoice" value="project">Par projet</label>
- </form>
- <label><input type="checkbox" id="includeAnno" onchange="checkTimeMark()">Inclure les annotations</label>
- <span id="withTimeMark" style="display:none;"><label><input type="checkbox">avec l'heure</label></span>
- </div><br>
- <div id="projectsReport">
- Projets :<br><br>
- <label><input type="checkbox" id="displayHiddenReport">Afficher les cachés</label>
- <div id="treeReport">
- </div>
- </div>
- </div>
- <div id="divRight">
- Raport :<br>
- <span id="zoneTexteReport"><textarea id="textReport"></textarea></span>
- <footer>
- <span id="generReport"><img src="img/applications-system.png" alt="apply">Générer</span>
- <span id="mailReport"><img src="img/mail-forward.png" alt="mail">Envoyer par email</span>
- </footer>
- </div>
- </div>
-
-
-
- <div id="editionTask" title="Edition de la tâche">
- <input type="text" id="nameTask" name="newNameTask" value="x">
- <!-- Calendrier à date selectionnable -->
- <div id="datepicker2"></div>
- Temps:
- <input id="spinnerh" type="text" name="hour" value="00" maxlength="2">:
- <input id="spinnerm" type="text" name="minutes" value="00" maxlength="2">:
- <input id="spinners" type="text" name="seconds" value="00" maxlength="2"><br>
- Note:<textarea rows="4" id="noteTache"></textarea><br>
- <input type="button" id="editionApply" value="Appliquer">
- <input type="reset" id="editionCancel" value="Annuler">
- </div>
-
-
-
- <div class="modal hide" id="aboutPopUp">
- <div class="modal-header"><a class="close" data-dismiss="modal">×</a>
- <h3>A propos de jTimer</h3>
- </div>
- <div class="modal-body">
- <img src="img/jtimer-logo-orange.jpg" alt="logo"/><br>
- <span id="bt1" onclick="action(1)">A propos de jTimer</span>
- <span id="bt2" onclick="action(2)">Licence</span><br>
- <div id="frame"><p id="dataText"><b>jTimer - 2.0-SNAPSHOT</b><br><br>Copyright 2007 - 2013, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.</p></div>
- </div>
- </div>
-
-
-
- <div id="alerts" title="Alertes de la tâche">
- <span id="blockAlerte">
- <b>Listes des alertes :</b>
- <input type="button" id="alertSave" value="Sauver">
- </span>
- <br>
- <br>
- <div id="listAlerts">Type & Durée<br><br>
- </div>
- <input type="button" id="alertAdd" value="Ajouter" onclick="add()">
- </div>
-
-
-
- </body>
- <script>init();</script>
+ </header>
+
+
+
+ <div id="jtimer">
+ <div id="opts">
+ <span><label title="Affiche les projets et tâches fermer"><input type="checkbox" onchange="javascript:displayHidden()">Afficher les cachés</a></label></span>
+ <span><label title="Réduit l'application dans le systray au lieu de le fermer"><input type="checkbox" onchange="javascript:systray()">Fermer vers le systray</label></span>
+ <span>Rapport - Premier jour de la semaine :
+ <select name="day" onchange="dStartWeek()">
+ <option>lundi
+ <option>mardi
+ <option>mercredi
+ <option>jeudi
+ <option>vendredi
+ <option>samedi
+ <option>dimanche
+ </select></span>
+ </div>
+
+
+
+ <div class="buttons">
+ Nouveau projet : <input class="input-medium" id="newProject" title="Nom du nouveau Projet"><button id="createP" class="btn btn-primary" onclick="newProject()"> Créer le projet</button>
+ </div>
+
+
+
+ <div id="tabTask">
+ <!-- Arborescence des Tasks -->
+ <div id="headTasks"><span class='colHT'>Projet et tâches</span><span class='colHT'>Aujourd'hui</span><span class='colHT'>Total</span></div>
+ <ul id="treeTasks">
+ </ul>
+ </div>
+ <footer class="footer">
+ <!-- footer à garder tel quel -->
+ <div id="framefooter"><span id="statutTasks">Inactif</span><span id="recapToday">Aujourd'hui : xx:xx:xx</span></div>
+ </footer>
+ </div>
+
+
+
+ <div id="reportpage">
+ <div id="divLeft">
+ <div id="optionsReport">
+ Options :<br><br>
+ De : <input type="text" class="datepicker">
+ <input type="button" name="Semaine courante" id="selectThisWeek" value=" "><br>
+ A : <input type="text" class="datepicker">
+ <input type="button" name="Semaine précédente" id="selectLastWeek" value=" "><br>
+ <form>
+ <label><input type="radio" name="formatChoice" value="day">Par jour</label>
+ <label><input type="radio" name="formatChoice" value="month">Par mois</label>
+ <label><input type="radio" name="formatChoice" value="week">Par semaine</label>
+ <label><input type="radio" name="formatChoice" value="year">Par année</label>
+ <label><input type="radio" name="formatChoice" value="project">Par projet</label>
+ </form>
+ <label><input type="checkbox" id="includeAnno" onchange="checkTimeMark()">Inclure les annotations</label>
+ <span id="withTimeMark" style="display:none;"><label><input type="checkbox">avec l'heure</label></span>
+ </div><br>
+ <div id="projectsReport">
+ Projets :<br><br>
+ <label><input type="checkbox" id="displayHiddenReport">Afficher les cachés</label>
+ <div id="treeReport">
+ </div>
+ </div>
+ </div>
+ <div id="divRight">
+ Raport :<br>
+ <span id="zoneTexteReport"><textarea id="textReport"></textarea></span>
+ <footer>
+ <span id="generReport"><img src="img/applications-system.png" alt="apply">Générer</span>
+ <span id="mailReport"><img src="img/mail-forward.png" alt="mail">Envoyer par email</span>
+ </footer>
+ </div>
+ </div>
+
+
+
+ <div id="editionTask" title="Edition de la tâche">
+ <input type="text" id="nameTask" name="newNameTask" value="x">
+ <!-- Calendrier à date selectionnable -->
+ <div id="datepicker2"></div>
+ Temps:
+ <input id="spinnerh" type="text" name="hour" value="00" maxlength="2">:
+ <input id="spinnerm" type="text" name="minutes" value="00" maxlength="2">:
+ <input id="spinners" type="text" name="seconds" value="00" maxlength="2"><br>
+ Note:<textarea rows="4" id="noteTache"></textarea><br>
+ <input type="button" id="editionApply" value="Appliquer">
+ <input type="reset" id="editionCancel" value="Annuler">
+ </div>
+
+
+
+ <div class="modal hide" id="aboutPopUp">
+ <div class="modal-header"><a class="close" data-dismiss="modal">×</a>
+ <h3>A propos de jTimer</h3>
+ </div>
+ <div class="modal-body">
+ <img src="img/jtimer-logo-orange.jpg" alt="logo"/><br>
+ <span id="bt1" onclick="action(1)">A propos de jTimer</span>
+ <span id="bt2" onclick="action(2)">Licence</span><br>
+ <div id="frame"><p id="dataText"><b>jTimer - 2.0-SNAPSHOT</b><br><br>Copyright 2007 - 2013, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.</p></div>
+ </div>
+ </div>
+
+
+
+ <div id="alerts" title="Alertes de la tâche">
+ <span id="blockAlerte">
+ <b>Listes des alertes :</b>
+ <input type="button" id="alertSave" value="Sauver">
+ </span>
+ <br>
+ <br>
+ <div id="listAlerts">Type & Durée<br><br>
+ </div>
+ <input type="button" id="alertAdd" value="Ajouter" onclick="add()">
+ </div>
+
+
+
+ </body>
+ <script>init();</script>
</html>
Modified: jtimerhtml5/src/main/resources/nuiton-js/wro.xml
===================================================================
--- jtimerhtml5/src/main/resources/nuiton-js/wro.xml 2013-06-19 09:50:36 UTC (rev 47)
+++ jtimerhtml5/src/main/resources/nuiton-js/wro.xml 2013-06-19 15:31:37 UTC (rev 48)
@@ -3,6 +3,7 @@
<group-ref>jquery</group-ref>
<group-ref>jquery-ui</group-ref>
<group-ref>jquery-ui-base</group-ref>
+ <group-ref>bootstrap</group-ref>
<!-- js et css specifique a l'application -->
<css>/css/*.css</css>
<js>/js/*.js</js>
1
0
Author: qmoriceau
Date: 2013-06-19 11:50:36 +0200 (Wed, 19 Jun 2013)
New Revision: 47
Url: http://chorem.org/projects/incubator/repository/revisions/47
Log:
L?\195?\169g?\195?\168res modification sur l'interface
Removed:
jtimerhtml5/target/
1
0
r46 - in jtimerhtml5: src/main/resources/html src/main/resources/html/css src/main/resources/html/js target target/antrun target/generated-sources target/lib target/maven-archiver
by qmoriceau@users.chorem.org 19 Jun '13
by qmoriceau@users.chorem.org 19 Jun '13
19 Jun '13
Author: qmoriceau
Date: 2013-06-19 11:47:22 +0200 (Wed, 19 Jun 2013)
New Revision: 46
Url: http://chorem.org/projects/incubator/repository/revisions/46
Log:
L?\195?\169g?\195?\168res modification sur l'interface
Added:
jtimerhtml5/target/antrun/
jtimerhtml5/target/antrun/build-main.xml
jtimerhtml5/target/generated-sources/
jtimerhtml5/target/generated-sources/annotations/
jtimerhtml5/target/jtimer-2.0-SNAPSHOT.jar
jtimerhtml5/target/lib/
jtimerhtml5/target/lib/commons-beanutils-1.8.3.jar
jtimerhtml5/target/lib/commons-collections-3.2.1.jar
jtimerhtml5/target/lib/commons-io-2.3.jar
jtimerhtml5/target/lib/commons-logging-1.1.1.jar
jtimerhtml5/target/lib/commons-primitives-1.0.jar
jtimerhtml5/target/lib/gson-2.2.4.jar
jtimerhtml5/target/lib/h2-1.3.170.jar
jtimerhtml5/target/lib/javafx-2.2.3.jar
jtimerhtml5/target/lib/javax.servlet-3.0.0.v201112011016.jar
jtimerhtml5/target/lib/jetty-http-9.0.3.v20130506.jar
jtimerhtml5/target/lib/jetty-io-9.0.3.v20130506.jar
jtimerhtml5/target/lib/jetty-server-9.0.3.v20130506.jar
jtimerhtml5/target/lib/jetty-util-9.0.3.v20130506.jar
jtimerhtml5/target/lib/nuiton-i18n-2.4.jar
jtimerhtml5/target/lib/nuiton-utils-2.2.jar
jtimerhtml5/target/maven-archiver/
jtimerhtml5/target/maven-archiver/pom.properties
jtimerhtml5/target/surefire-workdir/
jtimerhtml5/target/surefire/
Modified:
jtimerhtml5/src/main/resources/html/css/index.css
jtimerhtml5/src/main/resources/html/index.html
jtimerhtml5/src/main/resources/html/js/index.js
Modified: jtimerhtml5/src/main/resources/html/css/index.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/index.css 2013-06-14 12:52:26 UTC (rev 45)
+++ jtimerhtml5/src/main/resources/html/css/index.css 2013-06-19 09:47:22 UTC (rev 46)
@@ -29,17 +29,11 @@
}
.colHT {
- width:30%;
+ width:32%;
display:inline-block;
text-align:center;
}
-.optHT {
- width:8%;
- display:inline-block;
- text-align:center;
-}
-
#opts span {
display:inline-block;
padding-left:12px;
@@ -56,16 +50,10 @@
}
.col {
- width:30%;
+ width:33%;
display:inline-block;
}
-.optT,.optP {
- width:5%;
- display:inline-block;
- float:right;
-}
-
#headTasks {
margin-bottom:8px;
}
Modified: jtimerhtml5/src/main/resources/html/index.html
===================================================================
--- jtimerhtml5/src/main/resources/html/index.html 2013-06-14 12:52:26 UTC (rev 45)
+++ jtimerhtml5/src/main/resources/html/index.html 2013-06-19 09:47:22 UTC (rev 46)
@@ -54,41 +54,8 @@
<div id="tabTask">
<!-- Arborescence des Tasks -->
- <div id="headTasks"><span class='colHT'>Projet et tâches</span><span class='colHT'>Aujourd'hui</span><span class='colHT'>Total</span><span class="optHT">Options</span></div>
- <ul id="treeTasks"><!--<li>
- <!--<div class="selec" id="p1">
- <span class='col'><span>▼</span>html5</span>
- <span class='col' id="aujp1">01:24:58</span>
- <span class='col' id="totp1">13:25:32</span>
- <span class="optP"><button class="btn btn-info"></button></span>
- </div>
- <ul class="subtask">
- <li>
- <div class="selec" id="t5"><img class="run" alt="run" src="img/running.gif">
- <span class='col' id='titlet5'>Documentation</span>
- <span class='col' id="aujt5">01:00:02</span>
- <span class='col' id="tott5">06:54:24</span>
- <span class="optT"><button class="btn btn-info"></button></span>
- </div>
- </li>
- <li>
- <div class="selec" id="t9"><img class="run" alt="run" src="img/running.gif">
- <span class='col' id='titlet9'>Interface</span>
- <span class='col' id="aujt9">00:24:56</span>
- <span class='col' id="tott9">06:31:07</span>
- <span class="optT"><button class="btn btn-info"></button></span>
- </div>
- </li>
- </ul>
- </li>
- <li>
- <div class="selec" id="p4">
- <span class='col'><span>►</span>New Project</span>
- <span class='col' id="aujp4">00:00:00</span>
- <span class='col' id="totp4">00:00:00</span>
- <span class="optP"><button class="btn btn-info"></button></span>
- </div>
- </li>-->
+ <div id="headTasks"><span class='colHT'>Projet et tâches</span><span class='colHT'>Aujourd'hui</span><span class='colHT'>Total</span></div>
+ <ul id="treeTasks">
</ul>
</div>
<footer class="footer">
@@ -159,7 +126,7 @@
<img src="img/jtimer-logo-orange.jpg" alt="logo"/><br>
<span id="bt1" onclick="action(1)">A propos de jTimer</span>
<span id="bt2" onclick="action(2)">Licence</span><br>
- <div id="frame"><p id="dataText"><b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2013, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.</p></div>
+ <div id="frame"><p id="dataText"><b>jTimer - 2.0-SNAPSHOT</b><br><br>Copyright 2007 - 2013, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.</p></div>
</div>
</div>
@@ -176,51 +143,9 @@
</div>
<input type="button" id="alertAdd" value="Ajouter" onclick="add()">
</div>
-
-
-
- <div class="btn-group col" id="optP">
- <button class="btn btn-info">Action</button>
- <button class="btn btn-info dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span> </button>
- <ul class="dropdown-menu">
- <li><a title="Création d'une nouvelle tâche" href="javascript:newTask()"><i class="icon-time"></i> Nouvelle tâche</a></li>
- <li class="divider"></li>
- <li><a title="Édition du projet" href="javascript:edProject()"><i class="icon-pencil"></i> Éditer</a></li>
- <li><a title="Ouvrir ou fermer le projet" href="javascript:ofProject()"><i class="icon-off"></i> Ouvrir/Fermer</a></li>
- <li><a title="Suppression du Projet" href="javascript:supprProject()"><i class="icon-trash"></i> Supprimer</a></li>
- </ul>
- </div>
-
- <div class="btn-group" id="optT">
- <button class="btn btn-info">Action</button>
- <button class="btn btn-info dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span> </button>
- <ul class="dropdown-menu">
- <li><a title="Création d'une nouvelle tâche" href="javascript:newTask()"><i class="icon-time"></i> Nouvelle tâche</a></li>
- <li class="divider"></li>
- <li><a title="Édition de la tâche" href="javascript:edTask()"><i class="icon-pencil"></i> Éditer</a></li>
- <li><a title="Ouvrir ou fermer la tâche" href="javascript:ofTask()"><i class="icon-off"></i> Ouvrir/Fermer</a></li>
- <li><a title="Suppression de la tâche" href="javascript:supprTask()"><i class="icon-trash"></i> Supprimer</a></li>
- <li class="divider"></li>
- <li><a title="Démarrage de la tâche" href="javascript:startTask()"><i class="icon-play-circle"></i> Démarrer</a></li>
- <li><a title="Arrêt de la tâche" href="javascript:stopTask()"><i class="icon-stop"></i> Arrêter</a></li>
- <li class="divider"></li>
- <li><a title="Ajout d'une annotation" href="javascript:addAnnotation()"><i class="icon-file"></i> Ajouter une annotation</a></li>
- <li><a title="Édition des alertes" href="javascript:edAlerts()"><i class="icon-bell"></i> Éditer les Alertes</a></li>
- <li><a title="Ajout de 1 minute à la tâche" href="javascript:addsou(1)"><i class="icon-plus-sign"></i> Ajouter 1 minute</a></li>
- <li><a title="Ajout de 5 minutes à la tâche" href="javascript:addsou(5)"><i class="icon-plus-sign"></i> Ajouter 5 minutes</a></li>
- <li><a title="Ajout de 30 minutes à la tâche" href="javascript:addsou(30)"><i class="icon-plus-sign"></i> Ajouter 30 minutes</a></li>
- <li><a title="Enlève 1 minute à la tâche" href="javascript:addsou(-1)"><i class="icon-minus-sign"></i> Enlever 1 minute</a></li>
- <li><a title="Enlève 5 minutes à la tâche" href="javascript:addsou(-5)"><i class="icon-minus-sign"></i> Enlever 5 minutes</a></li>
- <li><a title="Enlève 30 minutes à la tâche" href="javascript:addsou(-30)"><i class="icon-minus-sign"></i> Enlever 30 minutes</a></li>
- <li><a title="Remet la tâche à zero" href="javascript:zero()"><i class="icon-repeat"></i> Remettre à Zero</a></li>
- </ul>
- </div>
-
-
-
</body>
<script>init();</script>
</html>
Modified: jtimerhtml5/src/main/resources/html/js/index.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/index.js 2013-06-14 12:52:26 UTC (rev 45)
+++ jtimerhtml5/src/main/resources/html/js/index.js 2013-06-19 09:47:22 UTC (rev 46)
@@ -4,10 +4,10 @@
var elemSelec = "";
var opt = false;
var rpt = false;
-var btP = "<div class='btn-group optP' id='optP'><button class='btn btn-info'>Action</button><button class='btn btn-info dropdown-toggle' data-toggle='dropdown'> <span class='caret'></span> </button><ul class='dropdown-menu'><li><a title='Création d'une nouvelle tâche' href='javascript:newTask()'><i class='icon-time'></i> Nouvelle tâche</a></li><li class='divider'></li><li><a title='Édition du projet' href='javascript:edProject()'><i class='icon-pencil'></i> Éditer</a></li><li><a title='Ouvrir ou fermer le projet' href='javascript:ofProject()'><i class='icon-off'></i> Ouvrir/Fermer</a></li><li><a title='Suppression du Projet' href='javascript:supprProject()'><i class='icon-trash'></i> Supprimer</a></li></ul></div>";
-var btT;
+var bt1 = "<div class='btn-group optP' id='optP'><button class='btn btn-info' data-toggle='buttons-radio'>";
+var btP2 = "</button><button class='btn btn-info dropdown-toggle' data-toggle='dropdown'> <span class='caret'></span> </button><ul class='dropdown-menu'><li><a title='Création d'une nouvelle tâche' href='javascript:newTask()'><i class='icon-time'></i> Nouvelle tâche</a></li><li class='divider'></li><li><a title='Édition du projet' href='javascript:edProject()'><i class='icon-pencil'></i> Éditer</a></li><li><a title='Ouvrir ou fermer le projet' href='javascript:ofProject()'><i class='icon-off'></i> Ouvrir/Fermer</a></li><li><a title='Suppression du Projet' href='javascript:supprProject()'><i class='icon-trash'></i> Supprimer</a></li></ul></div>";
+var btT2 = "</button><button class='btn btn-info dropdown-toggle' data-toggle='dropdown'> <span class='caret'></span> </button><ul class='dropdown-menu'><li><a title='Création d'une nouvelle tâche' href='javascript:newTask()'><i class='icon-time'></i> Nouvelle tâche</a></li><li class='divider'></li><li><a title='Édition de la tâche' href='javascript:edTask()'><i class='icon-pencil'></i> Éditer</a></li><li><a title='Ouvrir ou fermer la tâche' href='javascript:ofTask()'><i class='icon-off'></i> Ouvrir/Fermer</a></li><li><a title='Suppression de la tâche' href='javascript:supprTask()'><i class='icon-trash'></i> Supprimer</a></li><li class='divider'></li><li><a title='Démarrage de la tâche' href='javascript:startTask()'><i class='icon-play-circle'></i> Démarrer</a></li><li><a title='Arrêt de la tâche' href='javascript:stopTask()'><i class='icon-stop'></i> Arrêter</a></li><li class='divider'></li><li><a title='Ajout d'une annotation' href='javascript:addAnnotation()'><i class='icon-file'></i> Ajouter une annotation</a></li><li><a title='Édition des alertes' href='javascript:edAlerts()'><i class='icon-bell'></i> Éditer les Alertes</a></li><li><a title='Ajout de 1 minute à la tâche' href='javascript:addsou(1)'><i class='icon-plus-sign'></i> Ajouter 1 minute</a></li><li><a title='Ajout de 5 minutes à la tâche' href='javascript:addsou(5)'><i class='icon-plus-sign'></i> Ajouter 5 minutes</a></li><li><a title='Ajout de 30 minutes à la tâche' href='javascript:addsou(30)'><i class='icon-plus-sign'></i> Ajouter 30 minutes</a></li><li><a title='Enlève 1 minute à la tâche' href='javascript:addsou(-1)'><i class='icon-minus-sign'></i> Enlever 1 minute</a></li><li><a title='Enlève 5 minutes à la tâche' href='javascript:addsou(-5)'><i class='icon-minus-sign'></i> Enlever 5 minutes</a></li><li><a title='Enlève 30 minutes à la tâche' href='javascript:addsou(-30)'><i class='icon-minus-sign'></i> Enlever 30 minutes</a></li><li><a title='Remet la tâche à zero' href='javascript:zero()'><i class='icon-repeat'></i> Remettre à Zero</a></li></ul></div>";
-
function getProjects(){
$.getJSON('http://localhost:8080/tasks/getProjects',function(data) {
for (var i in data){
@@ -21,7 +21,7 @@
$("#treeTasks").html("");
alert(tabProjects.length);
for (var p in tabProjects){
- $("#treeTasks").append("<li><div class='selec' id='p"+p+"'><span class='col'><span>▼</span>"+tabProjects[p].name+"</span><span class='col' id='aujp"+p+"'>"+formatTime(timeToday(p))+"</span><span class='col' id='totp"+p+"'>"+formatTime(timeTotal(p))+"</span>"+btP+"</div></li>");
+ $("#treeTasks").append("<li><div class='selec' id='p"+p+"'><span class='col'>"+bt1+tabProjects[p].name+btP2+"</span><span class='col' id='aujp"+p+"'>"+formatTime(timeToday(p))+"</span><span class='col' id='totp"+p+"'>"+formatTime(timeTotal(p))+"</span></div></li>");
}
selection();
}
@@ -50,7 +50,8 @@
}
function timeToday(i){
- return 0;//tabProjects[i].allDaysTimes.;//aujourd'hui
+ //return tabProjects[i].allDaysTimes./*aujourd'hui*/;
+ return 0;
}
function timeTotal(i){
@@ -76,24 +77,29 @@
function startStopTask(elem){
if(displayElemT[elem].run==null){
displayElemT[elem].run = true;
+ myVar = setInterval(function(){chrono(elem)},1000);
$("#"+elem+" .run").css("display","");
}
else if (displayElemT[elem].run){
displayElemT[elem].run = false;
+ clearInterval(myVar);
$("#"+elem+" .run").css("display","none");
}
else {
displayElemT[elem].run = true;
+ myVar = setInterval(function(){chrono(elem)},1000);
$("#"+elem+" .run").css("display","");
}
// myVar = setInterval(function(){chrono(elem)},1000);
}
function chrono(task){
- var timeauj = $("#auj"+task).html(); // a rajouter directement dans le tableau puis à mettre à jour sur la page, et ne pas oublier de le répercuté sur les parents
- $("#auj"+task).html(timeauj+1);
- var timetot = $("#tot"+task).html();
- $("#tot"+task).html(timetot+1);
+
+ //tabProjects[elemSelec.substring(1,elemSelec.length)].allDaysTime./*aujourd'hui*/ = tabProjects[elemSelec.substring(1,elemSelec.length)].allDaysTime./*aujourd'hui*/ + 1000;
+
+ // ne pas oublier de le répercuté sur les parents
+ $("#auj"+task).html(formatTime(timeToday(p)));
+ $("#tot"+task).html(formatTime(timeTotal(p)));
}
function options(){
@@ -111,17 +117,7 @@
function selection() {
$(".selec").click( function(){
- $("#"+elemSelec).css('background-color','');
elemSelec = this.id;
- $("#"+elemSelec).css('background-color','#A9EAFE');
- if(elemSelec.charAt(0)=="p"){
- $(".onp").css("display","none");
- $("#newTask").css("display","");
- }
- else if(elemSelec.charAt(0)=="t"){
- $(".onp").css("display","");
- $("#newTask").css("display","");
- }
});
}
@@ -161,12 +157,17 @@
function newProject(parent){
var nameNewProject = $("#newProject").val();
- var newproject = "{'name'='"+nameNewProject+"', 'number'='-1', 'closed'=false, 'allDaysTime'={}, 'allDaysAnnotations'={}, 'alerts'=[]}";
- $.ajax({
- type: 'PUT',
- url: 'http://localhost:8080/tasks/addProject/'+newproject
- });
- getProjects();
+ if (nameNewProject==="") {
+ alert("Erreur : Le nom est vide !");
+ }
+ else {
+ var newproject = "{'name'='"+nameNewProject+"', 'number'='-1', 'closed'=false, 'allDaysTime'={}, 'allDaysAnnotations'={}, 'alerts'=[]}";
+ $.ajax({
+ type: 'PUT',
+ url: 'http://localhost:8080/tasks/addProject/'+newproject
+ });
+ getProjects();
+ }
// vérifier si un autre projet n'a pas déjà ce nom
}
@@ -272,7 +273,7 @@
function action(i){
if(i == 1){
- $('#dataText').html('<b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2012, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.');
+ $('#dataText').html('<b>jTimer - 2.0-SNAPSHOT</b><br><br>Copyright 2007 - 2012, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.');
$('#bt1').css('background',"#339999");
$('#bt2').css('background',"#ffffff");
}
Added: jtimerhtml5/target/antrun/build-main.xml
===================================================================
--- jtimerhtml5/target/antrun/build-main.xml (rev 0)
+++ jtimerhtml5/target/antrun/build-main.xml 2013-06-19 09:47:22 UTC (rev 46)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<project name="maven-antrun-" default="main" >
+<target name="main">
+ <mkdir dir="/home/quentin/Projet/jtimerhtml5/target/surefire-workdir"/>
+</target>
+</project>
\ No newline at end of file
Added: jtimerhtml5/target/jtimer-2.0-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/jtimer-2.0-SNAPSHOT.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/commons-beanutils-1.8.3.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/commons-beanutils-1.8.3.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/commons-collections-3.2.1.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/commons-collections-3.2.1.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/commons-io-2.3.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/commons-io-2.3.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/commons-logging-1.1.1.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/commons-logging-1.1.1.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/commons-primitives-1.0.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/commons-primitives-1.0.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/gson-2.2.4.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/gson-2.2.4.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/h2-1.3.170.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/h2-1.3.170.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/javafx-2.2.3.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/javafx-2.2.3.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/javax.servlet-3.0.0.v201112011016.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/javax.servlet-3.0.0.v201112011016.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/jetty-http-9.0.3.v20130506.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/jetty-http-9.0.3.v20130506.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/jetty-io-9.0.3.v20130506.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/jetty-io-9.0.3.v20130506.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/jetty-server-9.0.3.v20130506.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/jetty-server-9.0.3.v20130506.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/jetty-util-9.0.3.v20130506.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/jetty-util-9.0.3.v20130506.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/nuiton-i18n-2.4.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/nuiton-i18n-2.4.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/nuiton-utils-2.2.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/nuiton-utils-2.2.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/maven-archiver/pom.properties
===================================================================
--- jtimerhtml5/target/maven-archiver/pom.properties (rev 0)
+++ jtimerhtml5/target/maven-archiver/pom.properties 2013-06-19 09:47:22 UTC (rev 46)
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Jun 14 16:10:02 CEST 2013
+version=2.0-SNAPSHOT
+groupId=org.chorem
+artifactId=jtimer
1
0
r45 - in jtimerhtml5: src/main/java/org/chorem/jtimer src/main/resources/html src/main/resources/html/img src/main/resources/html/js target
by qmoriceau@users.chorem.org 14 Jun '13
by qmoriceau@users.chorem.org 14 Jun '13
14 Jun '13
Author: qmoriceau
Date: 2013-06-14 14:52:26 +0200 (Fri, 14 Jun 2013)
New Revision: 45
Url: http://chorem.org/projects/incubator/repository/revisions/45
Log:
suppression du dossier target et ajout de fonctionnalit?\195?\169 ?\195?\160 l'interface
Added:
jtimerhtml5/src/main/resources/html/img/glyphicons-halflings.png
jtimerhtml5/src/main/resources/html/js/bootstrap.min.js
Removed:
jtimerhtml5/target/antrun/
jtimerhtml5/target/generated-sources/
jtimerhtml5/target/jtimer-2.0-SNAPSHOT.jar
jtimerhtml5/target/lib/
jtimerhtml5/target/maven-archiver/
jtimerhtml5/target/surefire-workdir/
jtimerhtml5/target/surefire/
Modified:
jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java
jtimerhtml5/src/main/resources/html/index.html
jtimerhtml5/src/main/resources/html/js/index.js
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java 2013-06-13 10:12:12 UTC (rev 44)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java 2013-06-14 12:52:26 UTC (rev 45)
@@ -60,7 +60,6 @@
result = mcall.invoke(storage, null);
}
content = gson.toJson(result);
- System.out.println(content);
} catch (JsonSyntaxException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
Added: jtimerhtml5/src/main/resources/html/img/glyphicons-halflings.png
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/src/main/resources/html/img/glyphicons-halflings.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: jtimerhtml5/src/main/resources/html/index.html
===================================================================
--- jtimerhtml5/src/main/resources/html/index.html 2013-06-13 10:12:12 UTC (rev 44)
+++ jtimerhtml5/src/main/resources/html/index.html 2013-06-14 12:52:26 UTC (rev 45)
@@ -18,7 +18,7 @@
<ul class="nav">
<li class="optH" id="options"><a title="Options général" href="javascript:options()">Options</a></li>
<li class="optH" id="report"><a title="Création d'un rapport" href="javascript:report()">Rapport</a></li>
- <li class="optH" id="about"><a title="À propos de jTimer" href="javascript:about()">À propos</a></li>
+ <li class="optH" id="about"><a title="À propos de jTimer" data-toggle="modal" href="#aboutPopUp">À propos</a></li>
<!--<li class="optH" id="quit"><a title="Quitter l'application" href="javascript:window.close()">Quitter</a></li>-->
</ul>
</div>
@@ -151,11 +151,16 @@
- <div id="aboutPopUp" title="A propos de jTimer">
- <img src="img/jtimer-logo-orange.jpg" alt="logo"/><br>
- <span id="bt1" onclick="action(1)">A propos de jTimer</span>
- <span id="bt2" onclick="action(2)">Licence</span><br>
- <div id="frame"><p id="dataText"><b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2013, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.</p></div>
+ <div class="modal hide" id="aboutPopUp">
+ <div class="modal-header"><a class="close" data-dismiss="modal">×</a>
+ <h3>A propos de jTimer</h3>
+ </div>
+ <div class="modal-body">
+ <img src="img/jtimer-logo-orange.jpg" alt="logo"/><br>
+ <span id="bt1" onclick="action(1)">A propos de jTimer</span>
+ <span id="bt2" onclick="action(2)">Licence</span><br>
+ <div id="frame"><p id="dataText"><b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2013, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.</p></div>
+ </div>
</div>
@@ -174,37 +179,48 @@
- <div id="optP">
- <li><a title="Création d'une nouvelle tâche" href="javascript:newTask()">Nouvelle tâche</a></li>
- <li><a title="Édition du projet" href="javascript:edProject()">Éditer le Projet</a></li>
- <li><a title="Ouvrir ou fermer le projet" href="javascript:ofProject()">Ouvrir/Fermer le Projet</a></li>
- <li><a title="Suppression du Projet" href="javascript:supprProject()">Supprimer le projet</a></li>
- </div>
+ <div class="btn-group col" id="optP">
+ <button class="btn btn-info">Action</button>
+ <button class="btn btn-info dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span> </button>
+ <ul class="dropdown-menu">
+ <li><a title="Création d'une nouvelle tâche" href="javascript:newTask()"><i class="icon-time"></i> Nouvelle tâche</a></li>
+ <li class="divider"></li>
+ <li><a title="Édition du projet" href="javascript:edProject()"><i class="icon-pencil"></i> Éditer</a></li>
+ <li><a title="Ouvrir ou fermer le projet" href="javascript:ofProject()"><i class="icon-off"></i> Ouvrir/Fermer</a></li>
+ <li><a title="Suppression du Projet" href="javascript:supprProject()"><i class="icon-trash"></i> Supprimer</a></li>
+ </ul>
+ </div>
- <div id="optT">
- <li><a title="Création d'une nouvelle tâche" href="javascript:newTask()">Nouvelle tâche</a></li>
- <li><a title="Édition de la tâche" href="javascript:edTask()">Éditer la tâche</a></li>
- <li><a title="Ouvrir ou fermer la tâche" href="javascript:ofTask()">Ouvrir/Fermer la tâche</a></li>
- <li><a title="Suppression de la tâche" href="javascript:supprTask()">Supprimer la tâche</a></li>
-
- <li><a title="Démarrage de la tâche" href="javascript:startTask()">Démarrer</a></li>
- <li><a title="Arrêt de la tâche" href="javascript:stopTask()">Arrêter</a></li>
-
- <li><a title="Ajout d'une annotation" href="javascript:addAnnotation()">Ajouter une annotation</a></li>
- <li><a title="Édition des alertes" href="javascript:edAlerts()">Éditer les Alertes</a></li>
- <li><a title="Ajout de 1 minute à la tâche" href="javascript:addsou(1)">Ajouter 1 minute</a></li>
- <li><a title="Ajout de 5 minutes à la tâche" href="javascript:addsou(5)">Ajouter 5 minutes</a></li>
- <li><a title="Ajout de 30 minutes à la tâche" href="javascript:addsou(30)">Ajouter 30 minutes</a></li>
- <li><a title="Enlève 1 minute à la tâche" href="javascript:addsou(-1)">Enlever 1 minute</a></li>
- <li><a title="Enlève 5 minutes à la tâche" href="javascript:addsou(-5)">Enlever 5 minutes</a></li>
- <li><a title="Enlève 30 minutes à la tâche" href="javascript:addsou(-30)">Enlever 30 minutes</a></li>
- <li><a title="Remet la tâche à zero" href="javascript:zero()">Remettre à Zero</a></li>
- </div>
+ <div class="btn-group" id="optT">
+ <button class="btn btn-info">Action</button>
+ <button class="btn btn-info dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span> </button>
+ <ul class="dropdown-menu">
+ <li><a title="Création d'une nouvelle tâche" href="javascript:newTask()"><i class="icon-time"></i> Nouvelle tâche</a></li>
+ <li class="divider"></li>
+ <li><a title="Édition de la tâche" href="javascript:edTask()"><i class="icon-pencil"></i> Éditer</a></li>
+ <li><a title="Ouvrir ou fermer la tâche" href="javascript:ofTask()"><i class="icon-off"></i> Ouvrir/Fermer</a></li>
+ <li><a title="Suppression de la tâche" href="javascript:supprTask()"><i class="icon-trash"></i> Supprimer</a></li>
+ <li class="divider"></li>
+ <li><a title="Démarrage de la tâche" href="javascript:startTask()"><i class="icon-play-circle"></i> Démarrer</a></li>
+ <li><a title="Arrêt de la tâche" href="javascript:stopTask()"><i class="icon-stop"></i> Arrêter</a></li>
+ <li class="divider"></li>
+ <li><a title="Ajout d'une annotation" href="javascript:addAnnotation()"><i class="icon-file"></i> Ajouter une annotation</a></li>
+ <li><a title="Édition des alertes" href="javascript:edAlerts()"><i class="icon-bell"></i> Éditer les Alertes</a></li>
+ <li><a title="Ajout de 1 minute à la tâche" href="javascript:addsou(1)"><i class="icon-plus-sign"></i> Ajouter 1 minute</a></li>
+ <li><a title="Ajout de 5 minutes à la tâche" href="javascript:addsou(5)"><i class="icon-plus-sign"></i> Ajouter 5 minutes</a></li>
+ <li><a title="Ajout de 30 minutes à la tâche" href="javascript:addsou(30)"><i class="icon-plus-sign"></i> Ajouter 30 minutes</a></li>
+ <li><a title="Enlève 1 minute à la tâche" href="javascript:addsou(-1)"><i class="icon-minus-sign"></i> Enlever 1 minute</a></li>
+ <li><a title="Enlève 5 minutes à la tâche" href="javascript:addsou(-5)"><i class="icon-minus-sign"></i> Enlever 5 minutes</a></li>
+ <li><a title="Enlève 30 minutes à la tâche" href="javascript:addsou(-30)"><i class="icon-minus-sign"></i> Enlever 30 minutes</a></li>
+ <li><a title="Remet la tâche à zero" href="javascript:zero()"><i class="icon-repeat"></i> Remettre à Zero</a></li>
+ </ul>
+ </div>
+
</body>
<script>init();</script>
</html>
Added: jtimerhtml5/src/main/resources/html/js/bootstrap.min.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/bootstrap.min.js (rev 0)
+++ jtimerhtml5/src/main/resources/html/js/bootstrap.min.js 2013-06-14 12:52:26 UTC (rev 45)
@@ -0,0 +1,6 @@
+/*!
+* Bootstrap.js by @fat & @mdo
+* Copyright 2012 Twitter, Inc.
+* http://www.apache.org/licenses/LICENSE-2.0.txt
+*/
+!function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()};var r=e.fn.alert;e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.alert.data-api",t,n.prototype.close)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(t){var n=this.getActiveIndex(),r=this;if(t>this.$items.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){r.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",e(this.$items[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u](),f=e.Event("slide",{relatedTarget:i[0],direction:o});if(i.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var t=e(a.$indicators.children()[a.getActiveIndex()]);t&&t.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}};var n=e.fn.carousel;e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.pause().cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this},e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data()),o;i.carousel(s),(o=n.attr("data-slide-to"))&&i.data("carousel").pause().to(o).cycle(),t.preventDefault()})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning||this.$element.hasClass("in"))return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning||!this.$element.hasClass("in"))return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var n=e.fn.collapse;e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=e.extend({},e.fn.collapse.defaults,r.data(),typeof n=="object"&&n);i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=n,this},e(document).on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),!function(e){"use strict";function r(){e(".dropdown-backdrop").remove(),e(t).each(function(){i(e(this)).removeClass("open")})}function i(t){var n=t.attr("data-target"),r;n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=n&&e(n);if(!r||!r.length)r=t.parent();return r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||("ontouchstart"in document.documentElement&&e('<div class="dropdown-backdrop"/>').insertBefore(e(this)).on("click",r),s.toggleClass("open")),n.focus(),!1},keydown:function(n){var r,s,o,u,a,f;if(!/(38|40|27)/.test(n.keyCode))return;r=e(this),n.preventDefault(),n.stopPropagation();if(r.is(".disabled, :disabled"))return;u=i(r),a=u.hasClass("open");if(!a||a&&n.keyCode==27)return n.which==27&&u.find(t).focus(),r.click();s=e("[role=menu] li:not(.divider):visible a",u);if(!s.length)return;f=s.index(s.filter(":focus")),n.keyCode==38&&f>0&&f--,n.keyCode==40&&f<s.length-1&&f++,~f||(f=0),s.eq(f).focus()}};var s=e.fn.dropdown;e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=s,this},e(document).on("click.dropdown.data-api",r).on("click.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(){var e=this;this.$element.hide(),this.backdrop(function(){e.removeBackdrop(),e.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in");if(!t)return;i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,t):t()):t&&t()}};var n=e.fn.modal;e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e.fn.modal.noConflict=function(){return e.fn.modal=n,this},e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s,o,u,a;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,o=this.options.trigger.split(" ");for(a=o.length;a--;)u=o[a],u=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):u!="manual"&&(i=u=="hover"?"mouseenter":"focus",s=u=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,this.$element.data(),t),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e.fn[this.type].defaults,r={},i;this._options&&e.each(this._options,function(e,t){n[e]!=t&&(r[e]=t)},this),i=e(t.currentTarget)[this.type](r).data(this.type);if(!i.options.delay||!i.options.delay.show)return i.show();clearTimeout(this.timeout),i.hoverState="in",this.timeout=setTimeout(function(){i.hoverState=="in"&&i.show()},i.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var t,n,r,i,s,o,u=e.Event("show");if(this.hasContent()&&this.enabled){this.$element.trigger(u);if(u.isDefaultPrevented())return;t=this.tip(),this.setContent(),this.options.animation&&t.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,t[0],this.$element[0]):this.options.placement,t.detach().css({top:0,left:0,display:"block"}),this.options.container?t.appendTo(this.options.container):t.insertAfter(this.$element),n=this.getPosition(),r=t[0].offsetWidth,i=t[0].offsetHeight;switch(s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}this.applyPlacement(o,s),this.$element.trigger("shown")}},applyPlacement:function(e,t){var n=this.tip(),r=n[0].offsetWidth,i=n[0].offsetHeight,s,o,u,a;n.offset(e).addClass(t).addClass("in"),s=n[0].offsetWidth,o=n[0].offsetHeight,t=="top"&&o!=i&&(e.top=e.top+i-o,a=!0),t=="bottom"||t=="top"?(u=0,e.left<0&&(u=e.left*-2,e.left=0,n.offset(e),s=n[0].offsetWidth,o=n[0].offsetHeight),this.replaceArrow(u-r+s,s,"left")):this.replaceArrow(o-i,o,"top"),a&&n.offset(e)},replaceArrow:function(e,t,n){this.arrow().css(n,e?50*(1-e/t)+"%":"")},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function i(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var t=this,n=this.tip(),r=e.Event("hide");this.$element.trigger(r);if(r.isDefaultPrevented())return;return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?i():n.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return e.extend({},typeof t.getBoundingClientRect=="function"?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=t?e(t.currentTarget)[this.type](this._options).data(this.type):this;n.tip().hasClass("in")?n.hide():n.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var n=e.fn.tooltip;e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.fn.tooltip.noConflict=function(){return e.fn.tooltip=n,this}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=(typeof n.content=="function"?n.content.call(t[0]):n.content)||t.attr("data-content"),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var n=e.fn.popover;e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var n=e(this),r=n.data("target")||n.attr("href"),i=/^#\w/.test(r)&&e(r);return i&&i.length&&[[i.position().top+(!e.isWindow(t.$scrollElement.get(0))&&t.$scrollElement.scrollTop()),r]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process:function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}};var n=e.fn.scrollspy;e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e.fn.scrollspy.noConflict=function(){return e.fn.scrollspy=n,this},e(window).on("load",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active:last a")[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}};var n=e.fn.tab;e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=n,this},e(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=e(this.options.menu),this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:t.top+t.height,left:t.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("focus",e.proxy(this.focus,this)).on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this)).on("mouseleave","li",e.proxy(this.mouseleave,this))},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t=typeof this.$element[e]=="function"),t},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},focus:function(e){this.focused=!0},blur:function(e){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(e){e.stopPropagation(),e.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(t){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")},mouseleave:function(e){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var n=e.fn.typeahead;e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e.fn.typeahead.noConflict=function(){return e.fn.typeahead=n,this},e(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;n.typeahead(n.data())})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)).on("click.affix.data-api",e.proxy(function(){setTimeout(e.proxy(this.checkPosition,this),1)},this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))};var n=e.fn.affix;e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e.fn.affix.noConflict=function(){return e.fn.affix=n,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery);
\ No newline at end of file
Modified: jtimerhtml5/src/main/resources/html/js/index.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/index.js 2013-06-13 10:12:12 UTC (rev 44)
+++ jtimerhtml5/src/main/resources/html/js/index.js 2013-06-14 12:52:26 UTC (rev 45)
@@ -1,60 +1,74 @@
-var tabProjects = new Array();
-var tabTasks = new Array();
-var displayElemT = new Array();
+var tabProjects = [];
+var tabTasks = [];
+var displayElemT = [];
var elemSelec = "";
var opt = false;
var rpt = false;
+var btP = "<div class='btn-group optP' id='optP'><button class='btn btn-info'>Action</button><button class='btn btn-info dropdown-toggle' data-toggle='dropdown'> <span class='caret'></span> </button><ul class='dropdown-menu'><li><a title='Création d'une nouvelle tâche' href='javascript:newTask()'><i class='icon-time'></i> Nouvelle tâche</a></li><li class='divider'></li><li><a title='Édition du projet' href='javascript:edProject()'><i class='icon-pencil'></i> Éditer</a></li><li><a title='Ouvrir ou fermer le projet' href='javascript:ofProject()'><i class='icon-off'></i> Ouvrir/Fermer</a></li><li><a title='Suppression du Projet' href='javascript:supprProject()'><i class='icon-trash'></i> Supprimer</a></li></ul></div>";
+var btT;
function getProjects(){
- $.getJSON('http://localhost:8080/tasks/getProjects',function(data) {
- for (var i in data){
- tabProjects[data[i].number] = data[i];
- }
- });
- displayProjects();
+ $.getJSON('http://localhost:8080/tasks/getProjects',function(data) {
+ for (var i in data){
+ tabProjects[data[i].number] = data[i];
+ }
+ });
+ displayProjects();
}
function displayProjects(){
$("#treeTasks").html("");
+ alert(tabProjects.length);
for (var p in tabProjects){
- $("#treeTasks").append("<li><div class='selec' id='p"+p+"'><span class='col'><span>▼</span>"+tabProjects[p].name+"</span><span class='col' id='aujp"+p+"'>01:24:58</span><span class='col' id='totp"+p+"'>13:25:32</span><span class='optP'><button class='btn btn-info'></button></span></div></li>");
+ $("#treeTasks").append("<li><div class='selec' id='p"+p+"'><span class='col'><span>▼</span>"+tabProjects[p].name+"</span><span class='col' id='aujp"+p+"'>"+formatTime(timeToday(p))+"</span><span class='col' id='totp"+p+"'>"+formatTime(timeTotal(p))+"</span>"+btP+"</div></li>");
}
+ selection();
}
function getChilds(p){
$.getJSON('http://localhost:8080/tasks/getTasks/'+p,function(data) {
- tabTasks[p] = new Array();
- for (var i in data){
- tabTasks[p][i] = data[i];
- }
- });
+ tabTasks[p] = [];
+ for (var i in data){
+ tabTasks[p][i] = data[i];
+ }
+ });
}
function showHideChilds(t){
$("#subT"+t).css();
}
+function formatTime(time){
+ var hours;
+ var minutes;
+ var seconds;
+ seconds = (time/1000)%60;
+ minutes = ((time/1000)/60)%60;
+ hours = ((time/1000)/60)/60;
+ return (hours+":"+minutes+":"+seconds);
+}
+
function timeToday(i){
- return 0;//tabProjects[i].allDaysTimes.;//aujourd'hui
+ return 0;//tabProjects[i].allDaysTimes.;//aujourd'hui
}
function timeTotal(i){
- var nb = 0;
- for (var t in tabProjects[i].allDaysTimes){
- nb = nb + tabProjects[i].allDaysTimes.t;
- }
- return nb;
+ var nb = 0;
+ for (var t in tabProjects[i].allDaysTimes){
+ nb = nb + tabProjects[i].allDaysTimes.t;
+ }
+ return nb;
}
$(".selec").click( function(){
- $("#"+elemSelec).css('background-color','');
- elemSelec = this.id;
- $("#"+elemSelec).css('background-color','#A9EAFE');
+ $("#"+elemSelec).css('background-color','');
+ elemSelec = this.id;
+ $("#"+elemSelec).css('background-color','#A9EAFE');
});
$(".selec").dblclick( function(){
- startStopTask(this.id);
+ startStopTask(this.id);
});
var myVar;
@@ -76,10 +90,10 @@
}
function chrono(task){
- var timeauj = $("#auj"+task).html() // a rajouter directement dans le tableau puis à mettre à jour sur la page, et ne pas oublier de le répercuté sur les parents
- $("#auj"+task).html(timeauj+1)
- var timetot = $("#tot"+task).html()
- $("#tot"+task).html(timetot+1)
+ var timeauj = $("#auj"+task).html(); // a rajouter directement dans le tableau puis à mettre à jour sur la page, et ne pas oublier de le répercuté sur les parents
+ $("#auj"+task).html(timeauj+1);
+ var timetot = $("#tot"+task).html();
+ $("#tot"+task).html(timetot+1);
}
function options(){
@@ -97,18 +111,18 @@
function selection() {
$(".selec").click( function(){
- $("#"+elemSelec).css('background-color','');
- elemSelec = this.id;
- $("#"+elemSelec).css('background-color','#A9EAFE');
- if(elemSelec.charAt(0)=="p"){
- $(".onp").css("display","none");
- $("#newTask").css("display","");
- }
- else if(elemSelec.charAt(0)=="t"){
- $(".onp").css("display","");
- $("#newTask").css("display","");
- }
- });
+ $("#"+elemSelec).css('background-color','');
+ elemSelec = this.id;
+ $("#"+elemSelec).css('background-color','#A9EAFE');
+ if(elemSelec.charAt(0)=="p"){
+ $(".onp").css("display","none");
+ $("#newTask").css("display","");
+ }
+ else if(elemSelec.charAt(0)=="t"){
+ $(".onp").css("display","");
+ $("#newTask").css("display","");
+ }
+ });
}
function report(){
@@ -128,212 +142,216 @@
var check = false;
function checkTimeMark(){
- if (check==false){
- check=true;
- $("#withTimeMark").css("display","");
- }
- else
- {
- check=false;
- $("#withTimeMark").css("display","none");
- }
+ if (check===false){
+ check=true;
+ $("#withTimeMark").css("display","");
+ }
+ else
+ {
+ check=false;
+ $("#withTimeMark").css("display","none");
+ }
}
function edAlerts(){
- window.open('alerts.html','','height=400, width=600, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no');
+ $( "#alerts" ).dialog( "open" );
}
-function about(){
- window.open('about.html','','height=405, width=420, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no');
-}
-
/* Différente actions des menus et des boutons */
function newProject(parent){
- var nameNewProject = $("#newProject").val();
- var newproject = "{'name'='"+nameNewProject+"', 'number'='-1', 'closed'=false, 'allDaysTime'={}, 'allDaysAnnotations'={}, 'alerts'=[]}"; //le nouveau projet en format json
+ var nameNewProject = $("#newProject").val();
+ var newproject = "{'name'='"+nameNewProject+"', 'number'='-1', 'closed'=false, 'allDaysTime'={}, 'allDaysAnnotations'={}, 'alerts'=[]}";
$.ajax({
type: 'PUT',
url: 'http://localhost:8080/tasks/addProject/'+newproject
});
getProjects();
- // vérifier si un autre projet n'a pas déjà ce nom
+ // vérifier si un autre projet n'a pas déjà ce nom
}
function edProject(){
- var newnameProject = prompt("Nouveau nom du Projet :","x");
- if (newnameProject=="") {
- alert("Erreur : Le nom est vide !");
- }
- else {
- $.ajax({
- type: 'POST',
- url: 'http://localhost:8080/tasks/modifyProject/'+tabProjects[elemSelec.substring(1,elemSelec.length)]
- });
- }
- // vérifier si un autre projet n'a pas déjà ce nom
+ var newnameProject = prompt("Nouveau nom du Projet :",tabProjects[elemSelec.substring(1,elemSelec.length)].name);
+ if (newnameProject==="") {
+ alert("Erreur : Le nom est vide !");
+ }
+ else {
+ tabProjects[elemSelec.substring(1,elemSelec.length)].name = newNameProject;
+ $.ajax({
+ type: 'POST',
+ url: 'http://localhost:8080/tasks/modifyProject/'+tabProjects[elemSelec.substring(1,elemSelec.length)]
+ });
+ }
+ // vérifier si un autre projet n'a pas déjà ce nom
}
function ofProject(){
- $.ajax({
- type: 'POST',
- url: 'http://localhost:8080/tasks/changeClosedState/'+tabProjects[elemSelec.substring(1,elemSelec.length)]
- });
+ if (tabProjects[elemSelec.substring(1,elemSelec.length)].closed){
+ tabProjects[elemSelec.substring(1,elemSelec.length)].closed = false;
+ }
+ else {
+ tabProjects[elemSelec.substring(1,elemSelec.length)].closed = true;
+ }
+ $.ajax({
+ type: 'POST',
+ url: 'http://localhost:8080/tasks/changeClosedState/'+tabProjects[elemSelec.substring(1,elemSelec.length)]
+ });
}
function supprProject() {
- var bool = confirm("Voulez-vous supprimer le Projet x ?")
- if (bool){
- $.ajax({
- type: 'DELETE',
- url: 'http://localhost:8080/tasks/deleteProject/'+elemSelec.substring(1,elemSelec.length)
- });
- }
+ var bool = confirm("Voulez-vous supprimer le Projet "+tabProjects[elemSelec.substring(1,elemSelec.length)].name+" ?");
+ if (bool){
+ $.ajax({
+ type: 'DELETE',
+ url: 'http://localhost:8080/tasks/deleteProject/'+tabProjects[elemSelec.substring(1,elemSelec.length)]
+ });
+ }
}
function newTask() {
- var nameNewTask = prompt("Nom de la tâche à créer pour x :", "" );
- if (nameNewTask=="") {
- alert("Erreur : Le nom est vide !");
- }
- else {
- $.ajax({
- type: 'PUT',
- url: 'http://localhost:8080/tasks/addTask/'+nameNewTask
- });
- }
- // vérifier si une autre tâche n'a pas déjà ce nom au même niveau
+ var nameNewTask = prompt("Nom de la tâche à créer pour "+tabProjects[elemSelec.substring(1,elemSelec.length)].name+" :", "" );
+ if (nameNewTask==="") {
+ alert("Erreur : Le nom est vide !");
+ }
+ else {
+ var newTask = "{'name'='"+nameNewTask+"', 'number'='-1', 'closed'=false, 'allDaysTime'={}, 'allDaysAnnotations'={}, 'alerts'=[], 'parent'='{'name'='', 'number'='"+elemSelec.substring(1,elemSelec.length)+"', 'closed'=false, 'allDaysTime'={}, 'allDaysAnnotations'={}, 'alerts'=[]}'}";
+ $.ajax({
+ type: 'PUT',
+ url: 'http://localhost:8080/tasks/addTask/'+newTask
+ });
+ }
+ // vérifier si une autre tâche n'a pas déjà ce nom au même niveau
}
+function edTask(){
+ $("#nameTask").attr("value",tabProjects[elemSelec.substring(1,elemSelec.length)].name);
+ $("#editionTask").dialog("open");
+}
+
function ofTask(){
- $.ajax({
- type: 'POST',
- url: 'http://localhost:8080/tasks/changeClosedState/'+elemSelec.substring(1,elemSelec.length)
- });
+ $.ajax({
+ type: 'POST',
+ url: 'http://localhost:8080/tasks/changeClosedState/'+tabProjects[elemSelec.substring(1,elemSelec.length)]
+ });
}
function supprTask(){
- var bool = confirm("Voulez-vous supprimer la tâche x ?");
- if (bool){
- $.ajax({
- type: 'DELETE',
- url: 'http://localhost:8080/tasks/deleteTask/'+elemSelec.substring(1,elemSelec.length)
- });
- }
+ var bool = confirm("Voulez-vous supprimer la tâche "+tabProjects[elemSelec.substring(1,elemSelec.length)].name+" ?");
+ if (bool){
+ $.ajax({
+ type: 'DELETE',
+ url: 'http://localhost:8080/tasks/deleteTask/'+tabProjects[elemSelec.substring(1,elemSelec.length)]
+ });
+ }
}
function saveTask(){
$.ajax({
- type: 'POST',
- url: 'http://localhost:8080/tasks/save'+elemSelec.substring(1,elemSelec.length)
- });
+ type: 'POST',
+ url: 'http://localhost:8080/tasks/save/'+tabProjects[elemSelec.substring(1,elemSelec.length)]
+ });
}
-function fusion(){
- $.ajax({
- type: 'POST',
- url: 'http://localhost:8080/tasks/fusion'
- });
-}
+/*function fusion(){
+ $.ajax({
+ type: 'POST',
+ url: 'http://localhost:8080/tasks/fusion'
+ });
+}*/
function systray(){
- $.ajax({
- type: 'POST',
- url: 'http://localhost:8080/tasks/systray'
- });
+
}
function dStartWeek(day){
- $.ajax({
- type: 'POST',
- url: 'http://localhost:8080/tasks/dStartWeek/'+day
- });
+
}
function action(i){
- if(i == 1){
- $('#dataText').html('<b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2012, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.');
- $('#bt1').css('background',"#339999");
- $('#bt2').css('background',"#ffffff");
- }
- if(i == 2){
- $('#dataText').html("Vous pouvez modifier et redistribuer ce programme sous les conditions énoncées par la licence GNU GPL (version 2 ou ultérieure). Une copie de la licence GPL est dans le fichier « LICENSE.txt » fourni avec jTimer. Tous droits réservés. Aucune garantie n'est fournie pour l'utilisation de ce programme.");
- $('#bt2').css('background',"#339999");
- $('#bt1').css('background',"#ffffff");
- }
+ if(i == 1){
+ $('#dataText').html('<b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2012, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.');
+ $('#bt1').css('background',"#339999");
+ $('#bt2').css('background',"#ffffff");
+ }
+ if(i == 2){
+ $('#dataText').html("Vous pouvez modifier et redistribuer ce programme sous les conditions énoncées par la licence GNU GPL (version 2 ou ultérieure). Une copie de la licence GPL est dans le fichier « LICENSE.txt » fourni avec jTimer. Tous droits réservés. Aucune garantie n'est fournie pour l'utilisation de ce programme.");
+ $('#bt2').css('background',"#339999");
+ $('#bt1').css('background',"#ffffff");
+ }
}
function about(){
- $( "#aboutPopUp" ).dialog( "open" );
+ $("#aboutPopUp").dialog("open");
}
+function addAnnotation(){
+ var newAnnot = prompt("Annotation pour la tâche "+tabProjects[elemSelec.substring(1,elemSelec.length)].name+" :", "" );
+
+}
+
var rows = 0;
function add(){
- rows++;
- $('#listAlerts').append("<div id='num"+rows+"'><select><option value='rdt'>REACH_DAILY_TIME</option><option value='rtt'>REACH_TOTAL_TIME</option></select><input class='spinnerh' type='text'>h<input class='spinnerm' type='text'>m<input class='spinners' type='text'>s <input type='button' value='X' onclick='suppr("+rows+")'></div>");
- $(".spinnerh").spinner({ min: 0});
- $(".spinnerm").spinner({ min: 0, max: 59 });
- $(".spinners").spinner({ min: 0, max: 59 });
- $(".spinnerh").css("width","20");
- $(".spinnerm").css("width","20");
- $(".spinners").css("width","20");
+ rows++;
+ $('#listAlerts').append("<div id='num"+rows+"'><select><option value='rdt'>REACH_DAILY_TIME</option><option value='rtt'>REACH_TOTAL_TIME</option></select><input class='spinnerh' type='text'>h<input class='spinnerm' type='text'>m<input class='spinners' type='text'>s <input type='button' value='X' onclick='suppr("+rows+")'></div>");
+ $(".spinnerh").spinner({ min: 0});
+ $(".spinnerm").spinner({ min: 0, max: 59 });
+ $(".spinners").spinner({ min: 0, max: 59 });
+ $(".spinnerh").css("width","20");
+ $(".spinnerm").css("width","20");
+ $(".spinners").css("width","20");
}
function suppr(n){
- $("#num"+n).html('');
+ $("#num"+n).html('');
}
function init(){
jQuery(function($){
- $.datepicker.regional['fr'] = {
- closeText: 'Fermer',
- prevText: 'Précédent',
- nextText: 'Suivant',
- currentText: 'Aujourd\'hui',
- monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
- monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin','Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
- dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
- dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
- dayNamesMin: ['D','L','M','M','J','V','S'],
- weekHeader: 'Sem.',
- dateFormat: 'dd/mm/yy',
- firstDay: 1,
- isRTL: false,
- showMonthAfterYear: false,
- yearSuffix: ''};
+ $.datepicker.regional['fr'] = {
+ closeText: 'Fermer',
+ prevText: 'Précédent',
+ nextText: 'Suivant',
+ currentText: 'Aujourd\'hui',
+ monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
+ monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin','Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
+ dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
+ dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
+ dayNamesMin: ['D','L','M','M','J','V','S'],
+ weekHeader: 'Sem.',
+ dateFormat: 'dd/mm/yy',
+ firstDay: 1,
+ isRTL: false,
+ showMonthAfterYear: false,
+ yearSuffix: ''};
$.datepicker.setDefaults($.datepicker.regional['fr']);
});
$( ".datepicker" ).datepicker({
- dateFormat: "DD dd MM yy",
- regional: 'fr'
- });
+ dateFormat: "DD dd MM yy",
+ regional: 'fr'
+ });
- $( "#datepicker2" ).datepicker({
- maxDate: -1,
- /*onSelect: function(dateText, inst){
- dateSelec(dateText);
- }*/
- });
- $("#spinnerh").spinner({ min: 0, max: 23 });
- $("#spinnerm").spinner({ min: 0, max: 59 });
- $("#spinners").spinner({ min: 0, max: 59 });
- $("#spinnerh").css("width","20");
- $("#spinnerm").css("width","20");
- $("#spinners").css("width","20");
-
- $( "#editionTask" ).dialog({ autoOpen: false });
- /* $( "#createP" ).click(function() {$( "#editionTask" ).dialog( "open" );}); */
-
- $( "#aboutPopUp" ).dialog({ autoOpen: false });
-
+ $( "#datepicker2" ).datepicker({
+ maxDate: -1,
+ /*onSelect: function(dateText, inst){
+ dateSelec(dateText);
+ }*/
+ });
+
+ $("#spinnerh").spinner({ min: 0, max: 23 });
+ $("#spinnerm").spinner({ min: 0, max: 59 });
+ $("#spinners").spinner({ min: 0, max: 59 });
+ $("#spinnerh").css("width","20");
+ $("#spinnerm").css("width","20");
+ $("#spinners").css("width","20");
+
+ $( "#editionTask" ).dialog({ autoOpen: false });
$( "#alerts" ).dialog({ autoOpen: false });
- /* $( "#createP" ).click(function() {$( "#alerts" ).dialog( "open" );}); */
$(".brand").css("color","#ff7a04");
$("#opts").css("display","none");
@@ -342,7 +360,4 @@
$("#newTask").css("display","none");
$("#reportpage").css("display","none");
$(".run").css("display","none");
-
- $("#optP").css("display","none");
- $("#optT").css("display","none");
}
Deleted: jtimerhtml5/target/jtimer-2.0-SNAPSHOT.jar
===================================================================
(Binary files differ)
1
0
r44 - in jtimerhtml5: src/main/java/org/chorem/jtimer src/main/resources/html src/main/resources/html/css src/main/resources/html/css/img src/main/resources/html/js target target/maven-archiver
by qmoriceau@users.chorem.org 13 Jun '13
by qmoriceau@users.chorem.org 13 Jun '13
13 Jun '13
Author: qmoriceau
Date: 2013-06-13 12:12:12 +0200 (Thu, 13 Jun 2013)
New Revision: 44
Url: http://chorem.org/projects/incubator/repository/revisions/44
Log:
suite de correction des m?\195?\169thodes REST et finalisation de la communication Interface/Programme
Added:
jtimerhtml5/src/main/resources/html/css/img/
jtimerhtml5/src/main/resources/html/css/img/date_current.png
jtimerhtml5/src/main/resources/html/css/img/date_previous.png
Modified:
jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java
jtimerhtml5/src/main/resources/html/css/index.css
jtimerhtml5/src/main/resources/html/index.html
jtimerhtml5/src/main/resources/html/js/index.js
jtimerhtml5/target/jtimer-2.0-SNAPSHOT.jar
jtimerhtml5/target/maven-archiver/pom.properties
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java 2013-06-12 13:51:24 UTC (rev 43)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java 2013-06-13 10:12:12 UTC (rev 44)
@@ -3,6 +3,7 @@
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.net.URLDecoder;
import java.util.List;
import javax.servlet.ServletException;
@@ -20,6 +21,7 @@
import com.google.gson.ExclusionStrategy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
+import com.google.gson.JsonSyntaxException;
public class JTimerHandler extends AbstractHandler {
@@ -30,41 +32,48 @@
final String[] path = request.getRequestURI().split("/");
- if (path[1].equals("task") || path[1].equals("project") || path[1].equals("other")){
+ if (path[1].equals("tasks")){
String content = new String();
Object result;
ExclusionStrategy excludeTasks = new TaskExclusionStrategy(TimerTask.class);
Gson gson = new GsonBuilder().setExclusionStrategies(excludeTasks).create();
Gson gson2 = new Gson();
- Object[] param = new String[path.length-3];
- for(int i=0;i<path.length-3;i++){
- param[i]=path[i+3];
+ String[] param = new String[path.length-3];
+ if(path.length-3>0){
+ //problème lorsqu'il n'y a pas de paramètre.
+ for(int i=0;i<path.length-3;i++){
+ param[i]=URLDecoder.decode(path[i+3],"UTF-8");
+ }
+
}
- if(path[1].equals("task")){ // test de transformation json to java
- param[0] = gson2.fromJson((String) param[0], TimerTask.class);
- }
- else if(path[1].equals("project")){
- param[0] = gson2.fromJson((String) param[0], TimerProject.class);
- }
+
List<Method> m = ObjectUtil.getMethod(Storage.class,path[2],false);
+ Method mcall = m.get(0);
+ Class<?>[] type = mcall.getParameterTypes();
+
try {
- result = ObjectUtil.call(storage, m.get(0), (String[]) param);
+ if(path.length-3>0){
+ result = mcall.invoke(storage, gson2.fromJson(param[0], type[0]));
+ }
+ else {
+ result = mcall.invoke(storage, null);
+ }
content = gson.toJson(result);
- } catch (IllegalAccessException e) {
+ System.out.println(content);
+ } catch (JsonSyntaxException e1) {
// TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalArgumentException e) {
+ e1.printStackTrace();
+ } catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InvocationTargetException e) {
+ e1.printStackTrace();
+ } catch (IllegalArgumentException e1) {
// TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InstantiationException e) {
+ e1.printStackTrace();
+ } catch (InvocationTargetException e1) {
// TODO Auto-generated catch block
- e.printStackTrace();
+ e1.printStackTrace();
}
-
response.setContentType("text/json;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
Added: jtimerhtml5/src/main/resources/html/css/img/date_current.png
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/src/main/resources/html/css/img/date_current.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/src/main/resources/html/css/img/date_previous.png
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/src/main/resources/html/css/img/date_previous.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: jtimerhtml5/src/main/resources/html/css/index.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/index.css 2013-06-12 13:51:24 UTC (rev 43)
+++ jtimerhtml5/src/main/resources/html/css/index.css 2013-06-13 10:12:12 UTC (rev 44)
@@ -1,7 +1,6 @@
html,body {
margin:0;
- padding-top:25px;
- padding-bottom:10px;
+ padding: 25px 0px 10px 0px;
}
footer {
@@ -32,11 +31,13 @@
.colHT {
width:30%;
display:inline-block;
+ text-align:center;
}
.optHT {
width:8%;
display:inline-block;
+ text-align:center;
}
#opts span {
@@ -66,7 +67,6 @@
}
#headTasks {
- text-align:center;
margin-bottom:8px;
}
@@ -181,6 +181,7 @@
#treeTasks {
list-style-type: none;
+ margin:0;
}
#editionApply {
Modified: jtimerhtml5/src/main/resources/html/index.html
===================================================================
--- jtimerhtml5/src/main/resources/html/index.html 2013-06-12 13:51:24 UTC (rev 43)
+++ jtimerhtml5/src/main/resources/html/index.html 2013-06-13 10:12:12 UTC (rev 44)
@@ -6,7 +6,7 @@
<link rel="stylesheet" href="jtimer.css"/>
<script src="jtimer.js"></script>
</head>
- <body>
+ <body onload="getProjects()">
@@ -47,21 +47,16 @@
<div class="buttons">
- Nouveau projet : <input class="input-medium" id="newProject" title="Nom du nouveau Projet"><button id="createP" class="btn btn-primary" onclick="newProject"> Créer le projet</button>
+ Nouveau projet : <input class="input-medium" id="newProject" title="Nom du nouveau Projet"><button id="createP" class="btn btn-primary" onclick="newProject()"> Créer le projet</button>
</div>
<div id="tabTask">
<!-- Arborescence des Tasks -->
- <div id="headTasks">
- <span class='colHT'>Projet et tâches</span>
- <span class='colHT'>Aujourd'hui</span>
- <span class='colHT'>Total</span>
- <span class="optHT">Options</span>
- </div>
- <ul id="treeTasks"><li>
- <div class="selec" id="p1">
+ <div id="headTasks"><span class='colHT'>Projet et tâches</span><span class='colHT'>Aujourd'hui</span><span class='colHT'>Total</span><span class="optHT">Options</span></div>
+ <ul id="treeTasks"><!--<li>
+ <!--<div class="selec" id="p1">
<span class='col'><span>▼</span>html5</span>
<span class='col' id="aujp1">01:24:58</span>
<span class='col' id="totp1">13:25:32</span>
@@ -93,7 +88,7 @@
<span class='col' id="totp4">00:00:00</span>
<span class="optP"><button class="btn btn-info"></button></span>
</div>
- </li>
+ </li>-->
</ul>
</div>
<footer class="footer">
@@ -145,13 +140,13 @@
<input type="text" id="nameTask" name="newNameTask" value="x">
<!-- Calendrier à date selectionnable -->
<div id="datepicker2"></div>
- Temps:
- <input id="spinnerh" type="text" name="hour" value="00" size="2">:
- <input id="spinnerm" type="text" name="minutes" value="00" size="2">:
- <input id="spinners" type="text" name="seconds" value="00" size="2"><br>
- Note:<textarea rows="4" id="noteTache"></textarea><br>
- <input type="button" id="editionApply" value="Appliquer">
- <input type="reset" id="editionCancel" value="Annuler">
+ Temps:
+ <input id="spinnerh" type="text" name="hour" value="00" maxlength="2">:
+ <input id="spinnerm" type="text" name="minutes" value="00" maxlength="2">:
+ <input id="spinners" type="text" name="seconds" value="00" maxlength="2"><br>
+ Note:<textarea rows="4" id="noteTache"></textarea><br>
+ <input type="button" id="editionApply" value="Appliquer">
+ <input type="reset" id="editionCancel" value="Annuler">
</div>
@@ -168,7 +163,6 @@
<div id="alerts" title="Alertes de la tâche">
<span id="blockAlerte">
<b>Listes des alertes :</b>
- <input type="button" id="alertCancel" value="Annuler" OnClick="javascript:window.close()">
<input type="button" id="alertSave" value="Sauver">
</span>
<br>
@@ -182,31 +176,31 @@
<div id="optP">
<li><a title="Création d'une nouvelle tâche" href="javascript:newTask()">Nouvelle tâche</a></li>
- <li><a class="optionNotTask" title="Édition du projet" href="javascript:edProject()">Éditer le Projet</a></li>
- <li><a class="optionNotTask" title="Ouvrir ou fermer le projet" href="javascript:ofProject()">Ouvrir/Fermer le Projet</a></li>
- <li><a class="optionNotTask" title="Suppression du Projet" href="javascript:supprProject()">Supprimer le projet</a></li>
+ <li><a title="Édition du projet" href="javascript:edProject()">Éditer le Projet</a></li>
+ <li><a title="Ouvrir ou fermer le projet" href="javascript:ofProject()">Ouvrir/Fermer le Projet</a></li>
+ <li><a title="Suppression du Projet" href="javascript:supprProject()">Supprimer le projet</a></li>
</div>
<div id="optT">
<li><a title="Création d'une nouvelle tâche" href="javascript:newTask()">Nouvelle tâche</a></li>
- <li><a class="optionNotProject" title="Édition de la tâche" href="javascript:edTask()">Éditer la tâche</a></li>
- <li><a class="optionNotProject" title="Ouvrir ou fermer la tâche" href="javascript:ofTask()">Ouvrir/Fermer la tâche</a></li>
- <li><a class="optionNotProject" title="Suppression de la tâche" href="javascript:supprTask()">Supprimer la tâche</a></li>
+ <li><a title="Édition de la tâche" href="javascript:edTask()">Éditer la tâche</a></li>
+ <li><a title="Ouvrir ou fermer la tâche" href="javascript:ofTask()">Ouvrir/Fermer la tâche</a></li>
+ <li><a title="Suppression de la tâche" href="javascript:supprTask()">Supprimer la tâche</a></li>
- <li><a class="optionNotProject" title="Démarrage de la tâche" href="javascript:startTask()">Démarrer</a></li>
- <li><a class="optionNotProject" title="Arrêt de la tâche" href="javascript:stopTask()">Arrêter</a></li>
+ <li><a title="Démarrage de la tâche" href="javascript:startTask()">Démarrer</a></li>
+ <li><a title="Arrêt de la tâche" href="javascript:stopTask()">Arrêter</a></li>
- <li><a class="optionNotProject" title="Ajout d'une annotation" href="javascript:addAnnotation()">Ajouter une annotation</a></li>
- <li><a class="optionNotProject" title="Édition des alertes" href="javascript:edAlerts()">Éditer les Alertes</a></li>
- <li><a class="optionNotProject" title="Ajout de 1 minute à la tâche" href="javascript:addsou(1)">Ajouter 1 minute</a></li>
- <li><a class="optionNotProject" title="Ajout de 5 minutes à la tâche" href="javascript:addsou(5)">Ajouter 5 minutes</a></li>
- <li><a class="optionNotProject" title="Ajout de 30 minutes à la tâche" href="javascript:addsou(30)">Ajouter 30 minutes</a></li>
- <li><a class="optionNotProject" title="Enlève 1 minute à la tâche" href="javascript:addsou(-1)">Enlever 1 minute</a></li>
- <li><a class="optionNotProject" title="Enlève 5 minutes à la tâche" href="javascript:addsou(-5)">Enlever 5 minutes</a></li>
- <li><a class="optionNotProject" title="Enlève 30 minutes à la tâche" href="javascript:addsou(-30)">Enlever 30 minutes</a></li>
- <li><a class="optionNotProject" title="Remet la tâche à zero" href="javascript:zero()">Remettre à Zero</a></li>
+ <li><a title="Ajout d'une annotation" href="javascript:addAnnotation()">Ajouter une annotation</a></li>
+ <li><a title="Édition des alertes" href="javascript:edAlerts()">Éditer les Alertes</a></li>
+ <li><a title="Ajout de 1 minute à la tâche" href="javascript:addsou(1)">Ajouter 1 minute</a></li>
+ <li><a title="Ajout de 5 minutes à la tâche" href="javascript:addsou(5)">Ajouter 5 minutes</a></li>
+ <li><a title="Ajout de 30 minutes à la tâche" href="javascript:addsou(30)">Ajouter 30 minutes</a></li>
+ <li><a title="Enlève 1 minute à la tâche" href="javascript:addsou(-1)">Enlever 1 minute</a></li>
+ <li><a title="Enlève 5 minutes à la tâche" href="javascript:addsou(-5)">Enlever 5 minutes</a></li>
+ <li><a title="Enlève 30 minutes à la tâche" href="javascript:addsou(-30)">Enlever 30 minutes</a></li>
+ <li><a title="Remet la tâche à zero" href="javascript:zero()">Remettre à Zero</a></li>
</div>
Modified: jtimerhtml5/src/main/resources/html/js/index.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/index.js 2013-06-12 13:51:24 UTC (rev 43)
+++ jtimerhtml5/src/main/resources/html/js/index.js 2013-06-13 10:12:12 UTC (rev 44)
@@ -7,15 +7,23 @@
function getProjects(){
- $.getJSON('http://localhost:8080/other/getProjects',function(data) {
+ $.getJSON('http://localhost:8080/tasks/getProjects',function(data) {
for (var i in data){
tabProjects[data[i].number] = data[i];
}
});
+ displayProjects();
}
+function displayProjects(){
+ $("#treeTasks").html("");
+ for (var p in tabProjects){
+ $("#treeTasks").append("<li><div class='selec' id='p"+p+"'><span class='col'><span>▼</span>"+tabProjects[p].name+"</span><span class='col' id='aujp"+p+"'>01:24:58</span><span class='col' id='totp"+p+"'>13:25:32</span><span class='optP'><button class='btn btn-info'></button></span></div></li>");
+ }
+}
+
function getChilds(p){
- $.getJSON('http://localhost:8080/task/getTasks/'+p,function(data) {
+ $.getJSON('http://localhost:8080/tasks/getTasks/'+p,function(data) {
tabTasks[p] = new Array();
for (var i in data){
tabTasks[p][i] = data[i];
@@ -142,16 +150,13 @@
/* Différente actions des menus et des boutons */
function newProject(parent){
- var nameNewProject = prompt("Nom du Projet à créer :", "" );
- if (nameNewProject=="") {
- alert("Erreur : Le nom est vide !");
- }
- else {
- var newproject = "{}"; //le nouveau projet en format json
- $.put('http://localhost:8080/other/addProject/'+newproject,function(data){
- alert(data);
- });
- }
+ var nameNewProject = $("#newProject").val();
+ var newproject = "{'name'='"+nameNewProject+"', 'number'='-1', 'closed'=false, 'allDaysTime'={}, 'allDaysAnnotations'={}, 'alerts'=[]}"; //le nouveau projet en format json
+ $.ajax({
+ type: 'PUT',
+ url: 'http://localhost:8080/tasks/addProject/'+newproject
+ });
+ getProjects();
// vérifier si un autre projet n'a pas déjà ce nom
}
@@ -161,24 +166,27 @@
alert("Erreur : Le nom est vide !");
}
else {
- $.post('http://localhost:8080/project/modifyProject/'+tabProjects[elemSelec.substring(1,elemSelec.length)],function(data){
- alert(data);
+ $.ajax({
+ type: 'POST',
+ url: 'http://localhost:8080/tasks/modifyProject/'+tabProjects[elemSelec.substring(1,elemSelec.length)]
});
}
// vérifier si un autre projet n'a pas déjà ce nom
}
function ofProject(){
- $.post('http://localhost:8080/task/changeClosedState/'+tabProjects[elemSelec.substring(1,elemSelec.length)],function(data){
- alert(data);
- });
+ $.ajax({
+ type: 'POST',
+ url: 'http://localhost:8080/tasks/changeClosedState/'+tabProjects[elemSelec.substring(1,elemSelec.length)]
+ });
}
function supprProject() {
var bool = confirm("Voulez-vous supprimer le Projet x ?")
if (bool){
- $.delete('http://localhost:8080/project/deleteProject/'+elemSelec.substring(1,elemSelec.length),function(data){
- alert(data);
+ $.ajax({
+ type: 'DELETE',
+ url: 'http://localhost:8080/tasks/deleteProject/'+elemSelec.substring(1,elemSelec.length)
});
}
}
@@ -189,47 +197,56 @@
alert("Erreur : Le nom est vide !");
}
else {
- $.put('http://localhost:8080/task/addTask/'+nameNewTask,function(data){
- alert(data);
+ $.ajax({
+ type: 'PUT',
+ url: 'http://localhost:8080/tasks/addTask/'+nameNewTask
});
}
// vérifier si une autre tâche n'a pas déjà ce nom au même niveau
}
function ofTask(){
- $.post('http://localhost:8080/task/changeClosedState/'+elemSelec.substring(1,elemSelec.length),function(data){
- alert(data);
+ $.ajax({
+ type: 'POST',
+ url: 'http://localhost:8080/tasks/changeClosedState/'+elemSelec.substring(1,elemSelec.length)
});
}
function supprTask(){
var bool = confirm("Voulez-vous supprimer la tâche x ?");
if (bool){
- $.delete('http://localhost:8080/task/deleteTask/'+elemSelec.substring(1,elemSelec.length),function(data){
- alert(data);
+ $.ajax({
+ type: 'DELETE',
+ url: 'http://localhost:8080/tasks/deleteTask/'+elemSelec.substring(1,elemSelec.length)
});
}
}
function saveTask(){
-
+ $.ajax({
+ type: 'POST',
+ url: 'http://localhost:8080/tasks/save'+elemSelec.substring(1,elemSelec.length)
+ });
}
function fusion(){
- $.post('http://localhost:8080/task/fusion',function(data){
- alert(data);
+ $.ajax({
+ type: 'POST',
+ url: 'http://localhost:8080/tasks/fusion'
});
}
function systray(){
- $.post('http://localhost:8080/task/systray',function(data){
- alert(data);
+ $.ajax({
+ type: 'POST',
+ url: 'http://localhost:8080/tasks/systray'
});
}
function dStartWeek(day){
- $.post('http://localhost:8080/task/dStartWeek/'+day,function(data){
- alert(data);
+ $.ajax({
+ type: 'POST',
+ url: 'http://localhost:8080/tasks/dStartWeek/'+day
});
}
@@ -258,10 +275,13 @@
function add(){
rows++;
- $('#listAlerts').append("<div id='num"+rows+"'><select><option value='rdt'>REACH_DAILY_TIME</option><option value='rtt'>REACH_TOTAL_TIME</option></select><input class='spinnerh' type='text' size='2'>h<input class='spinnerm' type='text' size='2'>m<input class='spinners' type='text' size='2'>s <input type='button' value='X' onclick='suppr("+rows+")'></div>");
+ $('#listAlerts').append("<div id='num"+rows+"'><select><option value='rdt'>REACH_DAILY_TIME</option><option value='rtt'>REACH_TOTAL_TIME</option></select><input class='spinnerh' type='text'>h<input class='spinnerm' type='text'>m<input class='spinners' type='text'>s <input type='button' value='X' onclick='suppr("+rows+")'></div>");
$(".spinnerh").spinner({ min: 0});
$(".spinnerm").spinner({ min: 0, max: 59 });
$(".spinners").spinner({ min: 0, max: 59 });
+ $(".spinnerh").css("width","20");
+ $(".spinnerm").css("width","20");
+ $(".spinners").css("width","20");
}
function suppr(n){
@@ -303,14 +323,17 @@
$("#spinnerh").spinner({ min: 0, max: 23 });
$("#spinnerm").spinner({ min: 0, max: 59 });
$("#spinners").spinner({ min: 0, max: 59 });
+ $("#spinnerh").css("width","20");
+ $("#spinnerm").css("width","20");
+ $("#spinners").css("width","20");
$( "#editionTask" ).dialog({ autoOpen: false });
- /*$( "#createP" ).click(function() {$( "#editionTask" ).dialog( "open" );});*/
+ /* $( "#createP" ).click(function() {$( "#editionTask" ).dialog( "open" );}); */
$( "#aboutPopUp" ).dialog({ autoOpen: false });
$( "#alerts" ).dialog({ autoOpen: false });
- $( "#createP" ).click(function() {$( "#alerts" ).dialog( "open" );});
+ /* $( "#createP" ).click(function() {$( "#alerts" ).dialog( "open" );}); */
$(".brand").css("color","#ff7a04");
$("#opts").css("display","none");
Modified: jtimerhtml5/target/jtimer-2.0-SNAPSHOT.jar
===================================================================
(Binary files differ)
Modified: jtimerhtml5/target/maven-archiver/pom.properties
===================================================================
--- jtimerhtml5/target/maven-archiver/pom.properties 2013-06-12 13:51:24 UTC (rev 43)
+++ jtimerhtml5/target/maven-archiver/pom.properties 2013-06-13 10:12:12 UTC (rev 44)
@@ -1,5 +1,5 @@
#Generated by Maven
-#Wed Jun 12 11:21:21 CEST 2013
+#Thu Jun 13 09:55:04 CEST 2013
version=2.0-SNAPSHOT
groupId=org.chorem
artifactId=jtimer
1
0
r43 - in jtimerhtml5: src/main/resources/html src/main/resources/html/css src/main/resources/html/img src/main/resources/html/js target
by qmoriceau@users.chorem.org 12 Jun '13
by qmoriceau@users.chorem.org 12 Jun '13
12 Jun '13
Author: qmoriceau
Date: 2013-06-12 15:51:24 +0200 (Wed, 12 Jun 2013)
New Revision: 43
Url: http://chorem.org/projects/incubator/repository/revisions/43
Log:
correction des m?\195?\169thodes REST et ?\195?\169purage du fichier html
Removed:
jtimerhtml5/src/main/resources/html/img/date_current.png
jtimerhtml5/src/main/resources/html/img/date_previous.png
Modified:
jtimerhtml5/src/main/resources/html/css/index.css
jtimerhtml5/src/main/resources/html/img/running.gif
jtimerhtml5/src/main/resources/html/index.html
jtimerhtml5/src/main/resources/html/js/index.js
jtimerhtml5/target/jtimer-2.0-SNAPSHOT.jar
Modified: jtimerhtml5/src/main/resources/html/css/index.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/index.css 2013-06-12 09:25:58 UTC (rev 42)
+++ jtimerhtml5/src/main/resources/html/css/index.css 2013-06-12 13:51:24 UTC (rev 43)
@@ -23,6 +23,22 @@
text-align:center;
}
+#headTasks span {
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+}
+
+.colHT {
+ width:30%;
+ display:inline-block;
+}
+
+.optHT {
+ width:8%;
+ display:inline-block;
+}
+
#opts span {
display:inline-block;
padding-left:12px;
@@ -31,6 +47,7 @@
.selec {
width:100%;
display:inline-block;
+ cursor:pointer;
}
.buttons {
@@ -45,6 +62,7 @@
.optT,.optP {
width:5%;
display:inline-block;
+ float:right;
}
#headTasks {
@@ -158,6 +176,7 @@
.subtask{
list-style-type: none;
+ margin:0;
}
#treeTasks {
Deleted: jtimerhtml5/src/main/resources/html/img/date_current.png
===================================================================
(Binary files differ)
Deleted: jtimerhtml5/src/main/resources/html/img/date_previous.png
===================================================================
(Binary files differ)
Modified: jtimerhtml5/src/main/resources/html/img/running.gif
===================================================================
(Binary files differ)
Modified: jtimerhtml5/src/main/resources/html/index.html
===================================================================
--- jtimerhtml5/src/main/resources/html/index.html 2013-06-12 09:25:58 UTC (rev 42)
+++ jtimerhtml5/src/main/resources/html/index.html 2013-06-12 13:51:24 UTC (rev 43)
@@ -43,48 +43,22 @@
<option>dimanche
</select></span>
</div>
- <!-- Menu
- <ul id="menu">
- <li><a href="#">Project</a>
- <ul>
- <li><a title="Création d'un nouveau projet" href="javascript:newProject()">Nouveau Projet</a></li>
- <li><a class="optionNotTask" title="Édition du projet" href="javascript:edProject()">Éditer le Projet</a></li>
- <li><a class="optionNotTask" title="Ouvrir ou fermer le projet" href="javascript:ofProject()">Ouvrir/Fermer le Projet</a></li>
- <li><a class="optionNotTask" title="Suppression du Projet" href="javascript:supprProject()">Supprimer le projet</a></li>
- </ul>
- </li>
- <li><a href="#">Tâche</a>
- <ul>
- <li><a title="Création d'une nouvelle tâche" href="javascript:newTask()">Nouvelle tâche</a></li>
- <li><a class="optionNotProject" title="Édition de la tâche" href="javascript:edTask()">Éditer la tâche</a></li>
- <li><a class="optionNotProject" title="Ouvrir ou fermer la tâche" href="javascript:ofTask()">Ouvrir/Fermer la tâche</a></li>
- <li><a class="optionNotProject" title="Suppression de la tâche" href="javascript:supprTask()">Supprimer la tâche</a></li>
-
- <li><a class="optionNotProject" title="Démarrage de la tâche" href="javascript:startTask()">Démarrer</a></li>
- <li><a class="optionNotProject" title="Arrêt de la tâche" href="javascript:stopTask()">Arrêter</a></li>
-
- <li><a class="optionNotProject" title="Ajout d'une annotation" href="javascript:addAnnotation()">Ajouter une annotation</a></li>
- <li><a class="optionNotProject" title="Édition des alertes" href="javascript:edAlerts()">Éditer les Alertes</a></li>
- <li><a class="optionNotProject" title="Ajout de 1 minute à la tâche" href="javascript:addsou(1)">Ajouter 1 minute</a></li>
- <li><a class="optionNotProject" title="Ajout de 5 minutes à la tâche" href="javascript:addsou(5)">Ajouter 5 minutes</a></li>
- <li><a class="optionNotProject" title="Ajout de 30 minutes à la tâche" href="javascript:addsou(30)">Ajouter 30 minutes</a></li>
- <li><a class="optionNotProject" title="Enlève 1 minute à la tâche" href="javascript:addsou(-1)">Enlever 1 minute</a></li>
- <li><a class="optionNotProject" title="Enlève 5 minutes à la tâche" href="javascript:addsou(-5)">Enlever 5 minutes</a></li>
- <li><a class="optionNotProject" title="Enlève 30 minutes à la tâche" href="javascript:addsou(-30)">Enlever 30 minutes</a></li>
- <li><a class="optionNotProject" title="Remet la tâche à zero" href="javascript:zero()">Remettre à Zero</a></li>
- <li><a class="optionNotProject" title="Fusionne les tâches sélectionnées" href="javascript:fusion()">Fusionner</a></li>
- </ul>
- </li>
- </ul>-->
+
+
+
<div class="buttons">
Nouveau projet : <input class="input-medium" id="newProject" title="Nom du nouveau Projet"><button id="createP" class="btn btn-primary" onclick="newProject"> Créer le projet</button>
</div>
+
+
+
<div id="tabTask">
<!-- Arborescence des Tasks -->
<div id="headTasks">
- <span class="col">Projet et tâches</span>
- <span class="col">Aujourd'hui</span>
- <span class="col">Total</span>
+ <span class='colHT'>Projet et tâches</span>
+ <span class='colHT'>Aujourd'hui</span>
+ <span class='colHT'>Total</span>
+ <span class="optHT">Options</span>
</div>
<ul id="treeTasks"><li>
<div class="selec" id="p1">
@@ -95,7 +69,7 @@
</div>
<ul class="subtask">
<li>
- <div class="selec" id="t5">
+ <div class="selec" id="t5"><img class="run" alt="run" src="img/running.gif">
<span class='col' id='titlet5'>Documentation</span>
<span class='col' id="aujt5">01:00:02</span>
<span class='col' id="tott5">06:54:24</span>
@@ -103,7 +77,7 @@
</div>
</li>
<li>
- <div class="selec" id="t9">
+ <div class="selec" id="t9"><img class="run" alt="run" src="img/running.gif">
<span class='col' id='titlet9'>Interface</span>
<span class='col' id="aujt9">00:24:56</span>
<span class='col' id="tott9">06:31:07</span>
@@ -162,37 +136,11 @@
<span id="generReport"><img src="img/applications-system.png" alt="apply">Générer</span>
<span id="mailReport"><img src="img/mail-forward.png" alt="mail">Envoyer par email</span>
</footer>
- <script>
- jQuery(function($){
- $.datepicker.regional['fr'] = {
- closeText: 'Fermer',
- prevText: 'Précédent',
- nextText: 'Suivant',
- currentText: 'Aujourd\'hui',
- monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
- monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin','Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
- dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
- dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
- dayNamesMin: ['D','L','M','M','J','V','S'],
- weekHeader: 'Sem.',
- dateFormat: 'dd/mm/yy',
- firstDay: 1,
- isRTL: false,
- showMonthAfterYear: false,
- yearSuffix: ''};
- $.datepicker.setDefaults($.datepicker.regional['fr']);
- });
- $( ".datepicker" ).datepicker({
- dateFormat: "DD dd MM yy",
- regional: 'fr'
- });
- </script>
</div>
</div>
-
<div id="editionTask" title="Edition de la tâche">
<input type="text" id="nameTask" name="newNameTask" value="x">
<!-- Calendrier à date selectionnable -->
@@ -204,19 +152,7 @@
Note:<textarea rows="4" id="noteTache"></textarea><br>
<input type="button" id="editionApply" value="Appliquer">
<input type="reset" id="editionCancel" value="Annuler">
- <script>
- $( "#datepicker2" ).datepicker({
- maxDate: -1,
- /*onSelect: function(dateText, inst){
- dateSelec(dateText);
- }*/
- });
- $("#spinnerh").spinner({ min: 0, max: 23 });
- $("#spinnerm").spinner({ min: 0, max: 59 });
- $("#spinners").spinner({ min: 0, max: 59 });
- </script>
</div>
- <script>$( "#editionTask" ).dialog({ autoOpen: false });/*$( "#createP" ).click(function() {$( "#editionTask" ).dialog( "open" );});*/</script>
@@ -226,7 +162,6 @@
<span id="bt2" onclick="action(2)">Licence</span><br>
<div id="frame"><p id="dataText"><b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2013, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.</p></div>
</div>
- <script>$( "#aboutPopUp" ).dialog({ autoOpen: false });</script>
@@ -242,9 +177,42 @@
</div>
<input type="button" id="alertAdd" value="Ajouter" onclick="add()">
</div>
- <script>$( "#alerts" ).dialog({ autoOpen: false });$( "#createP" ).click(function() {$( "#alerts" ).dialog( "open" );});</script>
+
+
+
+ <div id="optP">
+ <li><a title="Création d'une nouvelle tâche" href="javascript:newTask()">Nouvelle tâche</a></li>
+ <li><a class="optionNotTask" title="Édition du projet" href="javascript:edProject()">Éditer le Projet</a></li>
+ <li><a class="optionNotTask" title="Ouvrir ou fermer le projet" href="javascript:ofProject()">Ouvrir/Fermer le Projet</a></li>
+ <li><a class="optionNotTask" title="Suppression du Projet" href="javascript:supprProject()">Supprimer le projet</a></li>
+ </div>
+
+
+
+ <div id="optT">
+ <li><a title="Création d'une nouvelle tâche" href="javascript:newTask()">Nouvelle tâche</a></li>
+ <li><a class="optionNotProject" title="Édition de la tâche" href="javascript:edTask()">Éditer la tâche</a></li>
+ <li><a class="optionNotProject" title="Ouvrir ou fermer la tâche" href="javascript:ofTask()">Ouvrir/Fermer la tâche</a></li>
+ <li><a class="optionNotProject" title="Suppression de la tâche" href="javascript:supprTask()">Supprimer la tâche</a></li>
+
+ <li><a class="optionNotProject" title="Démarrage de la tâche" href="javascript:startTask()">Démarrer</a></li>
+ <li><a class="optionNotProject" title="Arrêt de la tâche" href="javascript:stopTask()">Arrêter</a></li>
+
+ <li><a class="optionNotProject" title="Ajout d'une annotation" href="javascript:addAnnotation()">Ajouter une annotation</a></li>
+ <li><a class="optionNotProject" title="Édition des alertes" href="javascript:edAlerts()">Éditer les Alertes</a></li>
+ <li><a class="optionNotProject" title="Ajout de 1 minute à la tâche" href="javascript:addsou(1)">Ajouter 1 minute</a></li>
+ <li><a class="optionNotProject" title="Ajout de 5 minutes à la tâche" href="javascript:addsou(5)">Ajouter 5 minutes</a></li>
+ <li><a class="optionNotProject" title="Ajout de 30 minutes à la tâche" href="javascript:addsou(30)">Ajouter 30 minutes</a></li>
+ <li><a class="optionNotProject" title="Enlève 1 minute à la tâche" href="javascript:addsou(-1)">Enlever 1 minute</a></li>
+ <li><a class="optionNotProject" title="Enlève 5 minutes à la tâche" href="javascript:addsou(-5)">Enlever 5 minutes</a></li>
+ <li><a class="optionNotProject" title="Enlève 30 minutes à la tâche" href="javascript:addsou(-30)">Enlever 30 minutes</a></li>
+ <li><a class="optionNotProject" title="Remet la tâche à zero" href="javascript:zero()">Remettre à Zero</a></li>
+ </div>
+
+
+
</body>
- <script>$(".brand").css("color","#ff7a04");$("#opts").css("display","none");selection();$(".onp").css("display","none");$("#newTask").css("display","none");$("#reportpage").css("display","none");</script>
+ <script>init();</script>
</html>
Modified: jtimerhtml5/src/main/resources/html/js/index.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/index.js 2013-06-12 09:25:58 UTC (rev 42)
+++ jtimerhtml5/src/main/resources/html/js/index.js 2013-06-12 13:51:24 UTC (rev 43)
@@ -1,5 +1,6 @@
var tabProjects = new Array();
var tabTasks = new Array();
+var displayElemT = new Array();
var elemSelec = "";
var opt = false;
var rpt = false;
@@ -44,10 +45,26 @@
$("#"+elemSelec).css('background-color','#A9EAFE');
});
+$(".selec").dblclick( function(){
+ startStopTask(this.id);
+});
+
var myVar;
-function startStopTask(){
- myVar = setInterval(function(){chrono(elemSelec)},1000);
+function startStopTask(elem){
+ if(displayElemT[elem].run==null){
+ displayElemT[elem].run = true;
+ $("#"+elem+" .run").css("display","");
+ }
+ else if (displayElemT[elem].run){
+ displayElemT[elem].run = false;
+ $("#"+elem+" .run").css("display","none");
+ }
+ else {
+ displayElemT[elem].run = true;
+ $("#"+elem+" .run").css("display","");
+ }
+ // myVar = setInterval(function(){chrono(elem)},1000);
}
function chrono(task){
@@ -131,7 +148,7 @@
}
else {
var newproject = "{}"; //le nouveau projet en format json
- $.get('http://localhost:8080/other/addProject/'+newproject,function(data){
+ $.put('http://localhost:8080/other/addProject/'+newproject,function(data){
alert(data);
});
}
@@ -144,7 +161,7 @@
alert("Erreur : Le nom est vide !");
}
else {
- $.get('http://localhost:8080/project/modifyProject/'+tabProjects[elemSelec.substring(1,elemSelec.length)],function(data){
+ $.post('http://localhost:8080/project/modifyProject/'+tabProjects[elemSelec.substring(1,elemSelec.length)],function(data){
alert(data);
});
}
@@ -152,7 +169,7 @@
}
function ofProject(){
- $.get('http://localhost:8080/task/changeClosedState/'+tabProjects[elemSelec.substring(1,elemSelec.length)],function(data){
+ $.post('http://localhost:8080/task/changeClosedState/'+tabProjects[elemSelec.substring(1,elemSelec.length)],function(data){
alert(data);
});
}
@@ -160,7 +177,7 @@
function supprProject() {
var bool = confirm("Voulez-vous supprimer le Projet x ?")
if (bool){
- $.get('http://localhost:8080/project/deleteProject/'+elemSelec.substring(1,elemSelec.length),function(data){
+ $.delete('http://localhost:8080/project/deleteProject/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
@@ -172,19 +189,15 @@
alert("Erreur : Le nom est vide !");
}
else {
- $.get('http://localhost:8080/task/addTask/'+nameNewTask,function(data){
+ $.put('http://localhost:8080/task/addTask/'+nameNewTask,function(data){
alert(data);
});
}
// vérifier si une autre tâche n'a pas déjà ce nom au même niveau
}
-function edTask(){
- window.open('editionTask.html','','height=450, width=350, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no');
-}
-
function ofTask(){
- $.get('http://localhost:8080/task/changeClosedState/'+elemSelec.substring(1,elemSelec.length),function(data){
+ $.post('http://localhost:8080/task/changeClosedState/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
@@ -192,7 +205,7 @@
function supprTask(){
var bool = confirm("Voulez-vous supprimer la tâche x ?");
if (bool){
- $.get('http://localhost:8080/task/deleteTask/'+elemSelec.substring(1,elemSelec.length),function(data){
+ $.delete('http://localhost:8080/task/deleteTask/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
@@ -203,19 +216,19 @@
}
function fusion(){
- $.get('http://localhost:8080/task/fusion',function(data){
+ $.post('http://localhost:8080/task/fusion',function(data){
alert(data);
});
}
function systray(){
- $.get('http://localhost:8080/task/systray',function(data){
+ $.post('http://localhost:8080/task/systray',function(data){
alert(data);
});
}
function dStartWeek(day){
- $.get('http://localhost:8080/task/dStartWeek/'+day,function(data){
+ $.post('http://localhost:8080/task/dStartWeek/'+day,function(data){
alert(data);
});
}
@@ -254,3 +267,59 @@
function suppr(n){
$("#num"+n).html('');
}
+
+function init(){
+ jQuery(function($){
+ $.datepicker.regional['fr'] = {
+ closeText: 'Fermer',
+ prevText: 'Précédent',
+ nextText: 'Suivant',
+ currentText: 'Aujourd\'hui',
+ monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
+ monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin','Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
+ dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
+ dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
+ dayNamesMin: ['D','L','M','M','J','V','S'],
+ weekHeader: 'Sem.',
+ dateFormat: 'dd/mm/yy',
+ firstDay: 1,
+ isRTL: false,
+ showMonthAfterYear: false,
+ yearSuffix: ''};
+ $.datepicker.setDefaults($.datepicker.regional['fr']);
+ });
+
+ $( ".datepicker" ).datepicker({
+ dateFormat: "DD dd MM yy",
+ regional: 'fr'
+ });
+
+ $( "#datepicker2" ).datepicker({
+ maxDate: -1,
+ /*onSelect: function(dateText, inst){
+ dateSelec(dateText);
+ }*/
+ });
+ $("#spinnerh").spinner({ min: 0, max: 23 });
+ $("#spinnerm").spinner({ min: 0, max: 59 });
+ $("#spinners").spinner({ min: 0, max: 59 });
+
+ $( "#editionTask" ).dialog({ autoOpen: false });
+ /*$( "#createP" ).click(function() {$( "#editionTask" ).dialog( "open" );});*/
+
+ $( "#aboutPopUp" ).dialog({ autoOpen: false });
+
+ $( "#alerts" ).dialog({ autoOpen: false });
+ $( "#createP" ).click(function() {$( "#alerts" ).dialog( "open" );});
+
+ $(".brand").css("color","#ff7a04");
+ $("#opts").css("display","none");
+ selection();
+ $(".onp").css("display","none");
+ $("#newTask").css("display","none");
+ $("#reportpage").css("display","none");
+ $(".run").css("display","none");
+
+ $("#optP").css("display","none");
+ $("#optT").css("display","none");
+}
Modified: jtimerhtml5/target/jtimer-2.0-SNAPSHOT.jar
===================================================================
(Binary files differ)
1
0
r42 - in jtimerhtml5: . src/main/java/org/chorem/jtimer src/main/resources/html src/main/resources/html/css src/main/resources/html/img src/main/resources/html/js target target/antrun target/generated-sources target/lib target/maven-archiver
by qmoriceau@users.chorem.org 12 Jun '13
by qmoriceau@users.chorem.org 12 Jun '13
12 Jun '13
Author: qmoriceau
Date: 2013-06-12 11:25:58 +0200 (Wed, 12 Jun 2013)
New Revision: 42
Url: http://chorem.org/projects/incubator/repository/revisions/42
Log:
Modification de l'interface, elle est en une seul fen?\195?\170tre dor?\195?\169navant.
Added:
jtimerhtml5/src/main/resources/html/js/index.js
jtimerhtml5/target/
jtimerhtml5/target/antrun/
jtimerhtml5/target/antrun/build-main.xml
jtimerhtml5/target/generated-sources/
jtimerhtml5/target/generated-sources/annotations/
jtimerhtml5/target/jtimer-2.0-SNAPSHOT.jar
jtimerhtml5/target/lib/
jtimerhtml5/target/lib/commons-beanutils-1.8.3.jar
jtimerhtml5/target/lib/commons-collections-3.2.1.jar
jtimerhtml5/target/lib/commons-io-2.3.jar
jtimerhtml5/target/lib/commons-logging-1.1.1.jar
jtimerhtml5/target/lib/commons-primitives-1.0.jar
jtimerhtml5/target/lib/gson-2.2.4.jar
jtimerhtml5/target/lib/h2-1.3.170.jar
jtimerhtml5/target/lib/javafx-2.2.3.jar
jtimerhtml5/target/lib/javax.servlet-3.0.0.v201112011016.jar
jtimerhtml5/target/lib/jetty-http-9.0.3.v20130506.jar
jtimerhtml5/target/lib/jetty-io-9.0.3.v20130506.jar
jtimerhtml5/target/lib/jetty-server-9.0.3.v20130506.jar
jtimerhtml5/target/lib/jetty-util-9.0.3.v20130506.jar
jtimerhtml5/target/lib/nuiton-i18n-2.4.jar
jtimerhtml5/target/lib/nuiton-utils-2.2.jar
jtimerhtml5/target/maven-archiver/
jtimerhtml5/target/maven-archiver/pom.properties
jtimerhtml5/target/surefire-workdir/
jtimerhtml5/target/surefire/
Removed:
jtimerhtml5/src/main/resources/html/about.html
jtimerhtml5/src/main/resources/html/alerts.html
jtimerhtml5/src/main/resources/html/css/about.css
jtimerhtml5/src/main/resources/html/css/alerts.css
jtimerhtml5/src/main/resources/html/css/editionT.css
jtimerhtml5/src/main/resources/html/css/img/
jtimerhtml5/src/main/resources/html/css/report.css
jtimerhtml5/src/main/resources/html/css/style.css
jtimerhtml5/src/main/resources/html/editionTask.html
jtimerhtml5/src/main/resources/html/img/bell.png
jtimerhtml5/src/main/resources/html/img/bookmark-new.png
jtimerhtml5/src/main/resources/html/img/document-new.png
jtimerhtml5/src/main/resources/html/img/go-next.png
jtimerhtml5/src/main/resources/html/img/notes.png
jtimerhtml5/src/main/resources/html/img/process-stop.png
jtimerhtml5/src/main/resources/html/js/alerts.js
jtimerhtml5/src/main/resources/html/js/editionT.js
jtimerhtml5/src/main/resources/html/js/jtimer.js
jtimerhtml5/src/main/resources/html/js/report.js
Modified:
jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java
jtimerhtml5/src/main/resources/html/css/index.css
jtimerhtml5/src/main/resources/html/index.html
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java 2013-06-12 09:25:58 UTC (rev 42)
@@ -36,21 +36,20 @@
Object result;
ExclusionStrategy excludeTasks = new TaskExclusionStrategy(TimerTask.class);
Gson gson = new GsonBuilder().setExclusionStrategies(excludeTasks).create();
-
- String[] param = new String[path.length-3];
+ Gson gson2 = new Gson();
+ Object[] param = new String[path.length-3];
for(int i=0;i<path.length-3;i++){
param[i]=path[i+3];
}
- /*if(path[1].equals("task")){ // test de transformation json to java
- param[0] = gson.fromJson(param[0], TimerTask.class);
+ if(path[1].equals("task")){ // test de transformation json to java
+ param[0] = gson2.fromJson((String) param[0], TimerTask.class);
}
else if(path[1].equals("project")){
- param[0] = gson.fromJson(param[0], TimerProject.class);
- }*/
+ param[0] = gson2.fromJson((String) param[0], TimerProject.class);
+ }
List<Method> m = ObjectUtil.getMethod(Storage.class,path[2],false);
-
try {
- result = ObjectUtil.call(storage, m.get(0), param);
+ result = ObjectUtil.call(storage, m.get(0), (String[]) param);
content = gson.toJson(result);
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
Deleted: jtimerhtml5/src/main/resources/html/about.html
===================================================================
--- jtimerhtml5/src/main/resources/html/about.html 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/about.html 2013-06-12 09:25:58 UTC (rev 42)
@@ -1,32 +0,0 @@
-<!DOCTYPE html>
-<html lang="fr">
- <head>
- <meta charset="UTF-8"/>
- <title>A propos de jTimer</title>
- <link rel="stylesheet" href="jtimer.css"/>
- <script src="jtimer.js"></script>
- <script type="text/javascript">
- <!-- //choix entre les deux texte via les boutons
- function action(i){
- if(i == 1){
- $('#dataText').html('<b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2012, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.');
- $('#bt1').css('background',"#339999");
- $('#bt2').css('background',"#ffffff");
- }
- if(i == 2){
- $('#dataText').html("Vous pouvez modifier et redistribuer ce programme sous les conditions énoncées par la licence GNU GPL (version 2 ou ultérieure). Une copie de la licence GPL est dans le fichier « LICENSE.txt » fourni avec jTimer. Tous droits réservés. Aucune garantie n'est fournie pour l'utilisation de ce programme.");
- $('#bt2').css('background',"#339999");
- $('#bt1').css('background',"#ffffff");
- }
- }
- //-->
- </script>
- </head>
- <body>
- <img src="img/jtimer-logo-orange.jpg" alt="logo"/><br>
- <span id="bt1" onclick="action(1)">A propos de jTimer</span>
- <span id="bt2" onclick="action(2)">Licence</span><br>
- <div id="frame"><p id="dataText"><b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2013, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.</p></div>
- <input id="close" type="submit" value="Fermer" OnClick="javascript:window.close()">
- </body>
-</html>
Deleted: jtimerhtml5/src/main/resources/html/alerts.html
===================================================================
--- jtimerhtml5/src/main/resources/html/alerts.html 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/alerts.html 2013-06-12 09:25:58 UTC (rev 42)
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html lang="fr">
- <head>
- <meta charset="UTF-8"/>
- <title>jTimer - Alertes</title>
- <link rel="stylesheet" href="jtimer.css"/>
- <script src="jtimer.js"></script>
- </head>
- <body>
- <b>Listes des alertes :</b>
- <span id="head">
- <input type="button" id="alertCancel" value="Annuler" OnClick="javascript:window.close()">
- <input type="button" id="alertSave" value="Sauver">
- </span>
- <br>
- <br>
- <div id="listAlerts">Type & Durée<br><br>
- </div>
- <input type="button" id="alertAdd" value="Ajouter" onclick="add()">
- </body>
-</html>
Deleted: jtimerhtml5/src/main/resources/html/css/about.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/about.css 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/css/about.css 2013-06-12 09:25:58 UTC (rev 42)
@@ -1,36 +0,0 @@
-#dataText {
- margin-left:5px;
-}
-
-#frame {
- width:400px;
- height:155px;
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- border-radius: 4px;
-}
-
-#bt1{
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- border-radius: 4px;
- cursor:pointer;
- background-color:#339999;
-}
-
-#bt2{
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- border-radius: 4px;
- cursor:pointer;
-}
-
-#close {
- margin-left:300px;
- margin-top:5px;
- width:100px;
- height:25px;
-}
Deleted: jtimerhtml5/src/main/resources/html/css/alerts.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/alerts.css 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/css/alerts.css 2013-06-12 09:25:58 UTC (rev 42)
@@ -1,15 +0,0 @@
-#alertCancel{
- width:70px;
- height:30px;
-}
-
-#alertSave {
- width:70px;
- height:30px;
-}
-
-#head{
- right:0px;
- position:fixed;
- margin-right:5px
-}
Deleted: jtimerhtml5/src/main/resources/html/css/editionT.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/editionT.css 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/css/editionT.css 2013-06-12 09:25:58 UTC (rev 42)
@@ -1,20 +0,0 @@
-#editionApply {
- width:32%;
- height: 30px;
-}
-#editionCancel {
- width:32%;
- height: 30px;
-}
-#editionClose {
- width:32%;
- height: 30px;
-}
-
-#nameTask {
- width:98%;
-}
-
-#noteTask {
- width:100%;
-}
Modified: jtimerhtml5/src/main/resources/html/css/index.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/index.css 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/css/index.css 2013-06-12 09:25:58 UTC (rev 42)
@@ -28,51 +28,15 @@
padding-left:12px;
}
-.buttons button {
- padding-right: 30px;
- padding-bottom: 30px;
+.selec {
+ width:100%;
+ display:inline-block;
}
.buttons {
- margin-bottom:20px;
- margin-left:20px;
+ margin:10px 0px 15px 10px;
}
-#startStopTask {
- background: url("img/go-next.png");
- background-repeat:no-repeat;
- background-position:center center;
-}
-
-#newProject {
- background: url("img/bookmark-new.png");
- background-repeat:no-repeat;
- background-position:center center;
-}
-
-#newTask {
- background: url("img/document-new.png");
- background-repeat:no-repeat;
- background-position:center center;
-}
-
-#note {
- background: url("img/notes.png");
- background-repeat:no-repeat;
- background-position:center center;
-}
-
-#alert {
- background: url("img/bell.png");
- background-repeat:no-repeat;
- background-position:center center;
-}
-
-.selec {
- width:100%;
- display:inline-block;
-}
-
.col {
width:30%;
display:inline-block;
@@ -199,3 +163,57 @@
#treeTasks {
list-style-type: none;
}
+
+#editionApply {
+ width:49%;
+ height: 30px;
+ display:inline-block;
+}
+
+#editionCancel {
+ width:49%;
+ height: 30px;
+ display:inline-block;
+}
+
+
+#dataText {
+ margin-left:5px;
+}
+
+#frame {
+ width:99%;
+ min-height:155px;
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ border-radius: 4px;
+}
+
+#bt1{
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ border-radius: 4px;
+ cursor:pointer;
+ background-color:#339999;
+}
+
+#bt2{
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ border-radius: 4px;
+ cursor:pointer;
+}
+
+
+#alertCancel{
+ width:70px;
+ height:30px;
+}
+
+#alertSave {
+ width:70px;
+ height:30px;
+}
Deleted: jtimerhtml5/src/main/resources/html/css/report.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/report.css 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/css/report.css 2013-06-12 09:25:58 UTC (rev 42)
@@ -1,105 +0,0 @@
-#divRight{
- width:50%;
- height:100%;
- float:right;
- margin:0;
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- border-radius: 4px;
-}
-
-#divLeft{
- width:49%;
- float:left;
- margin:0;
- height:100%;
-}
-
-#selectThisWeek{
- background: url(img/date_current.png);
- background-repeat:no-repeat;
- background-position:center center;
- width: 40px;
- height: 22px;
-}
-
-#selectLastWeek{
- background: url(img/date_previous.png);
- background-repeat:no-repeat;
- background-position:center center;
- width: 40px;
- height: 22px;
-}
-
-#endDate{
- margin-left:7px;
- width:70%;
-}
-
-#startDate{
- width:70%;
-}
-
-#textReport{
- width:96%;
- height:500px;
- margin-left:5px;
- margin-top:10px;
-}
-
-#generReport{
- width:17%;
- min-height:30px;
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- border-radius: 4px;
- cursor:pointer;
- display:inline-block;
- text-align:center;
- bottom:5px;
-}
-
-#mailReport{
- width:17%;
- min-height:30px;
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- border-radius: 4px;
- cursor:pointer;
- display:inline-block;
- text-align:center;
- bottom:5px;
-}
-
-#closeReport{
- width:13%;
- display:inline-block;
- bottom:10px;
-}
-
-#optionsReport{
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- height:100%;
- border-radius: 4px;
-}
-
-#projectsReport{
- border-style:solid;
- border-width:2px;
- border-color:#339999;
- height:100%;
- border-radius: 4px;
-}
-
-#monthReport{
- margin-left:50px;
-}
-
-#yearReport{
- margin-left:24px;
-}
Deleted: jtimerhtml5/src/main/resources/html/css/style.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/style.css 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/css/style.css 2013-06-12 09:25:58 UTC (rev 42)
@@ -1,9 +0,0 @@
-
-/* Global */
-
-footer {
- width:100%;
- position:fixed;
- bottom:0px;
- margin:0;
-}
Deleted: jtimerhtml5/src/main/resources/html/editionTask.html
===================================================================
--- jtimerhtml5/src/main/resources/html/editionTask.html 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/editionTask.html 2013-06-12 09:25:58 UTC (rev 42)
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<html lang="fr">
- <head>
- <meta charset="UTF-8"/>
- <title>Edition de la tâche</title>
- <link rel="stylesheet" href="jtimer.css"/>
- <script src="jtimer.js"></script>
- </head>
- <body>
- <div id="test"></div>
- <input type="text" id="nameTask" name="newNameTask" value="x">
- <!-- Calendrier à date selectionnable -->
- <div id="datepicker"></div>
- <footer>
- Temps:
- <input id="spinnerh" type="text" name="hour" value="00" size=2>:
- <input id="spinnerm" type="text" name="minutes" value="00" size=2>:
- <input id="spinners" type="text" name="seconds" value="00" size=2><br>
- Note:<textarea rows="4" id="noteTache"></textarea><br>
- <input type="button" id="editionApply" value="Appliquer">
- <input type="reset" id="editionCancel" value="Annuler">
- <input type="button" id="editionClose" value="Quitter" OnClick="javascript:window.close()">
- </footer>
- <script>
- $( "#datepicker" ).datepicker({
- maxDate: -1,
- onSelect: function(dateText, inst){
- dateSelec(dateText);
- }
- });
- $("#spinnerh").spinner({ min: 0, max: 23 });
- $("#spinnerm").spinner({ min: 0, max: 59 });
- $("#spinners").spinner({ min: 0, max: 59 });
- </script>
- </body>
-</html>
Deleted: jtimerhtml5/src/main/resources/html/img/bell.png
===================================================================
(Binary files differ)
Deleted: jtimerhtml5/src/main/resources/html/img/bookmark-new.png
===================================================================
(Binary files differ)
Deleted: jtimerhtml5/src/main/resources/html/img/document-new.png
===================================================================
(Binary files differ)
Deleted: jtimerhtml5/src/main/resources/html/img/go-next.png
===================================================================
(Binary files differ)
Deleted: jtimerhtml5/src/main/resources/html/img/notes.png
===================================================================
(Binary files differ)
Deleted: jtimerhtml5/src/main/resources/html/img/process-stop.png
===================================================================
(Binary files differ)
Modified: jtimerhtml5/src/main/resources/html/index.html
===================================================================
--- jtimerhtml5/src/main/resources/html/index.html 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/index.html 2013-06-12 09:25:58 UTC (rev 42)
@@ -19,7 +19,7 @@
<li class="optH" id="options"><a title="Options général" href="javascript:options()">Options</a></li>
<li class="optH" id="report"><a title="Création d'un rapport" href="javascript:report()">Rapport</a></li>
<li class="optH" id="about"><a title="À propos de jTimer" href="javascript:about()">À propos</a></li>
- <li class="optH" id="quit"><a title="Quitter l'application" href="javascript:window.close()">Quitter</a></li>
+ <!--<li class="optH" id="quit"><a title="Quitter l'application" href="javascript:window.close()">Quitter</a></li>-->
</ul>
</div>
</div>
@@ -77,13 +77,7 @@
</li>
</ul>-->
<div class="buttons">
- <button class="onp btn" id="startStopTask" title="Démarre ou arrête la tâche sélectionnée" onclick="startStopTask()"></button>
-
- <button class="btn" id="newProject" title="Création d'un nouveau Projet" onclick="newProject()"></button>
- <button class="btn" id="newTask" title="Création d'une nouvelle tâche" onclick="newTask()"></button>
-
- <button class="onp btn" id="note" title="Ajouter une annotation" onclick="addAnnotation()"></button>
- <button class="onp btn" id="alert" title="Edition des Alerts" onclick="edAlerts()"></button>
+ Nouveau projet : <input class="input-medium" id="newProject" title="Nom du nouveau Projet"><button id="createP" class="btn btn-primary" onclick="newProject"> Créer le projet</button>
</div>
<div id="tabTask">
<!-- Arborescence des Tasks -->
@@ -169,7 +163,6 @@
<span id="mailReport"><img src="img/mail-forward.png" alt="mail">Envoyer par email</span>
</footer>
<script>
- /*$
jQuery(function($){
$.datepicker.regional['fr'] = {
closeText: 'Fermer',
@@ -189,18 +182,67 @@
yearSuffix: ''};
$.datepicker.setDefaults($.datepicker.regional['fr']);
});
- (function() {
- $( ".datepicker" ).datepicker({
- dateFormat: "DD dd MM yy",
- regional: 'fr'
- });
- });*/
+ $( ".datepicker" ).datepicker({
+ dateFormat: "DD dd MM yy",
+ regional: 'fr'
+ });
</script>
</div>
</div>
+
+ <div id="editionTask" title="Edition de la tâche">
+ <input type="text" id="nameTask" name="newNameTask" value="x">
+ <!-- Calendrier à date selectionnable -->
+ <div id="datepicker2"></div>
+ Temps:
+ <input id="spinnerh" type="text" name="hour" value="00" size="2">:
+ <input id="spinnerm" type="text" name="minutes" value="00" size="2">:
+ <input id="spinners" type="text" name="seconds" value="00" size="2"><br>
+ Note:<textarea rows="4" id="noteTache"></textarea><br>
+ <input type="button" id="editionApply" value="Appliquer">
+ <input type="reset" id="editionCancel" value="Annuler">
+ <script>
+ $( "#datepicker2" ).datepicker({
+ maxDate: -1,
+ /*onSelect: function(dateText, inst){
+ dateSelec(dateText);
+ }*/
+ });
+ $("#spinnerh").spinner({ min: 0, max: 23 });
+ $("#spinnerm").spinner({ min: 0, max: 59 });
+ $("#spinners").spinner({ min: 0, max: 59 });
+ </script>
+ </div>
+ <script>$( "#editionTask" ).dialog({ autoOpen: false });/*$( "#createP" ).click(function() {$( "#editionTask" ).dialog( "open" );});*/</script>
+
+
+
+ <div id="aboutPopUp" title="A propos de jTimer">
+ <img src="img/jtimer-logo-orange.jpg" alt="logo"/><br>
+ <span id="bt1" onclick="action(1)">A propos de jTimer</span>
+ <span id="bt2" onclick="action(2)">Licence</span><br>
+ <div id="frame"><p id="dataText"><b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2013, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.</p></div>
+ </div>
+ <script>$( "#aboutPopUp" ).dialog({ autoOpen: false });</script>
+
+
+
+ <div id="alerts" title="Alertes de la tâche">
+ <span id="blockAlerte">
+ <b>Listes des alertes :</b>
+ <input type="button" id="alertCancel" value="Annuler" OnClick="javascript:window.close()">
+ <input type="button" id="alertSave" value="Sauver">
+ </span>
+ <br>
+ <br>
+ <div id="listAlerts">Type & Durée<br><br>
+ </div>
+ <input type="button" id="alertAdd" value="Ajouter" onclick="add()">
+ </div>
+ <script>$( "#alerts" ).dialog({ autoOpen: false });$( "#createP" ).click(function() {$( "#alerts" ).dialog( "open" );});</script>
</body>
<script>$(".brand").css("color","#ff7a04");$("#opts").css("display","none");selection();$(".onp").css("display","none");$("#newTask").css("display","none");$("#reportpage").css("display","none");</script>
</html>
Deleted: jtimerhtml5/src/main/resources/html/js/alerts.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/alerts.js 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/js/alerts.js 2013-06-12 09:25:58 UTC (rev 42)
@@ -1,20 +0,0 @@
-// trouver un moyen de supprimer les rows.
-var rows = 0;
-
-function add(){
- rows++;
- $('#listAlerts').append("<div id='num"+rows+"'><select><option value='rdt'>REACH_DAILY_TIME</option><option value='rtt'>REACH_TOTAL_TIME</option></select><input class='spinnerh' type='text' size='2'>h<input class='spinnerm' type='text' size='2'>m<input class='spinners' type='text' size='2'>s <input type='button' value='X' onclick='suppr("+rows+")'></div>");
- $(".spinnerh").spinner({ min: 0});
- $(".spinnerm").spinner({ min: 0, max: 59 });
- $(".spinners").spinner({ min: 0, max: 59 });
-}
-
-function suppr(n){
- $("#num"+n).html('');
-}
-
-function save(){
- $.get('http://services/alerts/save',function(data){
- alert(data);
- });
-}
Deleted: jtimerhtml5/src/main/resources/html/js/editionT.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/editionT.js 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/js/editionT.js 2013-06-12 09:25:58 UTC (rev 42)
@@ -1,9 +0,0 @@
-//réflechir à comment oppéré les modification !
-
-function dateSelec(date){
-
-}
-
-$("#editionApply").click(function(){
- //pour chaque modification on envois une requète .get par tâche ?
-});
Added: jtimerhtml5/src/main/resources/html/js/index.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/index.js (rev 0)
+++ jtimerhtml5/src/main/resources/html/js/index.js 2013-06-12 09:25:58 UTC (rev 42)
@@ -0,0 +1,256 @@
+var tabProjects = new Array();
+var tabTasks = new Array();
+var elemSelec = "";
+var opt = false;
+var rpt = false;
+
+
+function getProjects(){
+ $.getJSON('http://localhost:8080/other/getProjects',function(data) {
+ for (var i in data){
+ tabProjects[data[i].number] = data[i];
+ }
+ });
+}
+
+function getChilds(p){
+ $.getJSON('http://localhost:8080/task/getTasks/'+p,function(data) {
+ tabTasks[p] = new Array();
+ for (var i in data){
+ tabTasks[p][i] = data[i];
+ }
+ });
+}
+
+function showHideChilds(t){
+ $("#subT"+t).css();
+}
+
+function timeToday(i){
+ return 0;//tabProjects[i].allDaysTimes.;//aujourd'hui
+}
+
+function timeTotal(i){
+ var nb = 0;
+ for (var t in tabProjects[i].allDaysTimes){
+ nb = nb + tabProjects[i].allDaysTimes.t;
+ }
+ return nb;
+}
+
+$(".selec").click( function(){
+ $("#"+elemSelec).css('background-color','');
+ elemSelec = this.id;
+ $("#"+elemSelec).css('background-color','#A9EAFE');
+});
+
+var myVar;
+
+function startStopTask(){
+ myVar = setInterval(function(){chrono(elemSelec)},1000);
+}
+
+function chrono(task){
+ var timeauj = $("#auj"+task).html() // a rajouter directement dans le tableau puis à mettre à jour sur la page, et ne pas oublier de le répercuté sur les parents
+ $("#auj"+task).html(timeauj+1)
+ var timetot = $("#tot"+task).html()
+ $("#tot"+task).html(timetot+1)
+}
+
+function options(){
+ if (opt){
+ $("#opts").css("display","none");
+ $("#options").removeClass("active");
+ opt = false;
+ }
+ else {
+ $("#opts").css("display","");
+ $("#options").addClass("active");
+ opt = true;
+ }
+}
+
+function selection() {
+ $(".selec").click( function(){
+ $("#"+elemSelec).css('background-color','');
+ elemSelec = this.id;
+ $("#"+elemSelec).css('background-color','#A9EAFE');
+ if(elemSelec.charAt(0)=="p"){
+ $(".onp").css("display","none");
+ $("#newTask").css("display","");
+ }
+ else if(elemSelec.charAt(0)=="t"){
+ $(".onp").css("display","");
+ $("#newTask").css("display","");
+ }
+ });
+}
+
+function report(){
+ if (rpt){
+ $("#reportpage").css("display","none");
+ $("#jtimer").css("display","");
+ $("#report").removeClass("active");
+ rpt = false;
+ }
+ else {
+ $("#reportpage").css("display","");
+ $("#jtimer").css("display","none");
+ $("#report").addClass("active");
+ rpt = true;
+ }
+}
+
+var check = false;
+function checkTimeMark(){
+ if (check==false){
+ check=true;
+ $("#withTimeMark").css("display","");
+ }
+ else
+ {
+ check=false;
+ $("#withTimeMark").css("display","none");
+ }
+}
+
+function edAlerts(){
+ window.open('alerts.html','','height=400, width=600, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no');
+}
+
+function about(){
+ window.open('about.html','','height=405, width=420, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no');
+}
+
+/* Différente actions des menus et des boutons */
+
+function newProject(parent){
+ var nameNewProject = prompt("Nom du Projet à créer :", "" );
+ if (nameNewProject=="") {
+ alert("Erreur : Le nom est vide !");
+ }
+ else {
+ var newproject = "{}"; //le nouveau projet en format json
+ $.get('http://localhost:8080/other/addProject/'+newproject,function(data){
+ alert(data);
+ });
+ }
+ // vérifier si un autre projet n'a pas déjà ce nom
+}
+
+function edProject(){
+ var newnameProject = prompt("Nouveau nom du Projet :","x");
+ if (newnameProject=="") {
+ alert("Erreur : Le nom est vide !");
+ }
+ else {
+ $.get('http://localhost:8080/project/modifyProject/'+tabProjects[elemSelec.substring(1,elemSelec.length)],function(data){
+ alert(data);
+ });
+ }
+ // vérifier si un autre projet n'a pas déjà ce nom
+}
+
+function ofProject(){
+ $.get('http://localhost:8080/task/changeClosedState/'+tabProjects[elemSelec.substring(1,elemSelec.length)],function(data){
+ alert(data);
+ });
+}
+
+function supprProject() {
+ var bool = confirm("Voulez-vous supprimer le Projet x ?")
+ if (bool){
+ $.get('http://localhost:8080/project/deleteProject/'+elemSelec.substring(1,elemSelec.length),function(data){
+ alert(data);
+ });
+ }
+}
+
+function newTask() {
+ var nameNewTask = prompt("Nom de la tâche à créer pour x :", "" );
+ if (nameNewTask=="") {
+ alert("Erreur : Le nom est vide !");
+ }
+ else {
+ $.get('http://localhost:8080/task/addTask/'+nameNewTask,function(data){
+ alert(data);
+ });
+ }
+ // vérifier si une autre tâche n'a pas déjà ce nom au même niveau
+}
+
+function edTask(){
+ window.open('editionTask.html','','height=450, width=350, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no');
+}
+
+function ofTask(){
+ $.get('http://localhost:8080/task/changeClosedState/'+elemSelec.substring(1,elemSelec.length),function(data){
+ alert(data);
+ });
+}
+
+function supprTask(){
+ var bool = confirm("Voulez-vous supprimer la tâche x ?");
+ if (bool){
+ $.get('http://localhost:8080/task/deleteTask/'+elemSelec.substring(1,elemSelec.length),function(data){
+ alert(data);
+ });
+ }
+}
+
+function saveTask(){
+
+}
+
+function fusion(){
+ $.get('http://localhost:8080/task/fusion',function(data){
+ alert(data);
+ });
+}
+
+function systray(){
+ $.get('http://localhost:8080/task/systray',function(data){
+ alert(data);
+ });
+}
+
+function dStartWeek(day){
+ $.get('http://localhost:8080/task/dStartWeek/'+day,function(data){
+ alert(data);
+ });
+}
+
+
+
+
+function action(i){
+ if(i == 1){
+ $('#dataText').html('<b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2012, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.');
+ $('#bt1').css('background',"#339999");
+ $('#bt2').css('background',"#ffffff");
+ }
+ if(i == 2){
+ $('#dataText').html("Vous pouvez modifier et redistribuer ce programme sous les conditions énoncées par la licence GNU GPL (version 2 ou ultérieure). Une copie de la licence GPL est dans le fichier « LICENSE.txt » fourni avec jTimer. Tous droits réservés. Aucune garantie n'est fournie pour l'utilisation de ce programme.");
+ $('#bt2').css('background',"#339999");
+ $('#bt1').css('background',"#ffffff");
+ }
+}
+
+function about(){
+ $( "#aboutPopUp" ).dialog( "open" );
+}
+
+
+var rows = 0;
+
+function add(){
+ rows++;
+ $('#listAlerts').append("<div id='num"+rows+"'><select><option value='rdt'>REACH_DAILY_TIME</option><option value='rtt'>REACH_TOTAL_TIME</option></select><input class='spinnerh' type='text' size='2'>h<input class='spinnerm' type='text' size='2'>m<input class='spinners' type='text' size='2'>s <input type='button' value='X' onclick='suppr("+rows+")'></div>");
+ $(".spinnerh").spinner({ min: 0});
+ $(".spinnerm").spinner({ min: 0, max: 59 });
+ $(".spinners").spinner({ min: 0, max: 59 });
+}
+
+function suppr(n){
+ $("#num"+n).html('');
+}
Deleted: jtimerhtml5/src/main/resources/html/js/jtimer.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/jtimer.js 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/js/jtimer.js 2013-06-12 09:25:58 UTC (rev 42)
@@ -1,214 +0,0 @@
-var tabProjects = new Array();
-var tabTasks = new Array();
-var elemSelec = "";
-var opt = false;
-var rpt = false;
-
-
-function getProjects(){
- $.getJSON('http://localhost:8080/other/getProjects',function(data) {
- for (var i in data){
- tabProjects[data[i].number] = data[i];
- }
- });
-}
-
-function getChilds(p){
- $.getJSON('http://localhost:8080/task/getTasks/'+p,function(data) {
- tabTasks[p] = new Array();
- for (var i in data){
- tabTasks[p][i] = data[i];
- }
- });
-}
-
-function showHideChilds(t){
- $("#subT"+t).css();
-}
-
-function timeToday(i){
- return 0;//tabProjects[i].allDaysTimes.;//aujourd'hui
-}
-
-function timeTotal(i){
- var nb = 0;
- for (var t in tabProjects[i].allDaysTimes){
- nb = nb + tabProjects[i].allDaysTimes.t;
- }
- return nb;
-}
-
-$(".selec").click( function(){
- $("#"+elemSelec).css('background-color','');
- elemSelec = this.id;
- $("#"+elemSelec).css('background-color','#A9EAFE');
-});
-
-var myVar = setInterval(function(){startStopTask()},1000);
-
-function startStopTask(){
-
-}
-
-function options(){
- if (opt){
- $("#opts").css("display","none");
- $("#options").removeClass("active");
- opt = false;
- }
- else {
- $("#opts").css("display","");
- $("#options").addClass("active");
- opt = true;
- }
-}
-
-function selection() {
- $(".selec").click( function(){
- $("#"+elemSelec).css('background-color','');
- elemSelec = this.id;
- $("#"+elemSelec).css('background-color','#A9EAFE');
- if(elemSelec.charAt(0)=="p"){
- $(".onp").css("display","none");
- $("#newTask").css("display","");
- }
- else if(elemSelec.charAt(0)=="t"){
- $(".onp").css("display","");
- $("#newTask").css("display","");
- }
- });
-}
-
-function report(){
- if (rpt){
- $("#reportpage").css("display","none");
- $("#jtimer").css("display","");
- $("#report").removeClass("active");
- rpt = false;
- }
- else {
- $("#reportpage").css("display","");
- $("#jtimer").css("display","none");
- $("#report").addClass("active");
- rpt = true;
- }
-}
-
-var check = false;
-function checkTimeMark(){
- if (check==false){
- check=true;
- $("#withTimeMark").css("display","");
- }
- else
- {
- check=false;
- $("#withTimeMark").css("display","none");
- }
-}
-
-function edAlerts(){
- window.open('alerts.html','','height=400, width=600, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no');
-}
-
-function about(){
- window.open('about.html','','height=405, width=420, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no');
-}
-
-/* Différente actions des menus et des boutons */
-
-function newProject(parent){
- var nameNewProject = prompt("Nom du Projet à créer :", "" );
- if (nameNewProject=="") {
- alert("Erreur : Le nom est vide !");
- }
- else {
- var newproject = "{}"; //le nouveau projet en format json
- $.get('http://localhost:8080/other/addProject/'+newproject,function(data){
- alert(data);
- });
- }
- // vérifier si un autre projet n'a pas déjà ce nom
-}
-
-function edProject(){
- var newnameProject = prompt("Nouveau nom du Projet :","x");
- if (newnameProject=="") {
- alert("Erreur : Le nom est vide !");
- }
- else {
- $.get('http://localhost:8080/project/modifyProject/'+tabProjects[elemSelec.substring(1,elemSelec.length)],function(data){
- alert(data);
- });
- }
- // vérifier si un autre projet n'a pas déjà ce nom
-}
-
-function ofProject(){
- $.get('http://localhost:8080/task/changeClosedState/'+tabProjects[elemSelec.substring(1,elemSelec.length)],function(data){
- alert(data);
- });
-}
-
-function supprProject() {
- var bool = confirm("Voulez-vous supprimer le Projet x ?")
- if (bool){
- $.get('http://localhost:8080/project/deleteProject/'+elemSelec.substring(1,elemSelec.length),function(data){
- alert(data);
- });
- }
-}
-
-function newTask() {
- var nameNewTask = prompt("Nom de la tâche à créer pour x :", "" );
- if (nameNewTask=="") {
- alert("Erreur : Le nom est vide !");
- }
- else {
- $.get('http://localhost:8080/task/addTask/'+nameNewTask,function(data){
- alert(data);
- });
- }
- // vérifier si une autre tâche n'a pas déjà ce nom au même niveau
-}
-
-function edTask(){
- window.open('editionTask.html','','height=450, width=350, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no');
-}
-
-function ofTask(){
- $.get('http://localhost:8080/task/changeClosedState/'+elemSelec.substring(1,elemSelec.length),function(data){
- alert(data);
- });
-}
-
-function supprTask(){
- var bool = confirm("Voulez-vous supprimer la tâche x ?");
- if (bool){
- $.get('http://localhost:8080/task/deleteTask/'+elemSelec.substring(1,elemSelec.length),function(data){
- alert(data);
- });
- }
-}
-
-function saveTask(){
-
-}
-
-function fusion(){
- $.get('http://localhost:8080/task/fusion',function(data){
- alert(data);
- });
-}
-
-function systray(){
- $.get('http://localhost:8080/task/systray',function(data){
- alert(data);
- });
-}
-
-function dStartWeek(day){
- $.get('http://localhost:8080/task/dStartWeek/'+day,function(data){
- alert(data);
- });
-}
Deleted: jtimerhtml5/src/main/resources/html/js/report.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/report.js 2013-06-11 14:28:24 UTC (rev 41)
+++ jtimerhtml5/src/main/resources/html/js/report.js 2013-06-12 09:25:58 UTC (rev 42)
@@ -1,12 +0,0 @@
-var check = false;
-function checkTimeMark(){
- if (check==false){
- check=true;
- $("#withTimeMark").css("display","");
- }
- else
- {
- check=false;
- $("#withTimeMark").css("display","none");
- }
-}
Added: jtimerhtml5/target/antrun/build-main.xml
===================================================================
--- jtimerhtml5/target/antrun/build-main.xml (rev 0)
+++ jtimerhtml5/target/antrun/build-main.xml 2013-06-12 09:25:58 UTC (rev 42)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<project name="maven-antrun-" default="main" >
+<target name="main">
+ <mkdir dir="/home/quentin/Projet/jtimerhtml5/target/surefire-workdir"/>
+</target>
+</project>
\ No newline at end of file
Added: jtimerhtml5/target/jtimer-2.0-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/jtimer-2.0-SNAPSHOT.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/commons-beanutils-1.8.3.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/commons-beanutils-1.8.3.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/commons-collections-3.2.1.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/commons-collections-3.2.1.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/commons-io-2.3.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/commons-io-2.3.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/commons-logging-1.1.1.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/commons-logging-1.1.1.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/commons-primitives-1.0.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/commons-primitives-1.0.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/gson-2.2.4.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/gson-2.2.4.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/h2-1.3.170.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/h2-1.3.170.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/javafx-2.2.3.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/javafx-2.2.3.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/javax.servlet-3.0.0.v201112011016.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/javax.servlet-3.0.0.v201112011016.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/jetty-http-9.0.3.v20130506.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/jetty-http-9.0.3.v20130506.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/jetty-io-9.0.3.v20130506.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/jetty-io-9.0.3.v20130506.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/jetty-server-9.0.3.v20130506.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/jetty-server-9.0.3.v20130506.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/jetty-util-9.0.3.v20130506.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/jetty-util-9.0.3.v20130506.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/nuiton-i18n-2.4.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/nuiton-i18n-2.4.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/lib/nuiton-utils-2.2.jar
===================================================================
(Binary files differ)
Property changes on: jtimerhtml5/target/lib/nuiton-utils-2.2.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: jtimerhtml5/target/maven-archiver/pom.properties
===================================================================
--- jtimerhtml5/target/maven-archiver/pom.properties (rev 0)
+++ jtimerhtml5/target/maven-archiver/pom.properties 2013-06-12 09:25:58 UTC (rev 42)
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Wed Jun 12 11:21:21 CEST 2013
+version=2.0-SNAPSHOT
+groupId=org.chorem
+artifactId=jtimer
1
0
11 Jun '13
Author: qmoriceau
Date: 2013-06-11 16:28:24 +0200 (Tue, 11 Jun 2013)
New Revision: 41
Url: http://chorem.org/projects/incubator/repository/revisions/41
Log:
Changement de l'interface et ajout de quelques fonctionalit?\195?\169es
Added:
jtimerhtml5/src/main/resources/html/css/bootstrap.css
jtimerhtml5/src/main/resources/html/js/jtimer.js
Removed:
jtimerhtml5/src/main/resources/html/js/actionsMenus.js
jtimerhtml5/src/main/resources/html/report.html
jtimerhtml5/src/main/resources/html/test.html
Modified:
jtimerhtml5/src/main/resources/html/css/index.css
jtimerhtml5/src/main/resources/html/css/style.css
jtimerhtml5/src/main/resources/html/index.html
Added: jtimerhtml5/src/main/resources/html/css/bootstrap.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/bootstrap.css (rev 0)
+++ jtimerhtml5/src/main/resources/html/css/bootstrap.css 2013-06-11 14:28:24 UTC (rev 41)
@@ -0,0 +1,6167 @@
+/*!
+ * Bootstrap v2.3.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+
+.clearfix {
+ *zoom: 1;
+}
+
+.clearfix:before,
+.clearfix:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.clearfix:after {
+ clear: both;
+}
+
+.hide-text {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+.input-block-level {
+ display: block;
+ width: 100%;
+ min-height: 30px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+nav,
+section {
+ display: block;
+}
+
+audio,
+canvas,
+video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+
+audio:not([controls]) {
+ display: none;
+}
+
+html {
+ font-size: 100%;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+
+a:focus {
+ outline: thin dotted #333;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+a:hover,
+a:active {
+ outline: 0;
+}
+
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+img {
+ width: auto\9;
+ height: auto;
+ max-width: 100%;
+ vertical-align: middle;
+ border: 0;
+ -ms-interpolation-mode: bicubic;
+}
+
+#map_canvas img,
+.google-maps img {
+ max-width: none;
+}
+
+button,
+input,
+select,
+textarea {
+ margin: 0;
+ font-size: 100%;
+ vertical-align: middle;
+}
+
+button,
+input {
+ *overflow: visible;
+ line-height: normal;
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ padding: 0;
+ border: 0;
+}
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ cursor: pointer;
+ -webkit-appearance: button;
+}
+
+label,
+select,
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"],
+input[type="radio"],
+input[type="checkbox"] {
+ cursor: pointer;
+}
+
+input[type="search"] {
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ -webkit-appearance: textfield;
+}
+
+input[type="search"]::-webkit-search-decoration,
+input[type="search"]::-webkit-search-cancel-button {
+ -webkit-appearance: none;
+}
+
+textarea {
+ overflow: auto;
+ vertical-align: top;
+}
+
+@media print {
+ * {
+ color: #000 !important;
+ text-shadow: none !important;
+ background: transparent !important;
+ box-shadow: none !important;
+ }
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+ .ir a:after,
+ a[href^="javascript:"]:after,
+ a[href^="#"]:after {
+ content: "";
+ }
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+ thead {
+ display: table-header-group;
+ }
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+ img {
+ max-width: 100% !important;
+ }
+ @page {
+ margin: 0.5cm;
+ }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+}
+
+body {
+ margin: 0;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ line-height: 20px;
+ color: #333333;
+ background-color: #ffffff;
+}
+
+a {
+ color: #0088cc;
+ text-decoration: none;
+}
+
+a:hover,
+a:focus {
+ color: #005580;
+ text-decoration: underline;
+}
+
+.img-rounded {
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+}
+
+.img-polaroid {
+ padding: 4px;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+ -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+}
+
+.img-circle {
+ -webkit-border-radius: 500px;
+ -moz-border-radius: 500px;
+ border-radius: 500px;
+}
+
+.row {
+ margin-left: -20px;
+ *zoom: 1;
+}
+
+.row:before,
+.row:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.row:after {
+ clear: both;
+}
+
+[class*="span"] {
+ float: left;
+ min-height: 1px;
+ margin-left: 20px;
+}
+
+.container,
+.navbar-static-top .container,
+.navbar-fixed-top .container,
+.navbar-fixed-bottom .container {
+ width: 940px;
+}
+
+.span12 {
+ width: 940px;
+}
+
+.span11 {
+ width: 860px;
+}
+
+.span10 {
+ width: 780px;
+}
+
+.span9 {
+ width: 700px;
+}
+
+.span8 {
+ width: 620px;
+}
+
+.span7 {
+ width: 540px;
+}
+
+.span6 {
+ width: 460px;
+}
+
+.span5 {
+ width: 380px;
+}
+
+.span4 {
+ width: 300px;
+}
+
+.span3 {
+ width: 220px;
+}
+
+.span2 {
+ width: 140px;
+}
+
+.span1 {
+ width: 60px;
+}
+
+.offset12 {
+ margin-left: 980px;
+}
+
+.offset11 {
+ margin-left: 900px;
+}
+
+.offset10 {
+ margin-left: 820px;
+}
+
+.offset9 {
+ margin-left: 740px;
+}
+
+.offset8 {
+ margin-left: 660px;
+}
+
+.offset7 {
+ margin-left: 580px;
+}
+
+.offset6 {
+ margin-left: 500px;
+}
+
+.offset5 {
+ margin-left: 420px;
+}
+
+.offset4 {
+ margin-left: 340px;
+}
+
+.offset3 {
+ margin-left: 260px;
+}
+
+.offset2 {
+ margin-left: 180px;
+}
+
+.offset1 {
+ margin-left: 100px;
+}
+
+.row-fluid {
+ width: 100%;
+ *zoom: 1;
+}
+
+.row-fluid:before,
+.row-fluid:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.row-fluid:after {
+ clear: both;
+}
+
+.row-fluid [class*="span"] {
+ display: block;
+ float: left;
+ width: 100%;
+ min-height: 30px;
+ margin-left: 2.127659574468085%;
+ *margin-left: 2.074468085106383%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.row-fluid [class*="span"]:first-child {
+ margin-left: 0;
+}
+
+.row-fluid .controls-row [class*="span"] + [class*="span"] {
+ margin-left: 2.127659574468085%;
+}
+
+.row-fluid .span12 {
+ width: 100%;
+ *width: 99.94680851063829%;
+}
+
+.row-fluid .span11 {
+ width: 91.48936170212765%;
+ *width: 91.43617021276594%;
+}
+
+.row-fluid .span10 {
+ width: 82.97872340425532%;
+ *width: 82.92553191489361%;
+}
+
+.row-fluid .span9 {
+ width: 74.46808510638297%;
+ *width: 74.41489361702126%;
+}
+
+.row-fluid .span8 {
+ width: 65.95744680851064%;
+ *width: 65.90425531914893%;
+}
+
+.row-fluid .span7 {
+ width: 57.44680851063829%;
+ *width: 57.39361702127659%;
+}
+
+.row-fluid .span6 {
+ width: 48.93617021276595%;
+ *width: 48.88297872340425%;
+}
+
+.row-fluid .span5 {
+ width: 40.42553191489362%;
+ *width: 40.37234042553192%;
+}
+
+.row-fluid .span4 {
+ width: 31.914893617021278%;
+ *width: 31.861702127659576%;
+}
+
+.row-fluid .span3 {
+ width: 23.404255319148934%;
+ *width: 23.351063829787233%;
+}
+
+.row-fluid .span2 {
+ width: 14.893617021276595%;
+ *width: 14.840425531914894%;
+}
+
+.row-fluid .span1 {
+ width: 6.382978723404255%;
+ *width: 6.329787234042553%;
+}
+
+.row-fluid .offset12 {
+ margin-left: 104.25531914893617%;
+ *margin-left: 104.14893617021275%;
+}
+
+.row-fluid .offset12:first-child {
+ margin-left: 102.12765957446808%;
+ *margin-left: 102.02127659574467%;
+}
+
+.row-fluid .offset11 {
+ margin-left: 95.74468085106382%;
+ *margin-left: 95.6382978723404%;
+}
+
+.row-fluid .offset11:first-child {
+ margin-left: 93.61702127659574%;
+ *margin-left: 93.51063829787232%;
+}
+
+.row-fluid .offset10 {
+ margin-left: 87.23404255319149%;
+ *margin-left: 87.12765957446807%;
+}
+
+.row-fluid .offset10:first-child {
+ margin-left: 85.1063829787234%;
+ *margin-left: 84.99999999999999%;
+}
+
+.row-fluid .offset9 {
+ margin-left: 78.72340425531914%;
+ *margin-left: 78.61702127659572%;
+}
+
+.row-fluid .offset9:first-child {
+ margin-left: 76.59574468085106%;
+ *margin-left: 76.48936170212764%;
+}
+
+.row-fluid .offset8 {
+ margin-left: 70.2127659574468%;
+ *margin-left: 70.10638297872339%;
+}
+
+.row-fluid .offset8:first-child {
+ margin-left: 68.08510638297872%;
+ *margin-left: 67.9787234042553%;
+}
+
+.row-fluid .offset7 {
+ margin-left: 61.70212765957446%;
+ *margin-left: 61.59574468085106%;
+}
+
+.row-fluid .offset7:first-child {
+ margin-left: 59.574468085106375%;
+ *margin-left: 59.46808510638297%;
+}
+
+.row-fluid .offset6 {
+ margin-left: 53.191489361702125%;
+ *margin-left: 53.085106382978715%;
+}
+
+.row-fluid .offset6:first-child {
+ margin-left: 51.063829787234035%;
+ *margin-left: 50.95744680851063%;
+}
+
+.row-fluid .offset5 {
+ margin-left: 44.68085106382979%;
+ *margin-left: 44.57446808510638%;
+}
+
+.row-fluid .offset5:first-child {
+ margin-left: 42.5531914893617%;
+ *margin-left: 42.4468085106383%;
+}
+
+.row-fluid .offset4 {
+ margin-left: 36.170212765957444%;
+ *margin-left: 36.06382978723405%;
+}
+
+.row-fluid .offset4:first-child {
+ margin-left: 34.04255319148936%;
+ *margin-left: 33.93617021276596%;
+}
+
+.row-fluid .offset3 {
+ margin-left: 27.659574468085104%;
+ *margin-left: 27.5531914893617%;
+}
+
+.row-fluid .offset3:first-child {
+ margin-left: 25.53191489361702%;
+ *margin-left: 25.425531914893618%;
+}
+
+.row-fluid .offset2 {
+ margin-left: 19.148936170212764%;
+ *margin-left: 19.04255319148936%;
+}
+
+.row-fluid .offset2:first-child {
+ margin-left: 17.02127659574468%;
+ *margin-left: 16.914893617021278%;
+}
+
+.row-fluid .offset1 {
+ margin-left: 10.638297872340425%;
+ *margin-left: 10.53191489361702%;
+}
+
+.row-fluid .offset1:first-child {
+ margin-left: 8.51063829787234%;
+ *margin-left: 8.404255319148938%;
+}
+
+[class*="span"].hide,
+.row-fluid [class*="span"].hide {
+ display: none;
+}
+
+[class*="span"].pull-right,
+.row-fluid [class*="span"].pull-right {
+ float: right;
+}
+
+.container {
+ margin-right: auto;
+ margin-left: auto;
+ *zoom: 1;
+}
+
+.container:before,
+.container:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.container:after {
+ clear: both;
+}
+
+.container-fluid {
+ padding-right: 20px;
+ padding-left: 20px;
+ *zoom: 1;
+}
+
+.container-fluid:before,
+.container-fluid:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.container-fluid:after {
+ clear: both;
+}
+
+p {
+ margin: 0 0 10px;
+}
+
+.lead {
+ margin-bottom: 20px;
+ font-size: 21px;
+ font-weight: 200;
+ line-height: 30px;
+}
+
+small {
+ font-size: 85%;
+}
+
+strong {
+ font-weight: bold;
+}
+
+em {
+ font-style: italic;
+}
+
+cite {
+ font-style: normal;
+}
+
+.muted {
+ color: #999999;
+}
+
+a.muted:hover,
+a.muted:focus {
+ color: #808080;
+}
+
+.text-warning {
+ color: #c09853;
+}
+
+a.text-warning:hover,
+a.text-warning:focus {
+ color: #a47e3c;
+}
+
+.text-error {
+ color: #b94a48;
+}
+
+a.text-error:hover,
+a.text-error:focus {
+ color: #953b39;
+}
+
+.text-info {
+ color: #3a87ad;
+}
+
+a.text-info:hover,
+a.text-info:focus {
+ color: #2d6987;
+}
+
+.text-success {
+ color: #468847;
+}
+
+a.text-success:hover,
+a.text-success:focus {
+ color: #356635;
+}
+
+.text-left {
+ text-align: left;
+}
+
+.text-right {
+ text-align: right;
+}
+
+.text-center {
+ text-align: center;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin: 10px 0;
+ font-family: inherit;
+ font-weight: bold;
+ line-height: 20px;
+ color: inherit;
+ text-rendering: optimizelegibility;
+}
+
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+h6 small {
+ font-weight: normal;
+ line-height: 1;
+ color: #999999;
+}
+
+h1,
+h2,
+h3 {
+ line-height: 40px;
+}
+
+h1 {
+ font-size: 38.5px;
+}
+
+h2 {
+ font-size: 31.5px;
+}
+
+h3 {
+ font-size: 24.5px;
+}
+
+h4 {
+ font-size: 17.5px;
+}
+
+h5 {
+ font-size: 14px;
+}
+
+h6 {
+ font-size: 11.9px;
+}
+
+h1 small {
+ font-size: 24.5px;
+}
+
+h2 small {
+ font-size: 17.5px;
+}
+
+h3 small {
+ font-size: 14px;
+}
+
+h4 small {
+ font-size: 14px;
+}
+
+.page-header {
+ padding-bottom: 9px;
+ margin: 20px 0 30px;
+ border-bottom: 1px solid #eeeeee;
+}
+
+ul,
+ol {
+ padding: 0;
+ margin: 0 0 10px 25px;
+}
+
+ul ul,
+ul ol,
+ol ol,
+ol ul {
+ margin-bottom: 0;
+}
+
+li {
+ line-height: 20px;
+}
+
+ul.unstyled,
+ol.unstyled {
+ margin-left: 0;
+ list-style: none;
+}
+
+ul.inline,
+ol.inline {
+ margin-left: 0;
+ list-style: none;
+}
+
+ul.inline > li,
+ol.inline > li {
+ display: inline-block;
+ *display: inline;
+ padding-right: 5px;
+ padding-left: 5px;
+ *zoom: 1;
+}
+
+dl {
+ margin-bottom: 20px;
+}
+
+dt,
+dd {
+ line-height: 20px;
+}
+
+dt {
+ font-weight: bold;
+}
+
+dd {
+ margin-left: 10px;
+}
+
+.dl-horizontal {
+ *zoom: 1;
+}
+
+.dl-horizontal:before,
+.dl-horizontal:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.dl-horizontal:after {
+ clear: both;
+}
+
+.dl-horizontal dt {
+ float: left;
+ width: 160px;
+ overflow: hidden;
+ clear: left;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.dl-horizontal dd {
+ margin-left: 180px;
+}
+
+hr {
+ margin: 20px 0;
+ border: 0;
+ border-top: 1px solid #eeeeee;
+ border-bottom: 1px solid #ffffff;
+}
+
+abbr[title],
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #999999;
+}
+
+abbr.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+
+blockquote {
+ padding: 0 0 0 15px;
+ margin: 0 0 20px;
+ border-left: 5px solid #eeeeee;
+}
+
+blockquote p {
+ margin-bottom: 0;
+ font-size: 17.5px;
+ font-weight: 300;
+ line-height: 1.25;
+}
+
+blockquote small {
+ display: block;
+ line-height: 20px;
+ color: #999999;
+}
+
+blockquote small:before {
+ content: '\2014 \00A0';
+}
+
+blockquote.pull-right {
+ float: right;
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid #eeeeee;
+ border-left: 0;
+}
+
+blockquote.pull-right p,
+blockquote.pull-right small {
+ text-align: right;
+}
+
+blockquote.pull-right small:before {
+ content: '';
+}
+
+blockquote.pull-right small:after {
+ content: '\00A0 \2014';
+}
+
+q:before,
+q:after,
+blockquote:before,
+blockquote:after {
+ content: "";
+}
+
+address {
+ display: block;
+ margin-bottom: 20px;
+ font-style: normal;
+ line-height: 20px;
+}
+
+code,
+pre {
+ padding: 0 3px 2px;
+ font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
+ font-size: 12px;
+ color: #333333;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+
+code {
+ padding: 2px 4px;
+ color: #d14;
+ white-space: nowrap;
+ background-color: #f7f7f9;
+ border: 1px solid #e1e1e8;
+}
+
+pre {
+ display: block;
+ padding: 9.5px;
+ margin: 0 0 10px;
+ font-size: 13px;
+ line-height: 20px;
+ word-break: break-all;
+ word-wrap: break-word;
+ white-space: pre;
+ white-space: pre-wrap;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+
+pre.prettyprint {
+ margin-bottom: 20px;
+}
+
+pre code {
+ padding: 0;
+ color: inherit;
+ white-space: pre;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border: 0;
+}
+
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+
+form {
+ margin: 0 0 20px;
+}
+
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 20px;
+ font-size: 21px;
+ line-height: 40px;
+ color: #333333;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
+}
+
+legend small {
+ font-size: 15px;
+ color: #999999;
+}
+
+label,
+input,
+button,
+select,
+textarea {
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 20px;
+}
+
+input,
+button,
+select,
+textarea {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+
+label {
+ display: block;
+ margin-bottom: 5px;
+}
+
+select,
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input {
+ display: inline-block;
+ height: 20px;
+ padding: 4px 6px;
+ margin-bottom: 10px;
+ font-size: 14px;
+ line-height: 20px;
+ color: #555555;
+ vertical-align: middle;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+
+input,
+textarea,
+.uneditable-input {
+ width: 206px;
+}
+
+textarea {
+ height: auto;
+}
+
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input {
+ background-color: #ffffff;
+ border: 1px solid #cccccc;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
+ -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
+ -o-transition: border linear 0.2s, box-shadow linear 0.2s;
+ transition: border linear 0.2s, box-shadow linear 0.2s;
+}
+
+textarea:focus,
+input[type="text"]:focus,
+input[type="password"]:focus,
+input[type="datetime"]:focus,
+input[type="datetime-local"]:focus,
+input[type="date"]:focus,
+input[type="month"]:focus,
+input[type="time"]:focus,
+input[type="week"]:focus,
+input[type="number"]:focus,
+input[type="email"]:focus,
+input[type="url"]:focus,
+input[type="search"]:focus,
+input[type="tel"]:focus,
+input[type="color"]:focus,
+.uneditable-input:focus {
+ border-color: rgba(82, 168, 236, 0.8);
+ outline: 0;
+ outline: thin dotted \9;
+ /* IE6-9 */
+
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
+}
+
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9;
+ *margin-top: 0;
+ line-height: normal;
+}
+
+input[type="file"],
+input[type="image"],
+input[type="submit"],
+input[type="reset"],
+input[type="button"],
+input[type="radio"],
+input[type="checkbox"] {
+ width: auto;
+}
+
+select,
+input[type="file"] {
+ height: 30px;
+ /* In IE7, the height of the select element cannot be changed by height, only font-size */
+
+ *margin-top: 4px;
+ /* For IE7, add top margin to align select with labels */
+
+ line-height: 30px;
+}
+
+select {
+ width: 220px;
+ background-color: #ffffff;
+ border: 1px solid #cccccc;
+}
+
+select[multiple],
+select[size] {
+ height: auto;
+}
+
+select:focus,
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ outline: thin dotted #333;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+.uneditable-input,
+.uneditable-textarea {
+ color: #999999;
+ cursor: not-allowed;
+ background-color: #fcfcfc;
+ border-color: #cccccc;
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
+ -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
+}
+
+.uneditable-input {
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.uneditable-textarea {
+ width: auto;
+ height: auto;
+}
+
+input:-moz-placeholder,
+textarea:-moz-placeholder {
+ color: #999999;
+}
+
+input:-ms-input-placeholder,
+textarea:-ms-input-placeholder {
+ color: #999999;
+}
+
+input::-webkit-input-placeholder,
+textarea::-webkit-input-placeholder {
+ color: #999999;
+}
+
+.radio,
+.checkbox {
+ min-height: 20px;
+ padding-left: 20px;
+}
+
+.radio input[type="radio"],
+.checkbox input[type="checkbox"] {
+ float: left;
+ margin-left: -20px;
+}
+
+.controls > .radio:first-child,
+.controls > .checkbox:first-child {
+ padding-top: 5px;
+}
+
+.radio.inline,
+.checkbox.inline {
+ display: inline-block;
+ padding-top: 5px;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+
+.radio.inline + .radio.inline,
+.checkbox.inline + .checkbox.inline {
+ margin-left: 10px;
+}
+
+.input-mini {
+ width: 60px;
+}
+
+.input-small {
+ width: 90px;
+}
+
+.input-medium {
+ width: 150px;
+}
+
+.input-large {
+ width: 210px;
+}
+
+.input-xlarge {
+ width: 270px;
+}
+
+.input-xxlarge {
+ width: 530px;
+}
+
+input[class*="span"],
+select[class*="span"],
+textarea[class*="span"],
+.uneditable-input[class*="span"],
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"] {
+ float: none;
+ margin-left: 0;
+}
+
+.input-append input[class*="span"],
+.input-append .uneditable-input[class*="span"],
+.input-prepend input[class*="span"],
+.input-prepend .uneditable-input[class*="span"],
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"],
+.row-fluid .input-prepend [class*="span"],
+.row-fluid .input-append [class*="span"] {
+ display: inline-block;
+}
+
+input,
+textarea,
+.uneditable-input {
+ margin-left: 0;
+}
+
+.controls-row [class*="span"] + [class*="span"] {
+ margin-left: 20px;
+}
+
+input.span12,
+textarea.span12,
+.uneditable-input.span12 {
+ width: 926px;
+}
+
+input.span11,
+textarea.span11,
+.uneditable-input.span11 {
+ width: 846px;
+}
+
+input.span10,
+textarea.span10,
+.uneditable-input.span10 {
+ width: 766px;
+}
+
+input.span9,
+textarea.span9,
+.uneditable-input.span9 {
+ width: 686px;
+}
+
+input.span8,
+textarea.span8,
+.uneditable-input.span8 {
+ width: 606px;
+}
+
+input.span7,
+textarea.span7,
+.uneditable-input.span7 {
+ width: 526px;
+}
+
+input.span6,
+textarea.span6,
+.uneditable-input.span6 {
+ width: 446px;
+}
+
+input.span5,
+textarea.span5,
+.uneditable-input.span5 {
+ width: 366px;
+}
+
+input.span4,
+textarea.span4,
+.uneditable-input.span4 {
+ width: 286px;
+}
+
+input.span3,
+textarea.span3,
+.uneditable-input.span3 {
+ width: 206px;
+}
+
+input.span2,
+textarea.span2,
+.uneditable-input.span2 {
+ width: 126px;
+}
+
+input.span1,
+textarea.span1,
+.uneditable-input.span1 {
+ width: 46px;
+}
+
+.controls-row {
+ *zoom: 1;
+}
+
+.controls-row:before,
+.controls-row:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.controls-row:after {
+ clear: both;
+}
+
+.controls-row [class*="span"],
+.row-fluid .controls-row [class*="span"] {
+ float: left;
+}
+
+.controls-row .checkbox[class*="span"],
+.controls-row .radio[class*="span"] {
+ padding-top: 5px;
+}
+
+input[disabled],
+select[disabled],
+textarea[disabled],
+input[readonly],
+select[readonly],
+textarea[readonly] {
+ cursor: not-allowed;
+ background-color: #eeeeee;
+}
+
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+input[type="radio"][readonly],
+input[type="checkbox"][readonly] {
+ background-color: transparent;
+}
+
+.control-group.warning .control-label,
+.control-group.warning .help-block,
+.control-group.warning .help-inline {
+ color: #c09853;
+}
+
+.control-group.warning .checkbox,
+.control-group.warning .radio,
+.control-group.warning input,
+.control-group.warning select,
+.control-group.warning textarea {
+ color: #c09853;
+}
+
+.control-group.warning input,
+.control-group.warning select,
+.control-group.warning textarea {
+ border-color: #c09853;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.control-group.warning input:focus,
+.control-group.warning select:focus,
+.control-group.warning textarea:focus {
+ border-color: #a47e3c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
+}
+
+.control-group.warning .input-prepend .add-on,
+.control-group.warning .input-append .add-on {
+ color: #c09853;
+ background-color: #fcf8e3;
+ border-color: #c09853;
+}
+
+.control-group.error .control-label,
+.control-group.error .help-block,
+.control-group.error .help-inline {
+ color: #b94a48;
+}
+
+.control-group.error .checkbox,
+.control-group.error .radio,
+.control-group.error input,
+.control-group.error select,
+.control-group.error textarea {
+ color: #b94a48;
+}
+
+.control-group.error input,
+.control-group.error select,
+.control-group.error textarea {
+ border-color: #b94a48;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.control-group.error input:focus,
+.control-group.error select:focus,
+.control-group.error textarea:focus {
+ border-color: #953b39;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
+}
+
+.control-group.error .input-prepend .add-on,
+.control-group.error .input-append .add-on {
+ color: #b94a48;
+ background-color: #f2dede;
+ border-color: #b94a48;
+}
+
+.control-group.success .control-label,
+.control-group.success .help-block,
+.control-group.success .help-inline {
+ color: #468847;
+}
+
+.control-group.success .checkbox,
+.control-group.success .radio,
+.control-group.success input,
+.control-group.success select,
+.control-group.success textarea {
+ color: #468847;
+}
+
+.control-group.success input,
+.control-group.success select,
+.control-group.success textarea {
+ border-color: #468847;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.control-group.success input:focus,
+.control-group.success select:focus,
+.control-group.success textarea:focus {
+ border-color: #356635;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
+}
+
+.control-group.success .input-prepend .add-on,
+.control-group.success .input-append .add-on {
+ color: #468847;
+ background-color: #dff0d8;
+ border-color: #468847;
+}
+
+.control-group.info .control-label,
+.control-group.info .help-block,
+.control-group.info .help-inline {
+ color: #3a87ad;
+}
+
+.control-group.info .checkbox,
+.control-group.info .radio,
+.control-group.info input,
+.control-group.info select,
+.control-group.info textarea {
+ color: #3a87ad;
+}
+
+.control-group.info input,
+.control-group.info select,
+.control-group.info textarea {
+ border-color: #3a87ad;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.control-group.info input:focus,
+.control-group.info select:focus,
+.control-group.info textarea:focus {
+ border-color: #2d6987;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
+}
+
+.control-group.info .input-prepend .add-on,
+.control-group.info .input-append .add-on {
+ color: #3a87ad;
+ background-color: #d9edf7;
+ border-color: #3a87ad;
+}
+
+input:focus:invalid,
+textarea:focus:invalid,
+select:focus:invalid {
+ color: #b94a48;
+ border-color: #ee5f5b;
+}
+
+input:focus:invalid:focus,
+textarea:focus:invalid:focus,
+select:focus:invalid:focus {
+ border-color: #e9322d;
+ -webkit-box-shadow: 0 0 6px #f8b9b7;
+ -moz-box-shadow: 0 0 6px #f8b9b7;
+ box-shadow: 0 0 6px #f8b9b7;
+}
+
+.form-actions {
+ padding: 19px 20px 20px;
+ margin-top: 20px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #e5e5e5;
+ *zoom: 1;
+}
+
+.form-actions:before,
+.form-actions:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.form-actions:after {
+ clear: both;
+}
+
+.help-block,
+.help-inline {
+ color: #595959;
+}
+
+.help-block {
+ display: block;
+ margin-bottom: 10px;
+}
+
+.help-inline {
+ display: inline-block;
+ *display: inline;
+ padding-left: 5px;
+ vertical-align: middle;
+ *zoom: 1;
+}
+
+.input-append,
+.input-prepend {
+ display: inline-block;
+ margin-bottom: 10px;
+ font-size: 0;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+.input-append input,
+.input-prepend input,
+.input-append select,
+.input-prepend select,
+.input-append .uneditable-input,
+.input-prepend .uneditable-input,
+.input-append .dropdown-menu,
+.input-prepend .dropdown-menu,
+.input-append .popover,
+.input-prepend .popover {
+ font-size: 14px;
+}
+
+.input-append input,
+.input-prepend input,
+.input-append select,
+.input-prepend select,
+.input-append .uneditable-input,
+.input-prepend .uneditable-input {
+ position: relative;
+ margin-bottom: 0;
+ *margin-left: 0;
+ vertical-align: top;
+ -webkit-border-radius: 0 4px 4px 0;
+ -moz-border-radius: 0 4px 4px 0;
+ border-radius: 0 4px 4px 0;
+}
+
+.input-append input:focus,
+.input-prepend input:focus,
+.input-append select:focus,
+.input-prepend select:focus,
+.input-append .uneditable-input:focus,
+.input-prepend .uneditable-input:focus {
+ z-index: 2;
+}
+
+.input-append .add-on,
+.input-prepend .add-on {
+ display: inline-block;
+ width: auto;
+ height: 20px;
+ min-width: 16px;
+ padding: 4px 5px;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 20px;
+ text-align: center;
+ text-shadow: 0 1px 0 #ffffff;
+ background-color: #eeeeee;
+ border: 1px solid #ccc;
+}
+
+.input-append .add-on,
+.input-prepend .add-on,
+.input-append .btn,
+.input-prepend .btn,
+.input-append .btn-group > .dropdown-toggle,
+.input-prepend .btn-group > .dropdown-toggle {
+ vertical-align: top;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+
+.input-append .active,
+.input-prepend .active {
+ background-color: #a9dba9;
+ border-color: #46a546;
+}
+
+.input-prepend .add-on,
+.input-prepend .btn {
+ margin-right: -1px;
+}
+
+.input-prepend .add-on:first-child,
+.input-prepend .btn:first-child {
+ -webkit-border-radius: 4px 0 0 4px;
+ -moz-border-radius: 4px 0 0 4px;
+ border-radius: 4px 0 0 4px;
+}
+
+.input-append input,
+.input-append select,
+.input-append .uneditable-input {
+ -webkit-border-radius: 4px 0 0 4px;
+ -moz-border-radius: 4px 0 0 4px;
+ border-radius: 4px 0 0 4px;
+}
+
+.input-append input + .btn-group .btn:last-child,
+.input-append select + .btn-group .btn:last-child,
+.input-append .uneditable-input + .btn-group .btn:last-child {
+ -webkit-border-radius: 0 4px 4px 0;
+ -moz-border-radius: 0 4px 4px 0;
+ border-radius: 0 4px 4px 0;
+}
+
+.input-append .add-on,
+.input-append .btn,
+.input-append .btn-group {
+ margin-left: -1px;
+}
+
+.input-append .add-on:last-child,
+.input-append .btn:last-child,
+.input-append .btn-group:last-child > .dropdown-toggle {
+ -webkit-border-radius: 0 4px 4px 0;
+ -moz-border-radius: 0 4px 4px 0;
+ border-radius: 0 4px 4px 0;
+}
+
+.input-prepend.input-append input,
+.input-prepend.input-append select,
+.input-prepend.input-append .uneditable-input {
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+
+.input-prepend.input-append input + .btn-group .btn,
+.input-prepend.input-append select + .btn-group .btn,
+.input-prepend.input-append .uneditable-input + .btn-group .btn {
+ -webkit-border-radius: 0 4px 4px 0;
+ -moz-border-radius: 0 4px 4px 0;
+ border-radius: 0 4px 4px 0;
+}
+
+.input-prepend.input-append .add-on:first-child,
+.input-prepend.input-append .btn:first-child {
+ margin-right: -1px;
+ -webkit-border-radius: 4px 0 0 4px;
+ -moz-border-radius: 4px 0 0 4px;
+ border-radius: 4px 0 0 4px;
+}
+
+.input-prepend.input-append .add-on:last-child,
+.input-prepend.input-append .btn:last-child {
+ margin-left: -1px;
+ -webkit-border-radius: 0 4px 4px 0;
+ -moz-border-radius: 0 4px 4px 0;
+ border-radius: 0 4px 4px 0;
+}
+
+.input-prepend.input-append .btn-group:first-child {
+ margin-left: 0;
+}
+
+input.search-query {
+ padding-right: 14px;
+ padding-right: 4px \9;
+ padding-left: 14px;
+ padding-left: 4px \9;
+ /* IE7-8 doesn't have border-radius, so don't indent the padding */
+
+ margin-bottom: 0;
+ -webkit-border-radius: 15px;
+ -moz-border-radius: 15px;
+ border-radius: 15px;
+}
+
+/* Allow for input prepend/append in search forms */
+
+.form-search .input-append .search-query,
+.form-search .input-prepend .search-query {
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+
+.form-search .input-append .search-query {
+ -webkit-border-radius: 14px 0 0 14px;
+ -moz-border-radius: 14px 0 0 14px;
+ border-radius: 14px 0 0 14px;
+}
+
+.form-search .input-append .btn {
+ -webkit-border-radius: 0 14px 14px 0;
+ -moz-border-radius: 0 14px 14px 0;
+ border-radius: 0 14px 14px 0;
+}
+
+.form-search .input-prepend .search-query {
+ -webkit-border-radius: 0 14px 14px 0;
+ -moz-border-radius: 0 14px 14px 0;
+ border-radius: 0 14px 14px 0;
+}
+
+.form-search .input-prepend .btn {
+ -webkit-border-radius: 14px 0 0 14px;
+ -moz-border-radius: 14px 0 0 14px;
+ border-radius: 14px 0 0 14px;
+}
+
+.form-search input,
+.form-inline input,
+.form-horizontal input,
+.form-search textarea,
+.form-inline textarea,
+.form-horizontal textarea,
+.form-search select,
+.form-inline select,
+.form-horizontal select,
+.form-search .help-inline,
+.form-inline .help-inline,
+.form-horizontal .help-inline,
+.form-search .uneditable-input,
+.form-inline .uneditable-input,
+.form-horizontal .uneditable-input,
+.form-search .input-prepend,
+.form-inline .input-prepend,
+.form-horizontal .input-prepend,
+.form-search .input-append,
+.form-inline .input-append,
+.form-horizontal .input-append {
+ display: inline-block;
+ *display: inline;
+ margin-bottom: 0;
+ vertical-align: middle;
+ *zoom: 1;
+}
+
+.form-search .hide,
+.form-inline .hide,
+.form-horizontal .hide {
+ display: none;
+}
+
+.form-search label,
+.form-inline label,
+.form-search .btn-group,
+.form-inline .btn-group {
+ display: inline-block;
+}
+
+.form-search .input-append,
+.form-inline .input-append,
+.form-search .input-prepend,
+.form-inline .input-prepend {
+ margin-bottom: 0;
+}
+
+.form-search .radio,
+.form-search .checkbox,
+.form-inline .radio,
+.form-inline .checkbox {
+ padding-left: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+
+.form-search .radio input[type="radio"],
+.form-search .checkbox input[type="checkbox"],
+.form-inline .radio input[type="radio"],
+.form-inline .checkbox input[type="checkbox"] {
+ float: left;
+ margin-right: 3px;
+ margin-left: 0;
+}
+
+.control-group {
+ margin-bottom: 10px;
+}
+
+legend + .control-group {
+ margin-top: 20px;
+ -webkit-margin-top-collapse: separate;
+}
+
+.form-horizontal .control-group {
+ margin-bottom: 20px;
+ *zoom: 1;
+}
+
+.form-horizontal .control-group:before,
+.form-horizontal .control-group:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.form-horizontal .control-group:after {
+ clear: both;
+}
+
+.form-horizontal .control-label {
+ float: left;
+ width: 160px;
+ padding-top: 5px;
+ text-align: right;
+}
+
+.form-horizontal .controls {
+ *display: inline-block;
+ *padding-left: 20px;
+ margin-left: 180px;
+ *margin-left: 0;
+}
+
+.form-horizontal .controls:first-child {
+ *padding-left: 180px;
+}
+
+.form-horizontal .help-block {
+ margin-bottom: 0;
+}
+
+.form-horizontal input + .help-block,
+.form-horizontal select + .help-block,
+.form-horizontal textarea + .help-block,
+.form-horizontal .uneditable-input + .help-block,
+.form-horizontal .input-prepend + .help-block,
+.form-horizontal .input-append + .help-block {
+ margin-top: 10px;
+}
+
+.form-horizontal .form-actions {
+ padding-left: 180px;
+}
+
+table {
+ max-width: 100%;
+ background-color: transparent;
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+.table {
+ width: 100%;
+ margin-bottom: 20px;
+}
+
+.table th,
+.table td {
+ padding: 8px;
+ line-height: 20px;
+ text-align: left;
+ vertical-align: top;
+ border-top: 1px solid #dddddd;
+}
+
+.table th {
+ font-weight: bold;
+}
+
+.table thead th {
+ vertical-align: bottom;
+}
+
+.table caption + thead tr:first-child th,
+.table caption + thead tr:first-child td,
+.table colgroup + thead tr:first-child th,
+.table colgroup + thead tr:first-child td,
+.table thead:first-child tr:first-child th,
+.table thead:first-child tr:first-child td {
+ border-top: 0;
+}
+
+.table tbody + tbody {
+ border-top: 2px solid #dddddd;
+}
+
+.table .table {
+ background-color: #ffffff;
+}
+
+.table-condensed th,
+.table-condensed td {
+ padding: 4px 5px;
+}
+
+.table-bordered {
+ border: 1px solid #dddddd;
+ border-collapse: separate;
+ *border-collapse: collapse;
+ border-left: 0;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+
+.table-bordered th,
+.table-bordered td {
+ border-left: 1px solid #dddddd;
+}
+
+.table-bordered caption + thead tr:first-child th,
+.table-bordered caption + tbody tr:first-child th,
+.table-bordered caption + tbody tr:first-child td,
+.table-bordered colgroup + thead tr:first-child th,
+.table-bordered colgroup + tbody tr:first-child th,
+.table-bordered colgroup + tbody tr:first-child td,
+.table-bordered thead:first-child tr:first-child th,
+.table-bordered tbody:first-child tr:first-child th,
+.table-bordered tbody:first-child tr:first-child td {
+ border-top: 0;
+}
+
+.table-bordered thead:first-child tr:first-child > th:first-child,
+.table-bordered tbody:first-child tr:first-child > td:first-child,
+.table-bordered tbody:first-child tr:first-child > th:first-child {
+ -webkit-border-top-left-radius: 4px;
+ border-top-left-radius: 4px;
+ -moz-border-radius-topleft: 4px;
+}
+
+.table-bordered thead:first-child tr:first-child > th:last-child,
+.table-bordered tbody:first-child tr:first-child > td:last-child,
+.table-bordered tbody:first-child tr:first-child > th:last-child {
+ -webkit-border-top-right-radius: 4px;
+ border-top-right-radius: 4px;
+ -moz-border-radius-topright: 4px;
+}
+
+.table-bordered thead:last-child tr:last-child > th:first-child,
+.table-bordered tbody:last-child tr:last-child > td:first-child,
+.table-bordered tbody:last-child tr:last-child > th:first-child,
+.table-bordered tfoot:last-child tr:last-child > td:first-child,
+.table-bordered tfoot:last-child tr:last-child > th:first-child {
+ -webkit-border-bottom-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+ -moz-border-radius-bottomleft: 4px;
+}
+
+.table-bordered thead:last-child tr:last-child > th:last-child,
+.table-bordered tbody:last-child tr:last-child > td:last-child,
+.table-bordered tbody:last-child tr:last-child > th:last-child,
+.table-bordered tfoot:last-child tr:last-child > td:last-child,
+.table-bordered tfoot:last-child tr:last-child > th:last-child {
+ -webkit-border-bottom-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ -moz-border-radius-bottomright: 4px;
+}
+
+.table-bordered tfoot + tbody:last-child tr:last-child td:first-child {
+ -webkit-border-bottom-left-radius: 0;
+ border-bottom-left-radius: 0;
+ -moz-border-radius-bottomleft: 0;
+}
+
+.table-bordered tfoot + tbody:last-child tr:last-child td:last-child {
+ -webkit-border-bottom-right-radius: 0;
+ border-bottom-right-radius: 0;
+ -moz-border-radius-bottomright: 0;
+}
+
+.table-bordered caption + thead tr:first-child th:first-child,
+.table-bordered caption + tbody tr:first-child td:first-child,
+.table-bordered colgroup + thead tr:first-child th:first-child,
+.table-bordered colgroup + tbody tr:first-child td:first-child {
+ -webkit-border-top-left-radius: 4px;
+ border-top-left-radius: 4px;
+ -moz-border-radius-topleft: 4px;
+}
+
+.table-bordered caption + thead tr:first-child th:last-child,
+.table-bordered caption + tbody tr:first-child td:last-child,
+.table-bordered colgroup + thead tr:first-child th:last-child,
+.table-bordered colgroup + tbody tr:first-child td:last-child {
+ -webkit-border-top-right-radius: 4px;
+ border-top-right-radius: 4px;
+ -moz-border-radius-topright: 4px;
+}
+
+.table-striped tbody > tr:nth-child(odd) > td,
+.table-striped tbody > tr:nth-child(odd) > th {
+ background-color: #f9f9f9;
+}
+
+.table-hover tbody tr:hover > td,
+.table-hover tbody tr:hover > th {
+ background-color: #f5f5f5;
+}
+
+table td[class*="span"],
+table th[class*="span"],
+.row-fluid table td[class*="span"],
+.row-fluid table th[class*="span"] {
+ display: table-cell;
+ float: none;
+ margin-left: 0;
+}
+
+.table td.span1,
+.table th.span1 {
+ float: none;
+ width: 44px;
+ margin-left: 0;
+}
+
+.table td.span2,
+.table th.span2 {
+ float: none;
+ width: 124px;
+ margin-left: 0;
+}
+
+.table td.span3,
+.table th.span3 {
+ float: none;
+ width: 204px;
+ margin-left: 0;
+}
+
+.table td.span4,
+.table th.span4 {
+ float: none;
+ width: 284px;
+ margin-left: 0;
+}
+
+.table td.span5,
+.table th.span5 {
+ float: none;
+ width: 364px;
+ margin-left: 0;
+}
+
+.table td.span6,
+.table th.span6 {
+ float: none;
+ width: 444px;
+ margin-left: 0;
+}
+
+.table td.span7,
+.table th.span7 {
+ float: none;
+ width: 524px;
+ margin-left: 0;
+}
+
+.table td.span8,
+.table th.span8 {
+ float: none;
+ width: 604px;
+ margin-left: 0;
+}
+
+.table td.span9,
+.table th.span9 {
+ float: none;
+ width: 684px;
+ margin-left: 0;
+}
+
+.table td.span10,
+.table th.span10 {
+ float: none;
+ width: 764px;
+ margin-left: 0;
+}
+
+.table td.span11,
+.table th.span11 {
+ float: none;
+ width: 844px;
+ margin-left: 0;
+}
+
+.table td.span12,
+.table th.span12 {
+ float: none;
+ width: 924px;
+ margin-left: 0;
+}
+
+.table tbody tr.success > td {
+ background-color: #dff0d8;
+}
+
+.table tbody tr.error > td {
+ background-color: #f2dede;
+}
+
+.table tbody tr.warning > td {
+ background-color: #fcf8e3;
+}
+
+.table tbody tr.info > td {
+ background-color: #d9edf7;
+}
+
+.table-hover tbody tr.success:hover > td {
+ background-color: #d0e9c6;
+}
+
+.table-hover tbody tr.error:hover > td {
+ background-color: #ebcccc;
+}
+
+.table-hover tbody tr.warning:hover > td {
+ background-color: #faf2cc;
+}
+
+.table-hover tbody tr.info:hover > td {
+ background-color: #c4e3f3;
+}
+
+[class^="icon-"],
+[class*=" icon-"] {
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ margin-top: 1px;
+ *margin-right: .3em;
+ line-height: 14px;
+ vertical-align: text-top;
+ background-image: url("../img/glyphicons-halflings.png");
+ background-position: 14px 14px;
+ background-repeat: no-repeat;
+}
+
+/* White icons with optional class, or on hover/focus/active states of certain elements */
+
+.icon-white,
+.nav-pills > .active > a > [class^="icon-"],
+.nav-pills > .active > a > [class*=" icon-"],
+.nav-list > .active > a > [class^="icon-"],
+.nav-list > .active > a > [class*=" icon-"],
+.navbar-inverse .nav > .active > a > [class^="icon-"],
+.navbar-inverse .nav > .active > a > [class*=" icon-"],
+.dropdown-menu > li > a:hover > [class^="icon-"],
+.dropdown-menu > li > a:focus > [class^="icon-"],
+.dropdown-menu > li > a:hover > [class*=" icon-"],
+.dropdown-menu > li > a:focus > [class*=" icon-"],
+.dropdown-menu > .active > a > [class^="icon-"],
+.dropdown-menu > .active > a > [class*=" icon-"],
+.dropdown-submenu:hover > a > [class^="icon-"],
+.dropdown-submenu:focus > a > [class^="icon-"],
+.dropdown-submenu:hover > a > [class*=" icon-"],
+.dropdown-submenu:focus > a > [class*=" icon-"] {
+ background-image: url("../img/glyphicons-halflings-white.png");
+}
+
+.icon-glass {
+ background-position: 0 0;
+}
+
+.icon-music {
+ background-position: -24px 0;
+}
+
+.icon-search {
+ background-position: -48px 0;
+}
+
+.icon-envelope {
+ background-position: -72px 0;
+}
+
+.icon-heart {
+ background-position: -96px 0;
+}
+
+.icon-star {
+ background-position: -120px 0;
+}
+
+.icon-star-empty {
+ background-position: -144px 0;
+}
+
+.icon-user {
+ background-position: -168px 0;
+}
+
+.icon-film {
+ background-position: -192px 0;
+}
+
+.icon-th-large {
+ background-position: -216px 0;
+}
+
+.icon-th {
+ background-position: -240px 0;
+}
+
+.icon-th-list {
+ background-position: -264px 0;
+}
+
+.icon-ok {
+ background-position: -288px 0;
+}
+
+.icon-remove {
+ background-position: -312px 0;
+}
+
+.icon-zoom-in {
+ background-position: -336px 0;
+}
+
+.icon-zoom-out {
+ background-position: -360px 0;
+}
+
+.icon-off {
+ background-position: -384px 0;
+}
+
+.icon-signal {
+ background-position: -408px 0;
+}
+
+.icon-cog {
+ background-position: -432px 0;
+}
+
+.icon-trash {
+ background-position: -456px 0;
+}
+
+.icon-home {
+ background-position: 0 -24px;
+}
+
+.icon-file {
+ background-position: -24px -24px;
+}
+
+.icon-time {
+ background-position: -48px -24px;
+}
+
+.icon-road {
+ background-position: -72px -24px;
+}
+
+.icon-download-alt {
+ background-position: -96px -24px;
+}
+
+.icon-download {
+ background-position: -120px -24px;
+}
+
+.icon-upload {
+ background-position: -144px -24px;
+}
+
+.icon-inbox {
+ background-position: -168px -24px;
+}
+
+.icon-play-circle {
+ background-position: -192px -24px;
+}
+
+.icon-repeat {
+ background-position: -216px -24px;
+}
+
+.icon-refresh {
+ background-position: -240px -24px;
+}
+
+.icon-list-alt {
+ background-position: -264px -24px;
+}
+
+.icon-lock {
+ background-position: -287px -24px;
+}
+
+.icon-flag {
+ background-position: -312px -24px;
+}
+
+.icon-headphones {
+ background-position: -336px -24px;
+}
+
+.icon-volume-off {
+ background-position: -360px -24px;
+}
+
+.icon-volume-down {
+ background-position: -384px -24px;
+}
+
+.icon-volume-up {
+ background-position: -408px -24px;
+}
+
+.icon-qrcode {
+ background-position: -432px -24px;
+}
+
+.icon-barcode {
+ background-position: -456px -24px;
+}
+
+.icon-tag {
+ background-position: 0 -48px;
+}
+
+.icon-tags {
+ background-position: -25px -48px;
+}
+
+.icon-book {
+ background-position: -48px -48px;
+}
+
+.icon-bookmark {
+ background-position: -72px -48px;
+}
+
+.icon-print {
+ background-position: -96px -48px;
+}
+
+.icon-camera {
+ background-position: -120px -48px;
+}
+
+.icon-font {
+ background-position: -144px -48px;
+}
+
+.icon-bold {
+ background-position: -167px -48px;
+}
+
+.icon-italic {
+ background-position: -192px -48px;
+}
+
+.icon-text-height {
+ background-position: -216px -48px;
+}
+
+.icon-text-width {
+ background-position: -240px -48px;
+}
+
+.icon-align-left {
+ background-position: -264px -48px;
+}
+
+.icon-align-center {
+ background-position: -288px -48px;
+}
+
+.icon-align-right {
+ background-position: -312px -48px;
+}
+
+.icon-align-justify {
+ background-position: -336px -48px;
+}
+
+.icon-list {
+ background-position: -360px -48px;
+}
+
+.icon-indent-left {
+ background-position: -384px -48px;
+}
+
+.icon-indent-right {
+ background-position: -408px -48px;
+}
+
+.icon-facetime-video {
+ background-position: -432px -48px;
+}
+
+.icon-picture {
+ background-position: -456px -48px;
+}
+
+.icon-pencil {
+ background-position: 0 -72px;
+}
+
+.icon-map-marker {
+ background-position: -24px -72px;
+}
+
+.icon-adjust {
+ background-position: -48px -72px;
+}
+
+.icon-tint {
+ background-position: -72px -72px;
+}
+
+.icon-edit {
+ background-position: -96px -72px;
+}
+
+.icon-share {
+ background-position: -120px -72px;
+}
+
+.icon-check {
+ background-position: -144px -72px;
+}
+
+.icon-move {
+ background-position: -168px -72px;
+}
+
+.icon-step-backward {
+ background-position: -192px -72px;
+}
+
+.icon-fast-backward {
+ background-position: -216px -72px;
+}
+
+.icon-backward {
+ background-position: -240px -72px;
+}
+
+.icon-play {
+ background-position: -264px -72px;
+}
+
+.icon-pause {
+ background-position: -288px -72px;
+}
+
+.icon-stop {
+ background-position: -312px -72px;
+}
+
+.icon-forward {
+ background-position: -336px -72px;
+}
+
+.icon-fast-forward {
+ background-position: -360px -72px;
+}
+
+.icon-step-forward {
+ background-position: -384px -72px;
+}
+
+.icon-eject {
+ background-position: -408px -72px;
+}
+
+.icon-chevron-left {
+ background-position: -432px -72px;
+}
+
+.icon-chevron-right {
+ background-position: -456px -72px;
+}
+
+.icon-plus-sign {
+ background-position: 0 -96px;
+}
+
+.icon-minus-sign {
+ background-position: -24px -96px;
+}
+
+.icon-remove-sign {
+ background-position: -48px -96px;
+}
+
+.icon-ok-sign {
+ background-position: -72px -96px;
+}
+
+.icon-question-sign {
+ background-position: -96px -96px;
+}
+
+.icon-info-sign {
+ background-position: -120px -96px;
+}
+
+.icon-screenshot {
+ background-position: -144px -96px;
+}
+
+.icon-remove-circle {
+ background-position: -168px -96px;
+}
+
+.icon-ok-circle {
+ background-position: -192px -96px;
+}
+
+.icon-ban-circle {
+ background-position: -216px -96px;
+}
+
+.icon-arrow-left {
+ background-position: -240px -96px;
+}
+
+.icon-arrow-right {
+ background-position: -264px -96px;
+}
+
+.icon-arrow-up {
+ background-position: -289px -96px;
+}
+
+.icon-arrow-down {
+ background-position: -312px -96px;
+}
+
+.icon-share-alt {
+ background-position: -336px -96px;
+}
+
+.icon-resize-full {
+ background-position: -360px -96px;
+}
+
+.icon-resize-small {
+ background-position: -384px -96px;
+}
+
+.icon-plus {
+ background-position: -408px -96px;
+}
+
+.icon-minus {
+ background-position: -433px -96px;
+}
+
+.icon-asterisk {
+ background-position: -456px -96px;
+}
+
+.icon-exclamation-sign {
+ background-position: 0 -120px;
+}
+
+.icon-gift {
+ background-position: -24px -120px;
+}
+
+.icon-leaf {
+ background-position: -48px -120px;
+}
+
+.icon-fire {
+ background-position: -72px -120px;
+}
+
+.icon-eye-open {
+ background-position: -96px -120px;
+}
+
+.icon-eye-close {
+ background-position: -120px -120px;
+}
+
+.icon-warning-sign {
+ background-position: -144px -120px;
+}
+
+.icon-plane {
+ background-position: -168px -120px;
+}
+
+.icon-calendar {
+ background-position: -192px -120px;
+}
+
+.icon-random {
+ width: 16px;
+ background-position: -216px -120px;
+}
+
+.icon-comment {
+ background-position: -240px -120px;
+}
+
+.icon-magnet {
+ background-position: -264px -120px;
+}
+
+.icon-chevron-up {
+ background-position: -288px -120px;
+}
+
+.icon-chevron-down {
+ background-position: -313px -119px;
+}
+
+.icon-retweet {
+ background-position: -336px -120px;
+}
+
+.icon-shopping-cart {
+ background-position: -360px -120px;
+}
+
+.icon-folder-close {
+ width: 16px;
+ background-position: -384px -120px;
+}
+
+.icon-folder-open {
+ width: 16px;
+ background-position: -408px -120px;
+}
+
+.icon-resize-vertical {
+ background-position: -432px -119px;
+}
+
+.icon-resize-horizontal {
+ background-position: -456px -118px;
+}
+
+.icon-hdd {
+ background-position: 0 -144px;
+}
+
+.icon-bullhorn {
+ background-position: -24px -144px;
+}
+
+.icon-bell {
+ background-position: -48px -144px;
+}
+
+.icon-certificate {
+ background-position: -72px -144px;
+}
+
+.icon-thumbs-up {
+ background-position: -96px -144px;
+}
+
+.icon-thumbs-down {
+ background-position: -120px -144px;
+}
+
+.icon-hand-right {
+ background-position: -144px -144px;
+}
+
+.icon-hand-left {
+ background-position: -168px -144px;
+}
+
+.icon-hand-up {
+ background-position: -192px -144px;
+}
+
+.icon-hand-down {
+ background-position: -216px -144px;
+}
+
+.icon-circle-arrow-right {
+ background-position: -240px -144px;
+}
+
+.icon-circle-arrow-left {
+ background-position: -264px -144px;
+}
+
+.icon-circle-arrow-up {
+ background-position: -288px -144px;
+}
+
+.icon-circle-arrow-down {
+ background-position: -312px -144px;
+}
+
+.icon-globe {
+ background-position: -336px -144px;
+}
+
+.icon-wrench {
+ background-position: -360px -144px;
+}
+
+.icon-tasks {
+ background-position: -384px -144px;
+}
+
+.icon-filter {
+ background-position: -408px -144px;
+}
+
+.icon-briefcase {
+ background-position: -432px -144px;
+}
+
+.icon-fullscreen {
+ background-position: -456px -144px;
+}
+
+.dropup,
+.dropdown {
+ position: relative;
+}
+
+.dropdown-toggle {
+ *margin-bottom: -3px;
+}
+
+.dropdown-toggle:active,
+.open .dropdown-toggle {
+ outline: 0;
+}
+
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ vertical-align: top;
+ border-top: 4px solid #000000;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+ content: "";
+}
+
+.dropdown .caret {
+ margin-top: 8px;
+ margin-left: 2px;
+}
+
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ list-style: none;
+ background-color: #ffffff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ *border-right-width: 2px;
+ *border-bottom-width: 2px;
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+}
+
+.dropdown-menu.pull-right {
+ right: 0;
+ left: auto;
+}
+
+.dropdown-menu .divider {
+ *width: 100%;
+ height: 1px;
+ margin: 9px 1px;
+ *margin: -5px 0 5px;
+ overflow: hidden;
+ background-color: #e5e5e5;
+ border-bottom: 1px solid #ffffff;
+}
+
+.dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 20px;
+ color: #333333;
+ white-space: nowrap;
+}
+
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus,
+.dropdown-submenu:hover > a,
+.dropdown-submenu:focus > a {
+ color: #ffffff;
+ text-decoration: none;
+ background-color: #0081c2;
+ background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
+ background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
+ background-image: -o-linear-gradient(top, #0088cc, #0077b3);
+ background-image: linear-gradient(to bottom, #0088cc, #0077b3);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
+}
+
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ color: #ffffff;
+ text-decoration: none;
+ background-color: #0081c2;
+ background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
+ background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
+ background-image: -o-linear-gradient(top, #0088cc, #0077b3);
+ background-image: linear-gradient(to bottom, #0088cc, #0077b3);
+ background-repeat: repeat-x;
+ outline: 0;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
+}
+
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ color: #999999;
+}
+
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ cursor: default;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.open {
+ *z-index: 1000;
+}
+
+.open > .dropdown-menu {
+ display: block;
+}
+
+.dropdown-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 990;
+}
+
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+ border-top: 0;
+ border-bottom: 4px solid #000000;
+ content: "";
+}
+
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 1px;
+}
+
+.dropdown-submenu {
+ position: relative;
+}
+
+.dropdown-submenu > .dropdown-menu {
+ top: 0;
+ left: 100%;
+ margin-top: -6px;
+ margin-left: -1px;
+ -webkit-border-radius: 0 6px 6px 6px;
+ -moz-border-radius: 0 6px 6px 6px;
+ border-radius: 0 6px 6px 6px;
+}
+
+.dropdown-submenu:hover > .dropdown-menu {
+ display: block;
+}
+
+.dropup .dropdown-submenu > .dropdown-menu {
+ top: auto;
+ bottom: 0;
+ margin-top: 0;
+ margin-bottom: -2px;
+ -webkit-border-radius: 5px 5px 5px 0;
+ -moz-border-radius: 5px 5px 5px 0;
+ border-radius: 5px 5px 5px 0;
+}
+
+.dropdown-submenu > a:after {
+ display: block;
+ float: right;
+ width: 0;
+ height: 0;
+ margin-top: 5px;
+ margin-right: -10px;
+ border-color: transparent;
+ border-left-color: #cccccc;
+ border-style: solid;
+ border-width: 5px 0 5px 5px;
+ content: " ";
+}
+
+.dropdown-submenu:hover > a:after {
+ border-left-color: #ffffff;
+}
+
+.dropdown-submenu.pull-left {
+ float: none;
+}
+
+.dropdown-submenu.pull-left > .dropdown-menu {
+ left: -100%;
+ margin-left: 10px;
+ -webkit-border-radius: 6px 0 6px 6px;
+ -moz-border-radius: 6px 0 6px 6px;
+ border-radius: 6px 0 6px 6px;
+}
+
+.dropdown .dropdown-menu .nav-header {
+ padding-right: 20px;
+ padding-left: 20px;
+}
+
+.typeahead {
+ z-index: 1051;
+ margin-top: 2px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+
+.well blockquote {
+ border-color: #ddd;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+
+.well-large {
+ padding: 24px;
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+}
+
+.well-small {
+ padding: 9px;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+
+.fade {
+ opacity: 0;
+ -webkit-transition: opacity 0.15s linear;
+ -moz-transition: opacity 0.15s linear;
+ -o-transition: opacity 0.15s linear;
+ transition: opacity 0.15s linear;
+}
+
+.fade.in {
+ opacity: 1;
+}
+
+.collapse {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition: height 0.35s ease;
+ -moz-transition: height 0.35s ease;
+ -o-transition: height 0.35s ease;
+ transition: height 0.35s ease;
+}
+
+.collapse.in {
+ height: auto;
+}
+
+.close {
+ float: right;
+ font-size: 20px;
+ font-weight: bold;
+ line-height: 20px;
+ color: #000000;
+ text-shadow: 0 1px 0 #ffffff;
+ opacity: 0.2;
+ filter: alpha(opacity=20);
+}
+
+.close:hover,
+.close:focus {
+ color: #000000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: 0.4;
+ filter: alpha(opacity=40);
+}
+
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+}
+
+.btn {
+ display: inline-block;
+ *display: inline;
+ padding: 4px 12px;
+ margin-bottom: 0;
+ *margin-left: .3em;
+ font-size: 14px;
+ line-height: 20px;
+ color: #333333;
+ text-align: center;
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
+ vertical-align: middle;
+ cursor: pointer;
+ background-color: #f5f5f5;
+ *background-color: #e6e6e6;
+ background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
+ background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
+ background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
+ background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
+ background-repeat: repeat-x;
+ border: 1px solid #cccccc;
+ *border: 0;
+ border-color: #e6e6e6 #e6e6e6 #bfbfbf;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ border-bottom-color: #b3b3b3;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ *zoom: 1;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.btn:hover,
+.btn:focus,
+.btn:active,
+.btn.active,
+.btn.disabled,
+.btn[disabled] {
+ color: #333333;
+ background-color: #e6e6e6;
+ *background-color: #d9d9d9;
+}
+
+.btn:active,
+.btn.active {
+ background-color: #cccccc \9;
+}
+
+.btn:first-child {
+ *margin-left: 0;
+}
+
+.btn:hover,
+.btn:focus {
+ color: #333333;
+ text-decoration: none;
+ background-position: 0 -15px;
+ -webkit-transition: background-position 0.1s linear;
+ -moz-transition: background-position 0.1s linear;
+ -o-transition: background-position 0.1s linear;
+ transition: background-position 0.1s linear;
+}
+
+.btn:focus {
+ outline: thin dotted #333;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+.btn.active,
+.btn:active {
+ background-image: none;
+ outline: 0;
+ -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.btn.disabled,
+.btn[disabled] {
+ cursor: default;
+ background-image: none;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+
+.btn-large {
+ padding: 11px 19px;
+ font-size: 17.5px;
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+}
+
+.btn-large [class^="icon-"],
+.btn-large [class*=" icon-"] {
+ margin-top: 4px;
+}
+
+.btn-small {
+ padding: 2px 10px;
+ font-size: 11.9px;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+
+.btn-small [class^="icon-"],
+.btn-small [class*=" icon-"] {
+ margin-top: 0;
+}
+
+.btn-mini [class^="icon-"],
+.btn-mini [class*=" icon-"] {
+ margin-top: -1px;
+}
+
+.btn-mini {
+ padding: 0 6px;
+ font-size: 10.5px;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+
+.btn-block {
+ display: block;
+ width: 100%;
+ padding-right: 0;
+ padding-left: 0;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.btn-block + .btn-block {
+ margin-top: 5px;
+}
+
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+ width: 100%;
+}
+
+.btn-primary.active,
+.btn-warning.active,
+.btn-danger.active,
+.btn-success.active,
+.btn-info.active,
+.btn-inverse.active {
+ color: rgba(255, 255, 255, 0.75);
+}
+
+.btn-primary {
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #006dcc;
+ *background-color: #0044cc;
+ background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
+ background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
+ background-image: -o-linear-gradient(top, #0088cc, #0044cc);
+ background-image: linear-gradient(to bottom, #0088cc, #0044cc);
+ background-repeat: repeat-x;
+ border-color: #0044cc #0044cc #002a80;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-primary:hover,
+.btn-primary:focus,
+.btn-primary:active,
+.btn-primary.active,
+.btn-primary.disabled,
+.btn-primary[disabled] {
+ color: #ffffff;
+ background-color: #0044cc;
+ *background-color: #003bb3;
+}
+
+.btn-primary:active,
+.btn-primary.active {
+ background-color: #003399 \9;
+}
+
+.btn-warning {
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #faa732;
+ *background-color: #f89406;
+ background-image: -moz-linear-gradient(top, #fbb450, #f89406);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
+ background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
+ background-image: -o-linear-gradient(top, #fbb450, #f89406);
+ background-image: linear-gradient(to bottom, #fbb450, #f89406);
+ background-repeat: repeat-x;
+ border-color: #f89406 #f89406 #ad6704;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-warning:hover,
+.btn-warning:focus,
+.btn-warning:active,
+.btn-warning.active,
+.btn-warning.disabled,
+.btn-warning[disabled] {
+ color: #ffffff;
+ background-color: #f89406;
+ *background-color: #df8505;
+}
+
+.btn-warning:active,
+.btn-warning.active {
+ background-color: #c67605 \9;
+}
+
+.btn-danger {
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #da4f49;
+ *background-color: #bd362f;
+ background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
+ background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
+ background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
+ background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
+ background-repeat: repeat-x;
+ border-color: #bd362f #bd362f #802420;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-danger:hover,
+.btn-danger:focus,
+.btn-danger:active,
+.btn-danger.active,
+.btn-danger.disabled,
+.btn-danger[disabled] {
+ color: #ffffff;
+ background-color: #bd362f;
+ *background-color: #a9302a;
+}
+
+.btn-danger:active,
+.btn-danger.active {
+ background-color: #942a25 \9;
+}
+
+.btn-success {
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #5bb75b;
+ *background-color: #51a351;
+ background-image: -moz-linear-gradient(top, #62c462, #51a351);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
+ background-image: -webkit-linear-gradient(top, #62c462, #51a351);
+ background-image: -o-linear-gradient(top, #62c462, #51a351);
+ background-image: linear-gradient(to bottom, #62c462, #51a351);
+ background-repeat: repeat-x;
+ border-color: #51a351 #51a351 #387038;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-success:hover,
+.btn-success:focus,
+.btn-success:active,
+.btn-success.active,
+.btn-success.disabled,
+.btn-success[disabled] {
+ color: #ffffff;
+ background-color: #51a351;
+ *background-color: #499249;
+}
+
+.btn-success:active,
+.btn-success.active {
+ background-color: #408140 \9;
+}
+
+.btn-info {
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #49afcd;
+ *background-color: #2f96b4;
+ background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
+ background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
+ background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
+ background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);
+ background-repeat: repeat-x;
+ border-color: #2f96b4 #2f96b4 #1f6377;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-info:hover,
+.btn-info:focus,
+.btn-info:active,
+.btn-info.active,
+.btn-info.disabled,
+.btn-info[disabled] {
+ color: #ffffff;
+ background-color: #2f96b4;
+ *background-color: #2a85a0;
+}
+
+.btn-info:active,
+.btn-info.active {
+ background-color: #24748c \9;
+}
+
+.btn-inverse {
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #363636;
+ *background-color: #222222;
+ background-image: -moz-linear-gradient(top, #444444, #222222);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
+ background-image: -webkit-linear-gradient(top, #444444, #222222);
+ background-image: -o-linear-gradient(top, #444444, #222222);
+ background-image: linear-gradient(to bottom, #444444, #222222);
+ background-repeat: repeat-x;
+ border-color: #222222 #222222 #000000;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-inverse:hover,
+.btn-inverse:focus,
+.btn-inverse:active,
+.btn-inverse.active,
+.btn-inverse.disabled,
+.btn-inverse[disabled] {
+ color: #ffffff;
+ background-color: #222222;
+ *background-color: #151515;
+}
+
+.btn-inverse:active,
+.btn-inverse.active {
+ background-color: #080808 \9;
+}
+
+button.btn,
+input[type="submit"].btn {
+ *padding-top: 3px;
+ *padding-bottom: 3px;
+}
+
+button.btn::-moz-focus-inner,
+input[type="submit"].btn::-moz-focus-inner {
+ padding: 0;
+ border: 0;
+}
+
+button.btn.btn-large,
+input[type="submit"].btn.btn-large {
+ *padding-top: 7px;
+ *padding-bottom: 7px;
+}
+
+button.btn.btn-small,
+input[type="submit"].btn.btn-small {
+ *padding-top: 3px;
+ *padding-bottom: 3px;
+}
+
+button.btn.btn-mini,
+input[type="submit"].btn.btn-mini {
+ *padding-top: 1px;
+ *padding-bottom: 1px;
+}
+
+.btn-link,
+.btn-link:active,
+.btn-link[disabled] {
+ background-color: transparent;
+ background-image: none;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+
+.btn-link {
+ color: #0088cc;
+ cursor: pointer;
+ border-color: transparent;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+
+.btn-link:hover,
+.btn-link:focus {
+ color: #005580;
+ text-decoration: underline;
+ background-color: transparent;
+}
+
+.btn-link[disabled]:hover,
+.btn-link[disabled]:focus {
+ color: #333333;
+ text-decoration: none;
+}
+
+.btn-group {
+ position: relative;
+ display: inline-block;
+ *display: inline;
+ *margin-left: .3em;
+ font-size: 0;
+ white-space: nowrap;
+ vertical-align: middle;
+ *zoom: 1;
+}
+
+.btn-group:first-child {
+ *margin-left: 0;
+}
+
+.btn-group + .btn-group {
+ margin-left: 5px;
+}
+
+.btn-toolbar {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ font-size: 0;
+}
+
+.btn-toolbar > .btn + .btn,
+.btn-toolbar > .btn-group + .btn,
+.btn-toolbar > .btn + .btn-group {
+ margin-left: 5px;
+}
+
+.btn-group > .btn {
+ position: relative;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+
+.btn-group > .btn + .btn {
+ margin-left: -1px;
+}
+
+.btn-group > .btn,
+.btn-group > .dropdown-menu,
+.btn-group > .popover {
+ font-size: 14px;
+}
+
+.btn-group > .btn-mini {
+ font-size: 10.5px;
+}
+
+.btn-group > .btn-small {
+ font-size: 11.9px;
+}
+
+.btn-group > .btn-large {
+ font-size: 17.5px;
+}
+
+.btn-group > .btn:first-child {
+ margin-left: 0;
+ -webkit-border-bottom-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ border-top-left-radius: 4px;
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-topleft: 4px;
+}
+
+.btn-group > .btn:last-child,
+.btn-group > .dropdown-toggle {
+ -webkit-border-top-right-radius: 4px;
+ border-top-right-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-bottomright: 4px;
+}
+
+.btn-group > .btn.large:first-child {
+ margin-left: 0;
+ -webkit-border-bottom-left-radius: 6px;
+ border-bottom-left-radius: 6px;
+ -webkit-border-top-left-radius: 6px;
+ border-top-left-radius: 6px;
+ -moz-border-radius-bottomleft: 6px;
+ -moz-border-radius-topleft: 6px;
+}
+
+.btn-group > .btn.large:last-child,
+.btn-group > .large.dropdown-toggle {
+ -webkit-border-top-right-radius: 6px;
+ border-top-right-radius: 6px;
+ -webkit-border-bottom-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+ -moz-border-radius-topright: 6px;
+ -moz-border-radius-bottomright: 6px;
+}
+
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active {
+ z-index: 2;
+}
+
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+
+.btn-group > .btn + .dropdown-toggle {
+ *padding-top: 5px;
+ padding-right: 8px;
+ *padding-bottom: 5px;
+ padding-left: 8px;
+ -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+ -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.btn-group > .btn-mini + .dropdown-toggle {
+ *padding-top: 2px;
+ padding-right: 5px;
+ *padding-bottom: 2px;
+ padding-left: 5px;
+}
+
+.btn-group > .btn-small + .dropdown-toggle {
+ *padding-top: 5px;
+ *padding-bottom: 4px;
+}
+
+.btn-group > .btn-large + .dropdown-toggle {
+ *padding-top: 7px;
+ padding-right: 12px;
+ *padding-bottom: 7px;
+ padding-left: 12px;
+}
+
+.btn-group.open .dropdown-toggle {
+ background-image: none;
+ -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.btn-group.open .btn.dropdown-toggle {
+ background-color: #e6e6e6;
+}
+
+.btn-group.open .btn-primary.dropdown-toggle {
+ background-color: #0044cc;
+}
+
+.btn-group.open .btn-warning.dropdown-toggle {
+ background-color: #f89406;
+}
+
+.btn-group.open .btn-danger.dropdown-toggle {
+ background-color: #bd362f;
+}
+
+.btn-group.open .btn-success.dropdown-toggle {
+ background-color: #51a351;
+}
+
+.btn-group.open .btn-info.dropdown-toggle {
+ background-color: #2f96b4;
+}
+
+.btn-group.open .btn-inverse.dropdown-toggle {
+ background-color: #222222;
+}
+
+.btn .caret {
+ margin-top: 8px;
+ margin-left: 0;
+}
+
+.btn-large .caret {
+ margin-top: 6px;
+}
+
+.btn-large .caret {
+ border-top-width: 5px;
+ border-right-width: 5px;
+ border-left-width: 5px;
+}
+
+.btn-mini .caret,
+.btn-small .caret {
+ margin-top: 8px;
+}
+
+.dropup .btn-large .caret {
+ border-bottom-width: 5px;
+}
+
+.btn-primary .caret,
+.btn-warning .caret,
+.btn-danger .caret,
+.btn-info .caret,
+.btn-success .caret,
+.btn-inverse .caret {
+ border-top-color: #ffffff;
+ border-bottom-color: #ffffff;
+}
+
+.btn-group-vertical {
+ display: inline-block;
+ *display: inline;
+ /* IE7 inline-block hack */
+
+ *zoom: 1;
+}
+
+.btn-group-vertical > .btn {
+ display: block;
+ float: none;
+ max-width: 100%;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+
+.btn-group-vertical > .btn + .btn {
+ margin-top: -1px;
+ margin-left: 0;
+}
+
+.btn-group-vertical > .btn:first-child {
+ -webkit-border-radius: 4px 4px 0 0;
+ -moz-border-radius: 4px 4px 0 0;
+ border-radius: 4px 4px 0 0;
+}
+
+.btn-group-vertical > .btn:last-child {
+ -webkit-border-radius: 0 0 4px 4px;
+ -moz-border-radius: 0 0 4px 4px;
+ border-radius: 0 0 4px 4px;
+}
+
+.btn-group-vertical > .btn-large:first-child {
+ -webkit-border-radius: 6px 6px 0 0;
+ -moz-border-radius: 6px 6px 0 0;
+ border-radius: 6px 6px 0 0;
+}
+
+.btn-group-vertical > .btn-large:last-child {
+ -webkit-border-radius: 0 0 6px 6px;
+ -moz-border-radius: 0 0 6px 6px;
+ border-radius: 0 0 6px 6px;
+}
+
+.alert {
+ padding: 8px 35px 8px 14px;
+ margin-bottom: 20px;
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+ background-color: #fcf8e3;
+ border: 1px solid #fbeed5;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+
+.alert,
+.alert h4 {
+ color: #c09853;
+}
+
+.alert h4 {
+ margin: 0;
+}
+
+.alert .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ line-height: 20px;
+}
+
+.alert-success {
+ color: #468847;
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+}
+
+.alert-success h4 {
+ color: #468847;
+}
+
+.alert-danger,
+.alert-error {
+ color: #b94a48;
+ background-color: #f2dede;
+ border-color: #eed3d7;
+}
+
+.alert-danger h4,
+.alert-error h4 {
+ color: #b94a48;
+}
+
+.alert-info {
+ color: #3a87ad;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+}
+
+.alert-info h4 {
+ color: #3a87ad;
+}
+
+.alert-block {
+ padding-top: 14px;
+ padding-bottom: 14px;
+}
+
+.alert-block > p,
+.alert-block > ul {
+ margin-bottom: 0;
+}
+
+.alert-block p + p {
+ margin-top: 5px;
+}
+
+.nav {
+ margin-bottom: 20px;
+ margin-left: 0;
+ list-style: none;
+}
+
+.nav > li > a {
+ display: block;
+}
+
+.nav > li > a:hover,
+.nav > li > a:focus {
+ text-decoration: none;
+ background-color: #eeeeee;
+}
+
+.nav > li > a > img {
+ max-width: none;
+}
+
+.nav > .pull-right {
+ float: right;
+}
+
+.nav-header {
+ display: block;
+ padding: 3px 15px;
+ font-size: 11px;
+ font-weight: bold;
+ line-height: 20px;
+ color: #999999;
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+ text-transform: uppercase;
+}
+
+.nav li + .nav-header {
+ margin-top: 9px;
+}
+
+.nav-list {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-bottom: 0;
+}
+
+.nav-list > li > a,
+.nav-list .nav-header {
+ margin-right: -15px;
+ margin-left: -15px;
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+}
+
+.nav-list > li > a {
+ padding: 3px 15px;
+}
+
+.nav-list > .active > a,
+.nav-list > .active > a:hover,
+.nav-list > .active > a:focus {
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
+ background-color: #0088cc;
+}
+
+.nav-list [class^="icon-"],
+.nav-list [class*=" icon-"] {
+ margin-right: 2px;
+}
+
+.nav-list .divider {
+ *width: 100%;
+ height: 1px;
+ margin: 9px 1px;
+ *margin: -5px 0 5px;
+ overflow: hidden;
+ background-color: #e5e5e5;
+ border-bottom: 1px solid #ffffff;
+}
+
+.nav-tabs,
+.nav-pills {
+ *zoom: 1;
+}
+
+.nav-tabs:before,
+.nav-pills:before,
+.nav-tabs:after,
+.nav-pills:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.nav-tabs:after,
+.nav-pills:after {
+ clear: both;
+}
+
+.nav-tabs > li,
+.nav-pills > li {
+ float: left;
+}
+
+.nav-tabs > li > a,
+.nav-pills > li > a {
+ padding-right: 12px;
+ padding-left: 12px;
+ margin-right: 2px;
+ line-height: 14px;
+}
+
+.nav-tabs {
+ border-bottom: 1px solid #ddd;
+}
+
+.nav-tabs > li {
+ margin-bottom: -1px;
+}
+
+.nav-tabs > li > a {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ line-height: 20px;
+ border: 1px solid transparent;
+ -webkit-border-radius: 4px 4px 0 0;
+ -moz-border-radius: 4px 4px 0 0;
+ border-radius: 4px 4px 0 0;
+}
+
+.nav-tabs > li > a:hover,
+.nav-tabs > li > a:focus {
+ border-color: #eeeeee #eeeeee #dddddd;
+}
+
+.nav-tabs > .active > a,
+.nav-tabs > .active > a:hover,
+.nav-tabs > .active > a:focus {
+ color: #555555;
+ cursor: default;
+ background-color: #ffffff;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+}
+
+.nav-pills > li > a {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ margin-top: 2px;
+ margin-bottom: 2px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
+
+.nav-pills > .active > a,
+.nav-pills > .active > a:hover,
+.nav-pills > .active > a:focus {
+ color: #ffffff;
+ background-color: #0088cc;
+}
+
+.nav-stacked > li {
+ float: none;
+}
+
+.nav-stacked > li > a {
+ margin-right: 0;
+}
+
+.nav-tabs.nav-stacked {
+ border-bottom: 0;
+}
+
+.nav-tabs.nav-stacked > li > a {
+ border: 1px solid #ddd;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+
+.nav-tabs.nav-stacked > li:first-child > a {
+ -webkit-border-top-right-radius: 4px;
+ border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ border-top-left-radius: 4px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+}
+
+.nav-tabs.nav-stacked > li:last-child > a {
+ -webkit-border-bottom-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-border-radius-bottomleft: 4px;
+}
+
+.nav-tabs.nav-stacked > li > a:hover,
+.nav-tabs.nav-stacked > li > a:focus {
+ z-index: 2;
+ border-color: #ddd;
+}
+
+.nav-pills.nav-stacked > li > a {
+ margin-bottom: 3px;
+}
+
+.nav-pills.nav-stacked > li:last-child > a {
+ margin-bottom: 1px;
+}
+
+.nav-tabs .dropdown-menu {
+ -webkit-border-radius: 0 0 6px 6px;
+ -moz-border-radius: 0 0 6px 6px;
+ border-radius: 0 0 6px 6px;
+}
+
+.nav-pills .dropdown-menu {
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+}
+
+.nav .dropdown-toggle .caret {
+ margin-top: 6px;
+ border-top-color: #0088cc;
+ border-bottom-color: #0088cc;
+}
+
+.nav .dropdown-toggle:hover .caret,
+.nav .dropdown-toggle:focus .caret {
+ border-top-color: #005580;
+ border-bottom-color: #005580;
+}
+
+/* move down carets for tabs */
+
+.nav-tabs .dropdown-toggle .caret {
+ margin-top: 8px;
+}
+
+.nav .active .dropdown-toggle .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+
+.nav-tabs .active .dropdown-toggle .caret {
+ border-top-color: #555555;
+ border-bottom-color: #555555;
+}
+
+.nav > .dropdown.active > a:hover,
+.nav > .dropdown.active > a:focus {
+ cursor: pointer;
+}
+
+.nav-tabs .open .dropdown-toggle,
+.nav-pills .open .dropdown-toggle,
+.nav > li.dropdown.open.active > a:hover,
+.nav > li.dropdown.open.active > a:focus {
+ color: #ffffff;
+ background-color: #999999;
+ border-color: #999999;
+}
+
+.nav li.dropdown.open .caret,
+.nav li.dropdown.open.active .caret,
+.nav li.dropdown.open a:hover .caret,
+.nav li.dropdown.open a:focus .caret {
+ border-top-color: #ffffff;
+ border-bottom-color: #ffffff;
+ opacity: 1;
+ filter: alpha(opacity=100);
+}
+
+.tabs-stacked .open > a:hover,
+.tabs-stacked .open > a:focus {
+ border-color: #999999;
+}
+
+.tabbable {
+ *zoom: 1;
+}
+
+.tabbable:before,
+.tabbable:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.tabbable:after {
+ clear: both;
+}
+
+.tab-content {
+ overflow: auto;
+}
+
+.tabs-below > .nav-tabs,
+.tabs-right > .nav-tabs,
+.tabs-left > .nav-tabs {
+ border-bottom: 0;
+}
+
+.tab-content > .tab-pane,
+.pill-content > .pill-pane {
+ display: none;
+}
+
+.tab-content > .active,
+.pill-content > .active {
+ display: block;
+}
+
+.tabs-below > .nav-tabs {
+ border-top: 1px solid #ddd;
+}
+
+.tabs-below > .nav-tabs > li {
+ margin-top: -1px;
+ margin-bottom: 0;
+}
+
+.tabs-below > .nav-tabs > li > a {
+ -webkit-border-radius: 0 0 4px 4px;
+ -moz-border-radius: 0 0 4px 4px;
+ border-radius: 0 0 4px 4px;
+}
+
+.tabs-below > .nav-tabs > li > a:hover,
+.tabs-below > .nav-tabs > li > a:focus {
+ border-top-color: #ddd;
+ border-bottom-color: transparent;
+}
+
+.tabs-below > .nav-tabs > .active > a,
+.tabs-below > .nav-tabs > .active > a:hover,
+.tabs-below > .nav-tabs > .active > a:focus {
+ border-color: transparent #ddd #ddd #ddd;
+}
+
+.tabs-left > .nav-tabs > li,
+.tabs-right > .nav-tabs > li {
+ float: none;
+}
+
+.tabs-left > .nav-tabs > li > a,
+.tabs-right > .nav-tabs > li > a {
+ min-width: 74px;
+ margin-right: 0;
+ margin-bottom: 3px;
+}
+
+.tabs-left > .nav-tabs {
+ float: left;
+ margin-right: 19px;
+ border-right: 1px solid #ddd;
+}
+
+.tabs-left > .nav-tabs > li > a {
+ margin-right: -1px;
+ -webkit-border-radius: 4px 0 0 4px;
+ -moz-border-radius: 4px 0 0 4px;
+ border-radius: 4px 0 0 4px;
+}
+
+.tabs-left > .nav-tabs > li > a:hover,
+.tabs-left > .nav-tabs > li > a:focus {
+ border-color: #eeeeee #dddddd #eeeeee #eeeeee;
+}
+
+.tabs-left > .nav-tabs .active > a,
+.tabs-left > .nav-tabs .active > a:hover,
+.tabs-left > .nav-tabs .active > a:focus {
+ border-color: #ddd transparent #ddd #ddd;
+ *border-right-color: #ffffff;
+}
+
+.tabs-right > .nav-tabs {
+ float: right;
+ margin-left: 19px;
+ border-left: 1px solid #ddd;
+}
+
+.tabs-right > .nav-tabs > li > a {
+ margin-left: -1px;
+ -webkit-border-radius: 0 4px 4px 0;
+ -moz-border-radius: 0 4px 4px 0;
+ border-radius: 0 4px 4px 0;
+}
+
+.tabs-right > .nav-tabs > li > a:hover,
+.tabs-right > .nav-tabs > li > a:focus {
+ border-color: #eeeeee #eeeeee #eeeeee #dddddd;
+}
+
+.tabs-right > .nav-tabs .active > a,
+.tabs-right > .nav-tabs .active > a:hover,
+.tabs-right > .nav-tabs .active > a:focus {
+ border-color: #ddd #ddd #ddd transparent;
+ *border-left-color: #ffffff;
+}
+
+.nav > .disabled > a {
+ color: #999999;
+}
+
+.nav > .disabled > a:hover,
+.nav > .disabled > a:focus {
+ text-decoration: none;
+ cursor: default;
+ background-color: transparent;
+}
+
+.navbar {
+ *position: relative;
+ *z-index: 2;
+ margin-bottom: 20px;
+ overflow: visible;
+}
+
+.navbar-inner {
+ min-height: 40px;
+ padding-right: 20px;
+ padding-left: 20px;
+ background-color: #fafafa;
+ background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
+ background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);
+ background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);
+ background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
+ background-repeat: repeat-x;
+ border: 1px solid #d4d4d4;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
+ *zoom: 1;
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
+}
+
+.navbar-inner:before,
+.navbar-inner:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.navbar-inner:after {
+ clear: both;
+}
+
+.navbar .container {
+ width: auto;
+}
+
+.nav-collapse.collapse {
+ height: auto;
+ overflow: visible;
+}
+
+.navbar .brand {
+ display: block;
+ float: left;
+ padding: 10px 20px 10px;
+ margin-left: -20px;
+ font-size: 20px;
+ font-weight: 200;
+ color: #777777;
+ text-shadow: 0 1px 0 #ffffff;
+}
+
+.navbar .brand:hover,
+.navbar .brand:focus {
+ text-decoration: none;
+}
+
+.navbar-text {
+ margin-bottom: 0;
+ line-height: 40px;
+ color: #777777;
+}
+
+.navbar-link {
+ color: #777777;
+}
+
+.navbar-link:hover,
+.navbar-link:focus {
+ color: #333333;
+}
+
+.navbar .divider-vertical {
+ height: 40px;
+ margin: 0 9px;
+ border-right: 1px solid #ffffff;
+ border-left: 1px solid #f2f2f2;
+}
+
+.navbar .btn,
+.navbar .btn-group {
+ margin-top: 5px;
+}
+
+.navbar .btn-group .btn,
+.navbar .input-prepend .btn,
+.navbar .input-append .btn,
+.navbar .input-prepend .btn-group,
+.navbar .input-append .btn-group {
+ margin-top: 0;
+}
+
+.navbar-form {
+ margin-bottom: 0;
+ *zoom: 1;
+}
+
+.navbar-form:before,
+.navbar-form:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.navbar-form:after {
+ clear: both;
+}
+
+.navbar-form input,
+.navbar-form select,
+.navbar-form .radio,
+.navbar-form .checkbox {
+ margin-top: 5px;
+}
+
+.navbar-form input,
+.navbar-form select,
+.navbar-form .btn {
+ display: inline-block;
+ margin-bottom: 0;
+}
+
+.navbar-form input[type="image"],
+.navbar-form input[type="checkbox"],
+.navbar-form input[type="radio"] {
+ margin-top: 3px;
+}
+
+.navbar-form .input-append,
+.navbar-form .input-prepend {
+ margin-top: 5px;
+ white-space: nowrap;
+}
+
+.navbar-form .input-append input,
+.navbar-form .input-prepend input {
+ margin-top: 0;
+}
+
+.navbar-search {
+ position: relative;
+ float: left;
+ margin-top: 5px;
+ margin-bottom: 0;
+}
+
+.navbar-search .search-query {
+ padding: 4px 14px;
+ margin-bottom: 0;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 13px;
+ font-weight: normal;
+ line-height: 1;
+ -webkit-border-radius: 15px;
+ -moz-border-radius: 15px;
+ border-radius: 15px;
+}
+
+.navbar-static-top {
+ position: static;
+ margin-bottom: 0;
+}
+
+.navbar-static-top .navbar-inner {
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+ margin-bottom: 0;
+}
+
+.navbar-fixed-top .navbar-inner,
+.navbar-static-top .navbar-inner {
+ border-width: 0 0 1px;
+}
+
+.navbar-fixed-bottom .navbar-inner {
+ border-width: 1px 0 0;
+}
+
+.navbar-fixed-top .navbar-inner,
+.navbar-fixed-bottom .navbar-inner {
+ padding-right: 0;
+ padding-left: 0;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+
+.navbar-static-top .container,
+.navbar-fixed-top .container,
+.navbar-fixed-bottom .container {
+ width: 940px;
+}
+
+.navbar-fixed-top {
+ top: 0;
+}
+
+.navbar-fixed-top .navbar-inner,
+.navbar-static-top .navbar-inner {
+ -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
+ -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
+}
+
+.navbar-fixed-bottom {
+ bottom: 0;
+}
+
+.navbar-fixed-bottom .navbar-inner {
+ -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
+ -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
+}
+
+.navbar .nav {
+ position: relative;
+ left: 0;
+ display: block;
+ float: left;
+ margin: 0 10px 0 0;
+}
+
+.navbar .nav.pull-right {
+ float: right;
+ margin-right: 0;
+}
+
+.navbar .nav > li {
+ float: left;
+}
+
+.navbar .nav > li > a {
+ float: none;
+ padding: 10px 15px 10px;
+ color: #777777;
+ text-decoration: none;
+ text-shadow: 0 1px 0 #ffffff;
+}
+
+.navbar .nav .dropdown-toggle .caret {
+ margin-top: 8px;
+}
+
+.navbar .nav > li > a:focus,
+.navbar .nav > li > a:hover {
+ color: #333333;
+ text-decoration: none;
+ background-color: transparent;
+}
+
+.navbar .nav > .active > a,
+.navbar .nav > .active > a:hover,
+.navbar .nav > .active > a:focus {
+ color: #555555;
+ text-decoration: none;
+ background-color: #e5e5e5;
+ -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
+ -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
+}
+
+.navbar .btn-navbar {
+ display: none;
+ float: right;
+ padding: 7px 10px;
+ margin-right: 5px;
+ margin-left: 5px;
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #ededed;
+ *background-color: #e5e5e5;
+ background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));
+ background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5);
+ background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5);
+ background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5);
+ background-repeat: repeat-x;
+ border-color: #e5e5e5 #e5e5e5 #bfbfbf;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
+}
+
+.navbar .btn-navbar:hover,
+.navbar .btn-navbar:focus,
+.navbar .btn-navbar:active,
+.navbar .btn-navbar.active,
+.navbar .btn-navbar.disabled,
+.navbar .btn-navbar[disabled] {
+ color: #ffffff;
+ background-color: #e5e5e5;
+ *background-color: #d9d9d9;
+}
+
+.navbar .btn-navbar:active,
+.navbar .btn-navbar.active {
+ background-color: #cccccc \9;
+}
+
+.navbar .btn-navbar .icon-bar {
+ display: block;
+ width: 18px;
+ height: 2px;
+ background-color: #f5f5f5;
+ -webkit-border-radius: 1px;
+ -moz-border-radius: 1px;
+ border-radius: 1px;
+ -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
+ -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
+}
+
+.btn-navbar .icon-bar + .icon-bar {
+ margin-top: 3px;
+}
+
+.navbar .nav > li > .dropdown-menu:before {
+ position: absolute;
+ top: -7px;
+ left: 9px;
+ display: inline-block;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid #ccc;
+ border-left: 7px solid transparent;
+ border-bottom-color: rgba(0, 0, 0, 0.2);
+ content: '';
+}
+
+.navbar .nav > li > .dropdown-menu:after {
+ position: absolute;
+ top: -6px;
+ left: 10px;
+ display: inline-block;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid #ffffff;
+ border-left: 6px solid transparent;
+ content: '';
+}
+
+.navbar-fixed-bottom .nav > li > .dropdown-menu:before {
+ top: auto;
+ bottom: -7px;
+ border-top: 7px solid #ccc;
+ border-bottom: 0;
+ border-top-color: rgba(0, 0, 0, 0.2);
+}
+
+.navbar-fixed-bottom .nav > li > .dropdown-menu:after {
+ top: auto;
+ bottom: -6px;
+ border-top: 6px solid #ffffff;
+ border-bottom: 0;
+}
+
+.navbar .nav li.dropdown > a:hover .caret,
+.navbar .nav li.dropdown > a:focus .caret {
+ border-top-color: #333333;
+ border-bottom-color: #333333;
+}
+
+.navbar .nav li.dropdown.open > .dropdown-toggle,
+.navbar .nav li.dropdown.active > .dropdown-toggle,
+.navbar .nav li.dropdown.open.active > .dropdown-toggle {
+ color: #555555;
+ background-color: #e5e5e5;
+}
+
+.navbar .nav li.dropdown > .dropdown-toggle .caret {
+ border-top-color: #777777;
+ border-bottom-color: #777777;
+}
+
+.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
+.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
+.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
+ border-top-color: #555555;
+ border-bottom-color: #555555;
+}
+
+.navbar .pull-right > li > .dropdown-menu,
+.navbar .nav > li > .dropdown-menu.pull-right {
+ right: 0;
+ left: auto;
+}
+
+.navbar .pull-right > li > .dropdown-menu:before,
+.navbar .nav > li > .dropdown-menu.pull-right:before {
+ right: 12px;
+ left: auto;
+}
+
+.navbar .pull-right > li > .dropdown-menu:after,
+.navbar .nav > li > .dropdown-menu.pull-right:after {
+ right: 13px;
+ left: auto;
+}
+
+.navbar .pull-right > li > .dropdown-menu .dropdown-menu,
+.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu {
+ right: 100%;
+ left: auto;
+ margin-right: -1px;
+ margin-left: 0;
+ -webkit-border-radius: 6px 0 6px 6px;
+ -moz-border-radius: 6px 0 6px 6px;
+ border-radius: 6px 0 6px 6px;
+}
+
+.navbar-inverse .navbar-inner {
+ background-color: #1b1b1b;
+ background-image: -moz-linear-gradient(top, #222222, #111111);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));
+ background-image: -webkit-linear-gradient(top, #222222, #111111);
+ background-image: -o-linear-gradient(top, #222222, #111111);
+ background-image: linear-gradient(to bottom, #222222, #111111);
+ background-repeat: repeat-x;
+ border-color: #252525;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);
+}
+
+.navbar-inverse .brand,
+.navbar-inverse .nav > li > a {
+ color: #999999;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+
+.navbar-inverse .brand:hover,
+.navbar-inverse .nav > li > a:hover,
+.navbar-inverse .brand:focus,
+.navbar-inverse .nav > li > a:focus {
+ color: #ffffff;
+}
+
+.navbar-inverse .brand {
+ color: #999999;
+}
+
+.navbar-inverse .navbar-text {
+ color: #999999;
+}
+
+.navbar-inverse .nav > li > a:focus,
+.navbar-inverse .nav > li > a:hover {
+ color: #ffffff;
+ background-color: transparent;
+}
+
+.navbar-inverse .nav .active > a,
+.navbar-inverse .nav .active > a:hover,
+.navbar-inverse .nav .active > a:focus {
+ color: #ffffff;
+ background-color: #111111;
+}
+
+.navbar-inverse .navbar-link {
+ color: #999999;
+}
+
+.navbar-inverse .navbar-link:hover,
+.navbar-inverse .navbar-link:focus {
+ color: #ffffff;
+}
+
+.navbar-inverse .divider-vertical {
+ border-right-color: #222222;
+ border-left-color: #111111;
+}
+
+.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
+.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
+.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
+ color: #ffffff;
+ background-color: #111111;
+}
+
+.navbar-inverse .nav li.dropdown > a:hover .caret,
+.navbar-inverse .nav li.dropdown > a:focus .caret {
+ border-top-color: #ffffff;
+ border-bottom-color: #ffffff;
+}
+
+.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {
+ border-top-color: #999999;
+ border-bottom-color: #999999;
+}
+
+.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,
+.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,
+.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {
+ border-top-color: #ffffff;
+ border-bottom-color: #ffffff;
+}
+
+.navbar-inverse .navbar-search .search-query {
+ color: #ffffff;
+ background-color: #515151;
+ border-color: #111111;
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
+ -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
+ -webkit-transition: none;
+ -moz-transition: none;
+ -o-transition: none;
+ transition: none;
+}
+
+.navbar-inverse .navbar-search .search-query:-moz-placeholder {
+ color: #cccccc;
+}
+
+.navbar-inverse .navbar-search .search-query:-ms-input-placeholder {
+ color: #cccccc;
+}
+
+.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder {
+ color: #cccccc;
+}
+
+.navbar-inverse .navbar-search .search-query:focus,
+.navbar-inverse .navbar-search .search-query.focused {
+ padding: 5px 15px;
+ color: #333333;
+ text-shadow: 0 1px 0 #ffffff;
+ background-color: #ffffff;
+ border: 0;
+ outline: 0;
+ -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
+ -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
+}
+
+.navbar-inverse .btn-navbar {
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #0e0e0e;
+ *background-color: #040404;
+ background-image: -moz-linear-gradient(top, #151515, #040404);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));
+ background-image: -webkit-linear-gradient(top, #151515, #040404);
+ background-image: -o-linear-gradient(top, #151515, #040404);
+ background-image: linear-gradient(to bottom, #151515, #040404);
+ background-repeat: repeat-x;
+ border-color: #040404 #040404 #000000;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.navbar-inverse .btn-navbar:hover,
+.navbar-inverse .btn-navbar:focus,
+.navbar-inverse .btn-navbar:active,
+.navbar-inverse .btn-navbar.active,
+.navbar-inverse .btn-navbar.disabled,
+.navbar-inverse .btn-navbar[disabled] {
+ color: #ffffff;
+ background-color: #040404;
+ *background-color: #000000;
+}
+
+.navbar-inverse .btn-navbar:active,
+.navbar-inverse .btn-navbar.active {
+ background-color: #000000 \9;
+}
+
+.breadcrumb {
+ padding: 8px 15px;
+ margin: 0 0 20px;
+ list-style: none;
+ background-color: #f5f5f5;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+
+.breadcrumb > li {
+ display: inline-block;
+ *display: inline;
+ text-shadow: 0 1px 0 #ffffff;
+ *zoom: 1;
+}
+
+.breadcrumb > li > .divider {
+ padding: 0 5px;
+ color: #ccc;
+}
+
+.breadcrumb > .active {
+ color: #999999;
+}
+
+.pagination {
+ margin: 20px 0;
+}
+
+.pagination ul {
+ display: inline-block;
+ *display: inline;
+ margin-bottom: 0;
+ margin-left: 0;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ *zoom: 1;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.pagination ul > li {
+ display: inline;
+}
+
+.pagination ul > li > a,
+.pagination ul > li > span {
+ float: left;
+ padding: 4px 12px;
+ line-height: 20px;
+ text-decoration: none;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-left-width: 0;
+}
+
+.pagination ul > li > a:hover,
+.pagination ul > li > a:focus,
+.pagination ul > .active > a,
+.pagination ul > .active > span {
+ background-color: #f5f5f5;
+}
+
+.pagination ul > .active > a,
+.pagination ul > .active > span {
+ color: #999999;
+ cursor: default;
+}
+
+.pagination ul > .disabled > span,
+.pagination ul > .disabled > a,
+.pagination ul > .disabled > a:hover,
+.pagination ul > .disabled > a:focus {
+ color: #999999;
+ cursor: default;
+ background-color: transparent;
+}
+
+.pagination ul > li:first-child > a,
+.pagination ul > li:first-child > span {
+ border-left-width: 1px;
+ -webkit-border-bottom-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ border-top-left-radius: 4px;
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-topleft: 4px;
+}
+
+.pagination ul > li:last-child > a,
+.pagination ul > li:last-child > span {
+ -webkit-border-top-right-radius: 4px;
+ border-top-right-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-bottomright: 4px;
+}
+
+.pagination-centered {
+ text-align: center;
+}
+
+.pagination-right {
+ text-align: right;
+}
+
+.pagination-large ul > li > a,
+.pagination-large ul > li > span {
+ padding: 11px 19px;
+ font-size: 17.5px;
+}
+
+.pagination-large ul > li:first-child > a,
+.pagination-large ul > li:first-child > span {
+ -webkit-border-bottom-left-radius: 6px;
+ border-bottom-left-radius: 6px;
+ -webkit-border-top-left-radius: 6px;
+ border-top-left-radius: 6px;
+ -moz-border-radius-bottomleft: 6px;
+ -moz-border-radius-topleft: 6px;
+}
+
+.pagination-large ul > li:last-child > a,
+.pagination-large ul > li:last-child > span {
+ -webkit-border-top-right-radius: 6px;
+ border-top-right-radius: 6px;
+ -webkit-border-bottom-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+ -moz-border-radius-topright: 6px;
+ -moz-border-radius-bottomright: 6px;
+}
+
+.pagination-mini ul > li:first-child > a,
+.pagination-small ul > li:first-child > a,
+.pagination-mini ul > li:first-child > span,
+.pagination-small ul > li:first-child > span {
+ -webkit-border-bottom-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ -webkit-border-top-left-radius: 3px;
+ border-top-left-radius: 3px;
+ -moz-border-radius-bottomleft: 3px;
+ -moz-border-radius-topleft: 3px;
+}
+
+.pagination-mini ul > li:last-child > a,
+.pagination-small ul > li:last-child > a,
+.pagination-mini ul > li:last-child > span,
+.pagination-small ul > li:last-child > span {
+ -webkit-border-top-right-radius: 3px;
+ border-top-right-radius: 3px;
+ -webkit-border-bottom-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ -moz-border-radius-topright: 3px;
+ -moz-border-radius-bottomright: 3px;
+}
+
+.pagination-small ul > li > a,
+.pagination-small ul > li > span {
+ padding: 2px 10px;
+ font-size: 11.9px;
+}
+
+.pagination-mini ul > li > a,
+.pagination-mini ul > li > span {
+ padding: 0 6px;
+ font-size: 10.5px;
+}
+
+.pager {
+ margin: 20px 0;
+ text-align: center;
+ list-style: none;
+ *zoom: 1;
+}
+
+.pager:before,
+.pager:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.pager:after {
+ clear: both;
+}
+
+.pager li {
+ display: inline;
+}
+
+.pager li > a,
+.pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ -webkit-border-radius: 15px;
+ -moz-border-radius: 15px;
+ border-radius: 15px;
+}
+
+.pager li > a:hover,
+.pager li > a:focus {
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+
+.pager .next > a,
+.pager .next > span {
+ float: right;
+}
+
+.pager .previous > a,
+.pager .previous > span {
+ float: left;
+}
+
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+ color: #999999;
+ cursor: default;
+ background-color: #fff;
+}
+
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: #000000;
+}
+
+.modal-backdrop.fade {
+ opacity: 0;
+}
+
+.modal-backdrop,
+.modal-backdrop.fade.in {
+ opacity: 0.8;
+ filter: alpha(opacity=80);
+}
+
+.modal {
+ position: fixed;
+ top: 10%;
+ left: 50%;
+ z-index: 1050;
+ width: 560px;
+ margin-left: -280px;
+ background-color: #ffffff;
+ border: 1px solid #999;
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ *border: 1px solid #999;
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+ outline: none;
+ -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+ -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+ box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding-box;
+ background-clip: padding-box;
+}
+
+.modal.fade {
+ top: -25%;
+ -webkit-transition: opacity 0.3s linear, top 0.3s ease-out;
+ -moz-transition: opacity 0.3s linear, top 0.3s ease-out;
+ -o-transition: opacity 0.3s linear, top 0.3s ease-out;
+ transition: opacity 0.3s linear, top 0.3s ease-out;
+}
+
+.modal.fade.in {
+ top: 10%;
+}
+
+.modal-header {
+ padding: 9px 15px;
+ border-bottom: 1px solid #eee;
+}
+
+.modal-header .close {
+ margin-top: 2px;
+}
+
+.modal-header h3 {
+ margin: 0;
+ line-height: 30px;
+}
+
+.modal-body {
+ position: relative;
+ max-height: 400px;
+ padding: 15px;
+ overflow-y: auto;
+}
+
+.modal-form {
+ margin-bottom: 0;
+}
+
+.modal-footer {
+ padding: 14px 15px 15px;
+ margin-bottom: 0;
+ text-align: right;
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ -webkit-border-radius: 0 0 6px 6px;
+ -moz-border-radius: 0 0 6px 6px;
+ border-radius: 0 0 6px 6px;
+ *zoom: 1;
+ -webkit-box-shadow: inset 0 1px 0 #ffffff;
+ -moz-box-shadow: inset 0 1px 0 #ffffff;
+ box-shadow: inset 0 1px 0 #ffffff;
+}
+
+.modal-footer:before,
+.modal-footer:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.modal-footer:after {
+ clear: both;
+}
+
+.modal-footer .btn + .btn {
+ margin-bottom: 0;
+ margin-left: 5px;
+}
+
+.modal-footer .btn-group .btn + .btn {
+ margin-left: -1px;
+}
+
+.modal-footer .btn-block + .btn-block {
+ margin-left: 0;
+}
+
+.tooltip {
+ position: absolute;
+ z-index: 1030;
+ display: block;
+ font-size: 11px;
+ line-height: 1.4;
+ opacity: 0;
+ filter: alpha(opacity=0);
+ visibility: visible;
+}
+
+.tooltip.in {
+ opacity: 0.8;
+ filter: alpha(opacity=80);
+}
+
+.tooltip.top {
+ padding: 5px 0;
+ margin-top: -3px;
+}
+
+.tooltip.right {
+ padding: 0 5px;
+ margin-left: 3px;
+}
+
+.tooltip.bottom {
+ padding: 5px 0;
+ margin-top: 3px;
+}
+
+.tooltip.left {
+ padding: 0 5px;
+ margin-left: -3px;
+}
+
+.tooltip-inner {
+ max-width: 200px;
+ padding: 8px;
+ color: #ffffff;
+ text-align: center;
+ text-decoration: none;
+ background-color: #000000;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.tooltip.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-top-color: #000000;
+ border-width: 5px 5px 0;
+}
+
+.tooltip.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -5px;
+ border-right-color: #000000;
+ border-width: 5px 5px 5px 0;
+}
+
+.tooltip.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -5px;
+ border-left-color: #000000;
+ border-width: 5px 0 5px 5px;
+}
+
+.tooltip.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-bottom-color: #000000;
+ border-width: 0 5px 5px;
+}
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1010;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ text-align: left;
+ white-space: normal;
+ background-color: #ffffff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+}
+
+.popover.top {
+ margin-top: -10px;
+}
+
+.popover.right {
+ margin-left: 10px;
+}
+
+.popover.bottom {
+ margin-top: 10px;
+}
+
+.popover.left {
+ margin-left: -10px;
+}
+
+.popover-title {
+ padding: 8px 14px;
+ margin: 0;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 18px;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ -webkit-border-radius: 5px 5px 0 0;
+ -moz-border-radius: 5px 5px 0 0;
+ border-radius: 5px 5px 0 0;
+}
+
+.popover-title:empty {
+ display: none;
+}
+
+.popover-content {
+ padding: 9px 14px;
+}
+
+.popover .arrow,
+.popover .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.popover .arrow {
+ border-width: 11px;
+}
+
+.popover .arrow:after {
+ border-width: 10px;
+ content: "";
+}
+
+.popover.top .arrow {
+ bottom: -11px;
+ left: 50%;
+ margin-left: -11px;
+ border-top-color: #999;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ border-bottom-width: 0;
+}
+
+.popover.top .arrow:after {
+ bottom: 1px;
+ margin-left: -10px;
+ border-top-color: #ffffff;
+ border-bottom-width: 0;
+}
+
+.popover.right .arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-right-color: #999;
+ border-right-color: rgba(0, 0, 0, 0.25);
+ border-left-width: 0;
+}
+
+.popover.right .arrow:after {
+ bottom: -10px;
+ left: 1px;
+ border-right-color: #ffffff;
+ border-left-width: 0;
+}
+
+.popover.bottom .arrow {
+ top: -11px;
+ left: 50%;
+ margin-left: -11px;
+ border-bottom-color: #999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ border-top-width: 0;
+}
+
+.popover.bottom .arrow:after {
+ top: 1px;
+ margin-left: -10px;
+ border-bottom-color: #ffffff;
+ border-top-width: 0;
+}
+
+.popover.left .arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-left-color: #999;
+ border-left-color: rgba(0, 0, 0, 0.25);
+ border-right-width: 0;
+}
+
+.popover.left .arrow:after {
+ right: 1px;
+ bottom: -10px;
+ border-left-color: #ffffff;
+ border-right-width: 0;
+}
+
+.thumbnails {
+ margin-left: -20px;
+ list-style: none;
+ *zoom: 1;
+}
+
+.thumbnails:before,
+.thumbnails:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.thumbnails:after {
+ clear: both;
+}
+
+.row-fluid .thumbnails {
+ margin-left: 0;
+}
+
+.thumbnails > li {
+ float: left;
+ margin-bottom: 20px;
+ margin-left: 20px;
+}
+
+.thumbnail {
+ display: block;
+ padding: 4px;
+ line-height: 20px;
+ border: 1px solid #ddd;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
+ -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
+ -webkit-transition: all 0.2s ease-in-out;
+ -moz-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+}
+
+a.thumbnail:hover,
+a.thumbnail:focus {
+ border-color: #0088cc;
+ -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
+ -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
+ box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
+}
+
+.thumbnail > img {
+ display: block;
+ max-width: 100%;
+ margin-right: auto;
+ margin-left: auto;
+}
+
+.thumbnail .caption {
+ padding: 9px;
+ color: #555555;
+}
+
+.media,
+.media-body {
+ overflow: hidden;
+ *overflow: visible;
+ zoom: 1;
+}
+
+.media,
+.media .media {
+ margin-top: 15px;
+}
+
+.media:first-child {
+ margin-top: 0;
+}
+
+.media-object {
+ display: block;
+}
+
+.media-heading {
+ margin: 0 0 5px;
+}
+
+.media > .pull-left {
+ margin-right: 10px;
+}
+
+.media > .pull-right {
+ margin-left: 10px;
+}
+
+.media-list {
+ margin-left: 0;
+ list-style: none;
+}
+
+.label,
+.badge {
+ display: inline-block;
+ padding: 2px 4px;
+ font-size: 11.844px;
+ font-weight: bold;
+ line-height: 14px;
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ white-space: nowrap;
+ vertical-align: baseline;
+ background-color: #999999;
+}
+
+.label {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+
+.badge {
+ padding-right: 9px;
+ padding-left: 9px;
+ -webkit-border-radius: 9px;
+ -moz-border-radius: 9px;
+ border-radius: 9px;
+}
+
+.label:empty,
+.badge:empty {
+ display: none;
+}
+
+a.label:hover,
+a.label:focus,
+a.badge:hover,
+a.badge:focus {
+ color: #ffffff;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+.label-important,
+.badge-important {
+ background-color: #b94a48;
+}
+
+.label-important[href],
+.badge-important[href] {
+ background-color: #953b39;
+}
+
+.label-warning,
+.badge-warning {
+ background-color: #f89406;
+}
+
+.label-warning[href],
+.badge-warning[href] {
+ background-color: #c67605;
+}
+
+.label-success,
+.badge-success {
+ background-color: #468847;
+}
+
+.label-success[href],
+.badge-success[href] {
+ background-color: #356635;
+}
+
+.label-info,
+.badge-info {
+ background-color: #3a87ad;
+}
+
+.label-info[href],
+.badge-info[href] {
+ background-color: #2d6987;
+}
+
+.label-inverse,
+.badge-inverse {
+ background-color: #333333;
+}
+
+.label-inverse[href],
+.badge-inverse[href] {
+ background-color: #1a1a1a;
+}
+
+.btn .label,
+.btn .badge {
+ position: relative;
+ top: -1px;
+}
+
+.btn-mini .label,
+.btn-mini .badge {
+ top: 0;
+}
+
+@-webkit-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+
+@-moz-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+
+@-ms-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+
+@-o-keyframes progress-bar-stripes {
+ from {
+ background-position: 0 0;
+ }
+ to {
+ background-position: 40px 0;
+ }
+}
+
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+
+.progress {
+ height: 20px;
+ margin-bottom: 20px;
+ overflow: hidden;
+ background-color: #f7f7f7;
+ background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
+ background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
+ background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
+ background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
+ background-repeat: repeat-x;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+}
+
+.progress .bar {
+ float: left;
+ width: 0;
+ height: 100%;
+ font-size: 12px;
+ color: #ffffff;
+ text-align: center;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #0e90d2;
+ background-image: -moz-linear-gradient(top, #149bdf, #0480be);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
+ background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
+ background-image: -o-linear-gradient(top, #149bdf, #0480be);
+ background-image: linear-gradient(to bottom, #149bdf, #0480be);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: width 0.6s ease;
+ -moz-transition: width 0.6s ease;
+ -o-transition: width 0.6s ease;
+ transition: width 0.6s ease;
+}
+
+.progress .bar + .bar {
+ -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+}
+
+.progress-striped .bar {
+ background-color: #149bdf;
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ -webkit-background-size: 40px 40px;
+ -moz-background-size: 40px 40px;
+ -o-background-size: 40px 40px;
+ background-size: 40px 40px;
+}
+
+.progress.active .bar {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ -moz-animation: progress-bar-stripes 2s linear infinite;
+ -ms-animation: progress-bar-stripes 2s linear infinite;
+ -o-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+}
+
+.progress-danger .bar,
+.progress .bar-danger {
+ background-color: #dd514c;
+ background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
+ background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
+ background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
+ background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);
+}
+
+.progress-danger.progress-striped .bar,
+.progress-striped .bar-danger {
+ background-color: #ee5f5b;
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.progress-success .bar,
+.progress .bar-success {
+ background-color: #5eb95e;
+ background-image: -moz-linear-gradient(top, #62c462, #57a957);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
+ background-image: -webkit-linear-gradient(top, #62c462, #57a957);
+ background-image: -o-linear-gradient(top, #62c462, #57a957);
+ background-image: linear-gradient(to bottom, #62c462, #57a957);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);
+}
+
+.progress-success.progress-striped .bar,
+.progress-striped .bar-success {
+ background-color: #62c462;
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.progress-info .bar,
+.progress .bar-info {
+ background-color: #4bb1cf;
+ background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
+ background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
+ background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
+ background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
+}
+
+.progress-info.progress-striped .bar,
+.progress-striped .bar-info {
+ background-color: #5bc0de;
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.progress-warning .bar,
+.progress .bar-warning {
+ background-color: #faa732;
+ background-image: -moz-linear-gradient(top, #fbb450, #f89406);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
+ background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
+ background-image: -o-linear-gradient(top, #fbb450, #f89406);
+ background-image: linear-gradient(to bottom, #fbb450, #f89406);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
+}
+
+.progress-warning.progress-striped .bar,
+.progress-striped .bar-warning {
+ background-color: #fbb450;
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.accordion {
+ margin-bottom: 20px;
+}
+
+.accordion-group {
+ margin-bottom: 2px;
+ border: 1px solid #e5e5e5;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+
+.accordion-heading {
+ border-bottom: 0;
+}
+
+.accordion-heading .accordion-toggle {
+ display: block;
+ padding: 8px 15px;
+}
+
+.accordion-toggle {
+ cursor: pointer;
+}
+
+.accordion-inner {
+ padding: 9px 15px;
+ border-top: 1px solid #e5e5e5;
+}
+
+.carousel {
+ position: relative;
+ margin-bottom: 20px;
+ line-height: 1;
+}
+
+.carousel-inner {
+ position: relative;
+ width: 100%;
+ overflow: hidden;
+}
+
+.carousel-inner > .item {
+ position: relative;
+ display: none;
+ -webkit-transition: 0.6s ease-in-out left;
+ -moz-transition: 0.6s ease-in-out left;
+ -o-transition: 0.6s ease-in-out left;
+ transition: 0.6s ease-in-out left;
+}
+
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+ display: block;
+ line-height: 1;
+}
+
+.carousel-inner > .active,
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ display: block;
+}
+
+.carousel-inner > .active {
+ left: 0;
+}
+
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+
+.carousel-inner > .next {
+ left: 100%;
+}
+
+.carousel-inner > .prev {
+ left: -100%;
+}
+
+.carousel-inner > .next.left,
+.carousel-inner > .prev.right {
+ left: 0;
+}
+
+.carousel-inner > .active.left {
+ left: -100%;
+}
+
+.carousel-inner > .active.right {
+ left: 100%;
+}
+
+.carousel-control {
+ position: absolute;
+ top: 40%;
+ left: 15px;
+ width: 40px;
+ height: 40px;
+ margin-top: -20px;
+ font-size: 60px;
+ font-weight: 100;
+ line-height: 30px;
+ color: #ffffff;
+ text-align: center;
+ background: #222222;
+ border: 3px solid #ffffff;
+ -webkit-border-radius: 23px;
+ -moz-border-radius: 23px;
+ border-radius: 23px;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+
+.carousel-control.right {
+ right: 15px;
+ left: auto;
+}
+
+.carousel-control:hover,
+.carousel-control:focus {
+ color: #ffffff;
+ text-decoration: none;
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+
+.carousel-indicators {
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ z-index: 5;
+ margin: 0;
+ list-style: none;
+}
+
+.carousel-indicators li {
+ display: block;
+ float: left;
+ width: 10px;
+ height: 10px;
+ margin-left: 5px;
+ text-indent: -999px;
+ background-color: #ccc;
+ background-color: rgba(255, 255, 255, 0.25);
+ border-radius: 5px;
+}
+
+.carousel-indicators .active {
+ background-color: #fff;
+}
+
+.carousel-caption {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ padding: 15px;
+ background: #333333;
+ background: rgba(0, 0, 0, 0.75);
+}
+
+.carousel-caption h4,
+.carousel-caption p {
+ line-height: 20px;
+ color: #ffffff;
+}
+
+.carousel-caption h4 {
+ margin: 0 0 5px;
+}
+
+.carousel-caption p {
+ margin-bottom: 0;
+}
+
+.hero-unit {
+ padding: 60px;
+ margin-bottom: 30px;
+ font-size: 18px;
+ font-weight: 200;
+ line-height: 30px;
+ color: inherit;
+ background-color: #eeeeee;
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+}
+
+.hero-unit h1 {
+ margin-bottom: 0;
+ font-size: 60px;
+ line-height: 1;
+ letter-spacing: -1px;
+ color: inherit;
+}
+
+.hero-unit li {
+ line-height: 30px;
+}
+
+.pull-right {
+ float: right;
+}
+
+.pull-left {
+ float: left;
+}
+
+.hide {
+ display: none;
+}
+
+.show {
+ display: block;
+}
+
+.invisible {
+ visibility: hidden;
+}
+
+.affix {
+ position: fixed;
+}
Modified: jtimerhtml5/src/main/resources/html/css/index.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/index.css 2013-06-07 15:01:05 UTC (rev 40)
+++ jtimerhtml5/src/main/resources/html/css/index.css 2013-06-11 14:28:24 UTC (rev 41)
@@ -1,171 +1,201 @@
-body {
- width: 100%;
+html,body {
+ margin:0;
+ padding-top:25px;
+ padding-bottom:10px;
+}
+
+footer {
+ width:100%;
+ position:fixed;
+ bottom:0px;
margin:0;
- padding:0;
+ box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
+ background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
+ background-repeat: repeat-x;
}
-/* Menu */
-
-.ui-menu {
- width: 150px;
- font-size: 12px;
- min-height: 22px;
+footer span {
+ width:50%;
+ display:inline-block;
}
-ul#menu {
- width: 438px;
+#recapToday {
+ text-align:center;
}
-ul#menu>li {
- width: 73px;
- float: left;
+#opts span {
+ display:inline-block;
+ padding-left:12px;
}
-/* Boutons */
-
-#startTask {
- background: url("img/go-next.png");
- background-repeat:no-repeat;
- background-position:center center;
- padding-right: 40px;
- padding-bottom: 20px;
- border-radius: 4px;
- border:2px solid black;
- cursor:pointer;
+.buttons button {
+ padding-right: 30px;
+ padding-bottom: 30px;
}
-#startTask:hover{
- background-color:#339999;
+.buttons {
+ margin-bottom:20px;
+ margin-left:20px;
}
-#stopTask {
- background: url("img/process-stop.png");
+#startStopTask {
+ background: url("img/go-next.png");
background-repeat:no-repeat;
background-position:center center;
- padding-right: 40px;
- padding-bottom: 20px;
- border-radius: 4px;
- border:2px solid black;
- cursor:pointer;
}
-#stopTask:hover{
- background-color:#339999;
-}
-
#newProject {
background: url("img/bookmark-new.png");
background-repeat:no-repeat;
background-position:center center;
- padding-right: 40px;
- padding-bottom: 20px;
- border-radius: 4px;
- border:2px solid black;
- cursor:pointer;
}
-#newProject:hover{
- background-color:#339999;
-}
-
#newTask {
background: url("img/document-new.png");
background-repeat:no-repeat;
background-position:center center;
- padding-right: 40px;
- padding-bottom: 20px;
- border-radius: 4px;
- border:2px solid black;
- cursor:pointer;
}
-#newTask:hover{
- background-color:#339999;
-}
-
#note {
background: url("img/notes.png");
background-repeat:no-repeat;
background-position:center center;
- padding-right: 40px;
- padding-bottom: 20px;
- border-radius: 4px;
- border:2px solid black;
- cursor:pointer;
}
-#note:hover{
- background-color:#339999;
-}
-
#alert {
background: url("img/bell.png");
background-repeat:no-repeat;
background-position:center center;
- padding-right: 40px;
- padding-bottom: 20px;
- border-radius: 4px;
- border:2px solid black;
- cursor:pointer;
}
-#alert:hover{
- background-color:#339999;
+.selec {
+ width:100%;
+ display:inline-block;
}
-.buttons {
- margin-top:10px;
- margin-bottom:20px;
- margin-left:20px;
+.col {
+ width:30%;
+ display:inline-block;
}
-/* Arboresence des tâches */
+.optT,.optP {
+ width:5%;
+ display:inline-block;
+}
-.col{
- width:32%;
- display:inline-block;
+#headTasks {
+ text-align:center;
+ margin-bottom:8px;
}
-#headTasks{
- width: 100%;
- margin-top:30px;
+#opts {
+ box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
+ background-image: linear-gradient(to bottom, #ffffff, #dddddd);
+ background-repeat: repeat-x;
+ margin-bottom:10px;
+ text-align:center;
}
-#headTasks span {
- text-align:center;
- border-bottom:2px solid #009999;
- border-left:2px solid #339999;
+#divRight{
+ width:50%;
+ height:100%;
+ float:right;
+ margin:0;
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ border-radius: 4px;
}
-#treeTasks {
- list-style-type: none; margin: 0; padding: 0; width: 100%;
+#divLeft{
+ width:49%;
+ float:left;
+ margin:0;
+ height:100%;
}
-#treeTasks li {
- font-size: 15px; width: 100%; cursor:pointer;
+#selectThisWeek{
+ background: url(img/date_current.png);
+ background-repeat:no-repeat;
+ background-position:center center;
+ width: 40px;
+ height: 22px;
}
-.subtask{
- list-style-type: none;
+#selectLastWeek{
+ background: url(img/date_previous.png);
+ background-repeat:no-repeat;
+ background-position:center center;
+ width: 40px;
+ height: 22px;
}
-.subtask li {
- cursor:pointer;
+#endDate{
+ margin-left:7px;
+ width:70%;
}
-/* Récap en peid de page */
+#startDate{
+ width:70%;
+}
-#statutTasks{
- width:49%;
+#textReport{
+ width:96%;
+ height:500px;
+ margin-left:5px;
+ margin-top:10px;
+}
+
+#generReport{
+ width:24%;
+ min-height:30px;
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ border-radius: 4px;
+ cursor:pointer;
display:inline-block;
+ text-align:center;
+ bottom:5px;
}
-#recapToday{
- width:49%;
+#mailReport{
+ width:24%;
+ min-height:30px;
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ border-radius: 4px;
+ cursor:pointer;
+ display:inline-block;
text-align:center;
- display:inline-block;
+ bottom:5px;
}
-#framefooter{
- border:2px solid #339999;
+#optionsReport{
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ height:100%;
+ border-radius: 4px;
}
+
+#projectsReport{
+ border-style:solid;
+ border-width:2px;
+ border-color:#339999;
+ height:100%;
+ border-radius: 4px;
+}
+
+form {
+ margin-left:10px;
+}
+
+.subtask{
+ list-style-type: none;
+}
+
+#treeTasks {
+ list-style-type: none;
+}
Modified: jtimerhtml5/src/main/resources/html/css/style.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/style.css 2013-06-07 15:01:05 UTC (rev 40)
+++ jtimerhtml5/src/main/resources/html/css/style.css 2013-06-11 14:28:24 UTC (rev 41)
@@ -1,13 +1,6 @@
/* Global */
-body{
- width:100%;
- margin:0;
- padding:0;
- padding-top:1px;
-}
-
footer {
width:100%;
position:fixed;
Modified: jtimerhtml5/src/main/resources/html/index.html
===================================================================
--- jtimerhtml5/src/main/resources/html/index.html 2013-06-07 15:01:05 UTC (rev 40)
+++ jtimerhtml5/src/main/resources/html/index.html 2013-06-11 14:28:24 UTC (rev 41)
@@ -6,14 +6,45 @@
<link rel="stylesheet" href="jtimer.css"/>
<script src="jtimer.js"></script>
</head>
- <body onload="getTasks()">
- <!-- Menu -->
+ <body>
+
+
+
+ <header class="navbar navbar navbar-fixed-top">
+ <div class="navbar-inner">
+ <div class="container">
+ <a class="brand" href="#">jTimer</a>
+ <div class="nav-collapse collapse">
+ <ul class="nav">
+ <li class="optH" id="options"><a title="Options général" href="javascript:options()">Options</a></li>
+ <li class="optH" id="report"><a title="Création d'un rapport" href="javascript:report()">Rapport</a></li>
+ <li class="optH" id="about"><a title="À propos de jTimer" href="javascript:about()">À propos</a></li>
+ <li class="optH" id="quit"><a title="Quitter l'application" href="javascript:window.close()">Quitter</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </header>
+
+
+
+ <div id="jtimer">
+ <div id="opts">
+ <span><label title="Affiche les projets et tâches fermer"><input type="checkbox" onchange="javascript:displayHidden()">Afficher les cachés</a></label></span>
+ <span><label title="Réduit l'application dans le systray au lieu de le fermer"><input type="checkbox" onchange="javascript:systray()">Fermer vers le systray</label></span>
+ <span>Rapport - Premier jour de la semaine :
+ <select name="day" onchange="dStartWeek()">
+ <option>lundi
+ <option>mardi
+ <option>mercredi
+ <option>jeudi
+ <option>vendredi
+ <option>samedi
+ <option>dimanche
+ </select></span>
+ </div>
+ <!-- Menu
<ul id="menu">
- <li><a href="#">Fichier</a>
- <ul>
- <li><a title="Quitter l'application" href="javascript:window.close()">Quitter</a></li>
- </ul>
- </li>
<li><a href="#">Project</a>
<ul>
<li><a title="Création d'un nouveau projet" href="javascript:newProject()">Nouveau Projet</a></li>
@@ -44,85 +75,134 @@
<li><a class="optionNotProject" title="Fusionne les tâches sélectionnées" href="javascript:fusion()">Fusionner</a></li>
</ul>
</li>
- <li><a href="#">Rapport</a>
- <ul>
- <li><a title="Création d'un rapport" href="javascript:report()">Rapport...</a></li>
- </ul>
- </li>
- <li><a href="#">Options</a>
- <ul>
- <li><label><a title="Affiche les projets et tâches fermer" href="javascript:displayHidden()"><input type="checkbox">Afficher les cachés</a></label></li>
- <li><label><a title="Réduit l'application dans le systray au lieu de le fermer" href="javascript:systray()"><input type="checkbox">Fermer vers le systray</a></label></li>
- <li><a href="#">Rapport - Premier jour de la semaine</a>
- <ul><form>
- <li><label><a href="javascript:dStartWeek(1)"><input type="radio">Lundi</a></label></li>
- <li><label><a href="javascript:dStartWeek(2)"><input type="radio">Mardi</a></label></li>
- <li><label><a href="javascript:dStartWeek(3)"><input type="radio">Mercredi</a></label></li>
- <li><label><a href="javascript:dStartWeek(4)"><input type="radio">Jeudi</a></label></li>
- <li><label><a href="javascript:dStartWeek(5)"><input type="radio">Vendredi</a></label></li>
- <li><label><a href="javascript:dStartWeek(6)"><input type="radio">Samedi</a></label></li>
- <li><label><a href="javascript:dStartWeek(7)"><input type="radio">Dimanche</a></label></li>
- </form></ul>
- </li>
- </ul>
- </li>
- <li><a href="#">Aide</a>
- <ul>
- <li><a title="À propos de jTimer" href="javascript:about()">À propos...</a></li>
- </ul>
- </li>
- </ul>
- <div class="buttons">
- <!-- Les boutons d'actions
- Réflechir à la possibilité de n'avoire qu'un bouton pour démarré et stoper une tâche. -->
- <a class="optionNotProject" id="startTask" title="Démarre la tâche sélectionnée" href="javascript:startTask()"></a>
- <a class="optionNotProject" id="stopTask" title="Arrête la tâche sélectionnée" href="javascript:stopTask()"></a>
- <a id="newProject" title="Création d'un nouveau Projet" href="javascript:newProject()"></a>
- <a id="newTask" title="Création d'une nouvelle tâche" href="javascript:newTask()"></a>
-
- <a class="optionNotProject" id="note" title="Ajouter une annotation" href="javascript:addAnnotation()"></a>
- <a class="optionNotProject" id="alert" title="Edition des Alerts" href="javascript:edAlerts()"></a>
+ </ul>-->
+ <div class="buttons">
+ <button class="onp btn" id="startStopTask" title="Démarre ou arrête la tâche sélectionnée" onclick="startStopTask()"></button>
+
+ <button class="btn" id="newProject" title="Création d'un nouveau Projet" onclick="newProject()"></button>
+ <button class="btn" id="newTask" title="Création d'une nouvelle tâche" onclick="newTask()"></button>
+
+ <button class="onp btn" id="note" title="Ajouter une annotation" onclick="addAnnotation()"></button>
+ <button class="onp btn" id="alert" title="Edition des Alerts" onclick="edAlerts()"></button>
+ </div>
+ <div id="tabTask">
+ <!-- Arborescence des Tasks -->
+ <div id="headTasks">
+ <span class="col">Projet et tâches</span>
+ <span class="col">Aujourd'hui</span>
+ <span class="col">Total</span>
+ </div>
+ <ul id="treeTasks"><li>
+ <div class="selec" id="p1">
+ <span class='col'><span>▼</span>html5</span>
+ <span class='col' id="aujp1">01:24:58</span>
+ <span class='col' id="totp1">13:25:32</span>
+ <span class="optP"><button class="btn btn-info"></button></span>
+ </div>
+ <ul class="subtask">
+ <li>
+ <div class="selec" id="t5">
+ <span class='col' id='titlet5'>Documentation</span>
+ <span class='col' id="aujt5">01:00:02</span>
+ <span class='col' id="tott5">06:54:24</span>
+ <span class="optT"><button class="btn btn-info"></button></span>
+ </div>
+ </li>
+ <li>
+ <div class="selec" id="t9">
+ <span class='col' id='titlet9'>Interface</span>
+ <span class='col' id="aujt9">00:24:56</span>
+ <span class='col' id="tott9">06:31:07</span>
+ <span class="optT"><button class="btn btn-info"></button></span>
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div class="selec" id="p4">
+ <span class='col'><span>►</span>New Project</span>
+ <span class='col' id="aujp4">00:00:00</span>
+ <span class='col' id="totp4">00:00:00</span>
+ <span class="optP"><button class="btn btn-info"></button></span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <footer class="footer">
+ <!-- footer à garder tel quel -->
+ <div id="framefooter"><span id="statutTasks">Inactif</span><span id="recapToday">Aujourd'hui : xx:xx:xx</span></div>
+ </footer>
</div>
- <div id="tabTask">
- <!-- Arborescence des Tasks -->
- <div id="headTasks">
- <span class="col">Projet et tâches</span>
- <span class="col">Aujourd'hui</span>
- <span class="col">Total</span><br><br>
- </div>
- <ul id="treeTasks">
- </ul>
+
+
+
+ <div id="reportpage">
+ <div id="divLeft">
+ <div id="optionsReport">
+ Options :<br><br>
+ De : <input type="text" class="datepicker">
+ <input type="button" name="Semaine courante" id="selectThisWeek" value=" "><br>
+ A : <input type="text" class="datepicker">
+ <input type="button" name="Semaine précédente" id="selectLastWeek" value=" "><br>
+ <form>
+ <label><input type="radio" name="formatChoice" value="day">Par jour</label>
+ <label><input type="radio" name="formatChoice" value="month">Par mois</label>
+ <label><input type="radio" name="formatChoice" value="week">Par semaine</label>
+ <label><input type="radio" name="formatChoice" value="year">Par année</label>
+ <label><input type="radio" name="formatChoice" value="project">Par projet</label>
+ </form>
+ <label><input type="checkbox" id="includeAnno" onchange="checkTimeMark()">Inclure les annotations</label>
+ <span id="withTimeMark" style="display:none;"><label><input type="checkbox">avec l'heure</label></span>
+ </div><br>
+ <div id="projectsReport">
+ Projets :<br><br>
+ <label><input type="checkbox" id="displayHiddenReport">Afficher les cachés</label>
+ <div id="treeReport">
+ </div>
+ </div>
+ </div>
+ <div id="divRight">
+ Raport :<br>
+ <span id="zoneTexteReport"><textarea id="textReport"></textarea></span>
+ <footer>
+ <span id="generReport"><img src="img/applications-system.png" alt="apply">Générer</span>
+ <span id="mailReport"><img src="img/mail-forward.png" alt="mail">Envoyer par email</span>
+ </footer>
+ <script>
+ /*$
+ jQuery(function($){
+ $.datepicker.regional['fr'] = {
+ closeText: 'Fermer',
+ prevText: 'Précédent',
+ nextText: 'Suivant',
+ currentText: 'Aujourd\'hui',
+ monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
+ monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin','Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
+ dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
+ dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
+ dayNamesMin: ['D','L','M','M','J','V','S'],
+ weekHeader: 'Sem.',
+ dateFormat: 'dd/mm/yy',
+ firstDay: 1,
+ isRTL: false,
+ showMonthAfterYear: false,
+ yearSuffix: ''};
+ $.datepicker.setDefaults($.datepicker.regional['fr']);
+ });
+ (function() {
+ $( ".datepicker" ).datepicker({
+ dateFormat: "DD dd MM yy",
+ regional: 'fr'
+ });
+ });*/
+ </script>
+ </div>
</div>
- <footer class="footer">
- <!-- footer à garder tel quel -->
- <div id="framefooter"><span id="statutTasks">Inactif</span><span id="recapToday">Aujourd'hui : xx:xx:xx</span></div>
- </footer>
- <!-- Réglage pour le menu -->
- <script>
- $("#menu").menu( { position: { using: positionnerSousMenu } });
-
- function positionnerSousMenu(position, elements) {
- var options = {
- of: elements.target.element
- };
-
- if (elements.element.element.parent().parent().attr("id") === "menu") {
- // le menu à positionner est de niveau 2 :
- options.my = "center top";
- options.at = "right bottom";
- }
- else
- {
- // le menu à positionner est de niveau > 2
- options.my = "left top";
- options.at = "right top";
- }
-
- elements.element.element.position(options);
- };
-
- $("#menu > li > a > span.ui-icon-carat-1-e").removeClass("ui-icon-carat-1-e").addClass("ui-icon-carat-1-s");
- </script>
+
+
</body>
+ <script>$(".brand").css("color","#ff7a04");$("#opts").css("display","none");selection();$(".onp").css("display","none");$("#newTask").css("display","none");$("#reportpage").css("display","none");</script>
</html>
+
+
Deleted: jtimerhtml5/src/main/resources/html/js/actionsMenus.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/actionsMenus.js 2013-06-07 15:01:05 UTC (rev 40)
+++ jtimerhtml5/src/main/resources/html/js/actionsMenus.js 2013-06-11 14:28:24 UTC (rev 41)
@@ -1,236 +0,0 @@
-var tabProjects = new Array();
-var elemSelec = "";
-
-function getTasks(){
- $.getJSON('http://localhost:8080/other/getProjects',function(data) {
- for (var i = 0; i<3; i++){
- tabProjects[data[i].number] = data[i];
- }
- });
- displayTreeTask();
- //$('#recapToday').html("Aujourd'hui : "+tabProjects[1].timeToday); // généraliser sur tout les projets
-}
-
-function timeToday(i){
- return 0;//tabProjects[i].allDaysTimes.;//aujourd'hui
-}
-
-function timeTotal(i){
- var nb = 0;
- for (var t in tabProjects[i].allDaysTimes){
- nb = nb + tabProjects[i].allDaysTimes.t;
- }
- return nb;
-}
-
-function displayTreeTask(){
- alert(""); // fonctionne avec le alert mais pas sans...
- var treeT = "";
- for (var o in tabProjects){
- treeT = treeT + "<li><div class='selec' id='p"+o+"'><span class='col' id='titlep"+o+"'>"+tabProjects[o].name+"</span><span class='col'>"+timeToday(o)+"</span><span class='col'>"+timeTotal(o)+"</span></div>";
- //treeT = treeT + createSubTasks(tabProjects[o].tasks);
- treeT = treeT + "</li>";
- }
- $("#treeTasks").html(treeT);
- $("#treeTasks").sortable();
- $(".subtask").sortable();
- disableOptions();
-}
-
-function createSubTasks(tabTasks){
- if(tabTasks.length){
- var subT = "<ul class='subtask'>";
- for(var t in tabTasks){
- var nb = tabTasks[t].number;
- subT = subT + "<li><div class='selec' id='t"+nb+"'><span class='col' id='titlet"+nb+"'>"+tabTasks[t].name+"</span><span class='col'>"+tabTasks[t].timeToday+"</span><span class='col'>"+tabTasks[t].timeTotal+"</span>";
- if(tabTasks[t].tasks!=[]){
- subT = subT + createSubTasks(tabTasks[t].tasks);
- }
- subT = subT + "</li>";
- }
- subT = subT + "</ul>";
- return subT;
- }
- else{
- return "";
- }
-}
-
-function disableOptions(){
- $(".selec").click( function(){
- $("#"+elemSelec).css('background-color','');
- elemSelec = this.id;
- $("#"+elemSelec).css('background-color','#A9EAFE');
- if(elemSelec.charAt(0)=="p"){
- $(".optionNotProject").css("color","grey");
- $(".optionNotProject").css("cursor","default");
- $(".optionNotTask").css("color","black");
- $(".optionNotTask").css("cursor","pointer");
- $("#startTask").css("background-color","grey");
- $("#stopTask").css("background-color","grey");
- $("#note").css("background-color","grey");
- $("#alert").css("background-color","grey");
- }
- else if(elemSelec.charAt(0)=="t"){
- $(".optionNotTask").css("color","grey");
- $(".optionNotTask").css("cursor","default");
- $(".optionNotProject").css("color","black");
- $(".optionNotProject").css("cursor","pointer");
- $("#startTask").css("background-color","");
- $("#stopTask").css("background-color","");
- $("#note").css("background-color","");
- $("#alert").css("background-color","");
- }
- });
- $(".optionNotProject").click( function(){
- if(elemSelec.charAt(0)=="p"){
- return false;
- }
- });
- $(".optionNotTask").click( function(){
- if(elemSelec.charAt(0)=="t"){
- return false;
- }
- });
-}
-
-/* Différente actions des menus et des boutons */
-
-function newProject(){
- var nameNewProject = prompt("Nom du Projet à créer :", "" );
- if (nameNewProject=="") {
- alert("Erreur : Le nom est vide !");
- }
- else {
- $.get('http://localhost:8080/other/addProject/'+nameNewProject,function(data){
- alert(data);
- });
- }
- // vérifier si un autre projet n'a pas déjà ce nom
-}
-
-function edProject(){
- var newnameProject = prompt("Nouveau nom du Projet :","x");
- if (newnameProject=="") {
- alert("Erreur : Le nom est vide !");
- }
- else {
- $.get('http://localhost:8080/project/modifyProject/'+elemSelec.substring(1,elemSelec.length)+'/'+newnameProject,function(data){
- alert(data);
- });
- }
- // vérifier si un autre projet n'a pas déjà ce nom
-}
-
-function ofProject(){
- $.get('http://localhost:8080/task/changeClosedState/'+elemSelec.substring(1,elemSelec.length),function(data){
- alert(data);
- });
-}
-
-function supprProject() {
- var bool = confirm("Voulez-vous supprimer le Projet x ?")
- if (bool){
- $.get('http://localhost:8080/project/deleteProject/'+elemSelec.substring(1,elemSelec.length),function(data){
- alert(data);
- });
- }
-}
-
-function newTask() {
- var nameNewTask = prompt("Nom de la tâche à créer pour x :", "" );
- if (nameNewTask=="") {
- alert("Erreur : Le nom est vide !");
- }
- else {
- $.get('http://localhost:8080/task/addTask/'+nameNewTask,function(data){
- alert(data);
- });
- }
- // vérifier si une autre tâche n'a pas déjà ce nom au même niveau
-}
-
-function edTask(){
- window.open('editionTask.html','','height=450, width=350, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no');
-}
-
-function ofTask(){
- $.get('http://localhost:8080/task/changeClosedState/'+elemSelec.substring(1,elemSelec.length),function(data){
- alert(data);
- });
-}
-
-function supprTask(){
- var bool = confirm("Voulez-vous supprimer la tâche x ?");
- if (bool){
- $.get('http://localhost:8080/task/deleteTask/'+elemSelec.substring(1,elemSelec.length),function(data){
- alert(data);
- });
- }
-}
-
-function startTask(){
-
-}
-
-function stopTask(){
-
- $.get('http://localhost:8080/task/saveTaskTimes/'+elemSelec.substring(1,elemSelec.length),function(data){
- alert(data);
- });
-}
-
-function addAnnotation(){
- var newAnnot = prompt("Annotation pour la tâche x :","");
- $.get('http://localhost:8080/task/setAnnotation/'+elemSelec.substring(1,elemSelec.length)+'/'+newAnnot,function(data){
- alert(data);
- });
-}
-
-function edAlerts(){
- window.open('alerts.html','','height=400, width=600, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no');
-}
-
-function addsou(nb){
-
-
- $.get('http://localhost:8080/task/saveTaskTimes/'+elemSelec.substring(1,elemSelec.length)+'/'+nb,function(data){
- alert(data);
- });
-}
-
-function zero(){
- $.get('http://localhost:8080/task/zero/'+elemSelec.substring(1,elemSelec.length),function(data){
- alert(data);
- });
-}
-
-function fusion(){
- $.get('http://localhost:8080/task/fusion',function(data){
- alert(data);
- });
-}
-
-function report(){
- window.open('report.html','','height=800, width=1100, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no');
-}
-
-function displayHidden(){
- // uniquement lié à l'interface ?
-}
-
-function systray(){
- $.get('http://localhost:8080/task/systray',function(data){
- alert(data);
- });
-}
-
-function dStartWeek(day){
- $.get('http://localhost:8080/task/dStartWeek/'+day,function(data){
- alert(data);
- });
-}
-
-function about(){
- window.open('about.html','','height=405, width=420, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no');
-}
Added: jtimerhtml5/src/main/resources/html/js/jtimer.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/jtimer.js (rev 0)
+++ jtimerhtml5/src/main/resources/html/js/jtimer.js 2013-06-11 14:28:24 UTC (rev 41)
@@ -0,0 +1,214 @@
+var tabProjects = new Array();
+var tabTasks = new Array();
+var elemSelec = "";
+var opt = false;
+var rpt = false;
+
+
+function getProjects(){
+ $.getJSON('http://localhost:8080/other/getProjects',function(data) {
+ for (var i in data){
+ tabProjects[data[i].number] = data[i];
+ }
+ });
+}
+
+function getChilds(p){
+ $.getJSON('http://localhost:8080/task/getTasks/'+p,function(data) {
+ tabTasks[p] = new Array();
+ for (var i in data){
+ tabTasks[p][i] = data[i];
+ }
+ });
+}
+
+function showHideChilds(t){
+ $("#subT"+t).css();
+}
+
+function timeToday(i){
+ return 0;//tabProjects[i].allDaysTimes.;//aujourd'hui
+}
+
+function timeTotal(i){
+ var nb = 0;
+ for (var t in tabProjects[i].allDaysTimes){
+ nb = nb + tabProjects[i].allDaysTimes.t;
+ }
+ return nb;
+}
+
+$(".selec").click( function(){
+ $("#"+elemSelec).css('background-color','');
+ elemSelec = this.id;
+ $("#"+elemSelec).css('background-color','#A9EAFE');
+});
+
+var myVar = setInterval(function(){startStopTask()},1000);
+
+function startStopTask(){
+
+}
+
+function options(){
+ if (opt){
+ $("#opts").css("display","none");
+ $("#options").removeClass("active");
+ opt = false;
+ }
+ else {
+ $("#opts").css("display","");
+ $("#options").addClass("active");
+ opt = true;
+ }
+}
+
+function selection() {
+ $(".selec").click( function(){
+ $("#"+elemSelec).css('background-color','');
+ elemSelec = this.id;
+ $("#"+elemSelec).css('background-color','#A9EAFE');
+ if(elemSelec.charAt(0)=="p"){
+ $(".onp").css("display","none");
+ $("#newTask").css("display","");
+ }
+ else if(elemSelec.charAt(0)=="t"){
+ $(".onp").css("display","");
+ $("#newTask").css("display","");
+ }
+ });
+}
+
+function report(){
+ if (rpt){
+ $("#reportpage").css("display","none");
+ $("#jtimer").css("display","");
+ $("#report").removeClass("active");
+ rpt = false;
+ }
+ else {
+ $("#reportpage").css("display","");
+ $("#jtimer").css("display","none");
+ $("#report").addClass("active");
+ rpt = true;
+ }
+}
+
+var check = false;
+function checkTimeMark(){
+ if (check==false){
+ check=true;
+ $("#withTimeMark").css("display","");
+ }
+ else
+ {
+ check=false;
+ $("#withTimeMark").css("display","none");
+ }
+}
+
+function edAlerts(){
+ window.open('alerts.html','','height=400, width=600, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no');
+}
+
+function about(){
+ window.open('about.html','','height=405, width=420, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no');
+}
+
+/* Différente actions des menus et des boutons */
+
+function newProject(parent){
+ var nameNewProject = prompt("Nom du Projet à créer :", "" );
+ if (nameNewProject=="") {
+ alert("Erreur : Le nom est vide !");
+ }
+ else {
+ var newproject = "{}"; //le nouveau projet en format json
+ $.get('http://localhost:8080/other/addProject/'+newproject,function(data){
+ alert(data);
+ });
+ }
+ // vérifier si un autre projet n'a pas déjà ce nom
+}
+
+function edProject(){
+ var newnameProject = prompt("Nouveau nom du Projet :","x");
+ if (newnameProject=="") {
+ alert("Erreur : Le nom est vide !");
+ }
+ else {
+ $.get('http://localhost:8080/project/modifyProject/'+tabProjects[elemSelec.substring(1,elemSelec.length)],function(data){
+ alert(data);
+ });
+ }
+ // vérifier si un autre projet n'a pas déjà ce nom
+}
+
+function ofProject(){
+ $.get('http://localhost:8080/task/changeClosedState/'+tabProjects[elemSelec.substring(1,elemSelec.length)],function(data){
+ alert(data);
+ });
+}
+
+function supprProject() {
+ var bool = confirm("Voulez-vous supprimer le Projet x ?")
+ if (bool){
+ $.get('http://localhost:8080/project/deleteProject/'+elemSelec.substring(1,elemSelec.length),function(data){
+ alert(data);
+ });
+ }
+}
+
+function newTask() {
+ var nameNewTask = prompt("Nom de la tâche à créer pour x :", "" );
+ if (nameNewTask=="") {
+ alert("Erreur : Le nom est vide !");
+ }
+ else {
+ $.get('http://localhost:8080/task/addTask/'+nameNewTask,function(data){
+ alert(data);
+ });
+ }
+ // vérifier si une autre tâche n'a pas déjà ce nom au même niveau
+}
+
+function edTask(){
+ window.open('editionTask.html','','height=450, width=350, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no');
+}
+
+function ofTask(){
+ $.get('http://localhost:8080/task/changeClosedState/'+elemSelec.substring(1,elemSelec.length),function(data){
+ alert(data);
+ });
+}
+
+function supprTask(){
+ var bool = confirm("Voulez-vous supprimer la tâche x ?");
+ if (bool){
+ $.get('http://localhost:8080/task/deleteTask/'+elemSelec.substring(1,elemSelec.length),function(data){
+ alert(data);
+ });
+ }
+}
+
+function saveTask(){
+
+}
+
+function fusion(){
+ $.get('http://localhost:8080/task/fusion',function(data){
+ alert(data);
+ });
+}
+
+function systray(){
+ $.get('http://localhost:8080/task/systray',function(data){
+ alert(data);
+ });
+}
+
+function dStartWeek(day){
+ $.get('http://localhost:8080/task/dStartWeek/'+day,function(data){
+ alert(data);
+ });
+}
Deleted: jtimerhtml5/src/main/resources/html/report.html
===================================================================
--- jtimerhtml5/src/main/resources/html/report.html 2013-06-07 15:01:05 UTC (rev 40)
+++ jtimerhtml5/src/main/resources/html/report.html 2013-06-11 14:28:24 UTC (rev 41)
@@ -1,77 +0,0 @@
-<!DOCTYPE html>
-<html lang="fr">
- <head>
- <meta charset="UTF-8"/>
- <title>Rapport - jTimer</title>
- <link rel="stylesheet" href="jtimer.css"/>
- <script src="jtimer.js"></script>
- <script>
- jQuery(function($){
- $.datepicker.regional['fr'] = {
- closeText: 'Fermer',
- prevText: 'Précédent',
- nextText: 'Suivant',
- currentText: 'Aujourd\'hui',
- monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
- monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin','Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
- dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
- dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
- dayNamesMin: ['D','L','M','M','J','V','S'],
- weekHeader: 'Sem.',
- dateFormat: 'dd/mm/yy',
- firstDay: 1,
- isRTL: false,
- showMonthAfterYear: false,
- yearSuffix: ''};
- $.datepicker.setDefaults($.datepicker.regional['fr']);
- });
- </script>
- <script src="js/report.js"></script>
- </head>
- <body>
- <div id="divLeft">
- <div id="optionsReport">
- Options :<br><br>
- De : <input type="text" class="datepicker">
- <input type="button" name="Semaine courante" id="selectThisWeek" value=" "><br>
- A : <input type="text" class="datepicker">
- <input type="button" name="Semaine précédente" id="selectLastWeek" value=" "><br>
- <form>
- <label><input type="radio" name="formatChoice" value="day">Par jour</label>
- <label><input type="radio" name="formatChoice" value="month" id="monthReport">Par mois</label>
- <br>
- <label><input type="radio" name="formatChoice" value="week">Par semaine</label>
- <label><input type="radio" name="formatChoice" value="year" id="yearReport">Par année</label>
- <br>
- <label><input type="radio" name="formatChoice" value="project">Par projet</label>
- </form>
- <label><input type="checkbox" id="includeAnno" onchange="checkTimeMark()">Inclure les annotations</label>
- <span id="withTimeMark" style="display:none;"><label><input type="checkbox">avec l'heure</label></span>
- </div><br>
- <div id="projectsReport">
- Projets :<br><br>
- <label><input type="checkbox" id="displayHiddenReport">Afficher les cachés</label>
- <div id="treeReport">
- </div>
- </div>
- </div>
-
- <div id="divRight">
- Raport :<br>
- <span id="zoneTexteReport"><textarea id="textReport"></textarea></span>
- <footer>
- <span id="generReport"><img src="img/applications-system.png" alt="apply">Générer</span>
- <span id="mailReport"><img src="img/mail-forward.png" alt="mail">Envoyer par email</span>
- <input type="button" value="Fermer" id="closeReport" onclick="javascript:window.close()">
- </footer>
- <script>
- $(function() {
- $( ".datepicker" ).datepicker({
- dateFormat: "DD dd MM yy",
- regional: 'fr'
- });
- });
- </script>
- </div>
- </body>
-</html>
Deleted: jtimerhtml5/src/main/resources/html/test.html
===================================================================
--- jtimerhtml5/src/main/resources/html/test.html 2013-06-07 15:01:05 UTC (rev 40)
+++ jtimerhtml5/src/main/resources/html/test.html 2013-06-11 14:28:24 UTC (rev 41)
@@ -1,163 +0,0 @@
-<!DOCTYPE html>
-<html lang="fr">
- <head>
- <meta charset="UTF-8"/>
- <title>test</title>
- <link rel="stylesheet" href="jtimer.css"/>
- <script src="jtimer.js"></script>
- </head>
- <body>
- <!-- Menu -->
- <ul id="menu">
- <li><a href="#">Fichier</a>
- <ul>
- <li><a title="Quitter l'application" href="javascript:window.close()">Quitter</a></li>
- </ul>
- </li>
- <li><a href="#">Project</a>
- <ul>
- <li><a title="Création d'un nouveau projet" href="javascript:newProject()">Nouveau Projet</a></li>
- <li><a class="optionNotTask" title="Édition du projet" href="javascript:edProject()">Éditer le Projet</a></li>
- <li><a class="optionNotTask" title="Ouvrir ou fermer le projet" href="javascript:ofProject()">Ouvrir/Fermer le Projet</a></li>
- <li><a class="optionNotTask" title="Suppression du Projet" href="javascript:supprProject()">Supprimer le projet</a></li>
- </ul>
- </li>
- <li><a href="#">Tâche</a>
- <ul>
- <li><a title="Création d'une nouvelle tâche" href="javascript:newTask()">Nouvelle tâche</a></li>
- <li><a class="optionNotProject" title="Édition de la tâche" href="javascript:edTask()">Éditer la tâche</a></li>
- <li><a class="optionNotProject" title="Ouvrir ou fermer la tâche" href="javascript:ofTask()">Ouvrir/Fermer la tâche</a></li>
- <li><a class="optionNotProject" title="Suppression de la tâche" href="javascript:supprTask()">Supprimer la tâche</a></li>
-
- <li><a class="optionNotProject" title="Démarrage de la tâche" href="javascript:startTask()">Démarrer</a></li>
- <li><a class="optionNotProject" title="Arrêt de la tâche" href="javascript:stopTask()">Arrêter</a></li>
-
- <li><a class="optionNotProject" title="Ajout d'une annotation" href="javascript:addAnnotation()">Ajouter une annotation</a></li>
- <li><a class="optionNotProject" title="Édition des alertes" href="javascript:edAlerts()">Éditer les Alertes</a></li>
- <li><a class="optionNotProject" title="Ajout de 1 minute à la tâche" href="javascript:addsou(1)">Ajouter 1 minute</a></li>
- <li><a class="optionNotProject" title="Ajout de 5 minutes à la tâche" href="javascript:addsou(5)">Ajouter 5 minutes</a></li>
- <li><a class="optionNotProject" title="Ajout de 30 minutes à la tâche" href="javascript:addsou(30)">Ajouter 30 minutes</a></li>
- <li><a class="optionNotProject" title="Enlève 1 minute à la tâche" href="javascript:addsou(-1)">Enlever 1 minute</a></li>
- <li><a class="optionNotProject" title="Enlève 5 minutes à la tâche" href="javascript:addsou(-5)">Enlever 5 minutes</a></li>
- <li><a class="optionNotProject" title="Enlève 30 minutes à la tâche" href="javascript:addsou(-30)">Enlever 30 minutes</a></li>
- <li><a class="optionNotProject" title="Remet la tâche à zero" href="javascript:zero()">Remettre à Zero</a></li>
- <li><a class="optionNotProject" title="Fusionne les tâches sélectionnées" href="javascript:fusion()">Fusionner</a></li>
- </ul>
- </li>
- <li><a href="#">Rapport</a>
- <ul>
- <li><a title="Création d'un rapport" href="javascript:report()">Rapport...</a></li>
- </ul>
- </li>
- <li><a href="#">Options</a>
- <ul>
- <li><label><a title="Affiche les projets et tâches fermer" href="javascript:displayHidden()"><input type="checkbox">Afficher les cachés</a></label></li>
- <li><label><a title="Réduit l'application dans le systray au lieu de le fermer" href="javascript:systray()"><input type="checkbox">Fermer vers le systray</a></label></li>
- <li><a href="#">Rapport - Premier jour de la semaine</a>
- <ul><form>
- <li><label><a href="javascript:dStartWeek(1)"><input type="radio">Lundi</a></label></li>
- <li><label><a href="javascript:dStartWeek(2)"><input type="radio">Mardi</a></label></li>
- <li><label><a href="javascript:dStartWeek(3)"><input type="radio">Mercredi</a></label></li>
- <li><label><a href="javascript:dStartWeek(4)"><input type="radio">Jeudi</a></label></li>
- <li><label><a href="javascript:dStartWeek(5)"><input type="radio">Vendredi</a></label></li>
- <li><label><a href="javascript:dStartWeek(6)"><input type="radio">Samedi</a></label></li>
- <li><label><a href="javascript:dStartWeek(7)"><input type="radio">Dimanche</a></label></li>
- </form></ul>
- </li>
- </ul>
- </li>
- <li><a href="#">Aide</a>
- <ul>
- <li><a title="À propos de jTimer" href="javascript:about()">À propos...</a></li>
- </ul>
- </li>
- </ul>
- <div class="buttons">
- <!-- Les boutons d'actions
- Réflechir à la possibilité de n'avoire qu'un bouton pour démarré et stoper une tâche. -->
- <a class="optionNotProject" id="startTask" title="Démarre la tâche sélectionnée" href="javascript:startTask()"></a>
- <a class="optionNotProject" id="stopTask" title="Arrête la tâche sélectionnée" href="javascript:stopTask()"></a>
- <a id="newProject" title="Création d'un nouveau Projet" href="javascript:newProject()"></a>
- <a id="newTask" title="Création d'une nouvelle tâche" href="javascript:newTask()"></a>
-
- <a class="optionNotProject" id="note" title="Ajouter une annotation" href="javascript:addAnnotation()"></a>
- <a class="optionNotProject" id="alert" title="Edition des Alerts" href="javascript:edAlerts()"></a>
- </div>
- <div id="tabTask">
- <!-- Arborescence des Tasks -->
- <div id="headTasks">
- <span class="col">Projet et tâches</span>
- <span class="col">Aujourd'hui</span>
- <span class="col">Total</span><br><br>
- </div>
- <ul id="treeTasks"><li>
- <div class="selec" id="p1">
- <span class='col'><span>▼</span>html5</span>
- <span class='col'>01:24:58</span>
- <span class='col'>13:25:32</span>
- </div>
- <ul class="subtask">
- <li>
- <div class="selec" id="t5">
- <span class='col' id='titlet5'>Documentation</span>
- <span class='col'>01:00:02</span>
- <span class='col'>06:54:24</span>
- </div>
- </li>
- <li>
- <div class="selec" id="t9">
- <span class='col' id='titlet9'>Interface</span>
- <span class='col'>00:24:56</span>
- <span class='col'>06:31:07</span>
- </div>
- </li>
- </ul>
- </li>
- <li>
- <div class="selec" id="p4">
- <span class='col'><span>►</span>New Project</span>
- <span class='col'>00:00:00</span>
- <span class='col'>00:00:00</span>
- </div>
- </li>
- </ul>
- </div>
- <footer class="footer">
- <!-- footer à garder tel quel -->
- <div id="framefooter"><span id="statutTasks">Inactif</span><span id="recapToday">Aujourd'hui : xx:xx:xx</span></div>
- </footer>
-
- <!-- Réglage pour le menu -->
- <script>
- $("#menu").menu( { position: { using: positionnerSousMenu } });
-
- function positionnerSousMenu(position, elements) {
- var options = {
- of: elements.target.element
- };
-
- if (elements.element.element.parent().parent().attr("id") === "menu") {
- // le menu à positionner est de niveau 2 :
- options.my = "center top";
- options.at = "right bottom";
- }
- else
- {
- // le menu à positionner est de niveau > 2
- options.my = "left top";
- options.at = "right top";
- }
-
- elements.element.element.position(options);
- };
-
- $("#menu > li > a > span.ui-icon-carat-1-e").removeClass("ui-icon-carat-1-e").addClass("ui-icon-carat-1-s");
- var elemSelec
- $("#treeTasks").sortable();
- $(".subtask").sortable();
- disableOptions();
- </script>
- </body>
-</html>
-
-
1
0
r40 - in jtimerhtml5/src/main: java/org/chorem/jtimer java/org/chorem/jtimer/storage resources/html/js
by qmoriceau@users.chorem.org 07 Jun '13
by qmoriceau@users.chorem.org 07 Jun '13
07 Jun '13
Author: qmoriceau
Date: 2013-06-07 17:01:05 +0200 (Fri, 07 Jun 2013)
New Revision: 40
Url: http://chorem.org/projects/incubator/repository/revisions/40
Log:
Appel directe au services m?\195?\169tiers et remplacement des tabulations par des espaces.
Removed:
jtimerhtml5/src/main/java/org/chorem/jtimer/TaskService.java
Modified:
jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java
jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java
jtimerhtml5/src/main/java/org/chorem/jtimer/TaskExclusionStrategy.java
jtimerhtml5/src/main/java/org/chorem/jtimer/WebViewJTimer.java
jtimerhtml5/src/main/java/org/chorem/jtimer/storage/Storage.java
jtimerhtml5/src/main/resources/html/js/actionsMenus.js
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java 2013-06-06 09:00:25 UTC (rev 39)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java 2013-06-07 15:01:05 UTC (rev 40)
@@ -11,10 +11,10 @@
public class JTimer extends WebViewJTimer {
public static void main(String[] args) throws Exception {
-
- Server server = new Server(8080);
-
- ResourceHandler resource_handler = new ResourceHandler();
+
+ Server server = new Server(8080);
+
+ ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[]{ "index.html" });
@@ -24,13 +24,13 @@
handlers.setHandlers(new Handler[] { resource_handler , new JTimerHandler()});
server.setHandler(handlers);
- server.start();
- URI uri = new URI("http://localhost:8080");
- try{
- Desktop.getDesktop().browse(uri); // permet de lancer la page dans le nivigateur par défault
- } catch (Exception e) {
- launch(args);// permer de lancer la page dans la web view si le navigateur n'est pas trouvé
- }
- server.join();
+ server.start();
+ URI uri = new URI("http://localhost:8080");
+ try{
+ Desktop.getDesktop().browse(uri); // permet de lancer la page dans le nivigateur par défault
+ } catch (Exception e) {
+ launch(args);// permer de lancer la page dans la web view si le navigateur n'est pas trouvé
+ }
+ server.join();
}
}
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java 2013-06-06 09:00:25 UTC (rev 39)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java 2013-06-07 15:01:05 UTC (rev 40)
@@ -9,7 +9,9 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.chorem.jtimer.entities.TimerProject;
import org.chorem.jtimer.entities.TimerTask;
+import org.chorem.jtimer.storage.Storage;
import org.eclipse.jetty.server.HttpConnection;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
@@ -21,49 +23,58 @@
public class JTimerHandler extends AbstractHandler {
- @Override
- public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
-
- final String[] path = request.getRequestURI().split("/");
-
- if (path[1].equals("task")){
-
- final TaskService ts = new TaskService();
- String content = new String();
- Object result;
- ExclusionStrategy excludeTasks = new TaskExclusionStrategy(TimerTask.class);
- Gson gson = new GsonBuilder().setExclusionStrategies(excludeTasks).create();
+ final Storage storage = new Storage();
+
+ @Override
+ public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException {
+
+ final String[] path = request.getRequestURI().split("/");
+
+ if (path[1].equals("task") || path[1].equals("project") || path[1].equals("other")){
+
+ String content = new String();
+ Object result;
+ ExclusionStrategy excludeTasks = new TaskExclusionStrategy(TimerTask.class);
+ Gson gson = new GsonBuilder().setExclusionStrategies(excludeTasks).create();
- String[] param = new String[path.length-3];
- for(int i=0;i<path.length-3;i++){
- param[i]=path[i+3];
- }
- List<Method> m = ObjectUtil.getMethod(TaskService.class,path[2],false);
- try {
- result = ObjectUtil.call(ts, m.get(0), param);
- content = gson.toJson(result);
- System.out.println(content);
- } catch (IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InstantiationException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- response.setContentType("text/json;charset=utf-8");
- response.setStatus(HttpServletResponse.SC_OK);
- response.getOutputStream().print(content);
-
- Request base_request = (Request) ((request instanceof Request) ? (Request)request:HttpConnection.getCurrentConnection().getRequestBuffer());
- base_request.setHandled(true);
- }
- }
+ String[] param = new String[path.length-3];
+ for(int i=0;i<path.length-3;i++){
+ param[i]=path[i+3];
+ }
+ /*if(path[1].equals("task")){ // test de transformation json to java
+ param[0] = gson.fromJson(param[0], TimerTask.class);
+ }
+ else if(path[1].equals("project")){
+ param[0] = gson.fromJson(param[0], TimerProject.class);
+ }*/
+ List<Method> m = ObjectUtil.getMethod(Storage.class,path[2],false);
+ try {
+ result = ObjectUtil.call(storage, m.get(0), param);
+ content = gson.toJson(result);
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InstantiationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+
+ response.setContentType("text/json;charset=utf-8");
+ response.setStatus(HttpServletResponse.SC_OK);
+ response.getOutputStream().print(content);
+
+ // la requête est réglé, on fait en sorte qu'il ne passe pas dans un autre handler
+ Request base_request = (Request) ((request instanceof Request) ? (Request)request:HttpConnection.getCurrentConnection().getRequestBuffer());
+ base_request.setHandled(true);
+ }
+ }
+
}
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/TaskExclusionStrategy.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/TaskExclusionStrategy.java 2013-06-06 09:00:25 UTC (rev 39)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/TaskExclusionStrategy.java 2013-06-07 15:01:05 UTC (rev 40)
@@ -5,23 +5,23 @@
public class TaskExclusionStrategy implements ExclusionStrategy {
-
- private final Class<?> excludedThisClass;
+
+ private final Class<?> excludedThisClass;
- public TaskExclusionStrategy(Class<?> excludedThisClass) {
- this.excludedThisClass = excludedThisClass;
- }
-
- @Override
- public boolean shouldSkipClass(Class<?> clas_s) {
- // TODO Auto-generated method stub
- return false;
- }
+ public TaskExclusionStrategy(Class<?> excludedThisClass) {
+ this.excludedThisClass = excludedThisClass;
+ }
+
+ @Override
+ public boolean shouldSkipClass(Class<?> clas_s) {
+ // TODO Auto-generated method stub
+ return false;
+ }
- @Override
- public boolean shouldSkipField(FieldAttributes fieldAttributes) {
- // TODO Auto-generated method stub
- return ((fieldAttributes.getDeclaringClass()==excludedThisClass && fieldAttributes.getName().equals("parent")) || (fieldAttributes.getDeclaringClass()==excludedThisClass && fieldAttributes.getName().equals("subTasks")));
- }
+ @Override
+ public boolean shouldSkipField(FieldAttributes fieldAttributes) {
+ // TODO Auto-generated method stub
+ return ((fieldAttributes.getDeclaringClass()==excludedThisClass && fieldAttributes.getName().equals("parent")) || (fieldAttributes.getDeclaringClass()==excludedThisClass && fieldAttributes.getName().equals("subTasks")));
+ }
}
\ No newline at end of file
Deleted: jtimerhtml5/src/main/java/org/chorem/jtimer/TaskService.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/TaskService.java 2013-06-06 09:00:25 UTC (rev 39)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/TaskService.java 2013-06-07 15:01:05 UTC (rev 40)
@@ -1,81 +0,0 @@
-package org.chorem.jtimer;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.chorem.jtimer.entities.TimerTask;
-
-public class TaskService {
-
- public List<TimerTask> getProjects(){
- List<TimerTask> listT = new ArrayList<TimerTask>();
- listT.add(new TimerTask("salut salut"));
- listT.add(new TimerTask("comment va ?"));
- listT.add(new TimerTask("comme un mercredi"));
- return (listT);
- }
-
- public void addProject(String name){
- System.out.println("newProject call");
- }
-
- public String modifyProject(int idProject, String newName) throws UnsupportedEncodingException{
- return ("Nouveau nom du projet "+idProject+" est : "+URLDecoder.decode(newName, "UTF-8"));
- }
-
- public void ofProject(int idProject){
-
- }
-
- public void deleteProject(int idProject){
-
- }
-
- public void addTask(String name){
-
- }
-
- public void ofTask(int idTask){
-
- }
-
- public void deleteTask(int idTask){
-
- }
-
- public String startTask(int idTask){
- return("{\"task\":[{\"pre\":\"comment ça va ?\",\"suf\":\"comme un vendredi\"}]}");
- }
-
- public void stopTask(int idTask){
-
- }
-
- public void setAnnotation(int idTask, String note){// ne pas oublier la date !
-
- }
-
- public void addsou(int idTask, int nb){
-
- }
-
- public void zero(int idTask){
-
- }
-
- /*public void fusion(List<Task> tasks){
-
- }*/
-
- public void systray(boolean bool){ //vraiment besoin du booléen ?
-
- }
-
- public void dStartWeek(int day){
-
- }
-
-}
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/WebViewJTimer.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/WebViewJTimer.java 2013-06-06 09:00:25 UTC (rev 39)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/WebViewJTimer.java 2013-06-07 15:01:05 UTC (rev 40)
@@ -30,11 +30,11 @@
import javafx.util.Callback;
public class WebViewJTimer extends Application {
-
- @Override
- public void start(final Stage stage) {
-
- stage.setTitle("jTimer");
+
+ @Override
+ public void start(final Stage stage) {
+
+ stage.setTitle("jTimer");
Scene scene = new Scene(new Group(), 460, 510);
@@ -44,68 +44,68 @@
final WebEngine webEngine = browser.getEngine();
// les différentes initialisation nécéssaire aux boites de dialogue
- final VBox confirmationResults = new VBox();
- confirmationResults.getStyleClass().add("confirmation-results");
- confirmationResults.setMinWidth(100);
- HBox layout = new HBox();
- layout.getChildren().addAll(confirmationResults, browser);
- stage.setScene(new Scene(layout));
- stage.show();
- stage.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/alert_box.css").toExternalForm());
+ final VBox confirmationResults = new VBox();
+ confirmationResults.getStyleClass().add("confirmation-results");
+ confirmationResults.setMinWidth(100);
+ HBox layout = new HBox();
+ layout.getChildren().addAll(confirmationResults, browser);
+ stage.setScene(new Scene(layout));
+ stage.show();
+ stage.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/alert_box.css").toExternalForm());
// permet d'ouvrir des popup.
webEngine.setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() {
- public WebEngine call(PopupFeatures popupFeatures) {
- final WebView popupWebView = new WebView();
- final Scene popupScene = new Scene(popupWebView);
- final Stage popupStage = new Stage();
- popupStage.setScene(popupScene);
- popupStage.setResizable(popupFeatures.isResizable());
- popupStage.show();
-
- WebEngine popupEngine = popupWebView.getEngine();
-
- popupEngine.setOnVisibilityChanged( new EventHandler<WebEvent<Boolean>>() {
- public void handle(WebEvent<Boolean> we) {
- if (!we.getData()){
- popupStage.close();
- }
- }
- });
+ public WebEngine call(PopupFeatures popupFeatures) {
+ final WebView popupWebView = new WebView();
+ final Scene popupScene = new Scene(popupWebView);
+ final Stage popupStage = new Stage();
+ popupStage.setScene(popupScene);
+ popupStage.setResizable(popupFeatures.isResizable());
+ popupStage.show();
- return popupEngine;
- }
- });
+ WebEngine popupEngine = popupWebView.getEngine();
+
+ popupEngine.setOnVisibilityChanged( new EventHandler<WebEvent<Boolean>>() {
+ public void handle(WebEvent<Boolean> we) {
+ if (!we.getData()){
+ popupStage.close();
+ }
+ }
+ });
+
+ return popupEngine;
+ }
+ });
// permet de fermer la fenêtre
webEngine.setOnVisibilityChanged( new EventHandler<WebEvent<Boolean>>() {
- public void handle(WebEvent<Boolean> we) {
- if (!we.getData()){
- stage.close();
- }
- }
- });
+ public void handle(WebEvent<Boolean> we) {
+ if (!we.getData()){
+ stage.close();
+ }
+ }
+ });
webEngine.setOnAlert(new EventHandler<WebEvent<String>>(){
@Override
public void handle(WebEvent<String> we) {
- alert(stage, we.getData());
+ alert(stage, we.getData());
}
});
webEngine.setConfirmHandler(new Callback<String, Boolean>(){
- public Boolean call(String str){
- Boolean confirmed = confirm(stage, str);
- confirmationResults.getChildren().add(new Label("Confirmed? " + confirmed));
- return confirmed;
- }
+ public Boolean call(String str){
+ Boolean confirmed = confirm(stage, str);
+ confirmationResults.getChildren().add(new Label("Confirmed? " + confirmed));
+ return confirmed;
+ }
});
webEngine.setPromptHandler(new Callback<PromptData, String>(){
- public String call(PromptData pdata){
- String result = prompt(stage, pdata.getMessage(), pdata.getDefaultValue());
- return result;
- }
+ public String call(PromptData pdata){
+ String result = prompt(stage, pdata.getMessage(), pdata.getDefaultValue());
+ return result;
+ }
});
webEngine.load("http://localhost:8080");
@@ -122,141 +122,141 @@
// boite de dialogue de question ouverte
private String prompt(final Stage parent, String msg, String dft) {
-
- final StringProperty reponse = new SimpleStringProperty();
- final Stage dialog = new Stage(StageStyle.TRANSPARENT);
- dialog.initOwner(parent);
- dialog.initModality(Modality.WINDOW_MODAL);
-
- Label label = new Label(msg);
- final TextField textField = new TextField(dft);
- Button buttonOk = new Button("OK");
- Button buttonCancel = new Button("Annuler");
-
- Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,textField,buttonOk,buttonCancel).build(), Color.TRANSPARENT);
- dialog.setScene(scn);
-
- buttonOk.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent arg0) {
- reponse.setValue(textField.getCharacters().toString());
- parent.getScene().getRoot().setEffect(null);
- dialog.close();
- }
- });
-
- buttonCancel.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent arg0) {
- reponse.setValue(null);
- parent.getScene().getRoot().setEffect(null);
- dialog.close();
- }
- });
+
+ final StringProperty reponse = new SimpleStringProperty();
+ final Stage dialog = new Stage(StageStyle.TRANSPARENT);
+ dialog.initOwner(parent);
+ dialog.initModality(Modality.WINDOW_MODAL);
+
+ Label label = new Label(msg);
+ final TextField textField = new TextField(dft);
+ Button buttonOk = new Button("OK");
+ Button buttonCancel = new Button("Annuler");
+
+ Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,textField,buttonOk,buttonCancel).build(), Color.TRANSPARENT);
+ dialog.setScene(scn);
+
+ buttonOk.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent arg0) {
+ reponse.setValue(textField.getCharacters().toString());
+ parent.getScene().getRoot().setEffect(null);
+ dialog.close();
+ }
+ });
+
+ buttonCancel.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent arg0) {
+ reponse.setValue(null);
+ parent.getScene().getRoot().setEffect(null);
+ dialog.close();
+ }
+ });
- dragged(dialog);
+ dragged(dialog);
- // style and show the dialog.
- dialog.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/prompt_box.css").toExternalForm());
- parent.getScene().getRoot().setEffect(new BoxBlur());
- dialog.showAndWait();
-
- return reponse.get();
- }
+ // style and show the dialog.
+ dialog.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/prompt_box.css").toExternalForm());
+ parent.getScene().getRoot().setEffect(new BoxBlur());
+ dialog.showAndWait();
+
+ return reponse.get();
+ }
- // boite de dialogue d'alerte
+ // boite de dialogue d'alerte
private void alert(final Stage parent, String msg) {
- // initialize the alert dialog
- final Stage dialog = new Stage(StageStyle.TRANSPARENT);
- dialog.initOwner(parent);
- dialog.initModality(Modality.WINDOW_MODAL);
-
- Label label = new Label(msg);
- Button buttonOk = new Button("OK");
-
- Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,buttonOk).build(), Color.TRANSPARENT);
- dialog.setScene(scn);
-
- buttonOk.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent arg0) {
- parent.getScene().getRoot().setEffect(null);
- dialog.close();
- }
- });
+ // initialize the alert dialog
+ final Stage dialog = new Stage(StageStyle.TRANSPARENT);
+ dialog.initOwner(parent);
+ dialog.initModality(Modality.WINDOW_MODAL);
+
+ Label label = new Label(msg);
+ Button buttonOk = new Button("OK");
+
+ Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,buttonOk).build(), Color.TRANSPARENT);
+ dialog.setScene(scn);
+
+ buttonOk.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent arg0) {
+ parent.getScene().getRoot().setEffect(null);
+ dialog.close();
+ }
+ });
- dragged(dialog);
+ dragged(dialog);
- // style and show the dialog.
- dialog.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/alert_box.css").toExternalForm());
- parent.getScene().getRoot().setEffect(new BoxBlur());
- dialog.showAndWait();
- }
+ // style and show the dialog.
+ dialog.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/alert_box.css").toExternalForm());
+ parent.getScene().getRoot().setEffect(new BoxBlur());
+ dialog.showAndWait();
+ }
// boite de dialogue de confirmation
private Boolean confirm(final Stage parent, String msg) {
- final BooleanProperty confirmationResult = new SimpleBooleanProperty();
- // initialize the confirmation dialog
- final Stage dialog = new Stage(StageStyle.TRANSPARENT);
- dialog.initOwner(parent);
- dialog.initModality(Modality.WINDOW_MODAL);
-
- Label label = new Label(msg);
- Button buttonOk = new Button("OK");
- Button buttonCancel = new Button("Annuler");
-
- Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,buttonOk,buttonCancel).build(), Color.TRANSPARENT);
- dialog.setScene(scn);
-
- buttonOk.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent arg0) {
- confirmationResult.set(true);
- parent.getScene().getRoot().setEffect(null);
- dialog.close();
- }
- });
-
- buttonCancel.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent arg0) {
- confirmationResult.set(false);
- parent.getScene().getRoot().setEffect(null);
- dialog.close();
- }
- });
+ final BooleanProperty confirmationResult = new SimpleBooleanProperty();
+ // initialize the confirmation dialog
+ final Stage dialog = new Stage(StageStyle.TRANSPARENT);
+ dialog.initOwner(parent);
+ dialog.initModality(Modality.WINDOW_MODAL);
+
+ Label label = new Label(msg);
+ Button buttonOk = new Button("OK");
+ Button buttonCancel = new Button("Annuler");
+
+ Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,buttonOk,buttonCancel).build(), Color.TRANSPARENT);
+ dialog.setScene(scn);
+
+ buttonOk.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent arg0) {
+ confirmationResult.set(true);
+ parent.getScene().getRoot().setEffect(null);
+ dialog.close();
+ }
+ });
+
+ buttonCancel.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent arg0) {
+ confirmationResult.set(false);
+ parent.getScene().getRoot().setEffect(null);
+ dialog.close();
+ }
+ });
- dragged(dialog);
-
+ dragged(dialog);
+
- // style and show the dialog.
- dialog.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/confirm_box.css").toExternalForm());
- parent.getScene().getRoot().setEffect(new BoxBlur());
- dialog.showAndWait();
+ // style and show the dialog.
+ dialog.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/confirm_box.css").toExternalForm());
+ parent.getScene().getRoot().setEffect(new BoxBlur());
+ dialog.showAndWait();
- return confirmationResult.get();
- }
+ return confirmationResult.get();
+ }
// permet de déplacer le Stage entrer en paramètre avec la sourie.
private void dragged(final Stage dialog){
- final Node root = dialog.getScene().getRoot();
- final Delta dragDelta = new Delta();
- root.setOnMousePressed(new EventHandler<MouseEvent>() {
- @Override public void handle(MouseEvent mouseEvent) {
- // record a delta distance for the drag and drop operation.
- dragDelta.x = dialog.getX() - mouseEvent.getScreenX();
- dragDelta.y = dialog.getY() - mouseEvent.getScreenY();
- }
- });
- root.setOnMouseDragged(new EventHandler<MouseEvent>() {
- @Override public void handle(MouseEvent mouseEvent) {
- dialog.setX(mouseEvent.getScreenX() + dragDelta.x);
- dialog.setY(mouseEvent.getScreenY() + dragDelta.y);
- }
- });
+ final Node root = dialog.getScene().getRoot();
+ final Delta dragDelta = new Delta();
+ root.setOnMousePressed(new EventHandler<MouseEvent>() {
+ @Override public void handle(MouseEvent mouseEvent) {
+ // record a delta distance for the drag and drop operation.
+ dragDelta.x = dialog.getX() - mouseEvent.getScreenX();
+ dragDelta.y = dialog.getY() - mouseEvent.getScreenY();
+ }
+ });
+ root.setOnMouseDragged(new EventHandler<MouseEvent>() {
+ @Override public void handle(MouseEvent mouseEvent) {
+ dialog.setX(mouseEvent.getScreenX() + dragDelta.x);
+ dialog.setY(mouseEvent.getScreenY() + dragDelta.y);
+ }
+ });
}
// records relative x and y co-ordinates.
- class Delta { double x, y; }
+ class Delta { double x, y; }
}
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/storage/Storage.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/storage/Storage.java 2013-06-06 09:00:25 UTC (rev 39)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/storage/Storage.java 2013-06-07 15:01:05 UTC (rev 40)
@@ -163,7 +163,7 @@
try {
statement = conn.createStatement();
statement.executeUpdate("CREATE TABLE " + TABLE_VERSION +
- "(version VARCHAR(10))");
+ "(version VARCHAR(10))");
statement.executeUpdate("CREATE TABLE " + TABLE_TASK +
"(id LONG NOT NULL AUTO_INCREMENT PRIMARY KEY," +
" name VARCHAR(255) NOT NULL," +
Modified: jtimerhtml5/src/main/resources/html/js/actionsMenus.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/actionsMenus.js 2013-06-06 09:00:25 UTC (rev 39)
+++ jtimerhtml5/src/main/resources/html/js/actionsMenus.js 2013-06-07 15:01:05 UTC (rev 40)
@@ -2,7 +2,7 @@
var elemSelec = "";
function getTasks(){
- $.getJSON('http://localhost:8080/task/getProjects',function(data) {
+ $.getJSON('http://localhost:8080/other/getProjects',function(data) {
for (var i = 0; i<3; i++){
tabProjects[data[i].number] = data[i];
}
@@ -102,7 +102,7 @@
alert("Erreur : Le nom est vide !");
}
else {
- $.get('http://localhost:8080/task/addProject/'+nameNewProject,function(data){
+ $.get('http://localhost:8080/other/addProject/'+nameNewProject,function(data){
alert(data);
});
}
@@ -115,7 +115,7 @@
alert("Erreur : Le nom est vide !");
}
else {
- $.get('http://localhost:8080/task/modifyProject/'+elemSelec.substring(1,elemSelec.length)+'/'+newnameProject,function(data){
+ $.get('http://localhost:8080/project/modifyProject/'+elemSelec.substring(1,elemSelec.length)+'/'+newnameProject,function(data){
alert(data);
});
}
@@ -123,7 +123,7 @@
}
function ofProject(){
- $.get('http://localhost:8080/task/ofProject/'+elemSelec.substring(1,elemSelec.length),function(data){
+ $.get('http://localhost:8080/task/changeClosedState/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
@@ -131,7 +131,7 @@
function supprProject() {
var bool = confirm("Voulez-vous supprimer le Projet x ?")
if (bool){
- $.get('http://localhost:8080/task/deleteProject/'+elemSelec.substring(1,elemSelec.length),function(data){
+ $.get('http://localhost:8080/project/deleteProject/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
@@ -155,7 +155,7 @@
}
function ofTask(){
- $.get('http://localhost:8080/task/ofTask/'+elemSelec.substring(1,elemSelec.length),function(data){
+ $.get('http://localhost:8080/task/changeClosedState/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
@@ -170,15 +170,12 @@
}
function startTask(){
- $.getJSON('http://localhost:8080/task/startTask/1',function(data){
- var bla = data.task[0].pre;
- bla = bla + " " + data.task[0].suf;
- alert(bla);
- });
+
}
function stopTask(){
- $.get('http://localhost:8080/task/stopTask/'+elemSelec.substring(1,elemSelec.length),function(data){
+
+ $.get('http://localhost:8080/task/saveTaskTimes/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
@@ -195,7 +192,9 @@
}
function addsou(nb){
- $.get('http://localhost:8080/task/addsou/'+elemSelec.substring(1,elemSelec.length)+'/'+nb,function(data){
+
+
+ $.get('http://localhost:8080/task/saveTaskTimes/'+elemSelec.substring(1,elemSelec.length)+'/'+nb,function(data){
alert(data);
});
}
1
0
06 Jun '13
Author: qmoriceau
Date: 2013-06-06 11:00:25 +0200 (Thu, 06 Jun 2013)
New Revision: 39
Url: http://chorem.org/projects/incubator/repository/revisions/39
Log:
La communication par URL via serveur est maintenant fonctionelle
Modified:
jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java
jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java
jtimerhtml5/src/main/java/org/chorem/jtimer/WebViewJTimer.java
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java 2013-06-04 14:17:10 UTC (rev 38)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java 2013-06-06 09:00:25 UTC (rev 39)
@@ -25,9 +25,12 @@
server.setHandler(handlers);
server.start();
- //launch(args); // permet de lancé la webview, qui ne fonctionne pas d'aileur...
URI uri = new URI("http://localhost:8080");
- Desktop.getDesktop().browse(uri);
+ try{
+ Desktop.getDesktop().browse(uri); // permet de lancer la page dans le nivigateur par défault
+ } catch (Exception e) {
+ launch(args);// permer de lancer la page dans la web view si le navigateur n'est pas trouvé
+ }
server.join();
}
}
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java 2013-06-04 14:17:10 UTC (rev 38)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java 2013-06-06 09:00:25 UTC (rev 39)
@@ -10,6 +10,7 @@
import javax.servlet.http.HttpServletResponse;
import org.chorem.jtimer.entities.TimerTask;
+import org.eclipse.jetty.server.HttpConnection;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
import org.nuiton.util.ObjectUtil;
@@ -23,39 +24,46 @@
@Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
- final TaskService ts = new TaskService();
- String content = new String();
- Object result;
- ExclusionStrategy excludeTasks = new TaskExclusionStrategy(TimerTask.class);
- Gson gson = new GsonBuilder().setExclusionStrategies(excludeTasks).create();
- final String[] path = request.getRequestURI().split("/");
-
- String[] param = new String[path.length-3];
- for(int i=0;i<path.length-3;i++){
- param[i]=path[i+3];
+ final String[] path = request.getRequestURI().split("/");
+
+ if (path[1].equals("task")){
+
+ final TaskService ts = new TaskService();
+ String content = new String();
+ Object result;
+ ExclusionStrategy excludeTasks = new TaskExclusionStrategy(TimerTask.class);
+ Gson gson = new GsonBuilder().setExclusionStrategies(excludeTasks).create();
+
+ String[] param = new String[path.length-3];
+ for(int i=0;i<path.length-3;i++){
+ param[i]=path[i+3];
+ }
+ List<Method> m = ObjectUtil.getMethod(TaskService.class,path[2],false);
+ try {
+ result = ObjectUtil.call(ts, m.get(0), param);
+ content = gson.toJson(result);
+ System.out.println(content);
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InstantiationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ response.setContentType("text/json;charset=utf-8");
+ response.setStatus(HttpServletResponse.SC_OK);
+ response.getOutputStream().print(content);
+
+ Request base_request = (Request) ((request instanceof Request) ? (Request)request:HttpConnection.getCurrentConnection().getRequestBuffer());
+ base_request.setHandled(true);
}
- List<Method> m = ObjectUtil.getMethod(TaskService.class,path[2],false);
- try {
- result = ObjectUtil.call(ts, m.get(0), param);
- content = gson.toJson(result);
- System.out.println(content);
- } catch (IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InstantiationException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- response.setContentType("text/JSON");
- response.setStatus(HttpServletResponse.SC_OK);
- response.getWriter().write(content);
}
}
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/WebViewJTimer.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/WebViewJTimer.java 2013-06-04 14:17:10 UTC (rev 38)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/WebViewJTimer.java 2013-06-06 09:00:25 UTC (rev 39)
@@ -1,7 +1,5 @@
package org.chorem.jtimer;
-import java.net.URL;
-
import javafx.application.Application;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
@@ -110,7 +108,7 @@
}
});
- URL maPage = getClass().getResource("http://localhost:8080");
+ webEngine.load("http://localhost:8080");
root.getChildren().addAll(browser);
scene.setRoot(root);
1
0