last demo import - cleaned

This commit is contained in:
ycc
2023-08-26 22:04:56 +02:00
parent 0ab5dd5e38
commit f3c3c67e2c
884 changed files with 301494 additions and 1 deletions

7
static/css/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

640
static/css/leaflet.css Normal file
View File

@@ -0,0 +1,640 @@
/* required styles */
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
position: absolute;
left: 0;
top: 0;
}
.leaflet-container {
overflow: hidden;
}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
-webkit-user-drag: none;
}
/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::selection {
background: transparent;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
image-rendering: -webkit-optimize-contrast;
}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
width: 1600px;
height: 1600px;
-webkit-transform-origin: 0 0;
}
.leaflet-marker-icon,
.leaflet-marker-shadow {
display: block;
}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg,
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
max-width: none !important;
max-height: none !important;
}
.leaflet-container.leaflet-touch-zoom {
-ms-touch-action: pan-x pan-y;
touch-action: pan-x pan-y;
}
.leaflet-container.leaflet-touch-drag {
-ms-touch-action: pinch-zoom;
/* Fallback for FF which doesn't support pinch-zoom */
touch-action: none;
touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
-ms-touch-action: none;
touch-action: none;
}
.leaflet-container {
-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
filter: inherit;
visibility: hidden;
}
.leaflet-tile-loaded {
visibility: inherit;
}
.leaflet-zoom-box {
width: 0;
height: 0;
-moz-box-sizing: border-box;
box-sizing: border-box;
z-index: 800;
}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
-moz-user-select: none;
}
.leaflet-pane { z-index: 400; }
.leaflet-tile-pane { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane { z-index: 500; }
.leaflet-marker-pane { z-index: 600; }
.leaflet-tooltip-pane { z-index: 650; }
.leaflet-popup-pane { z-index: 700; }
.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg { z-index: 200; }
.leaflet-vml-shape {
width: 1px;
height: 1px;
}
.lvml {
behavior: url(#default#VML);
display: inline-block;
position: absolute;
}
/* control positioning */
.leaflet-control {
position: relative;
z-index: 800;
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
pointer-events: auto;
}
.leaflet-top,
.leaflet-bottom {
position: absolute;
z-index: 1000;
pointer-events: none;
}
.leaflet-top {
top: 0;
}
.leaflet-right {
right: 0;
}
.leaflet-bottom {
bottom: 0;
}
.leaflet-left {
left: 0;
}
.leaflet-control {
float: left;
clear: both;
}
.leaflet-right .leaflet-control {
float: right;
}
.leaflet-top .leaflet-control {
margin-top: 10px;
}
.leaflet-bottom .leaflet-control {
margin-bottom: 10px;
}
.leaflet-left .leaflet-control {
margin-left: 10px;
}
.leaflet-right .leaflet-control {
margin-right: 10px;
}
/* zoom and fade animations */
.leaflet-fade-anim .leaflet-tile {
will-change: opacity;
}
.leaflet-fade-anim .leaflet-popup {
opacity: 0;
-webkit-transition: opacity 0.2s linear;
-moz-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;
}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
opacity: 1;
}
.leaflet-zoom-animated {
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
will-change: transform;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
transition: transform 0.25s cubic-bezier(0,0,0.25,1);
}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
-webkit-transition: none;
-moz-transition: none;
transition: none;
}
.leaflet-zoom-anim .leaflet-zoom-hide {
visibility: hidden;
}
/* cursors */
.leaflet-interactive {
cursor: pointer;
}
.leaflet-grab {
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab;
}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
cursor: crosshair;
}
.leaflet-popup-pane,
.leaflet-control {
cursor: auto;
}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
cursor: move;
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
cursor: grabbing;
}
/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
pointer-events: none;
}
.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
pointer-events: auto;
}
/* visual tweaks */
.leaflet-container {
background: #ddd;
outline: 0;
}
.leaflet-container a {
color: #0078A8;
}
.leaflet-container a.leaflet-active {
outline: 2px solid orange;
}
.leaflet-zoom-box {
border: 2px dotted #38f;
background: rgba(255,255,255,0.5);
}
/* general typography */
.leaflet-container {
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
}
/* general toolbar styles */
.leaflet-bar {
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
border-radius: 4px;
}
.leaflet-bar a,
.leaflet-bar a:hover {
background-color: #fff;
border-bottom: 1px solid #ccc;
width: 26px;
height: 26px;
line-height: 26px;
display: block;
text-align: center;
text-decoration: none;
color: black;
}
.leaflet-bar a,
.leaflet-control-layers-toggle {
background-position: 50% 50%;
background-repeat: no-repeat;
display: block;
}
.leaflet-bar a:hover {
background-color: #f4f4f4;
}
.leaflet-bar a:first-child {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.leaflet-bar a:last-child {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-bottom: none;
}
.leaflet-bar a.leaflet-disabled {
cursor: default;
background-color: #f4f4f4;
color: #bbb;
}
.leaflet-touch .leaflet-bar a {
width: 30px;
height: 30px;
line-height: 30px;
}
.leaflet-touch .leaflet-bar a:first-child {
border-top-left-radius: 2px;
border-top-right-radius: 2px;
}
.leaflet-touch .leaflet-bar a:last-child {
border-bottom-left-radius: 2px;
border-bottom-right-radius: 2px;
}
/* zoom control */
.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
font: bold 18px 'Lucida Console', Monaco, monospace;
text-indent: 1px;
}
.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
font-size: 22px;
}
/* layers control */
.leaflet-control-layers {
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
background: #fff;
border-radius: 5px;
}
.leaflet-control-layers-toggle {
background-image: url(images/layers.png);
width: 36px;
height: 36px;
}
.leaflet-retina .leaflet-control-layers-toggle {
background-image: url(images/layers-2x.png);
background-size: 26px 26px;
}
.leaflet-touch .leaflet-control-layers-toggle {
width: 44px;
height: 44px;
}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
display: none;
}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
display: block;
position: relative;
}
.leaflet-control-layers-expanded {
padding: 6px 10px 6px 6px;
color: #333;
background: #fff;
}
.leaflet-control-layers-scrollbar {
overflow-y: scroll;
overflow-x: hidden;
padding-right: 5px;
}
.leaflet-control-layers-selector {
margin-top: 2px;
position: relative;
top: 1px;
}
.leaflet-control-layers label {
display: block;
}
.leaflet-control-layers-separator {
height: 0;
border-top: 1px solid #ddd;
margin: 5px -10px 5px -6px;
}
/* Default icon URLs */
.leaflet-default-icon-path {
background-image: url(images/marker-icon.png);
}
/* attribution and scale controls */
.leaflet-container .leaflet-control-attribution {
background: #fff;
background: rgba(255, 255, 255, 0.7);
margin: 0;
}
.leaflet-control-attribution,
.leaflet-control-scale-line {
padding: 0 5px;
color: #333;
}
.leaflet-control-attribution a {
text-decoration: none;
}
.leaflet-control-attribution a:hover {
text-decoration: underline;
}
.leaflet-container .leaflet-control-attribution,
.leaflet-container .leaflet-control-scale {
font-size: 11px;
}
.leaflet-left .leaflet-control-scale {
margin-left: 5px;
}
.leaflet-bottom .leaflet-control-scale {
margin-bottom: 5px;
}
.leaflet-control-scale-line {
border: 2px solid #777;
border-top: none;
line-height: 1.1;
padding: 2px 5px 1px;
font-size: 11px;
white-space: nowrap;
overflow: hidden;
-moz-box-sizing: border-box;
box-sizing: border-box;
background: #fff;
background: rgba(255, 255, 255, 0.5);
}
.leaflet-control-scale-line:not(:first-child) {
border-top: 2px solid #777;
border-bottom: none;
margin-top: -2px;
}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
border-bottom: 2px solid #777;
}
.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
box-shadow: none;
}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
border: 2px solid rgba(0,0,0,0.2);
background-clip: padding-box;
}
/* popup */
.leaflet-popup {
position: absolute;
text-align: center;
margin-bottom: 20px;
}
.leaflet-popup-content-wrapper {
padding: 1px;
text-align: left;
border-radius: 12px;
}
.leaflet-popup-content {
margin: 13px 19px;
line-height: 1.4;
}
.leaflet-popup-content p {
margin: 18px 0;
}
.leaflet-popup-tip-container {
width: 40px;
height: 20px;
position: absolute;
left: 50%;
margin-left: -20px;
overflow: hidden;
pointer-events: none;
}
.leaflet-popup-tip {
width: 17px;
height: 17px;
padding: 1px;
margin: -10px auto 0;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
background: white;
color: #333;
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
}
.leaflet-container a.leaflet-popup-close-button {
position: absolute;
top: 0;
right: 0;
padding: 4px 4px 0 0;
border: none;
text-align: center;
width: 18px;
height: 14px;
font: 16px/14px Tahoma, Verdana, sans-serif;
color: #c3c3c3;
text-decoration: none;
font-weight: bold;
background: transparent;
}
.leaflet-container a.leaflet-popup-close-button:hover {
color: #999;
}
.leaflet-popup-scrolled {
overflow: auto;
border-bottom: 1px solid #ddd;
border-top: 1px solid #ddd;
}
.leaflet-oldie .leaflet-popup-content-wrapper {
zoom: 1;
}
.leaflet-oldie .leaflet-popup-tip {
width: 24px;
margin: 0 auto;
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
}
.leaflet-oldie .leaflet-popup-tip-container {
margin-top: -1px;
}
.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
border: 1px solid #999;
}
/* div icon */
.leaflet-div-icon {
background: #fff;
border: 1px solid #666;
}
/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
position: absolute;
padding: 6px;
background-color: #fff;
border: 1px solid #fff;
border-radius: 3px;
color: #222;
white-space: nowrap;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
pointer-events: none;
box-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
.leaflet-tooltip.leaflet-clickable {
cursor: pointer;
pointer-events: auto;
}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
position: absolute;
pointer-events: none;
border: 6px solid transparent;
background: transparent;
content: "";
}
/* Directions */
.leaflet-tooltip-bottom {
margin-top: 6px;
}
.leaflet-tooltip-top {
margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
left: 50%;
margin-left: -6px;
}
.leaflet-tooltip-top:before {
bottom: 0;
margin-bottom: -12px;
border-top-color: #fff;
}
.leaflet-tooltip-bottom:before {
top: 0;
margin-top: -12px;
margin-left: -6px;
border-bottom-color: #fff;
}
.leaflet-tooltip-left {
margin-left: -6px;
}
.leaflet-tooltip-right {
margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
top: 50%;
margin-top: -6px;
}
.leaflet-tooltip-left:before {
right: 0;
margin-right: -12px;
border-left-color: #fff;
}
.leaflet-tooltip-right:before {
left: 0;
margin-left: -12px;
border-right-color: #fff;
}

View File

@@ -0,0 +1,23 @@
/* fallback */
@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(material-icons.woff2) format('woff2');
}
.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
-moz-font-feature-settings: 'liga';
-moz-osx-font-smoothing: grayscale;
}

Binary file not shown.

13
static/css/materialize.min.css vendored Normal file

File diff suppressed because one or more lines are too long

BIN
static/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var af = {
code: "af",
week: {
dow: 1, // Maandag is die eerste dag van die week.
doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
},
buttonText: {
prev: "Vorige",
next: "Volgende",
today: "Vandag",
year: "Jaar",
month: "Maand",
week: "Week",
day: "Dag",
list: "Agenda"
},
allDayText: "Heeldag",
moreLinkText: "Addisionele",
noEventsText: "Daar is geen gebeurtenisse nie"
};
return af;
}());

View File

@@ -0,0 +1,28 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var arDz = {
code: "ar-dz",
week: {
dow: 0, // Sunday is the first day of the week.
doy: 4 // The week that contains Jan 1st is the first week of the year.
},
direction: 'rtl',
buttonText: {
prev: "السابق",
next: "التالي",
today: "اليوم",
month: "شهر",
week: "أسبوع",
day: "يوم",
list: "أجندة"
},
weekText: "أسبوع",
allDayText: "اليوم كله",
moreLinkText: "أخرى",
noEventsText: "أي أحداث لعرض"
};
return arDz;
}());

View File

@@ -0,0 +1,28 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var arKw = {
code: "ar-kw",
week: {
dow: 0, // Sunday is the first day of the week.
doy: 12 // The week that contains Jan 1st is the first week of the year.
},
direction: 'rtl',
buttonText: {
prev: "السابق",
next: "التالي",
today: "اليوم",
month: "شهر",
week: "أسبوع",
day: "يوم",
list: "أجندة"
},
weekText: "أسبوع",
allDayText: "اليوم كله",
moreLinkText: "أخرى",
noEventsText: "أي أحداث لعرض"
};
return arKw;
}());

View File

@@ -0,0 +1,28 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var arLy = {
code: "ar-ly",
week: {
dow: 6, // Saturday is the first day of the week.
doy: 12 // The week that contains Jan 1st is the first week of the year.
},
direction: 'rtl',
buttonText: {
prev: "السابق",
next: "التالي",
today: "اليوم",
month: "شهر",
week: "أسبوع",
day: "يوم",
list: "أجندة"
},
weekText: "أسبوع",
allDayText: "اليوم كله",
moreLinkText: "أخرى",
noEventsText: "أي أحداث لعرض"
};
return arLy;
}());

View File

@@ -0,0 +1,28 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var arMa = {
code: "ar-ma",
week: {
dow: 6, // Saturday is the first day of the week.
doy: 12 // The week that contains Jan 1st is the first week of the year.
},
direction: 'rtl',
buttonText: {
prev: "السابق",
next: "التالي",
today: "اليوم",
month: "شهر",
week: "أسبوع",
day: "يوم",
list: "أجندة"
},
weekText: "أسبوع",
allDayText: "اليوم كله",
moreLinkText: "أخرى",
noEventsText: "أي أحداث لعرض"
};
return arMa;
}());

View File

@@ -0,0 +1,28 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var arSa = {
code: "ar-sa",
week: {
dow: 0, // Sunday is the first day of the week.
doy: 6 // The week that contains Jan 1st is the first week of the year.
},
direction: 'rtl',
buttonText: {
prev: "السابق",
next: "التالي",
today: "اليوم",
month: "شهر",
week: "أسبوع",
day: "يوم",
list: "أجندة"
},
weekText: "أسبوع",
allDayText: "اليوم كله",
moreLinkText: "أخرى",
noEventsText: "أي أحداث لعرض"
};
return arSa;
}());

View File

@@ -0,0 +1,28 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var arTn = {
code: "ar-tn",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
direction: 'rtl',
buttonText: {
prev: "السابق",
next: "التالي",
today: "اليوم",
month: "شهر",
week: "أسبوع",
day: "يوم",
list: "أجندة"
},
weekText: "أسبوع",
allDayText: "اليوم كله",
moreLinkText: "أخرى",
noEventsText: "أي أحداث لعرض"
};
return arTn;
}());

View File

@@ -0,0 +1,28 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var ar = {
code: "ar",
week: {
dow: 6, // Saturday is the first day of the week.
doy: 12 // The week that contains Jan 1st is the first week of the year.
},
direction: 'rtl',
buttonText: {
prev: "السابق",
next: "التالي",
today: "اليوم",
month: "شهر",
week: "أسبوع",
day: "يوم",
list: "أجندة"
},
weekText: "أسبوع",
allDayText: "اليوم كله",
moreLinkText: "أخرى",
noEventsText: "أي أحداث لعرض"
};
return ar;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var az = {
code: "az",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Əvvəl",
next: "Sonra",
today: "Bu Gün",
month: "Ay",
week: "Həftə",
day: "Gün",
list: "Gündəm"
},
weekText: "Həftə",
allDayText: "Bütün Gün",
moreLinkText: function(n) {
return "+ daha çox " + n;
},
noEventsText: "Göstərmək üçün hadisə yoxdur"
};
return az;
}());

View File

@@ -0,0 +1,28 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var bg = {
code: "bg",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "назад",
next: "напред",
today: "днес",
month: "Месец",
week: "Седмица",
day: "Ден",
list: "График"
},
allDayText: "Цял ден",
moreLinkText: function(n) {
return "+още " + n;
},
noEventsText: "Няма събития за показване"
};
return bg;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var bs = {
code: "bs",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "Prošli",
next: "Sljedeći",
today: "Danas",
month: "Mjesec",
week: "Sedmica",
day: "Dan",
list: "Raspored"
},
weekText: "Sed",
allDayText: "Cijeli dan",
moreLinkText: function(n) {
return "+ još " + n;
},
noEventsText: "Nema događaja za prikazivanje"
};
return bs;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var ca = {
code: "ca",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Anterior",
next: "Següent",
today: "Avui",
month: "Mes",
week: "Setmana",
day: "Dia",
list: "Agenda"
},
weekText: "Set",
allDayText: "Tot el dia",
moreLinkText: "més",
noEventsText: "No hi ha esdeveniments per mostrar"
};
return ca;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var cs = {
code: "cs",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Dříve",
next: "Později",
today: "Nyní",
month: "Měsíc",
week: "Týden",
day: "Den",
list: "Agenda"
},
weekText: "Týd",
allDayText: "Celý den",
moreLinkText: function(n) {
return "+další: " + n;
},
noEventsText: "Žádné akce k zobrazení"
};
return cs;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var da = {
code: "da",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Forrige",
next: "Næste",
today: "I dag",
month: "Måned",
week: "Uge",
day: "Dag",
list: "Agenda"
},
weekText: "Uge",
allDayText: "Hele dagen",
moreLinkText: "flere",
noEventsText: "Ingen arrangementer at vise"
};
return da;
}());

View File

@@ -0,0 +1,30 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var de = {
code: "de",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Zurück",
next: "Vor",
today: "Heute",
year: "Jahr",
month: "Monat",
week: "Woche",
day: "Tag",
list: "Terminübersicht"
},
weekText: "KW",
allDayText: "Ganztägig",
moreLinkText: function(n) {
return "+ weitere " + n;
},
noEventsText: "Keine Ereignisse anzuzeigen"
};
return de;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var el = {
code: "el",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4st is the first week of the year.
},
buttonText: {
prev: "Προηγούμενος",
next: "Επόμενος",
today: "Σήμερα",
month: "Μήνας",
week: "Εβδομάδα",
day: "Ημέρα",
list: "Ατζέντα"
},
weekText: "Εβδ",
allDayText: "Ολοήμερο",
moreLinkText: "περισσότερα",
noEventsText: "Δεν υπάρχουν γεγονότα προς εμφάνιση"
};
return el;
}());

View File

@@ -0,0 +1,14 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var enAu = {
code: "en-au",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
}
};
return enAu;
}());

View File

@@ -0,0 +1,14 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var enGb = {
code: "en-gb",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
}
};
return enGb;
}());

View File

@@ -0,0 +1,14 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var enNz = {
code: "en-nz",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
}
};
return enNz;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var esUs = {
code: "es",
week: {
dow: 0, // Sunday is the first day of the week.
doy: 6 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "Ant",
next: "Sig",
today: "Hoy",
month: "Mes",
week: "Semana",
day: "Día",
list: "Agenda"
},
weekText: "Sm",
allDayText: "Todo el día",
moreLinkText: "más",
noEventsText: "No hay eventos para mostrar"
};
return esUs;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var es = {
code: "es",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Ant",
next: "Sig",
today: "Hoy",
month: "Mes",
week: "Semana",
day: "Día",
list: "Agenda"
},
weekText: "Sm",
allDayText: "Todo el día",
moreLinkText: "más",
noEventsText: "No hay eventos para mostrar"
};
return es;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var et = {
code: "et",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Eelnev",
next: "Järgnev",
today: "Täna",
month: "Kuu",
week: "Nädal",
day: "Päev",
list: "Päevakord"
},
weekText: "näd",
allDayText: "Kogu päev",
moreLinkText: function(n) {
return "+ veel " + n;
},
noEventsText: "Kuvamiseks puuduvad sündmused"
};
return et;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var eu = {
code: "eu",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "Aur",
next: "Hur",
today: "Gaur",
month: "Hilabetea",
week: "Astea",
day: "Eguna",
list: "Agenda"
},
weekText: "As",
allDayText: "Egun osoa",
moreLinkText: "gehiago",
noEventsText: "Ez dago ekitaldirik erakusteko"
};
return eu;
}());

View File

@@ -0,0 +1,30 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var fa = {
code: "fa",
week: {
dow: 6, // Saturday is the first day of the week.
doy: 12 // The week that contains Jan 1st is the first week of the year.
},
direction: 'rtl',
buttonText: {
prev: "قبلی",
next: "بعدی",
today: "امروز",
month: "ماه",
week: "هفته",
day: "روز",
list: "برنامه"
},
weekText: "هف",
allDayText: "تمام روز",
moreLinkText: function(n) {
return "بیش از " + n;
},
noEventsText: "هیچ رویدادی به نمایش"
};
return fa;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var fi = {
code: "fi",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Edellinen",
next: "Seuraava",
today: "Tänään",
month: "Kuukausi",
week: "Viikko",
day: "Päivä",
list: "Tapahtumat"
},
weekText: "Vk",
allDayText: "Koko päivä",
moreLinkText: "lisää",
noEventsText: "Ei näytettäviä tapahtumia"
};
return fi;
}());

View File

@@ -0,0 +1,24 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var frCa = {
code: "fr",
buttonText: {
prev: "Précédent",
next: "Suivant",
today: "Aujourd'hui",
year: "Année",
month: "Mois",
week: "Semaine",
day: "Jour",
list: "Mon planning"
},
weekText: "Sem.",
allDayText: "Toute la journée",
moreLinkText: "en plus",
noEventsText: "Aucun événement à afficher"
};
return frCa;
}());

View File

@@ -0,0 +1,28 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var frCh = {
code: "fr-ch",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Précédent",
next: "Suivant",
today: "Courant",
year: "Année",
month: "Mois",
week: "Semaine",
day: "Jour",
list: "Mon planning"
},
weekText: "Sm",
allDayText: "Toute la journée",
moreLinkText: "en plus",
noEventsText: "Aucun événement à afficher"
};
return frCh;
}());

View File

@@ -0,0 +1,28 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var fr = {
code: "fr",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Précédent",
next: "Suivant",
today: "Aujourd'hui",
year: "Année",
month: "Mois",
week: "Semaine",
day: "Jour",
list: "Planning"
},
weekText: "Sem.",
allDayText: "Toute la journée",
moreLinkText: "en plus",
noEventsText: "Aucun événement à afficher"
};
return fr;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var gl = {
code: "gl",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Ant",
next: "Seg",
today: "Hoxe",
month: "Mes",
week: "Semana",
day: "Día",
list: "Axenda"
},
weekText: "Sm",
allDayText: "Todo o día",
moreLinkText: "máis",
noEventsText: "Non hai eventos para amosar"
};
return gl;
}());

View File

@@ -0,0 +1,24 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var he = {
code: "he",
direction: 'rtl',
buttonText: {
prev: "הקודם",
next: "הבא",
today: "היום",
month: "חודש",
week: "שבוע",
day: "יום",
list: "סדר יום"
},
allDayText: "כל היום",
moreLinkText: "אחר",
noEventsText: "אין אירועים להצגה",
weekText: "שבוע"
};
return he;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var hi = {
code: "hi",
week: {
dow: 0, // Sunday is the first day of the week.
doy: 6 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "पिछला",
next: "अगला",
today: "आज",
month: "महीना",
week: "सप्ताह",
day: "दिन",
list: "कार्यसूची"
},
weekText: "हफ्ता",
allDayText: "सभी दिन",
moreLinkText: function(n) {
return "+अधिक " + n;
},
noEventsText: "कोई घटनाओं को प्रदर्शित करने के लिए"
};
return hi;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var hr = {
code: "hr",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "Prijašnji",
next: "Sljedeći",
today: "Danas",
month: "Mjesec",
week: "Tjedan",
day: "Dan",
list: "Raspored"
},
weekText: "Tje",
allDayText: "Cijeli dan",
moreLinkText: function(n) {
return "+ još " + n;
},
noEventsText: "Nema događaja za prikaz"
};
return hr;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var hu = {
code: "hu",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "vissza",
next: "előre",
today: "ma",
month: "Hónap",
week: "Hét",
day: "Nap",
list: "Napló"
},
weekText: "Hét",
allDayText: "Egész nap",
moreLinkText: "további",
noEventsText: "Nincs megjeleníthető esemény"
};
return hu;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var id = {
code: "id",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "mundur",
next: "maju",
today: "hari ini",
month: "Bulan",
week: "Minggu",
day: "Hari",
list: "Agenda"
},
weekText: "Mg",
allDayText: "Sehari penuh",
moreLinkText: "lebih",
noEventsText: "Tidak ada acara untuk ditampilkan"
};
return id;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var is = {
code: "is",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Fyrri",
next: "Næsti",
today: "Í dag",
month: "Mánuður",
week: "Vika",
day: "Dagur",
list: "Dagskrá"
},
weekText: "Vika",
allDayText: "Allan daginn",
moreLinkText: "meira",
noEventsText: "Engir viðburðir til að sýna"
};
return is;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var it = {
code: "it",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Prec",
next: "Succ",
today: "Oggi",
month: "Mese",
week: "Settimana",
day: "Giorno",
list: "Agenda"
},
weekText: "Sm",
allDayText: "Tutto il giorno",
moreLinkText: function(n) {
return "+altri " + n;
},
noEventsText: "Non ci sono eventi da visualizzare"
};
return it;
}());

View File

@@ -0,0 +1,25 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var ja = {
code: "ja",
buttonText: {
prev: "前",
next: "次",
today: "今日",
month: "月",
week: "週",
day: "日",
list: "予定リスト"
},
weekText: "週",
allDayText: "終日",
moreLinkText: function(n) {
return "他 " + n + " 件";
},
noEventsText: "表示する予定はありません"
};
return ja;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var ka = {
code: "ka",
week: {
dow: 1,
doy: 7
},
buttonText: {
prev: "წინა",
next: "შემდეგი",
today: "დღეს",
month: "თვე",
week: "კვირა",
day: "დღე",
list: "დღის წესრიგი"
},
weekText: "კვ",
allDayText: "მთელი დღე",
moreLinkText: function(n) {
return "+ კიდევ " + n;
},
noEventsText: "ღონისძიებები არ არის"
};
return ka;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var kk = {
code: "kk",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "Алдыңғы",
next: "Келесі",
today: "Бүгін",
month: "Ай",
week: "Апта",
day: "Күн",
list: "Күн тәртібі"
},
weekText: "Не",
allDayText: "Күні бойы",
moreLinkText: function(n) {
return "+ тағы " + n;
},
noEventsText: "Көрсету үшін оқиғалар жоқ"
};
return kk;
}());

View File

@@ -0,0 +1,23 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var ko = {
code: "ko",
buttonText: {
prev: "이전달",
next: "다음달",
today: "오늘",
month: "월",
week: "주",
day: "일",
list: "일정목록"
},
weekText: "주",
allDayText: "종일",
moreLinkText: "개",
noEventsText: "일정이 없습니다"
};
return ko;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var lb = {
code: "lb",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Zréck",
next: "Weider",
today: "Haut",
month: "Mount",
week: "Woch",
day: "Dag",
list: "Terminiwwersiicht"
},
weekText: "W",
allDayText: "Ganzen Dag",
moreLinkText: "méi",
noEventsText: "Nee Evenementer ze affichéieren"
};
return lb;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var lt = {
code: "lt",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Atgal",
next: "Pirmyn",
today: "Šiandien",
month: "Mėnuo",
week: "Savaitė",
day: "Diena",
list: "Darbotvarkė"
},
weekText: "SAV",
allDayText: "Visą dieną",
moreLinkText: "daugiau",
noEventsText: "Nėra įvykių rodyti"
};
return lt;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var lv = {
code: "lv",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Iepr.",
next: "Nāk.",
today: "Šodien",
month: "Mēnesis",
week: "Nedēļa",
day: "Diena",
list: "Dienas kārtība"
},
weekText: "Ned.",
allDayText: "Visu dienu",
moreLinkText: function(n) {
return "+vēl " + n;
},
noEventsText: "Nav notikumu"
};
return lv;
}());

View File

@@ -0,0 +1,25 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var mk = {
code: "mk",
buttonText: {
prev: "претходно",
next: "следно",
today: "Денес",
month: "Месец",
week: "Недела",
day: "Ден",
list: "График"
},
weekText: "Сед",
allDayText: "Цел ден",
moreLinkText: function(n) {
return "+повеќе " + n;
},
noEventsText: "Нема настани за прикажување"
};
return mk;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var ms = {
code: "ms",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "Sebelum",
next: "Selepas",
today: "hari ini",
month: "Bulan",
week: "Minggu",
day: "Hari",
list: "Agenda"
},
weekText: "Mg",
allDayText: "Sepanjang hari",
moreLinkText: function(n) {
return "masih ada " + n + " acara";
},
noEventsText: "Tiada peristiwa untuk dipaparkan"
};
return ms;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var nb = {
code: "nb",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Forrige",
next: "Neste",
today: "I dag",
month: "Måned",
week: "Uke",
day: "Dag",
list: "Agenda"
},
weekText: "Uke",
allDayText: "Hele dagen",
moreLinkText: "til",
noEventsText: "Ingen hendelser å vise"
};
return nb;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var ne = {
code: "ne", //code for nepal
week: {
dow: 7, // Sunday is the first day of the week.
doy: 1 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "अघिल्लो",
next: "अर्को",
today: "आज",
month: "महिना",
week: "हप्ता",
day: "दिन",
list: "सूची"
},
weekText: "हप्ता",
allDayText: "दिनभरि",
moreLinkText: "थप लिंक",
noEventsText: "देखाउनको लागि कुनै घटनाहरू छैनन्"
};
return ne;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var nl = {
code: "nl",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Voorgaand",
next: "Volgende",
today: "Vandaag",
year: "Jaar",
month: "Maand",
week: "Week",
day: "Dag",
list: "Agenda"
},
allDayText: "Hele dag",
moreLinkText: "extra",
noEventsText: "Geen evenementen om te laten zien"
};
return nl;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var nn = {
code: "nn",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Førre",
next: "Neste",
today: "I dag",
month: "Månad",
week: "Veke",
day: "Dag",
list: "Agenda"
},
weekText: "Veke",
allDayText: "Heile dagen",
moreLinkText: "til",
noEventsText: "Ingen hendelser å vise"
};
return nn;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var pl = {
code: "pl",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Poprzedni",
next: "Następny",
today: "Dziś",
month: "Miesiąc",
week: "Tydzień",
day: "Dzień",
list: "Plan dnia"
},
weekText: "Tydz",
allDayText: "Cały dzień",
moreLinkText: "więcej",
noEventsText: "Brak wydarzeń do wyświetlenia"
};
return pl;
}());

View File

@@ -0,0 +1,25 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var ptBr = {
code: "pt-br",
buttonText: {
prev: "Anterior",
next: "Próximo",
today: "Hoje",
month: "Mês",
week: "Semana",
day: "Dia",
list: "Lista"
},
weekText: "Sm",
allDayText: "dia inteiro",
moreLinkText: function(n) {
return "mais +" + n;
},
noEventsText: "Não há eventos para mostrar"
};
return ptBr;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var pt = {
code: "pt",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Anterior",
next: "Seguinte",
today: "Hoje",
month: "Mês",
week: "Semana",
day: "Dia",
list: "Agenda"
},
weekText: "Sem",
allDayText: "Todo o dia",
moreLinkText: "mais",
noEventsText: "Não há eventos para mostrar"
};
return pt;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var ro = {
code: "ro",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "precedentă",
next: "următoare",
today: "Azi",
month: "Lună",
week: "Săptămână",
day: "Zi",
list: "Agendă"
},
weekText: "Săpt",
allDayText: "Toată ziua",
moreLinkText: function(n) {
return "+alte " + n;
},
noEventsText: "Nu există evenimente de afișat"
};
return ro;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var ru = {
code: "ru",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Пред",
next: "След",
today: "Сегодня",
month: "Месяц",
week: "Неделя",
day: "День",
list: "Повестка дня"
},
weekText: "Нед",
allDayText: "Весь день",
moreLinkText: function(n) {
return "+ ещё " + n;
},
noEventsText: "Нет событий для отображения"
};
return ru;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var sk = {
code: "sk",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Predchádzajúci",
next: "Nasledujúci",
today: "Dnes",
month: "Mesiac",
week: "Týždeň",
day: "Deň",
list: "Rozvrh"
},
weekText: "Ty",
allDayText: "Celý deň",
moreLinkText: function(n) {
return "+ďalšie: " + n;
},
noEventsText: "Žiadne akcie na zobrazenie"
};
return sk;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var sl = {
code: "sl",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "Prejšnji",
next: "Naslednji",
today: "Trenutni",
month: "Mesec",
week: "Teden",
day: "Dan",
list: "Dnevni red"
},
weekText: "Teden",
allDayText: "Ves dan",
moreLinkText: "več",
noEventsText: "Ni dogodkov za prikaz"
};
return sl;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var sq = {
code: "sq",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "mbrapa",
next: "Përpara",
today: "sot",
month: "Muaj",
week: "Javë",
day: "Ditë",
list: "Listë"
},
weekText: "Ja",
allDayText: "Gjithë ditën",
moreLinkText: function(n) {
return "+më tepër " + n;
},
noEventsText: "Nuk ka evente për të shfaqur"
};
return sq;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var srCyrl = {
code: "sr-cyrl",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "Претходна",
next: "следећи",
today: "Данас",
month: "Месец",
week: "Недеља",
day: "Дан",
list: "Планер"
},
weekText: "Сед",
allDayText: "Цео дан",
moreLinkText: function(n) {
return "+ још " + n;
},
noEventsText: "Нема догађаја за приказ"
};
return srCyrl;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var sr = {
code: "sr",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "Prethodna",
next: "Sledeći",
today: "Danas",
month: "Mеsеc",
week: "Nеdеlja",
day: "Dan",
list: "Planеr"
},
weekText: "Sed",
allDayText: "Cеo dan",
moreLinkText: function(n) {
return "+ još " + n;
},
noEventsText: "Nеma događaja za prikaz"
};
return sr;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var sv = {
code: "sv",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Förra",
next: "Nästa",
today: "Idag",
month: "Månad",
week: "Vecka",
day: "Dag",
list: "Program"
},
weekText: "v.",
allDayText: "Heldag",
moreLinkText: "till",
noEventsText: "Inga händelser att visa"
};
return sv;
}());

View File

@@ -0,0 +1,30 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var th = {
code: "th",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "ก่อนหน้า",
next: "ถัดไป",
prevYear: 'ปีก่อนหน้า',
nextYear: 'ปีถัดไป',
year: 'ปี',
today: "วันนี้",
month: "เดือน",
week: "สัปดาห์",
day: "วัน",
list: "กำหนดการ"
},
weekText: "สัปดาห์",
allDayText: "ตลอดวัน",
moreLinkText: "เพิ่มเติม",
noEventsText: "ไม่มีกิจกรรมที่จะแสดง"
};
return th;
}());

View File

@@ -0,0 +1,27 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var tr = {
code: "tr",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "geri",
next: "ileri",
today: "bugün",
month: "Ay",
week: "Hafta",
day: "Gün",
list: "Ajanda"
},
weekText: "Hf",
allDayText: "Tüm gün",
moreLinkText: "daha fazla",
noEventsText: "Gösterilecek etkinlik yok"
};
return tr;
}());

View File

@@ -0,0 +1,17 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var ug = {
code: "ug",
buttonText: {
month: "ئاي",
week: "ھەپتە",
day: "كۈن",
list: "كۈنتەرتىپ"
},
allDayText: "پۈتۈن كۈن"
};
return ug;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var uk = {
code: "uk",
week: {
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
},
buttonText: {
prev: "Попередній",
next: "далі",
today: "Сьогодні",
month: "Місяць",
week: "Тиждень",
day: "День",
list: "Порядок денний"
},
weekText: "Тиж",
allDayText: "Увесь день",
moreLinkText: function(n) {
return "+ще " + n + "...";
},
noEventsText: "Немає подій для відображення"
};
return uk;
}());

View File

@@ -0,0 +1,21 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var uz = {
code: "uz",
buttonText: {
month: "Oy",
week: "Xafta",
day: "Kun",
list: "Kun tartibi"
},
allDayText: "Kun bo'yi",
moreLinkText: function(n) {
return "+ yana " + n;
},
noEventsText: "Ko'rsatish uchun voqealar yo'q"
};
return uz;
}());

View File

@@ -0,0 +1,29 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var vi = {
code: "vi",
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "Trước",
next: "Tiếp",
today: "Hôm nay",
month: "Tháng",
week: "Tuần",
day: "Ngày",
list: "Lịch biểu"
},
weekText: "Tu",
allDayText: "Cả ngày",
moreLinkText: function(n) {
return "+ thêm " + n;
},
noEventsText: "Không có sự kiện để hiển thị"
};
return vi;
}());

View File

@@ -0,0 +1,30 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var zhCn = {
code: "zh-cn",
week: {
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
},
buttonText: {
prev: "上月",
next: "下月",
today: "今天",
month: "月",
week: "周",
day: "日",
list: "日程"
},
weekText: "周",
allDayText: "全天",
moreLinkText: function(n) {
return "另外 " + n + " 个";
},
noEventsText: "没有事件显示"
};
return zhCn;
}());

View File

@@ -0,0 +1,23 @@
FullCalendar.globalLocales.push(function () {
'use strict';
var zhTw = {
code: "zh-tw",
buttonText: {
prev: "上月",
next: "下月",
today: "今天",
month: "月",
week: "週",
day: "天",
list: "活動列表"
},
weekText: "周",
allDayText: "整天",
moreLinkText: '顯示更多',
noEventsText: "没有任何活動"
};
return zhTw;
}());

1429
static/fullcalendar/main.css Normal file

File diff suppressed because it is too large Load Diff

14420
static/fullcalendar/main.js Normal file

File diff suppressed because one or more lines are too long

1
static/fullcalendar/main.min.css vendored Normal file

File diff suppressed because one or more lines are too long

6
static/fullcalendar/main.min.js vendored Normal file

File diff suppressed because one or more lines are too long

115
static/img/O-cloud.svg Normal file
View File

@@ -0,0 +1,115 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="300.01099"
inkscape:export-xdpi="300.01099"
inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\O-cloud.png"
sodipodi:docname="O-cloud.svg"
inkscape:version="1.0beta2 (2b71d25, 2019-12-03)"
version="1.1"
id="svg2"
viewBox="0 0 1052.3622 744.09448"
height="210mm"
width="297mm">
<defs
id="defs4" />
<sodipodi:namedview
inkscape:document-rotation="0"
inkscape:window-maximized="1"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:window-height="811"
inkscape:window-width="1440"
showgrid="false"
inkscape:current-layer="layer1"
inkscape:document-units="px"
inkscape:cy="479.06704"
inkscape:cx="674.21441"
inkscape:zoom="0.35"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-308.26772)"
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<path
inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
inkscape:export-ydpi="300.01099"
inkscape:export-xdpi="300.01099"
inkscape:connector-curvature="0"
id="path4146"
d="m 589.87014,561.52541 101.65363,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:28.38233757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text4148"
y="583.65143"
x="375.77676"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:180px;line-height:1.25"
y="583.65143"
x="375.77676"
id="tspan4150"
sodipodi:role="line"> </tspan></text>
<path
inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
inkscape:export-ydpi="300.01099"
inkscape:export-xdpi="300.01099"
inkscape:connector-curvature="0"
d="m 453.76672,412.20907 q 44.48935,0 77.01376,41.43523 32.69294,41.22909 32.69294,103.07272 0,63.69894 -32.86145,105.75261 -32.86146,42.05368 -79.54158,42.05368 -47.18568,0 -79.37304,-41.02295 -32.01886,-41.02294 -32.01886,-106.1649 0,-66.58497 37.07446,-108.63865 32.18738,-36.48774 77.01377,-36.48774 z m -3.20188,15.04861 q -30.6707,0 -49.20792,27.82964 -23.08729,34.63244 -23.08729,101.42355 0,68.4403 23.92989,105.34033 18.3687,28.03577 48.53383,28.03577 32.18738,0 53.0839,-30.71566 21.06503,-30.71567 21.06503,-96.88836 0,-71.73861 -23.08728,-106.98948 -18.53723,-28.03579 -51.23016,-28.03579 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path4203" />
<text
inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
inkscape:export-ydpi="300.01099"
inkscape:export-xdpi="300.01099"
transform="scale(1.0549351,0.94792559)"
id="text4240"
y="880.93158"
x="197.83252"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:142.129px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif"
y="880.93158"
x="197.83252"
id="tspan4242"
sodipodi:role="line">CLOUD</tspan></text>
<text
inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
inkscape:export-ydpi="300.01099"
inkscape:export-xdpi="300.01099"
id="text4244"
y="685.59955"
x="554.62244"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:90px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif"
y="685.59955"
x="554.62244"
id="tspan4246"
sodipodi:role="line">pen</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
static/img/mic.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

7
static/js/bootstrap.bundle.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,119 @@
.gantt .grid-background {
fill: none; }
.gantt .grid-header {
fill: #ffffff;
stroke: #e0e0e0;
stroke-width: 1.4; }
.gantt .grid-row {
fill: #ffffff; }
.gantt .grid-row:nth-child(even) {
fill: #f5f5f5; }
.gantt .row-line {
stroke: #ebeff2; }
.gantt .tick {
stroke: #e0e0e0;
stroke-width: 0.2; }
.gantt .tick.thick {
stroke-width: 0.4; }
.gantt .today-highlight {
fill: #fcf8e3;
opacity: 0.5; }
.gantt .arrow {
fill: none;
stroke: #666;
stroke-width: 1.4; }
.gantt .bar {
fill: #b8c2cc;
stroke: #8D99A6;
stroke-width: 0;
transition: stroke-width .3s ease;
user-select: none; }
.gantt .bar-progress {
fill: #a3a3ff; }
.gantt .bar-invalid {
fill: transparent;
stroke: #8D99A6;
stroke-width: 1;
stroke-dasharray: 5; }
.gantt .bar-invalid ~ .bar-label {
fill: #555; }
.gantt .bar-label {
fill: #fff;
dominant-baseline: central;
text-anchor: middle;
font-size: 12px;
font-weight: lighter; }
.gantt .bar-label.big {
fill: #555;
text-anchor: start; }
.gantt .handle {
fill: #ddd;
cursor: ew-resize;
opacity: 0;
visibility: hidden;
transition: opacity .3s ease; }
.gantt .bar-wrapper {
cursor: pointer;
outline: none; }
.gantt .bar-wrapper:hover .bar {
fill: #a9b5c1; }
.gantt .bar-wrapper:hover .bar-progress {
fill: #8a8aff; }
.gantt .bar-wrapper:hover .handle {
visibility: visible;
opacity: 1; }
.gantt .bar-wrapper.active .bar {
fill: #a9b5c1; }
.gantt .bar-wrapper.active .bar-progress {
fill: #8a8aff; }
.gantt .lower-text, .gantt .upper-text {
font-size: 12px;
text-anchor: middle; }
.gantt .upper-text {
fill: #555; }
.gantt .lower-text {
fill: #333; }
.gantt .hide {
display: none; }
.gantt-container {
position: relative;
overflow: auto;
font-size: 12px; }
.gantt-container .popup-wrapper {
position: absolute;
top: 0;
left: 0;
background: rgba(0, 0, 0, 0.8);
padding: 0;
color: #959da5;
border-radius: 3px; }
.gantt-container .popup-wrapper .title {
border-bottom: 3px solid #a3a3ff;
padding: 10px; }
.gantt-container .popup-wrapper .subtitle {
padding: 10px;
color: #dfe2e5; }
.gantt-container .popup-wrapper .pointer {
position: absolute;
height: 5px;
margin: 0 0 0 -5px;
border: 5px solid transparent;
border-top-color: rgba(0, 0, 0, 0.8); }

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

1
static/js/gantt/frappe-gantt.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
static/js/jquery-3.5.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

5
static/js/leaflet.js Normal file

File diff suppressed because one or more lines are too long

6
static/js/materialize.min.js vendored Normal file

File diff suppressed because one or more lines are too long

5
static/js/popper.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
static/js/reload.min.js vendored Normal file
View File

@@ -0,0 +1 @@
function b(a){var c=new WebSocket(a);c.onclose=function(){setTimeout(function(){b(a)},2E3)};c.onmessage=function(){location.reload()}}try{if(window.WebSocket)try{b("ws://localhost:12450/reload")}catch(a){console.error(a)}else console.log("Your browser does not support WebSockets.")}catch(a){console.error("Exception during connecting to Reload:",a)};

File diff suppressed because one or more lines are too long

5
static/js/tooltip.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,124 @@
<!--
Copyright (c) 2006-2013, JGraph Ltd
Anchors example for mxGraph. This example demonstrates defining
fixed connection points for all shapes.
-->
<html>
<head>
<title>Anchors example for mxGraph</title>
<!-- Sets the basepath for the library if not in same directory -->
<script type="text/javascript">
mxBasePath = '../src';
</script>
<!-- Loads and initializes the library -->
<script type="text/javascript" src="../src/js/mxClient.js"></script>
<!-- Example code -->
<script type="text/javascript">
// Overridden to define per-shape connection points
mxGraph.prototype.getAllConnectionConstraints = function(terminal, source)
{
if (terminal != null && terminal.shape != null)
{
if (terminal.shape.stencil != null)
{
if (terminal.shape.stencil.constraints != null)
{
return terminal.shape.stencil.constraints;
}
}
else if (terminal.shape.constraints != null)
{
return terminal.shape.constraints;
}
}
return null;
};
// Defines the default constraints for all shapes
mxShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0), true),
new mxConnectionConstraint(new mxPoint(0.5, 0), true),
new mxConnectionConstraint(new mxPoint(0.75, 0), true),
new mxConnectionConstraint(new mxPoint(0, 0.25), true),
new mxConnectionConstraint(new mxPoint(0, 0.5), true),
new mxConnectionConstraint(new mxPoint(0, 0.75), true),
new mxConnectionConstraint(new mxPoint(1, 0.25), true),
new mxConnectionConstraint(new mxPoint(1, 0.5), true),
new mxConnectionConstraint(new mxPoint(1, 0.75), true),
new mxConnectionConstraint(new mxPoint(0.25, 1), true),
new mxConnectionConstraint(new mxPoint(0.5, 1), true),
new mxConnectionConstraint(new mxPoint(0.75, 1), true)];
// Edges have no connection points
mxPolyline.prototype.constraints = null;
// Program starts here. Creates a sample graph in the
// DOM node with the specified ID. This function is invoked
// from the onLoad event handler of the document (see below).
function main(container)
{
// Checks if the browser is supported
if (!mxClient.isBrowserSupported())
{
// Displays an error message if the browser is not supported.
mxUtils.error('Browser is not supported!', 200, false);
}
else
{
// Disables the built-in context menu
mxEvent.disableContextMenu(container);
// Creates the graph inside the given container
var graph = new mxGraph(container);
graph.setConnectable(true);
// Enables connect preview for the default edge style
graph.connectionHandler.createEdgeState = function(me)
{
var edge = graph.createEdge(null, null, null, null, null);
return new mxCellState(this.graph.view, edge, this.graph.getCellStyle(edge));
};
// Specifies the default edge style
graph.getStylesheet().getDefaultEdgeStyle()['edgeStyle'] = 'orthogonalEdgeStyle';
// Enables rubberband selection
new mxRubberband(graph);
// Gets the default parent for inserting new cells. This
// is normally the first child of the root (ie. layer 0).
var parent = graph.getDefaultParent();
// Adds cells to the model in a single step
graph.getModel().beginUpdate();
try
{
var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
var e1 = graph.insertEdge(parent, null, '', v1, v2);
}
finally
{
// Updates the display
graph.getModel().endUpdate();
}
}
};
</script>
</head>
<!-- Page passes the container for the graph to the program -->
<body onload="main(document.getElementById('graphContainer'))">
<!-- Creates a container for the graph with a grid wallpaper -->
<div id="graphContainer"
style="position:relative;overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
</div>
</body>
</html>

View File

@@ -0,0 +1,77 @@
<!--
Copyright (c) 2006-2017, JGraph Ltd
Animation example for mxGraph. This example demonstrates using
SVG animations on edges to visualize the flow in a pipe.
-->
<html>
<head>
<title>Animation example for mxGraph</title>
<!-- Sets the basepath for the library if not in same directory -->
<script type="text/javascript">
mxBasePath = '../src';
</script>
<!-- Loads and initializes the library -->
<script type="text/javascript" src="../src/js/mxClient.js"></script>
<style type="text/css">
.flow {
stroke-dasharray: 8;
animation: dash 0.5s linear;
animation-iteration-count: infinite;
}
@keyframes dash {
to {
stroke-dashoffset: -16;
}
}
</style>
<!-- Example code -->
<script type="text/javascript">
function main(container)
{
var graph = new mxGraph(container);
graph.setEnabled(false);
var parent = graph.getDefaultParent();
var vertexStyle = 'shape=cylinder;strokeWidth=2;fillColor=#ffffff;strokeColor=black;' +
'gradientColor=#a0a0a0;fontColor=black;fontStyle=1;spacingTop=14;';
graph.getModel().beginUpdate();
try
{
var v1 = graph.insertVertex(parent, null, 'Pump', 20, 20, 60, 60,vertexStyle);
var v2 = graph.insertVertex(parent, null, 'Tank', 200, 150, 60, 60,vertexStyle);
var e1 = graph.insertEdge(parent, null, '', v1, v2,
'strokeWidth=3;endArrow=block;endSize=2;endFill=1;strokeColor=black;rounded=1;');
e1.geometry.points = [new mxPoint(230, 50)];
graph.orderCells(true, [e1]);
}
finally
{
// Updates the display
graph.getModel().endUpdate();
}
// Adds animation to edge shape and makes "pipe" visible
var state = graph.view.getState(e1);
state.shape.node.getElementsByTagName('path')[0].removeAttribute('visibility');
state.shape.node.getElementsByTagName('path')[0].setAttribute('stroke-width', '6');
state.shape.node.getElementsByTagName('path')[0].setAttribute('stroke', 'lightGray');
state.shape.node.getElementsByTagName('path')[1].setAttribute('class', 'flow');
};
</script>
</head>
<!-- Page passes the container for the graph to the program -->
<body onload="main(document.getElementById('graphContainer'))">
<!-- Creates a container for the graph with a grid wallpaper -->
<div id="graphContainer"
style="position:relative;overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
</div>
</body>
</html>

View File

@@ -0,0 +1,198 @@
<!--
Copyright (c) 2006-2013, JGraph Ltd
Autolayout example for mxGraph. This example demonstrates running
and animating a layout algorithm after every change to a graph.
-->
<html>
<head>
<title>Auto layout example for mxGraph</title>
<!-- Sets the basepath for the library if not in same directory -->
<script type="text/javascript">
mxBasePath = '../src';
</script>
<!-- Loads and initializes the library -->
<script type="text/javascript" src="../src/js/mxClient.js"></script>
<!-- Example code -->
<script type="text/javascript">
// Program starts here. Creates a sample graph in the
// DOM node with the specified ID. This function is invoked
// from the onLoad event handler of the document (see below).
function main(container)
{
// Checks if the browser is supported
if (!mxClient.isBrowserSupported())
{
// Displays an error message if the browser is not supported.
mxUtils.error('Browser is not supported!', 200, false);
}
else
{
mxEvent.disableContextMenu(container);
var mxCellRendererInstallCellOverlayListeners = mxCellRenderer.prototype.installCellOverlayListeners;
mxCellRenderer.prototype.installCellOverlayListeners = function(state, overlay, shape)
{
mxCellRendererInstallCellOverlayListeners.apply(this, arguments);
mxEvent.addListener(shape.node, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown', function (evt)
{
overlay.fireEvent(new mxEventObject('pointerdown', 'event', evt, 'state', state));
});
if (!mxClient.IS_POINTER && mxClient.IS_TOUCH)
{
mxEvent.addListener(shape.node, 'touchstart', function (evt)
{
overlay.fireEvent(new mxEventObject('pointerdown', 'event', evt, 'state', state));
});
}
};
// Creates the graph inside the given container
var graph = new mxGraph(container);
graph.setPanning(true);
graph.panningHandler.useLeftButtonForPanning = true;
graph.setAllowDanglingEdges(false);
graph.connectionHandler.select = false;
graph.view.setTranslate(20, 20);
// Enables rubberband selection
new mxRubberband(graph);
// Gets the default parent for inserting new cells. This
// is normally the first child of the root (ie. layer 0).
var parent = graph.getDefaultParent();
var addOverlay = function(cell)
{
// Creates a new overlay with an image and a tooltip
var overlay = new mxCellOverlay(new mxImage('images/add.png', 24, 24), 'Add outgoing');
overlay.cursor = 'hand';
// Installs a handler for clicks on the overlay
overlay.addListener(mxEvent.CLICK, function(sender, evt2)
{
graph.clearSelection();
var geo = graph.getCellGeometry(cell);
var v2;
executeLayout(function()
{
v2 = graph.insertVertex(parent, null, 'World!', geo.x, geo.y, 80, 30);
addOverlay(v2);
graph.view.refresh(v2);
var e1 = graph.insertEdge(parent, null, '', cell, v2);
}, function()
{
graph.scrollCellToVisible(v2);
});
});
// Special CMS event
overlay.addListener('pointerdown', function(sender, eo)
{
var evt2 = eo.getProperty('event');
var state = eo.getProperty('state');
graph.popupMenuHandler.hideMenu();
graph.stopEditing(false);
var pt = mxUtils.convertPoint(graph.container,
mxEvent.getClientX(evt2), mxEvent.getClientY(evt2));
graph.connectionHandler.start(state, pt.x, pt.y);
graph.isMouseDown = true;
graph.isMouseTrigger = mxEvent.isMouseEvent(evt2);
mxEvent.consume(evt2);
});
// Sets the overlay for the cell in the graph
graph.addCellOverlay(cell, overlay);
}
// Adds cells to the model in a single step
graph.getModel().beginUpdate();
var v1;
try
{
v1 = graph.insertVertex(parent, null, 'Hello,', 0, 0, 80, 30);
addOverlay(v1);
}
finally
{
// Updates the display
graph.getModel().endUpdate();
}
var layout = new mxHierarchicalLayout(graph, mxConstants.DIRECTION_WEST);
var executeLayout = function(change, post)
{
graph.getModel().beginUpdate();
try
{
if (change != null)
{
change();
}
layout.execute(graph.getDefaultParent(), v1);
}
catch (e)
{
throw e;
}
finally
{
// New API for animating graph layout results asynchronously
var morph = new mxMorphing(graph);
morph.addListener(mxEvent.DONE, mxUtils.bind(this, function()
{
graph.getModel().endUpdate();
if (post != null)
{
post();
}
}));
morph.startAnimation();
}
};
var edgeHandleConnect = mxEdgeHandler.prototype.connect;
mxEdgeHandler.prototype.connect = function(edge, terminal, isSource, isClone, me)
{
edgeHandleConnect.apply(this, arguments);
executeLayout();
};
graph.resizeCell = function()
{
mxGraph.prototype.resizeCell.apply(this, arguments);
executeLayout();
};
graph.connectionHandler.addListener(mxEvent.CONNECT, function()
{
executeLayout();
});
}
};
</script>
</head>
<!-- Page passes the container for the graph to the program -->
<body onload="main(document.getElementById('graphContainer'))">
<!-- Creates a container for the graph with a grid wallpaper -->
<div id="graphContainer"
style="position:relative;overflow:hidden;width:821px;height:641px;background:url('editors/images/grid.gif');cursor:default;">
</div>
</body>
</html>

View File

@@ -0,0 +1,220 @@
<!--
Copyright (c) 2006-2013, JGraph Ltd
Boundary example for mxGraph. This example demonstrates
implementing boundary events in BPMN diagrams.
-->
<html>
<head>
<title>Boundary example for mxGraph</title>
<!-- Sets the basepath for the library if not in same directory -->
<script type="text/javascript">
mxBasePath = '../src';
</script>
<!-- Loads and initializes the library -->
<script type="text/javascript" src="../src/js/mxClient.js"></script>
<!-- Example code -->
<script type="text/javascript">
// Program starts here. Creates a sample graph in the
// DOM node with the specified ID. This function is invoked
// from the onLoad event handler of the document (see below).
function main(container)
{
// Checks if the browser is supported
if (!mxClient.isBrowserSupported())
{
// Displays an error message if the browser is not supported.
mxUtils.error('Browser is not supported!', 200, false);
}
else
{
// Disables the built-in context menu
mxEvent.disableContextMenu(container);
// Creates the graph inside the given container
var graph = new mxGraph(container);
// Sets the base style for all vertices
var style = graph.getStylesheet().getDefaultVertexStyle();
style[mxConstants.STYLE_ROUNDED] = true;
style[mxConstants.STYLE_FILLCOLOR] = '#ffffff';
style[mxConstants.STYLE_STROKECOLOR] = '#000000';
style[mxConstants.STYLE_STROKEWIDTH] = '2';
style[mxConstants.STYLE_FONTCOLOR] = '#000000';
style[mxConstants.STYLE_FONTSIZE] = '12';
style[mxConstants.STYLE_FONTSTYLE] = 1;
graph.getStylesheet().putDefaultVertexStyle(style);
// Removes folding icon for relative children
graph.isCellFoldable = function(cell, collapse)
{
var childCount = this.model.getChildCount(cell);
for (var i = 0; i < childCount; i++)
{
var child = this.model.getChildAt(cell, i);
var geo = this.getCellGeometry(child);
if (geo != null && geo.relative)
{
return false;
}
}
return childCount > 0;
};
// Returns the relative position of the given child
function getRelativePosition(state, dx, dy)
{
if (state != null)
{
var model = graph.getModel();
var geo = model.getGeometry(state.cell);
if (geo != null && geo.relative && !model.isEdge(state.cell))
{
var parent = model.getParent(state.cell);
if (model.isVertex(parent))
{
var pstate = graph.view.getState(parent);
if (pstate != null)
{
var scale = graph.view.scale;
var x = state.x + dx;
var y = state.y + dy;
if (geo.offset != null)
{
x -= geo.offset.x * scale;
y -= geo.offset.y * scale;
}
x = (x - pstate.x) / pstate.width;
y = (y - pstate.y) / pstate.height;
if (Math.abs(y - 0.5) <= Math.abs((x - 0.5) / 2))
{
x = (x > 0.5) ? 1 : 0;
y = Math.min(1, Math.max(0, y));
}
else
{
x = Math.min(1, Math.max(0, x));
y = (y > 0.5) ? 1 : 0;
}
return new mxPoint(x, y);
}
}
}
}
return null;
};
// Replaces translation for relative children
graph.translateCell = function(cell, dx, dy)
{
var rel = getRelativePosition(this.view.getState(cell), dx * graph.view.scale, dy * graph.view.scale);
if (rel != null)
{
var geo = this.model.getGeometry(cell);
if (geo != null && geo.relative)
{
geo = geo.clone();
geo.x = rel.x;
geo.y = rel.y;
this.model.setGeometry(cell, geo);
}
}
else
{
mxGraph.prototype.translateCell.apply(this, arguments);
}
};
// Replaces move preview for relative children
graph.graphHandler.getDelta = function(me)
{
var point = mxUtils.convertPoint(this.graph.container, me.getX(), me.getY());
var delta = new mxPoint(point.x - this.first.x, point.y - this.first.y);
if (this.cells != null && this.cells.length > 0 && this.cells[0] != null)
{
var state = this.graph.view.getState(this.cells[0]);
var rel = getRelativePosition(state, delta.x, delta.y);
if (rel != null)
{
var pstate = this.graph.view.getState(this.graph.model.getParent(state.cell));
if (pstate != null)
{
delta = new mxPoint(pstate.x + pstate.width * rel.x - state.getCenterX(),
pstate.y + pstate.height * rel.y - state.getCenterY());
}
}
}
return delta;
};
// Relative children cannot be removed from parent
graph.graphHandler.shouldRemoveCellsFromParent = function(parent, cells, evt)
{
return cells.length == 0 && !cells[0].geometry.relative && mxGraphHandler.prototype.shouldRemoveCellsFromParent.apply(this, arguments);
};
// Enables moving of relative children
graph.isCellLocked = function(cell)
{
return false;
};
// Enables rubberband selection
new mxRubberband(graph);
// Gets the default parent for inserting new cells. This
// is normally the first child of the root (ie. layer 0).
var parent = graph.getDefaultParent();
// Adds cells to the model in a single step
graph.getModel().beginUpdate();
try
{
var v1 = graph.insertVertex(parent, null, 'Process', 60, 60, 90, 40);
var v2 = graph.insertVertex(v1, null, 'in', 0, 0.5, 20, 20, 'fontSize=9;shape=ellipse;resizable=0;');
v2.geometry.offset = new mxPoint(-10, -10);
v2.geometry.relative = true;
var v3 = graph.insertVertex(v1, null, 'out', 1, 0.5, 20, 20, 'fontSize=9;shape=ellipse;resizable=0;');
v3.geometry.offset = new mxPoint(-10, -10);
v3.geometry.relative = true;
}
finally
{
// Updates the display
graph.getModel().endUpdate();
}
}
};
</script>
</head>
<!-- Page passes the container for the graph to the program -->
<body onload="main(document.getElementById('graphContainer'))">
<!-- Creates a container for the graph with a grid wallpaper -->
<div id="graphContainer"
style="position:relative;overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
</div>
</body>
</html>

View File

@@ -0,0 +1,355 @@
<!--
Copyright (c) 2006-2013, JGraph Ltd
Clipboard example for mxGraph. This example demonstrates using the
clipboard for providing cross-tab and cross-browser copy and paste.
-->
<html>
<head>
<title>Clipboard example for mxGraph</title>
<!-- Sets the basepath for the library if not in same directory -->
<script type="text/javascript">
mxBasePath = '../src';
</script>
<!-- Loads and initializes the library -->
<script type="text/javascript" src="../src/js/mxClient.js"></script>
<!-- Example code -->
<script type="text/javascript">
// Program starts here. Creates a sample graph in the
// DOM node with the specified ID. This function is invoked
// from the onLoad event handler of the document (see below).
function main(container)
{
// Checks if the browser is supported
if (!mxClient.isBrowserSupported())
{
// Displays an error message if the browser is not supported.
mxUtils.error('Browser is not supported!', 200, false);
}
else
{
// Disables the built-in context menu
mxEvent.disableContextMenu(container);
// Creates the graph inside the given container
var graph = new mxGraph(container);
// Public helper method for shared clipboard.
mxClipboard.cellsToString = function(cells)
{
var codec = new mxCodec();
var model = new mxGraphModel();
var parent = model.getChildAt(model.getRoot(), 0);
for (var i = 0; i < cells.length; i++)
{
model.add(parent, cells[i]);
}
return mxUtils.getXml(codec.encode(model));
};
// Focused but invisible textarea during control or meta key events
var textInput = document.createElement('textarea');
mxUtils.setOpacity(textInput, 0);
textInput.style.width = '1px';
textInput.style.height = '1px';
var restoreFocus = false;
var gs = graph.gridSize;
var lastPaste = null;
var dx = 0;
var dy = 0;
// Workaround for no copy event in IE/FF if empty
textInput.value = ' ';
// Shows a textare when control/cmd is pressed to handle native clipboard actions
mxEvent.addListener(document, 'keydown', function(evt)
{
// No dialog visible
var source = mxEvent.getSource(evt);
if (graph.isEnabled() && !graph.isMouseDown && !graph.isEditing() && source.nodeName != 'INPUT')
{
if (evt.keyCode == 224 /* FF */ || (!mxClient.IS_MAC && evt.keyCode == 17 /* Control */) || (mxClient.IS_MAC && evt.keyCode == 91 /* Meta */))
{
// Cannot use parentNode for check in IE
if (!restoreFocus)
{
// Avoid autoscroll but allow handling of events
textInput.style.position = 'absolute';
textInput.style.left = (graph.container.scrollLeft + 10) + 'px';
textInput.style.top = (graph.container.scrollTop + 10) + 'px';
graph.container.appendChild(textInput);
restoreFocus = true;
textInput.focus();
textInput.select();
}
}
}
});
// Restores focus on graph container and removes text input from DOM
mxEvent.addListener(document, 'keyup', function(evt)
{
if (restoreFocus && (evt.keyCode == 224 /* FF */ || evt.keyCode == 17 /* Control */ ||
evt.keyCode == 91 /* Meta */))
{
restoreFocus = false;
if (!graph.isEditing())
{
graph.container.focus();
}
textInput.parentNode.removeChild(textInput);
}
});
// Inserts the XML for the given cells into the text input for copy
var copyCells = function(graph, cells)
{
if (cells.length > 0)
{
var clones = graph.cloneCells(cells);
// Checks for orphaned relative children and makes absolute
for (var i = 0; i < clones.length; i++)
{
var state = graph.view.getState(cells[i]);
if (state != null)
{
var geo = graph.getCellGeometry(clones[i]);
if (geo != null && geo.relative)
{
geo.relative = false;
geo.x = state.x / state.view.scale - state.view.translate.x;
geo.y = state.y / state.view.scale - state.view.translate.y;
}
}
}
textInput.value = mxClipboard.cellsToString(clones);
}
textInput.select();
lastPaste = textInput.value;
};
// Handles copy event by putting XML for current selection into text input
mxEvent.addListener(textInput, 'copy', mxUtils.bind(this, function(evt)
{
if (graph.isEnabled() && !graph.isSelectionEmpty())
{
copyCells(graph, mxUtils.sortCells(graph.model.getTopmostCells(graph.getSelectionCells())));
dx = 0;
dy = 0;
}
}));
// Handles cut event by removing cells putting XML into text input
mxEvent.addListener(textInput, 'cut', mxUtils.bind(this, function(evt)
{
if (graph.isEnabled() && !graph.isSelectionEmpty())
{
copyCells(graph, graph.removeCells());
dx = -gs;
dy = -gs;
}
}));
// Merges XML into existing graph and layers
var importXml = function(xml, dx, dy)
{
dx = (dx != null) ? dx : 0;
dy = (dy != null) ? dy : 0;
var cells = []
try
{
var doc = mxUtils.parseXml(xml);
var node = doc.documentElement;
if (node != null)
{
var model = new mxGraphModel();
var codec = new mxCodec(node.ownerDocument);
codec.decode(node, model);
var childCount = model.getChildCount(model.getRoot());
var targetChildCount = graph.model.getChildCount(graph.model.getRoot());
// Merges existing layers and adds new layers
graph.model.beginUpdate();
try
{
for (var i = 0; i < childCount; i++)
{
var parent = model.getChildAt(model.getRoot(), i);
// Adds cells to existing layers if not locked
if (targetChildCount > i)
{
// Inserts into active layer if only one layer is being pasted
var target = (childCount == 1) ? graph.getDefaultParent() : graph.model.getChildAt(graph.model.getRoot(), i);
if (!graph.isCellLocked(target))
{
var children = model.getChildren(parent);
cells = cells.concat(graph.importCells(children, dx, dy, target));
}
}
else
{
// Delta is non cascading, needs separate move for layers
parent = graph.importCells([parent], 0, 0, graph.model.getRoot())[0];
var children = graph.model.getChildren(parent);
graph.moveCells(children, dx, dy);
cells = cells.concat(children);
}
}
}
finally
{
graph.model.endUpdate();
}
}
}
catch (e)
{
alert(e);
throw e;
}
return cells;
};
// Parses and inserts XML into graph
var pasteText = function(text)
{
var xml = mxUtils.trim(text);
var x = graph.container.scrollLeft / graph.view.scale - graph.view.translate.x;
var y = graph.container.scrollTop / graph.view.scale - graph.view.translate.y;
if (xml.length > 0)
{
if (lastPaste != xml)
{
lastPaste = xml;
dx = 0;
dy = 0;
}
else
{
dx += gs;
dy += gs;
}
// Standard paste via control-v
if (xml.substring(0, 14) == '<mxGraphModel>')
{
graph.setSelectionCells(importXml(xml, dx, dy));
graph.scrollCellToVisible(graph.getSelectionCell());
}
}
};
// Cross-browser function to fetch text from paste events
var extractGraphModelFromEvent = function(evt)
{
var data = null;
if (evt != null)
{
var provider = (evt.dataTransfer != null) ? evt.dataTransfer : evt.clipboardData;
if (provider != null)
{
if (document.documentMode == 10 || document.documentMode == 11)
{
data = provider.getData('Text');
}
else
{
data = (mxUtils.indexOf(provider.types, 'text/html') >= 0) ? provider.getData('text/html') : null;
if (mxUtils.indexOf(provider.types, 'text/plain' && (data == null || data.length == 0)))
{
data = provider.getData('text/plain');
}
}
}
}
return data;
};
// Handles paste event by parsing and inserting XML
mxEvent.addListener(textInput, 'paste', function(evt)
{
// Clears existing contents before paste - should not be needed
// because all text is selected, but doesn't hurt since the
// actual pasting of the new text is delayed in all cases.
textInput.value = '';
if (graph.isEnabled())
{
var xml = extractGraphModelFromEvent(evt);
if (xml != null && xml.length > 0)
{
pasteText(xml);
}
else
{
// Timeout for new value to appear
window.setTimeout(mxUtils.bind(this, function()
{
pasteText(textInput.value);
}), 0);
}
}
textInput.select();
});
// Enables rubberband selection
new mxRubberband(graph);
// Gets the default parent for inserting new cells. This
// is normally the first child of the root (ie. layer 0).
var parent = graph.getDefaultParent();
// Adds cells to the model in a single step
graph.getModel().beginUpdate();
try
{
var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
var e1 = graph.insertEdge(parent, null, '', v1, v2);
}
finally
{
// Updates the display
graph.getModel().endUpdate();
}
}
};
</script>
</head>
<!-- Page passes the container for the graph to the program -->
<body onload="main(document.getElementById('graphContainer'))">
<!-- Creates a container for the graph with a grid wallpaper -->
<div id="graphContainer"
style="position:relative;overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;">
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More