mirror of
https://github.com/nasa/openmct.git
synced 2025-06-30 12:43:04 +00:00
Compare commits
1317 Commits
open1094
...
vue-table-
Author | SHA1 | Date | |
---|---|---|---|
24fcad8152 | |||
a6f9e0420c | |||
ccfd9eed00 | |||
df0ee1f99b | |||
dacbf928a1 | |||
6153dce261 | |||
0fcddb3547 | |||
c6628b6e72 | |||
ec7889e5ff | |||
416d8f60fe | |||
74293d4fda | |||
73fc686851 | |||
d21abd95b1 | |||
eb5ef28a73 | |||
1bb1330cba | |||
78c731dbf7 | |||
0d53898af9 | |||
9582fb2b06 | |||
3c075b7ff2 | |||
081edfbd70 | |||
04cc8f7aa2 | |||
a1d206bfc3 | |||
ef9c6d5fed | |||
15a75ac134 | |||
cde3994979 | |||
1a10c966e0 | |||
9288880e47 | |||
d2c5476cdd | |||
8d21d420ae | |||
cc22fd4e9d | |||
4a046b3eea | |||
b0702ceff5 | |||
5af14cd3b9 | |||
d7eb4c17ca | |||
8c9fe2d36b | |||
3246480f82 | |||
8055e050b6 | |||
b0f73fff0d | |||
755cf21d3f | |||
95457a1981 | |||
da0ed95662 | |||
c8919708bb | |||
cc5bfda730 | |||
433dee0314 | |||
013eba744d | |||
29de11167f | |||
eaa9514453 | |||
b8f278cabf | |||
63bb183bec | |||
9d2c7a6de5 | |||
07fb20c32f | |||
90a6bbc13e | |||
73e38f1955 | |||
de8f8d174d | |||
b187762d55 | |||
45a152df86 | |||
a3e78bbf91 | |||
374e4afc32 | |||
2f8a0c2c2b | |||
163043635e | |||
ec9fd59d4a | |||
e03ea25392 | |||
56c16ed263 | |||
2e99f90b7c | |||
0520b03b97 | |||
08bed6c23a | |||
c909831dd4 | |||
e19ce4ac8c | |||
fab1def790 | |||
28311fd4dd | |||
c55eaeb193 | |||
2e6cdfc457 | |||
210808ed54 | |||
062ba4a9d7 | |||
e2217e008a | |||
61e583dbb2 | |||
7d754ea143 | |||
865b99f445 | |||
ec8b4db2e5 | |||
d6bd09fabf | |||
241d75e393 | |||
f4271c96a3 | |||
8c739e9fd9 | |||
75ae5ab3bb | |||
78a5ace18d | |||
ba0077498c | |||
909a21ee8a | |||
94c35a67c5 | |||
19fc05b76d | |||
1326dae27a | |||
7d8dc00996 | |||
a958055f50 | |||
1f86a5a131 | |||
8ad07fa8de | |||
fa7298a752 | |||
ae42298d08 | |||
1a23f2b390 | |||
4df6d6141b | |||
1c97138607 | |||
8db75bf41e | |||
00fb071fe2 | |||
2bf6a48d49 | |||
eca3c57bd8 | |||
7753703034 | |||
f9060a485d | |||
39a7f43cd0 | |||
5103207a70 | |||
8c2cc90f04 | |||
ce431848b3 | |||
5726fe6313 | |||
6145843e86 | |||
0225cbab6a | |||
e477beb587 | |||
ee5d59024a | |||
5288dadafb | |||
7f3cc09cbc | |||
94fa70abb1 | |||
12574a1333 | |||
dc91a94f0e | |||
0243aa6584 | |||
e5d869f01e | |||
d4e3e6689c | |||
0363d0e8ad | |||
3669e776a9 | |||
5d3adc6a7f | |||
c1b2db848a | |||
5d19294c11 | |||
8c72729a2a | |||
9b8d5f3f9c | |||
129ab1791b | |||
d03f323a9b | |||
54a453e5a0 | |||
14894cf197 | |||
0c6786198a | |||
6d077b775d | |||
144437a06e | |||
557cd91b21 | |||
39d3e92094 | |||
7529a86d01 | |||
d34e36831c | |||
aa8fa9168a | |||
3f1b7e0a87 | |||
5ec3b98d1c | |||
1ad5094b72 | |||
b54ee2257e | |||
fcef4274e5 | |||
744a5340d3 | |||
d140051054 | |||
8da74f2665 | |||
2390278b97 | |||
8a66731271 | |||
0a9ea48355 | |||
01d93306f3 | |||
0588f9190a | |||
1378b57567 | |||
9e12886c66 | |||
2d352ac574 | |||
284dec4903 | |||
5a0656c700 | |||
425655bae0 | |||
50b4d5cb28 | |||
bc62d7d5ae | |||
c0dcf4495e | |||
a51b9bc63f | |||
ff003c3dab | |||
de7c4d2ce3 | |||
4b07930305 | |||
5a49ac16b1 | |||
91b150c064 | |||
9506d309b0 | |||
c9bd60f50e | |||
cf15ff5c07 | |||
6bbdfcdfbe | |||
06e93ff520 | |||
550e7a15e6 | |||
71c54cd541 | |||
e81b8e53dc | |||
84e6928f54 | |||
ba688fe62c | |||
c533e10352 | |||
04f47b3db6 | |||
717fa5edf4 | |||
14f5f048fb | |||
72929500d3 | |||
471adde923 | |||
6c5d5f3d00 | |||
2262fef29b | |||
bda30f1475 | |||
bfec434369 | |||
14df350994 | |||
80582f5e8d | |||
7442768ced | |||
77c7bdfdec | |||
07d9769966 | |||
385b6177b2 | |||
7f68d26433 | |||
d7b44f8d09 | |||
c4cd36e15b | |||
618a6e7e8d | |||
63a8c91f71 | |||
e59020fec7 | |||
a2e424203a | |||
16853644cb | |||
2272766c57 | |||
1d9cdea2d4 | |||
715219c44d | |||
00dc2875bf | |||
8703f363b8 | |||
26210eaa50 | |||
a4a1cb5e05 | |||
9570f2f7a1 | |||
eb4ded39b3 | |||
7deb3cd025 | |||
06779e6cd9 | |||
7f43c0bf1a | |||
bfa3bbcdc7 | |||
2baf3f8bb0 | |||
10ac13ac5c | |||
138cb199bb | |||
374c363a78 | |||
e9cb5cd639 | |||
bc7d92ee0d | |||
78f49784a0 | |||
8754c438cc | |||
1419c75503 | |||
ca8cad0a74 | |||
a3a55d3b48 | |||
e66f818996 | |||
ae5ef33487 | |||
59c5430579 | |||
6d52f094d9 | |||
740db8da75 | |||
68abc15ed5 | |||
bb47feb517 | |||
469820fb0f | |||
92dd99b26c | |||
9fe1923189 | |||
42ddb38629 | |||
fe60d7abbc | |||
54b975f242 | |||
7f75e089e8 | |||
8e8c66280f | |||
d3d874e209 | |||
ce561e1598 | |||
7290601a37 | |||
ea5a85ffd1 | |||
eb196ea521 | |||
b6a8078634 | |||
e53b34ed60 | |||
13ffa3e3c4 | |||
0e3b629d90 | |||
23216e5aee | |||
5b366e91c1 | |||
aa336dfd57 | |||
556296096d | |||
e4aaa860a3 | |||
2079a74ab2 | |||
4b86439b8a | |||
a4d8e8ff90 | |||
3674808a13 | |||
10c0c29f64 | |||
fa1a942184 | |||
e205bf1fa4 | |||
cecd708dd1 | |||
aa36417590 | |||
e6c78f6d8b | |||
747afa6200 | |||
019cdde1c6 | |||
c7e26a231a | |||
f3b519d47b | |||
c472ab044b | |||
008f1387ed | |||
6ed76708ec | |||
c2ff81bad1 | |||
a6c3d98ddd | |||
603e990755 | |||
586901aee7 | |||
449923feae | |||
ae461f71b4 | |||
5243b3748d | |||
82a661b884 | |||
f5a92f66db | |||
0417b7e32d | |||
7c9a6bd817 | |||
a58c484d71 | |||
43b92647fb | |||
e8eb34f5c3 | |||
fa57688709 | |||
5ac377ec6a | |||
c523480b48 | |||
4dc09975d0 | |||
29a472ae5d | |||
3e2fd8967a | |||
9e429802c2 | |||
6cfee100d7 | |||
eeb214204d | |||
b41ceab51e | |||
10b0f43fc1 | |||
593c1adf56 | |||
2d1ee80322 | |||
7555eab1e3 | |||
4923bcbd85 | |||
5a7fdf82ac | |||
a5f6940d67 | |||
4571205871 | |||
34c3763421 | |||
e45a686c5a | |||
1c33157fb8 | |||
ed6ae23dc0 | |||
23839b05b0 | |||
6aed3bb0b5 | |||
1ae62cde05 | |||
4e7e5bb783 | |||
efc46613bb | |||
218ef16160 | |||
fb0a577d16 | |||
19b5e7c781 | |||
0794c0edf7 | |||
89515bb896 | |||
318aecb7bc | |||
a4b857a034 | |||
d82230dea4 | |||
cb242d8efb | |||
aa8f780e4e | |||
3ed0880c6e | |||
40c68e6399 | |||
65500736da | |||
b9ab97eb7f | |||
34ef98e0cd | |||
825f50262c | |||
a6079936e8 | |||
542b7a6f20 | |||
2a8c3977a4 | |||
515ea7caf8 | |||
65993bd77f | |||
54e07ccfdd | |||
2e6fcec1c3 | |||
f992fcebe1 | |||
280c838735 | |||
445dfb3d91 | |||
bc616ecdee | |||
895c9b12e6 | |||
95e68fce57 | |||
9f4f771774 | |||
05290593e9 | |||
2aa2d9d4bb | |||
7b690d0785 | |||
39fe2fd7b6 | |||
b661b4737e | |||
9ca8975baf | |||
5f7eeeae30 | |||
537656303a | |||
e7ba13f844 | |||
64bf63c18a | |||
ac3f638b35 | |||
a3520ba51e | |||
8e0b7fce7f | |||
52f5bea215 | |||
26b4e5498f | |||
ce733628b2 | |||
307320b3ff | |||
504b2e1ecf | |||
73e452edc0 | |||
bbeb97e93c | |||
e6d65f3549 | |||
1ab4cf68d7 | |||
f20c8b7d99 | |||
17a067752f | |||
7fcaf6510e | |||
0713941812 | |||
1d7d56d5e7 | |||
ba9941891d | |||
d3b313d8aa | |||
e2f0f61862 | |||
ecdcebce0c | |||
5fbf71264e | |||
8519e7660f | |||
e75d1f62ec | |||
1c9a9baf77 | |||
44246e6973 | |||
61f59a94e4 | |||
a8a689f69a | |||
e3bd22de8c | |||
c7787aa1f0 | |||
3870266131 | |||
98cc19c637 | |||
c1128c3156 | |||
485944a782 | |||
beb24adf7a | |||
6de5f73d78 | |||
35b51d151d | |||
b2333d83d2 | |||
7513f24ff3 | |||
cb9231f453 | |||
1c9230029d | |||
e300b49c95 | |||
f6cd35a631 | |||
53cecb8909 | |||
95188f6ce6 | |||
8c7e8dab8e | |||
305d2f60d0 | |||
7cdb8db775 | |||
7f14397262 | |||
893e24ff98 | |||
b60eb6d6ae | |||
26a7fee869 | |||
1bdc0497c7 | |||
04c2eac9ef | |||
5daaae36bc | |||
3dea30b1e1 | |||
9f8578d79e | |||
0fa5609396 | |||
9956ce31e5 | |||
25ff430368 | |||
cc9a2cbf4f | |||
cd8c0fa72f | |||
fff75d111e | |||
f4df84bfa1 | |||
0dc65f5dfb | |||
6e4abcfed8 | |||
e2f9a0c9cd | |||
749a2ba088 | |||
b70501a7ed | |||
b8ae741969 | |||
9f32b4b9cd | |||
fbf736aaf7 | |||
344a325cb5 | |||
eb7f78799d | |||
57d3965fa6 | |||
2df999ef75 | |||
c2cd0db9a3 | |||
04305b7fe5 | |||
d2f13354a7 | |||
a9067892f4 | |||
88223f5e6d | |||
6310be623a | |||
6481ddbd7f | |||
258020624c | |||
29d65e9cef | |||
31a605c153 | |||
08a8207f64 | |||
5a9ca08984 | |||
0a3d51c6b5 | |||
81208d617f | |||
7ba83b639a | |||
6c093160c2 | |||
7706109c81 | |||
00bebbc66f | |||
3df7e30d2c | |||
c674627ebd | |||
c5161887e2 | |||
f8a04d0fc2 | |||
6e1a43130d | |||
906646704e | |||
4e15d8fa1f | |||
1f250dd8e7 | |||
95202611ea | |||
d88e905c65 | |||
abb7230231 | |||
92d2ec7cf4 | |||
46a51bd8db | |||
6680db0b31 | |||
9ff602a655 | |||
37c9c6dfaf | |||
0981e99256 | |||
0793442518 | |||
31897ec520 | |||
6628f93823 | |||
8fb9306272 | |||
52b6815687 | |||
f17417a541 | |||
69b06364eb | |||
1d7d963a4f | |||
910d746002 | |||
f02f1d47f1 | |||
beaf8af2e8 | |||
fce8f13984 | |||
bcdad3f19c | |||
058dfb0c87 | |||
2b41321c03 | |||
5db03bb1bd | |||
26e13a6cd0 | |||
00f3b6ce5c | |||
11677b97ab | |||
281559e84b | |||
5f8a35ecc0 | |||
fd3312734c | |||
6d0476fa0a | |||
e41289d694 | |||
95db207b33 | |||
222f852af4 | |||
2a7e6c1173 | |||
f07934f512 | |||
8830ee8c2d | |||
2a173f67c8 | |||
0c5881a1a4 | |||
ec4fe8efb3 | |||
922ace1719 | |||
8e82a4a66d | |||
f6abcf08a7 | |||
fbe43f9ab7 | |||
7c7803310b | |||
c27053e716 | |||
d4fdaf9cbc | |||
5aa93ba50c | |||
77ca3e9033 | |||
6219fa1d87 | |||
0cbbeefd62 | |||
185567cf29 | |||
7dd5da8993 | |||
95ac304afb | |||
80dc5a13b8 | |||
b5abe6527b | |||
616aab4a2d | |||
12e693941c | |||
59c61e72b8 | |||
3ce954c68c | |||
df0d4dff6f | |||
a867cd6be0 | |||
b48dd4b63b | |||
35c457b7fb | |||
6870055033 | |||
5f968b50f8 | |||
251438eefd | |||
c07a372c6e | |||
f666a7ca09 | |||
0434928f55 | |||
c27b37918a | |||
67eab82bd1 | |||
8d86ca05da | |||
4d6a0d4931 | |||
4ae35576a5 | |||
af622599a5 | |||
12d1302138 | |||
09419398e9 | |||
b69e03368a | |||
4e457f1cf0 | |||
4196da9f52 | |||
a59177447b | |||
529abcc4b0 | |||
1cb5dd021f | |||
399b745084 | |||
f09a76e23b | |||
977aea45b3 | |||
16b6a70e22 | |||
9b38484438 | |||
77aa8c8374 | |||
856f3d2061 | |||
d712a96fdc | |||
ba243e9093 | |||
c36ce15a00 | |||
d39ab17db4 | |||
1a7260cc14 | |||
8a75381a3d | |||
c394fe9287 | |||
06f4a955b5 | |||
a2bf92db97 | |||
da40f4c96e | |||
6fa5a31217 | |||
eb91cd33be | |||
5bc7a701dc | |||
5cd0516048 | |||
48a603ece8 | |||
abfa56464a | |||
c1d6e21c3c | |||
3bd556a406 | |||
347fb6d882 | |||
b3cf7a5d93 | |||
c7cffdeb3b | |||
d45ae7908d | |||
b10fb4533e | |||
c74fdb816f | |||
40985a56c8 | |||
5c01f0be24 | |||
f7ff5af60b | |||
2088fc52f3 | |||
db33ab143e | |||
8c77d4006a | |||
2fa567b98b | |||
e61f04663a | |||
4b905fa7d2 | |||
5e6e7f018a | |||
53f56b430a | |||
50c934820c | |||
2a10a2cae2 | |||
65325b90fd | |||
cfecc36ae6 | |||
d9f8622459 | |||
8e13819e1e | |||
aaedf5d576 | |||
af9ffaf02d | |||
970acbd56e | |||
46c7399867 | |||
2ed12d4ca3 | |||
1edd2043dc | |||
9a6745635d | |||
2c5dd96de1 | |||
fa962b42bc | |||
34dc457aff | |||
a3311e4c57 | |||
ef8efbd53d | |||
6cd99efbb9 | |||
ae2b73a4f5 | |||
0c3ff82cfe | |||
50f303bbdc | |||
2a4944d6ee | |||
3544caf4be | |||
976333d7f7 | |||
6d5530ba9c | |||
77d0134e2e | |||
d3b4ad41c2 | |||
f8c4c70623 | |||
e268e357b3 | |||
af3cbe9ed1 | |||
4740faab6f | |||
37478bc391 | |||
b28eb049dc | |||
10dcb3a667 | |||
3d3baddd23 | |||
f306180ab6 | |||
9475a22831 | |||
2c3a09f448 | |||
7543faa577 | |||
3c81398865 | |||
caa489f58a | |||
43117a7ebe | |||
e712edba4e | |||
35d8024aaa | |||
563b02bb1d | |||
93aa6a18f2 | |||
b8d8f40ed7 | |||
e010dbb324 | |||
bd397c869e | |||
754a2c16bd | |||
57a9ffe6ab | |||
17564aa489 | |||
f00182968b | |||
77396093d8 | |||
784114e256 | |||
d1e7e7894e | |||
65bf38d5e6 | |||
26db493b0d | |||
6459f410e7 | |||
4072b91808 | |||
3ae0fd7bc9 | |||
df7d59bc9c | |||
4f24c46e9b | |||
8750bdd778 | |||
60a8ee657a | |||
d262c4428e | |||
9f9d28deef | |||
ea74385ac8 | |||
06cc95efb1 | |||
09ebeeb8e4 | |||
7e8e861468 | |||
df2ce72e39 | |||
ecf1bac5c7 | |||
d04bdd2685 | |||
fe8398017c | |||
c2253f5010 | |||
290dd0abf0 | |||
49560698f6 | |||
165bd4f638 | |||
9df59522d9 | |||
7fc66e2de8 | |||
1ce1d29c87 | |||
d522d105ad | |||
72b753c67f | |||
16ec65f38c | |||
ed67866f45 | |||
36b5197733 | |||
fa28393c14 | |||
077f076c43 | |||
c7ae520d7e | |||
39eb7ba862 | |||
116bb2c25f | |||
6bf293f96b | |||
eceaa38ed8 | |||
b6aa087536 | |||
d94e8b10d8 | |||
590a0fe080 | |||
41d0e953f5 | |||
3436455201 | |||
bb63e13770 | |||
62685cb892 | |||
6fe0ce70eb | |||
bee22311a7 | |||
2cde80237f | |||
3b93454c53 | |||
a5a17b9502 | |||
381f3d9b69 | |||
94319df69b | |||
1666c42f78 | |||
f1870e286d | |||
94194ff675 | |||
d37caa7665 | |||
a768b12985 | |||
6f257593c8 | |||
c4d47ddc26 | |||
60d1b73160 | |||
96c054415d | |||
89be1c810a | |||
6328bd9354 | |||
fcda211800 | |||
daa71c4f69 | |||
f2d61604f7 | |||
f0b9292458 | |||
0b79ec1235 | |||
b9601ff819 | |||
6f417fc4c7 | |||
d99b4d35ab | |||
6936ab6100 | |||
532f7a76f9 | |||
09e79d38ff | |||
1c40fa88ce | |||
a4ff5ffb43 | |||
799c418124 | |||
215e9b26a8 | |||
43132ea6f8 | |||
90a7ca8ae5 | |||
f077f4fc1b | |||
0cd849fe42 | |||
06a24e3a7d | |||
abd9fdec38 | |||
bfdbb4dacb | |||
b5b68e7439 | |||
a920220122 | |||
83ed4f6b0d | |||
6a32c53d05 | |||
0785129b7f | |||
45de84c183 | |||
b2da0cb12f | |||
e121c0f8ac | |||
bf006b45e4 | |||
a3f5873501 | |||
86b337ec88 | |||
7dda85cc5f | |||
68d6920d38 | |||
f540fd08fa | |||
aaf4877daa | |||
828e5629c5 | |||
44ceb4e865 | |||
88f954b437 | |||
f85595665f | |||
73b3ae7264 | |||
eaae401d16 | |||
efed5f68af | |||
79b4f9a0f4 | |||
c98286d426 | |||
d368bc2351 | |||
6a7b77ccf5 | |||
242eb6d733 | |||
2991e9894d | |||
3dc8bc87fc | |||
cfb99eaf80 | |||
5dee588c36 | |||
2f8c03ecb2 | |||
2dfde9a612 | |||
3dade275d4 | |||
2f5dc8a887 | |||
9b11684ae9 | |||
251e3b5646 | |||
03b47b43ad | |||
18e51aaff7 | |||
5c31c6084c | |||
b1464efdaf | |||
3e6e068f7f | |||
f7a08c7087 | |||
dfa4591834 | |||
4d3ec398c9 | |||
b169089156 | |||
5b6f95bd4a | |||
66a6b6d89b | |||
d74eba1922 | |||
9a7f69a614 | |||
0578a651da | |||
f991dcfb76 | |||
42c48cb93b | |||
67b763c4c0 | |||
2708562872 | |||
9578fb0cd8 | |||
a728f2368c | |||
547696d797 | |||
025b69541e | |||
5aa95c0415 | |||
d63c401e44 | |||
c9ac85089a | |||
a8c9b6f7fe | |||
eca9968a9f | |||
736c89cfc6 | |||
9a0fcc045c | |||
a3459679d0 | |||
12333f3417 | |||
2bf05ae40f | |||
833bad067e | |||
23eff4b924 | |||
30b769d741 | |||
d813029046 | |||
81de6119fe | |||
365af918f3 | |||
40fb144d09 | |||
8cacff37ab | |||
70985c5dbd | |||
9dec99824e | |||
d4730e1656 | |||
c079868224 | |||
54a59c5e6f | |||
0804a16314 | |||
4cc020f0ea | |||
b49fef78f5 | |||
2cced53c97 | |||
f6253ae7ed | |||
3f50bdb334 | |||
2a79813460 | |||
650824574c | |||
7b0506bbdb | |||
a3847bcca5 | |||
a143b21ea1 | |||
64ff463200 | |||
08ca7659e7 | |||
d7edfb4cc6 | |||
4eca80a770 | |||
56a662841e | |||
8878ea4cf7 | |||
eb32a798b8 | |||
0759ba6722 | |||
bfdf7b822f | |||
7dde924fcc | |||
b8cb41b1da | |||
971b92acbb | |||
d643efa9bb | |||
08c0aeb2d5 | |||
b0940eb33e | |||
6ec858b237 | |||
891412bdb9 | |||
1947802a35 | |||
3b06e32b40 | |||
a2711c2c08 | |||
3e6c9fa318 | |||
2e49c5932a | |||
abf750f894 | |||
137434af1b | |||
ac4d21b252 | |||
db362a0efc | |||
887631500b | |||
65043d0ff3 | |||
1bf7c06b1e | |||
7b218c7f02 | |||
3572877a2e | |||
f2d44114fa | |||
d1d2067ad5 | |||
9456370077 | |||
0833674b91 | |||
947b54555a | |||
1a88c9a651 | |||
567bb6fa2a | |||
00d0b71080 | |||
580e10b024 | |||
fbe9621387 | |||
13b5e7c00e | |||
09d59f00e7 | |||
772d24b173 | |||
cbd001e280 | |||
6d2c5f7fd4 | |||
1f6ca8bcc3 | |||
bff4e120a7 | |||
8a0018177a | |||
c9c8998fa2 | |||
e19edbb27a | |||
f2fe6a9885 | |||
0442a31153 | |||
e03c725b86 | |||
b0e842863d | |||
5b0fa90e39 | |||
ae6f6565fa | |||
c874ae7afd | |||
c27c0c5b8c | |||
ed102492e5 | |||
e077f9ee18 | |||
e9f4db7719 | |||
34e07b938d | |||
230230aa94 | |||
901846e6c1 | |||
a93f41f1c3 | |||
7439d949c4 | |||
77d4760945 | |||
e1276e464d | |||
d248dfe346 | |||
91b63f78eb | |||
754d7b3cd7 | |||
7d950d067c | |||
a34e89d56a | |||
4ec0d0633d | |||
4b51e604a7 | |||
e3e7bd27e9 | |||
f6ed0e8ab6 | |||
c179d9e759 | |||
98f387b605 | |||
275dda820b | |||
43c32c2c7b | |||
3f5388c2e8 | |||
bad24d6213 | |||
7a94efccbf | |||
3c72eea9ef | |||
3548cde9c4 | |||
3d17435438 | |||
f185254114 | |||
943e2ebe14 | |||
0c27a5f361 | |||
abfabc85b5 | |||
e08704e6d3 | |||
f60fc2ebad | |||
b50278e92f | |||
e0b6986851 | |||
d913798d5b | |||
56267095cb | |||
f9ce27def3 | |||
127a7a62c1 | |||
4429e847e8 | |||
56e321f6d9 | |||
e135ed26f0 | |||
48b25fe842 | |||
85e57286ae | |||
5ef6617062 | |||
ae89dcd62d | |||
f9597fe799 | |||
0ec27350e0 | |||
156ba832f2 | |||
c4f079dde2 | |||
2a2e9ef99d | |||
1446b16e77 | |||
f03003b366 | |||
d3db26499c | |||
d1f67fd8b9 | |||
31ee92b711 | |||
1ea7fa3084 | |||
fe217384aa | |||
49d2d5500f | |||
c1afc34cfc | |||
d8dc3c8445 | |||
ea1855fc26 | |||
0be84a4e51 | |||
d87ed1414e | |||
4382745012 | |||
f73238787d | |||
8c04596859 | |||
79b16ddda6 | |||
d490693bad | |||
6c9bd0b510 | |||
2740b6f957 | |||
37cf56a2b3 | |||
e73bb4ff4a | |||
ea35395d7e | |||
bad901a162 | |||
bb34528a86 | |||
487ec7907c | |||
3093ab8067 | |||
0f1d685ae6 | |||
24cb72e5b5 | |||
4c6ca58c95 | |||
d62989bc5d | |||
8e39da6726 | |||
98deac042e | |||
b51ffcada6 | |||
a6386b1612 | |||
72ecbb0abc | |||
c6caae8647 | |||
da23bba392 | |||
32e7f57a7c | |||
f7dfccb096 | |||
990c653397 | |||
911ece7612 | |||
222b4421e5 | |||
4517bd1356 | |||
5984ae46fc | |||
5bde1de61b | |||
06d229ea99 | |||
58391de007 | |||
ceb3e8e3dd | |||
35a331f3fd | |||
7d13ce0626 | |||
a49eebf9f5 | |||
989e4e1b75 | |||
9bb647e275 | |||
3dee082141 | |||
7d52d348b2 | |||
ded52b8d19 | |||
ab4ce0caba | |||
90c13a3959 | |||
9847c40e34 | |||
e751461194 | |||
a566265a72 | |||
fecf419f83 | |||
26c14d2bca | |||
92bfea1773 | |||
40ad9c47a8 | |||
de85f79ab6 | |||
3736f84c12 | |||
e7a7025961 | |||
e38cf1e2e8 | |||
7b84febfde | |||
39dcb937d5 | |||
3e3d3ebcf9 | |||
e370271093 | |||
55603b927f | |||
e35666bcc6 | |||
3a19890be9 | |||
725f8202ed | |||
ee917b0e1d | |||
a8900f3d6d | |||
ea8f429902 | |||
219301a85b | |||
06a453333a | |||
5e0975ddfa | |||
76527b310d | |||
73b4385578 | |||
bb3af4eff7 | |||
68adea7b5a | |||
4d3afb8efc | |||
852ac3cd55 | |||
40abd1ce6c | |||
3a7e98ab84 | |||
6364bbc6b3 | |||
fc7d2672db | |||
3a25704f41 | |||
98486f718b | |||
a7f830177a | |||
2c2d9c1bfe | |||
cc6b9d4099 | |||
1a284ac9dc | |||
b48ca99119 | |||
2e8d021a6a | |||
5409e3d203 | |||
f0064fd91f | |||
c3d158584b | |||
6b8a2a7770 | |||
cbb7ada63c | |||
fe00d3e501 | |||
b8eeeaeede | |||
dd4e20cfb5 | |||
597d66782e | |||
01031de074 | |||
1cc29be3d6 | |||
6cbdaa442b | |||
ab9d92a01a | |||
8aa3000fb1 | |||
64d8b5fcd1 | |||
05e88e5dcf | |||
5a819a96de | |||
7998a3fc98 | |||
9063996e84 | |||
76e62ae199 | |||
0e24de2b69 | |||
542dea69a1 | |||
89f2e0943c | |||
08eaa822fe | |||
39f2f94a53 | |||
b02de171f1 | |||
4091e9cdf4 | |||
b165322ba3 | |||
30750e63aa | |||
2cb636b050 | |||
5161205a06 | |||
79c5895f2f | |||
44f8c2f49f | |||
702ebbd557 | |||
e29efbbcdf | |||
44504feeb9 | |||
fdbe31cb76 | |||
10d2794bb7 | |||
eb3b6e5eca | |||
ccc32096ea | |||
4e5887d9ec | |||
2167c061a2 | |||
2100c5717e | |||
acc1b8e207 | |||
f3bd88837f | |||
8105a7edb8 | |||
385d90b056 | |||
ecf526aa03 | |||
a35b158fd1 | |||
2ebf05ae5b | |||
850da9de52 | |||
353c24c70e | |||
73d10ab093 | |||
668b7b6a39 | |||
70c072be0b | |||
eb2fbcd8d0 | |||
02f34d1c04 | |||
c8931f8535 | |||
0274490b68 | |||
06f2c74444 | |||
4d89de7068 | |||
2d50a63ca4 | |||
54dcccb472 | |||
d1e1ba1c66 | |||
7265b241a2 | |||
59436f7b45 | |||
771542ee5f | |||
b60eff2f5e | |||
f6d6cb929f | |||
6f2c80bc2e | |||
0fe0b21eda | |||
0bedc227f4 | |||
6c4419fb72 | |||
766e94ed62 | |||
4d2f159dd8 | |||
26a9d53f3b | |||
41156cec7c | |||
9fa6184b0a | |||
14f1a1f740 | |||
5a6c209369 | |||
8c2ce81b76 | |||
99ec188813 | |||
41d0089e53 | |||
8ed9f51008 | |||
6176ca2260 | |||
eb6ddb5e45 | |||
c5041db1d1 | |||
307b678707 | |||
550e60455b | |||
d263b80810 | |||
99227d2e42 | |||
31264aadda | |||
11a2fbacb4 | |||
7c865f87be | |||
86fcf19066 | |||
1f7cece8ec | |||
a731c35ad6 | |||
c7529dd56b | |||
00fff52529 | |||
4c7ad6d93a | |||
eb5493e37b | |||
1fb18c7919 | |||
1c2378b3b4 | |||
cd21575546 | |||
f9d6b9fe5d | |||
407766774d | |||
c8898ac6aa | |||
d05a1cef9b | |||
12b5544959 | |||
59e18b9a79 | |||
ea1780364b | |||
eef08ccb0b | |||
8a9edd3705 | |||
652a50c700 | |||
d1c01d3c86 | |||
8cf7ffc7cc | |||
b57fc2a0e3 | |||
736cba76bb | |||
2339560363 | |||
24e870a126 | |||
8bdf1e3072 | |||
e8e9598721 | |||
ce87ad2564 | |||
2a2f6e8142 | |||
3e5057c285 | |||
48b271b7ca | |||
8244e435bf | |||
a3a0f003f0 | |||
e42b8d22f7 | |||
5485950130 | |||
c8f4568bd0 | |||
51079b0252 | |||
bfc6ed4604 | |||
9cb26b73b5 | |||
c0311be192 | |||
cefb40856b | |||
ee7c450e11 | |||
d741e0f23c | |||
8080490e5c | |||
a3443d8077 | |||
53e8e7c688 | |||
dea94e4e68 | |||
d40c7f1821 | |||
c7e7e0c302 | |||
8ac6ac97f0 | |||
1afa4ab329 | |||
c2517c1670 | |||
717ceff02c | |||
6878c59f45 | |||
c00b053aa7 | |||
480e12c3ab | |||
50bd233b0a | |||
79406cf1ed | |||
2d5824c4ab | |||
3480809129 | |||
11bc48c7e0 | |||
d759401b69 | |||
5a2e5ac48f | |||
1144f818cf | |||
0aebecfbb0 | |||
531d40993a | |||
4c097faf88 | |||
5152e64895 | |||
0263237b2c | |||
acd0fae040 | |||
29dd51439d | |||
a1b2175801 | |||
b0f06a2195 | |||
f9c93ca022 | |||
8e0858bb24 | |||
ee0fa0451a | |||
e86e955682 | |||
9913fb48f5 | |||
71c362f016 | |||
fa6e8fd5f9 | |||
23b64951f3 | |||
99590d18f7 | |||
86b31bc040 | |||
d52bfed1df | |||
808ccd0376 | |||
44d6456de1 | |||
a394b95259 | |||
beeefe517a | |||
d02f4041b2 | |||
9fd75ff91e | |||
026ece3956 | |||
214a843dba | |||
1d6880c283 | |||
8ddad9bf4c | |||
f167022eea | |||
76edba1014 | |||
7904989a23 | |||
ea676b4368 | |||
cc2b102256 | |||
b1266abf01 | |||
cc7d0477e8 | |||
5a2d1a746d | |||
4f0e3fdf85 | |||
be9f56107c | |||
787f3815df | |||
35d7d9b380 | |||
8b9c51f303 | |||
661b3d5889 | |||
01c85cb58d | |||
0218f42e2b | |||
d8d0f22889 | |||
d8a097a95a | |||
dc577d4c24 | |||
8f9308de01 | |||
8f7a5e113b | |||
9820f9d9c5 | |||
56ff98cce7 | |||
dade6b2254 | |||
e9cac6eff3 | |||
7fc2fcfa07 | |||
5689279954 | |||
165e158f37 | |||
f301741852 | |||
eda1f23df9 | |||
d15d27af73 | |||
438511c5f7 | |||
3eb960cf5a | |||
699f6ba458 | |||
f21f22d95c | |||
b520d08818 | |||
fb8fe93529 | |||
f9fd97230f | |||
536e2290b8 | |||
73b922facf | |||
ba0d9a186b | |||
80f5cb756d | |||
d7f566088f | |||
a3bcaea7f9 | |||
23c71b7218 | |||
463f7ccf65 | |||
87fe407739 | |||
bb4f1ce7cd | |||
0cc2ba7595 | |||
8162429106 | |||
ed519d89d7 | |||
0e4f6185b8 | |||
1ced47fc2c | |||
26839c7fd1 | |||
264896c264 | |||
e3208187bf | |||
bcf85db9c4 | |||
f1e81c359e | |||
8279acc9a5 | |||
63438ad9ba | |||
467f4d2257 | |||
a5aaa6f103 | |||
9b273bc148 | |||
0aba9122a1 | |||
ac3706dfb6 | |||
3905171457 | |||
1e03f22086 | |||
360fdeaec8 | |||
d5914dfde9 | |||
d3f2a24267 | |||
677b65d124 | |||
31d31d7819 | |||
d32ef4bc3d | |||
b4faf8991d | |||
0564759481 | |||
24e391edf7 | |||
cf295105d4 | |||
bcd5f1ee24 | |||
f85ac79b4a | |||
bea9f22a0c | |||
3f330dccf1 | |||
f7f934f0e8 | |||
0e683acde1 | |||
dd6414daf0 | |||
8756b7213f | |||
b0cbb5a2b4 | |||
6418b0c634 | |||
433d26e703 | |||
c99ffcb1f4 | |||
ef815cf060 | |||
7fb7a5452f | |||
4b641f8723 | |||
0d312def27 | |||
f16a107105 | |||
f683ca44a2 | |||
546cde56a8 |
36
.circleci/config.yml
Normal file
36
.circleci/config.yml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
version: 2
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
docker:
|
||||||
|
- image: circleci/node:8-browsers
|
||||||
|
environment:
|
||||||
|
CHROME_BIN: "/usr/bin/google-chrome"
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run:
|
||||||
|
name: Update npm
|
||||||
|
command: 'sudo npm install -g npm@latest'
|
||||||
|
- restore_cache:
|
||||||
|
key: dependency-cache-{{ checksum "package.json" }}
|
||||||
|
- run:
|
||||||
|
name: Installing dependencies (npm install)
|
||||||
|
command: npm install
|
||||||
|
- save_cache:
|
||||||
|
key: dependency-cache-{{ checksum "package.json" }}
|
||||||
|
paths:
|
||||||
|
- node_modules
|
||||||
|
- run:
|
||||||
|
name: npm run test
|
||||||
|
command: npm run test
|
||||||
|
- run:
|
||||||
|
name: npm run lint
|
||||||
|
command: npm run lint
|
||||||
|
- store_artifacts:
|
||||||
|
path: dist
|
||||||
|
prefix: dist
|
||||||
|
|
||||||
|
workflows:
|
||||||
|
version: 2
|
||||||
|
test:
|
||||||
|
jobs:
|
||||||
|
- build
|
79
.eslintrc.js
Normal file
79
.eslintrc.js
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
module.exports = {
|
||||||
|
"env": {
|
||||||
|
"browser": true,
|
||||||
|
"es6": true,
|
||||||
|
"jasmine": true,
|
||||||
|
"amd": true
|
||||||
|
},
|
||||||
|
"extends": "eslint:recommended",
|
||||||
|
"parser": "babel-eslint",
|
||||||
|
"parserOptions": {
|
||||||
|
"allowImportExportEverywhere": true,
|
||||||
|
"ecmaVersion": 2015,
|
||||||
|
"ecmaFeatures": {
|
||||||
|
"impliedStrict": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"no-bitwise": "error",
|
||||||
|
"curly": "error",
|
||||||
|
"eqeqeq": "error",
|
||||||
|
"guard-for-in": "error",
|
||||||
|
"no-extend-native": "error",
|
||||||
|
"no-inner-declarations": "off",
|
||||||
|
"no-use-before-define": ["error", "nofunc"],
|
||||||
|
"no-caller": "error",
|
||||||
|
"no-sequences": "error",
|
||||||
|
"no-irregular-whitespace": "error",
|
||||||
|
"no-new": "error",
|
||||||
|
"no-shadow": "error",
|
||||||
|
"no-undef": "error",
|
||||||
|
"no-unused-vars": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
"vars": "all",
|
||||||
|
"args": "none"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no-console": "off",
|
||||||
|
"no-trailing-spaces": "error",
|
||||||
|
"space-before-function-paren": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
"anonymous": "always",
|
||||||
|
"asyncArrow": "always",
|
||||||
|
"named": "never",
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"array-bracket-spacing": "error",
|
||||||
|
"space-in-parens": "error",
|
||||||
|
"space-before-blocks": "error",
|
||||||
|
"comma-dangle": "error",
|
||||||
|
"eol-last": "error",
|
||||||
|
"new-cap": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
"capIsNew": false,
|
||||||
|
"properties": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dot-notation": "error",
|
||||||
|
"indent": ["error", 4]
|
||||||
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": ["*Spec.js"],
|
||||||
|
"rules": {
|
||||||
|
"no-unused-vars": [
|
||||||
|
"warn",
|
||||||
|
{
|
||||||
|
"vars": "all",
|
||||||
|
"args": "none",
|
||||||
|
"varsIgnorePattern": "controller",
|
||||||
|
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -3,6 +3,7 @@
|
|||||||
*.gzip
|
*.gzip
|
||||||
*.tgz
|
*.tgz
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
|
*.swp
|
||||||
|
|
||||||
# Compiled CSS, unless directly added
|
# Compiled CSS, unless directly added
|
||||||
*.sass-cache
|
*.sass-cache
|
||||||
@ -35,3 +36,5 @@ protractor/logs
|
|||||||
|
|
||||||
# npm-debug log
|
# npm-debug log
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
|
|
||||||
|
package-lock.json
|
||||||
|
5
.jscsrc
5
.jscsrc
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"preset": "crockford",
|
|
||||||
"requireMultipleVarDecl": false,
|
|
||||||
"requireVarDeclFirst": false
|
|
||||||
}
|
|
23
.jshintrc
23
.jshintrc
@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"bitwise": true,
|
|
||||||
"browser": true,
|
|
||||||
"curly": true,
|
|
||||||
"eqeqeq": true,
|
|
||||||
"forin": true,
|
|
||||||
"freeze": true,
|
|
||||||
"funcscope": false,
|
|
||||||
"futurehostile": true,
|
|
||||||
"latedef": true,
|
|
||||||
"noarg": true,
|
|
||||||
"nocomma": true,
|
|
||||||
"nonbsp": true,
|
|
||||||
"nonew": true,
|
|
||||||
"predef": [
|
|
||||||
"define",
|
|
||||||
"Promise"
|
|
||||||
],
|
|
||||||
"shadow": "outer",
|
|
||||||
"strict": "implied",
|
|
||||||
"undef": true,
|
|
||||||
"unused": "vars"
|
|
||||||
}
|
|
@ -43,9 +43,9 @@ the check-in process. These roles are:
|
|||||||
|
|
||||||
Three basic types of branches may be included in the above repository:
|
Three basic types of branches may be included in the above repository:
|
||||||
|
|
||||||
1. Master branch.
|
1. Master branch
|
||||||
2. Topic branches.
|
2. Topic branches
|
||||||
3. Developer branches.
|
3. Developer branches
|
||||||
|
|
||||||
Branches which do not fit into the above categories may be created and used
|
Branches which do not fit into the above categories may be created and used
|
||||||
during the course of development for various reasons, such as large-scale
|
during the course of development for various reasons, such as large-scale
|
||||||
@ -107,7 +107,7 @@ back into the master branch is to file a Pull Request. The contributions
|
|||||||
should meet code, test, and commit message standards as described below,
|
should meet code, test, and commit message standards as described below,
|
||||||
and the pull request should include a completed author checklist, also
|
and the pull request should include a completed author checklist, also
|
||||||
as described below. Pull requests may be assigned to specific team
|
as described below. Pull requests may be assigned to specific team
|
||||||
members when appropriate (e.g. to draw to a specific person's attention.)
|
members when appropriate (e.g. to draw to a specific person's attention).
|
||||||
|
|
||||||
Code review should take place using discussion features within the pull
|
Code review should take place using discussion features within the pull
|
||||||
request. When the reviewer is satisfied, they should add a comment to
|
request. When the reviewer is satisfied, they should add a comment to
|
||||||
@ -130,26 +130,26 @@ settings. This is verified by the command line build.
|
|||||||
JavaScript sources in Open MCT should:
|
JavaScript sources in Open MCT should:
|
||||||
|
|
||||||
* Use four spaces for indentation. Tabs should not be used.
|
* Use four spaces for indentation. Tabs should not be used.
|
||||||
* Include JSDoc for any exposed API (e.g. public methods, constructors.)
|
* Include JSDoc for any exposed API (e.g. public methods, constructors).
|
||||||
* Include non-JSDoc comments as-needed for explaining private variables,
|
* Include non-JSDoc comments as-needed for explaining private variables,
|
||||||
methods, or algorithms when they are non-obvious.
|
methods, or algorithms when they are non-obvious.
|
||||||
* Define one public class per script, expressed as a constructor function
|
* Define one public class per script, expressed as a constructor function
|
||||||
returned from an AMD-style module.
|
returned from an AMD-style module.
|
||||||
* Follow “Java-like” naming conventions. These includes:
|
* Follow “Java-like” naming conventions. These includes:
|
||||||
* Classes should use camel case, first letter capitalized
|
* Classes should use camel case, first letter capitalized
|
||||||
(e.g. SomeClassName.)
|
(e.g. SomeClassName).
|
||||||
* Methods, variables, fields, and function names should use camel case,
|
* Methods, variables, fields, and function names should use camel case,
|
||||||
first letter lower-case (e.g. someVariableName.) Constants
|
first letter lower-case (e.g. someVariableName).
|
||||||
(variables or fields which are meant to be declared and initialized
|
* Constants (variables or fields which are meant to be declared and
|
||||||
statically, and never changed) should use only capital letters, with
|
initialized statically, and never changed) should use only capital
|
||||||
underscores between words (e.g. SOME_CONSTANT.)
|
letters, with underscores between words (e.g. SOME_CONSTANT).
|
||||||
* File name should be the name of the exported class, plus a .js extension
|
* File names should be the name of the exported class, plus a .js extension
|
||||||
(e.g. SomeClassName.js)
|
(e.g. SomeClassName.js).
|
||||||
* Avoid anonymous functions, except when functions are short (a few lines)
|
* Avoid anonymous functions, except when functions are short (a few lines)
|
||||||
and/or their inclusion makes sense within the flow of the code
|
and/or their inclusion makes sense within the flow of the code
|
||||||
(e.g. as arguments to a forEach call.)
|
(e.g. as arguments to a forEach call).
|
||||||
* Avoid deep nesting (especially of functions), except where necessary
|
* Avoid deep nesting (especially of functions), except where necessary
|
||||||
(e.g. due to closure scope.)
|
(e.g. due to closure scope).
|
||||||
* End with a single new-line character.
|
* End with a single new-line character.
|
||||||
* Expose public methods by declaring them on the class's prototype.
|
* Expose public methods by declaring them on the class's prototype.
|
||||||
* Within a given function's scope, do not mix declarations and imperative
|
* Within a given function's scope, do not mix declarations and imperative
|
||||||
@ -234,7 +234,7 @@ Commit messages should:
|
|||||||
 line of white space.
|
 line of white space.
|
||||||
* Contain a short (usually one word) reference to the feature or subsystem
|
* Contain a short (usually one word) reference to the feature or subsystem
|
||||||
the commit effects, in square brackets, at the start of the subject line
|
the commit effects, in square brackets, at the start of the subject line
|
||||||
(e.g. `[Documentation] Draft of check-in process`)
|
(e.g. `[Documentation] Draft of check-in process`).
|
||||||
* Contain a reference to a relevant issue number in the body of the commit.
|
* Contain a reference to a relevant issue number in the body of the commit.
|
||||||
* This is important for traceability; while branch names also provide this,
|
* This is important for traceability; while branch names also provide this,
|
||||||
you cannot tell from looking at a commit what branch it was authored on.
|
you cannot tell from looking at a commit what branch it was authored on.
|
||||||
@ -250,9 +250,9 @@ Commit messages should:
|
|||||||
Commit messages should not:
|
Commit messages should not:
|
||||||
|
|
||||||
* Exceed 54 characters in length on the subject line.
|
* Exceed 54 characters in length on the subject line.
|
||||||
* Exceed 72 characters in length in the body of the commit.
|
* Exceed 72 characters in length in the body of the commit,
|
||||||
* Except where necessary to maintain the structure of machine-readable or
|
* Except where necessary to maintain the structure of machine-readable or
|
||||||
machine-generated text (e.g. error messages)
|
machine-generated text (e.g. error messages).
|
||||||
|
|
||||||
See [Contributing to a Project](http://git-scm.com/book/ch5-2.html) from
|
See [Contributing to a Project](http://git-scm.com/book/ch5-2.html) from
|
||||||
Pro Git by Shawn Chacon and Ben Straub for a bit of the rationale behind
|
Pro Git by Shawn Chacon and Ben Straub for a bit of the rationale behind
|
||||||
@ -260,7 +260,7 @@ these standards.
|
|||||||
|
|
||||||
## Issue Reporting
|
## Issue Reporting
|
||||||
|
|
||||||
Issues are tracked at https://github.com/nasa/openmct/issues
|
Issues are tracked at https://github.com/nasa/openmct/issues.
|
||||||
|
|
||||||
Issues should include:
|
Issues should include:
|
||||||
|
|
||||||
@ -284,7 +284,7 @@ Issue severity is categorized as follows (in ascending order):
|
|||||||
|
|
||||||
The following check lists should be completed and attached to pull requests
|
The following check lists should be completed and attached to pull requests
|
||||||
when they are filed (author checklist) and when they are merged (reviewer
|
when they are filed (author checklist) and when they are merged (reviewer
|
||||||
checklist.)
|
checklist).
|
||||||
|
|
||||||
### Author Checklist
|
### Author Checklist
|
||||||
|
|
||||||
|
137
LICENSES.md
137
LICENSES.md
@ -1,12 +1,12 @@
|
|||||||
# Open MCT Web Licenses
|
# Open MCT Licenses
|
||||||
|
|
||||||
Open MCT Web, Copyright (c) 2014-2015, United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All rights reserved.
|
Open MCT, Copyright (c) 2014-2017, United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All rights reserved.
|
||||||
|
|
||||||
Open MCT Web is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
|
Open MCT is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
||||||
|
|
||||||
Open MCT Web includes source code licensed under additional open source licenses as follows.
|
Open MCT includes source code licensed under additional open source licenses as follows.
|
||||||
|
|
||||||
## Software Components Licenses
|
## Software Components Licenses
|
||||||
|
|
||||||
@ -560,3 +560,132 @@ The above copyright notice and this permission notice shall be included in all c
|
|||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Almond
|
||||||
|
|
||||||
|
* Link: https://github.com/requirejs/almond
|
||||||
|
|
||||||
|
* Version: 0.3.3
|
||||||
|
|
||||||
|
* Author: jQuery Foundation
|
||||||
|
|
||||||
|
* Description: Lightweight RequireJS replacement for builds
|
||||||
|
|
||||||
|
#### License
|
||||||
|
|
||||||
|
Copyright jQuery Foundation and other contributors, https://jquery.org/
|
||||||
|
|
||||||
|
This software consists of voluntary contributions made by many
|
||||||
|
individuals. For exact contribution history, see the revision history
|
||||||
|
available at https://github.com/requirejs/almond
|
||||||
|
|
||||||
|
The following license applies to all parts of this software except as
|
||||||
|
documented below:
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Copyright and related rights for sample code are waived via CC0. Sample
|
||||||
|
code is defined as all source code displayed within the prose of the
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
CC0: http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Files located in the node_modules directory, and certain utilities used
|
||||||
|
to build or test the software in the test and dist directories, are
|
||||||
|
externally maintained libraries used by this software which have their own
|
||||||
|
licenses; we recommend you read them, as their terms may differ from the
|
||||||
|
terms above.
|
||||||
|
|
||||||
|
|
||||||
|
### Lodash
|
||||||
|
|
||||||
|
* Link: https://lodash.com
|
||||||
|
|
||||||
|
* Version: 3.10.1
|
||||||
|
|
||||||
|
* Author: Dojo Foundation
|
||||||
|
|
||||||
|
* Description: Utility functions
|
||||||
|
|
||||||
|
#### License
|
||||||
|
|
||||||
|
Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
|
||||||
|
Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
|
||||||
|
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
### EventEmitter3
|
||||||
|
|
||||||
|
* Link: https://github.com/primus/eventemitter3
|
||||||
|
|
||||||
|
* Version: 1.2.0
|
||||||
|
|
||||||
|
* Author: Arnout Kazemier
|
||||||
|
|
||||||
|
* Description: Event-driven programming support
|
||||||
|
|
||||||
|
#### License
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2014 Arnout Kazemier
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
160
README.md
160
README.md
@ -1,28 +1,105 @@
|
|||||||
# Open MCT
|
# Open MCT [](http://www.apache.org/licenses/LICENSE-2.0)
|
||||||
|
|
||||||
Open MCT is a web-based platform for mission operations user interface
|
Open MCT (Open Mission Control Technologies) is a next-generation mission control framework for visualization of data on desktop and mobile devices. It is developed at NASA's Ames Research Center, and is being used by NASA for data analysis of spacecraft missions, as well as planning and operation of experimental rover systems. As a generalizable and open source framework, Open MCT could be used as the basis for building applications for planning, operation, and analysis of any systems producing telemetry data.
|
||||||
software.
|
|
||||||
|
|
||||||
## Bundles
|
Please visit our [Official Site](https://nasa.github.io/openmct/) and [Getting Started Guide](https://nasa.github.io/openmct/getting-started/)
|
||||||
|
|
||||||
A bundle is a group of software components (including source code, declared
|
## See Open MCT in Action
|
||||||
as AMD modules, as well as resources such as images and HTML templates)
|
|
||||||
that are intended to be added or removed as a single unit. A plug-in for
|
|
||||||
Open MCT will be expressed as a bundle; platform components are also
|
|
||||||
expressed as bundles.
|
|
||||||
|
|
||||||
A bundle is also just a directory which contains a file `bundle.json`,
|
Try Open MCT now with our [live demo](https://openmct-demo.herokuapp.com/).
|
||||||
which declares its contents.
|

|
||||||
|
|
||||||
The file `bundles.json` (note the plural), at the top level of the
|
## New API
|
||||||
repository, is a JSON file containing an array of all bundles (expressed as
|
|
||||||
directory names) to include in a running instance of Open MCT. Adding or
|
A simpler, [easier-to-use API](https://nasa.github.io/openmct/docs/api/)
|
||||||
removing paths from this list will add or remove bundles from the running
|
has been added to Open MCT. Changes in this
|
||||||
application.
|
API include a move away from a declarative system of JSON configuration files
|
||||||
|
towards an imperative system based on function calls. Developers will be able
|
||||||
|
to extend and build on Open MCT by making direct function calls to a public
|
||||||
|
API. Open MCT is also being refactored to minimize the dependencies that using
|
||||||
|
Open MCT imposes on developers, such as the current requirement to use
|
||||||
|
AngularJS.
|
||||||
|
|
||||||
|
This new API has not yet been heavily used and is likely to contain defects.
|
||||||
|
You can help by trying it out, and reporting any issues you encounter
|
||||||
|
using our GitHub issue tracker. Such issues may include bugs, suggestions,
|
||||||
|
missing documentation, or even just requests for help if you're having
|
||||||
|
trouble.
|
||||||
|
|
||||||
|
We want Open MCT to be as easy to use, install, run, and develop for as
|
||||||
|
possible, and your feedback will help us get there!
|
||||||
|
|
||||||
|
## Building and Running Open MCT Locally
|
||||||
|
|
||||||
|
Building and running Open MCT in your local dev environment is very easy. Be sure you have [Git](https://git-scm.com/downloads) and [Node.js](https://nodejs.org/) installed, then follow the directions below. Need additional information? Check out the [Getting Started](https://nasa.github.io/openmct/getting-started/) page on our website.
|
||||||
|
(These instructions assume you are installing as a non-root user; developers have [reported issues](https://github.com/nasa/openmct/issues/1151) running these steps with root privileges.)
|
||||||
|
|
||||||
|
1. Clone the source code
|
||||||
|
|
||||||
|
`git clone https://github.com/nasa/openmct.git`
|
||||||
|
|
||||||
|
2. Install development dependencies
|
||||||
|
|
||||||
|
`npm install`
|
||||||
|
|
||||||
|
3. Run a local development server
|
||||||
|
|
||||||
|
`npm start`
|
||||||
|
|
||||||
|
Open MCT is now running, and can be accessed by pointing a web browser at [http://localhost:8080/](http://localhost:8080/)
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
Documentation is available on the [Open MCT website](https://nasa.github.io/openmct/documentation/). The documentation can also be built locally.
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
The clearest examples for developing Open MCT plugins are in the
|
||||||
|
[tutorials](https://github.com/nasa/openmct-tutorial) provided in
|
||||||
|
our documentation.
|
||||||
|
|
||||||
|
For a practical example of a telemetry adapter, see David Hudson's
|
||||||
|
[Kerbal Space Program plugin](https://github.com/hudsonfoo/kerbal-openmct),
|
||||||
|
which allows [Kerbal Space Program](https://kerbalspaceprogram.com) players
|
||||||
|
to build and use displays for their own missions in Open MCT.
|
||||||
|
|
||||||
|
Additional examples are available in the `examples` hierarchy of this
|
||||||
|
repository; however, be aware that these examples are
|
||||||
|
[not fully-documented](https://github.com/nasa/openmct/issues/846), so
|
||||||
|
the tutorials will likely serve as a better starting point.
|
||||||
|
|
||||||
|
### Building the Open MCT Documentation Locally
|
||||||
|
Open MCT's documentation is generated by an
|
||||||
|
[npm](https://www.npmjs.com/)-based build. It has additional dependencies that
|
||||||
|
may not be available on every platform and thus is not covered in the standard
|
||||||
|
npm install. Ensure your system has [libcairo](http://cairographics.org/)
|
||||||
|
installed and then run the following commands:
|
||||||
|
|
||||||
|
* `npm install`
|
||||||
|
* `npm install canvas nomnoml`
|
||||||
|
* `npm run docs`
|
||||||
|
|
||||||
|
Documentation will be generated in `target/docs`.
|
||||||
|
|
||||||
|
## Deploying Open MCT
|
||||||
|
|
||||||
|
Open MCT is built using [`npm`](http://npmjs.com/)
|
||||||
|
|
||||||
|
To build Open MCT for deployment:
|
||||||
|
|
||||||
|
`npm run prepare`
|
||||||
|
|
||||||
|
This will compile and minify JavaScript sources, as well as copy over assets.
|
||||||
|
The contents of the `dist` folder will contain a runnable Open MCT
|
||||||
|
instance (e.g. by starting an HTTP server in that directory), including:
|
||||||
|
|
||||||
|
* `openmct.js` - Open MCT source code.
|
||||||
|
* `openmct.css` - Basic styles to load to prevent a FOUC.
|
||||||
|
* `index.html`, an example to run Open MCT in the basic configuration.
|
||||||
|
|
||||||
## Tests
|
## Tests
|
||||||
|
|
||||||
Tests are written for [Jasmine 1.3](http://jasmine.github.io/1.3/introduction.html)
|
Tests are written for [Jasmine 3](http://jasmine.github.io/)
|
||||||
and run by [Karma](http://karma-runner.github.io). To run:
|
and run by [Karma](http://karma-runner.github.io). To run:
|
||||||
|
|
||||||
`npm test`
|
`npm test`
|
||||||
@ -40,53 +117,6 @@ naming convention is otherwise the same.)
|
|||||||
When `npm test` is run, test results will be written as HTML to
|
When `npm test` is run, test results will be written as HTML to
|
||||||
`target/tests`. Code coverage information is written to `target/coverage`.
|
`target/tests`. Code coverage information is written to `target/coverage`.
|
||||||
|
|
||||||
|
|
||||||
### Functional Testing
|
|
||||||
|
|
||||||
The tests described above are all at the unit-level; an additional
|
|
||||||
test suite using [Protractor](https://angular.github.io/protractor/)
|
|
||||||
is under development, in the `protractor` folder.
|
|
||||||
|
|
||||||
To run:
|
|
||||||
|
|
||||||
* Install protractor following the instructions above.
|
|
||||||
* `cd protractor`
|
|
||||||
* `npm install`
|
|
||||||
* `npm run all`
|
|
||||||
|
|
||||||
## Build
|
|
||||||
|
|
||||||
Open MCT is built using [`npm`](http://npmjs.com/)
|
|
||||||
and [`gulp`](http://gulpjs.com/).
|
|
||||||
|
|
||||||
To build:
|
|
||||||
|
|
||||||
`npm run prepublish`
|
|
||||||
|
|
||||||
This will compile and minify JavaScript sources, as well as copy over assets.
|
|
||||||
The contents of the `dist` folder will contain a runnable Open MCT
|
|
||||||
instance (e.g. by starting an HTTP server in that directory), including:
|
|
||||||
|
|
||||||
* A `main.js` file containing Open MCT source code.
|
|
||||||
* Various assets in the `example` and `platform` directories.
|
|
||||||
* An `index.html` that runs Open MCT in its default configuration.
|
|
||||||
|
|
||||||
Additional `gulp` tasks are defined in [the gulpfile](gulpfile.js).
|
|
||||||
|
|
||||||
### Building Documentation
|
|
||||||
|
|
||||||
Open MCT's documentation is generated by an
|
|
||||||
[npm](https://www.npmjs.com/)-based build. It has additional dependencies that
|
|
||||||
may not be available on every platform and thus is not covered in the standard
|
|
||||||
npm install. Ensure your system has [libcairo](http://cairographics.org/)
|
|
||||||
installed and then run the following commands:
|
|
||||||
|
|
||||||
* `npm install`
|
|
||||||
* `npm install canvas nomnoml`
|
|
||||||
* `npm run docs`
|
|
||||||
|
|
||||||
Documentation will be generated in `target/docs`.
|
|
||||||
|
|
||||||
# Glossary
|
# Glossary
|
||||||
|
|
||||||
Certain terms are used throughout Open MCT with consistent meanings
|
Certain terms are used throughout Open MCT with consistent meanings
|
||||||
@ -133,6 +163,6 @@ documentation, may presume an understanding of these terms.
|
|||||||
it, and it is thereafter considered the _navigated_ object (until the
|
it, and it is thereafter considered the _navigated_ object (until the
|
||||||
user makes another such choice.)
|
user makes another such choice.)
|
||||||
* _space_: A name used to identify a persistence store. Interactions with
|
* _space_: A name used to identify a persistence store. Interactions with
|
||||||
persistence with generally involve a `space` parameter in some form, to
|
persistence will generally involve a `space` parameter in some form, to
|
||||||
distinguish multiple persistence stores from one another (for cases
|
distinguish multiple persistence stores from one another (for cases
|
||||||
where there are multiple valid persistence locations available.)
|
where there are multiple valid persistence locations available.)
|
||||||
|
86
app.js
86
app.js
@ -7,27 +7,17 @@
|
|||||||
* node app.js [options]
|
* node app.js [options]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
(function () {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var BUNDLE_FILE = 'bundles.json',
|
const options = require('minimist')(process.argv.slice(2));
|
||||||
options = require('minimist')(process.argv.slice(2)),
|
const express = require('express');
|
||||||
express = require('express'),
|
const app = express();
|
||||||
app = express(),
|
const fs = require('fs');
|
||||||
fs = require('fs'),
|
const request = require('request');
|
||||||
request = require('request');
|
|
||||||
|
|
||||||
// Defaults
|
// Defaults
|
||||||
options.port = options.port || options.p || 8080;
|
options.port = options.port || options.p || 8080;
|
||||||
|
options.host = options.host || options.h || 'localhost'
|
||||||
options.directory = options.directory || options.D || '.';
|
options.directory = options.directory || options.D || '.';
|
||||||
['include', 'exclude', 'i', 'x'].forEach(function (opt) {
|
|
||||||
options[opt] = options[opt] || [];
|
|
||||||
// Make sure includes/excludes always end up as arrays
|
|
||||||
options[opt] = Array.isArray(options[opt]) ?
|
|
||||||
options[opt] : [options[opt]];
|
|
||||||
});
|
|
||||||
options.include = options.include.concat(options.i);
|
|
||||||
options.exclude = options.exclude.concat(options.x);
|
|
||||||
|
|
||||||
// Show command line options
|
// Show command line options
|
||||||
if (options.help || options.h) {
|
if (options.help || options.h) {
|
||||||
@ -35,34 +25,12 @@
|
|||||||
console.log("Options:");
|
console.log("Options:");
|
||||||
console.log(" --help, -h Show this message.");
|
console.log(" --help, -h Show this message.");
|
||||||
console.log(" --port, -p <number> Specify port.");
|
console.log(" --port, -p <number> Specify port.");
|
||||||
console.log(" --include, -i <bundle> Include the specified bundle.");
|
|
||||||
console.log(" --exclude, -x <bundle> Exclude the specified bundle.");
|
|
||||||
console.log(" --directory, -D <bundle> Serve files from specified directory.");
|
console.log(" --directory, -D <bundle> Serve files from specified directory.");
|
||||||
console.log("");
|
console.log("");
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Override bundles.json for HTTP requests
|
app.disable('x-powered-by');
|
||||||
app.use('/' + BUNDLE_FILE, function (req, res) {
|
|
||||||
var bundles;
|
|
||||||
|
|
||||||
try {
|
|
||||||
bundles = JSON.parse(fs.readFileSync(BUNDLE_FILE, 'utf8'));
|
|
||||||
} catch (e) {
|
|
||||||
bundles = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle command line inclusions/exclusions
|
|
||||||
bundles = bundles.concat(options.include);
|
|
||||||
bundles = bundles.filter(function (bundle) {
|
|
||||||
return options.exclude.indexOf(bundle) === -1;
|
|
||||||
});
|
|
||||||
bundles = bundles.filter(function (bundle, index) { // Uniquify
|
|
||||||
return bundles.indexOf(bundle) === index;
|
|
||||||
});
|
|
||||||
|
|
||||||
res.send(JSON.stringify(bundles));
|
|
||||||
});
|
|
||||||
|
|
||||||
app.use('/proxyUrl', function proxyRequest(req, res, next) {
|
app.use('/proxyUrl', function proxyRequest(req, res, next) {
|
||||||
console.log('Proxying request to: ', req.query.url);
|
console.log('Proxying request to: ', req.query.url);
|
||||||
@ -72,9 +40,39 @@
|
|||||||
}).on('error', next)).pipe(res);
|
}).on('error', next)).pipe(res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Expose everything else as static files
|
const webpack = require('webpack');
|
||||||
app.use(express['static'](options.directory));
|
const webpackConfig = require('./webpack.config.js');
|
||||||
|
webpackConfig.plugins.push(new webpack.HotModuleReplacementPlugin());
|
||||||
|
webpackConfig.plugins.push(function() { this.plugin('watch-run', function(watching, callback) { console.log('Begin compile at ' + new Date()); callback(); }) });
|
||||||
|
|
||||||
// Finally, open the HTTP server
|
webpackConfig.entry.openmct = [
|
||||||
app.listen(options.port);
|
'webpack-hot-middleware/client',
|
||||||
}());
|
webpackConfig.entry.openmct
|
||||||
|
];
|
||||||
|
|
||||||
|
const compiler = webpack(webpackConfig);
|
||||||
|
|
||||||
|
app.use(require('webpack-dev-middleware')(
|
||||||
|
compiler,
|
||||||
|
{
|
||||||
|
publicPath: '/dist',
|
||||||
|
logLevel: 'warn'
|
||||||
|
}
|
||||||
|
));
|
||||||
|
|
||||||
|
app.use(require('webpack-hot-middleware')(
|
||||||
|
compiler,
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
));
|
||||||
|
|
||||||
|
// Expose index.html for development users.
|
||||||
|
app.get('/', function (req, res) {
|
||||||
|
fs.createReadStream('index.html').pipe(res);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Finally, open the HTTP server and log the instance to the console
|
||||||
|
app.listen(options.port, options.host, function() {
|
||||||
|
console.log('Open MCT application running at %s:%s', options.host, options.port)
|
||||||
|
});
|
||||||
|
23
bower.json
23
bower.json
@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "openmct",
|
|
||||||
"description": "The Open MCT core platform",
|
|
||||||
"main": "",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"moduleType": [],
|
|
||||||
"homepage": "http://nasa.github.io/openmct/",
|
|
||||||
"private": true,
|
|
||||||
"dependencies": {
|
|
||||||
"angular": "1.4.4",
|
|
||||||
"angular-route": "1.4.4",
|
|
||||||
"moment": "^2.11.1",
|
|
||||||
"moment-duration-format": "^1.3.0",
|
|
||||||
"requirejs": "~2.1.22",
|
|
||||||
"text": "requirejs-text#^2.0.14",
|
|
||||||
"es6-promise": "^3.0.2",
|
|
||||||
"screenfull": "^3.0.0",
|
|
||||||
"node-uuid": "^1.4.7",
|
|
||||||
"comma-separated-values": "^3.6.4",
|
|
||||||
"FileSaver.js": "^0.0.2",
|
|
||||||
"zepto": "^1.1.6"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,11 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#*****************************************************************************
|
#*****************************************************************************
|
||||||
#* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
#* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
#* as represented by the Administrator of the National Aeronautics and Space
|
#* as represented by the Administrator of the National Aeronautics and Space
|
||||||
#* Administration. All rights reserved.
|
#* Administration. All rights reserved.
|
||||||
#*
|
#*
|
||||||
#* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
#* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
#* "License"); you may not use this file except in compliance with the License.
|
#* "License"); you may not use this file except in compliance with the License.
|
||||||
#* You may obtain a copy of the License at
|
#* You may obtain a copy of the License at
|
||||||
#* http://www.apache.org/licenses/LICENSE-2.0.
|
#* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -16,7 +16,7 @@
|
|||||||
#* License for the specific language governing permissions and limitations
|
#* License for the specific language governing permissions and limitations
|
||||||
#* under the License.
|
#* under the License.
|
||||||
#*
|
#*
|
||||||
#* Open MCT Web includes source code licensed under additional open source
|
#* Open MCT includes source code licensed under additional open source
|
||||||
#* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
#* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
#* this source code distribution or the Licensing information page available
|
#* this source code distribution or the Licensing information page available
|
||||||
#* at runtime from the About dialog for additional information.
|
#* at runtime from the About dialog for additional information.
|
||||||
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
# Script to build and deploy docs.
|
# Script to build and deploy docs.
|
||||||
|
|
||||||
OUTPUT_DIRECTORY="target/docs"
|
OUTPUT_DIRECTORY="dist/docs"
|
||||||
# Docs, once built, are pushed to the private website repo
|
# Docs, once built, are pushed to the private website repo
|
||||||
REPOSITORY_URL="git@github.com:nasa/openmct-website.git"
|
REPOSITORY_URL="git@github.com:nasa/openmct-website.git"
|
||||||
WEBSITE_DIRECTORY="website"
|
WEBSITE_DIRECTORY="website"
|
||||||
@ -45,8 +45,8 @@ npm run docs
|
|||||||
|
|
||||||
echo "git clone $REPOSITORY_URL website"
|
echo "git clone $REPOSITORY_URL website"
|
||||||
git clone $REPOSITORY_URL website || exit 1
|
git clone $REPOSITORY_URL website || exit 1
|
||||||
echo "cp -r $OUTPUT_DIRECTORY $WEBSITE_DIRECTORY/docs"
|
echo "cp -r $OUTPUT_DIRECTORY $WEBSITE_DIRECTORY"
|
||||||
cp -r $OUTPUT_DIRECTORY $WEBSITE_DIRECTORY/docs
|
cp -r $OUTPUT_DIRECTORY $WEBSITE_DIRECTORY
|
||||||
echo "cd $WEBSITE_DIRECTORY"
|
echo "cd $WEBSITE_DIRECTORY"
|
||||||
cd $WEBSITE_DIRECTORY || exit 1
|
cd $WEBSITE_DIRECTORY || exit 1
|
||||||
|
|
||||||
|
25
circle.yml
25
circle.yml
@ -1,25 +0,0 @@
|
|||||||
deployment:
|
|
||||||
production:
|
|
||||||
branch: master
|
|
||||||
commands:
|
|
||||||
- npm install canvas nomnoml
|
|
||||||
- ./build-docs.sh
|
|
||||||
- git fetch --unshallow
|
|
||||||
- git push git@heroku.com:openmctweb-demo.git $CIRCLE_SHA1:refs/heads/master
|
|
||||||
openmct-demo:
|
|
||||||
branch: live_demo
|
|
||||||
heroku:
|
|
||||||
appname: openmct-demo
|
|
||||||
openmctweb-staging-deux:
|
|
||||||
branch: mobile
|
|
||||||
heroku:
|
|
||||||
appname: openmctweb-staging-deux
|
|
||||||
test:
|
|
||||||
post:
|
|
||||||
- gulp lint
|
|
||||||
- gulp checkstyle
|
|
||||||
|
|
||||||
general:
|
|
||||||
branches:
|
|
||||||
ignore:
|
|
||||||
- gh-pages
|
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -131,7 +131,7 @@ Keeping that in mind, there are a few useful patterns supported by the
|
|||||||
framework that are useful to keep in mind.
|
framework that are useful to keep in mind.
|
||||||
|
|
||||||
The specific service infrastructure provided by the platform is described
|
The specific service infrastructure provided by the platform is described
|
||||||
in the [Platform Architecture](Platform.md).
|
in the [Platform Architecture](platform.md).
|
||||||
|
|
||||||
## Extension Categories
|
## Extension Categories
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ overall architecture of Open MCT.
|
|||||||
The target audience includes:
|
The target audience includes:
|
||||||
|
|
||||||
* _Platform maintainers_: Individuals involved in developing,
|
* _Platform maintainers_: Individuals involved in developing,
|
||||||
extending, and maintaing capabilities of the platform.
|
extending, and maintaining capabilities of the platform.
|
||||||
* _Integration developers_: Individuals tasked with integrated
|
* _Integration developers_: Individuals tasked with integrated
|
||||||
Open MCT into a larger system, who need to understand
|
Open MCT into a larger system, who need to understand
|
||||||
its inner workings sufficiently to complete this integration.
|
its inner workings sufficiently to complete this integration.
|
||||||
@ -74,5 +74,3 @@ These layers are:
|
|||||||
typically consists of a mix of custom plug-ins to Open MCT,
|
typically consists of a mix of custom plug-ins to Open MCT,
|
||||||
as well as optional features (such as Plot view) included alongside
|
as well as optional features (such as Plot view) included alongside
|
||||||
the platform.
|
the platform.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Overview
|
# Overview
|
||||||
|
|
||||||
The Open MCT platform utilizes the [framework layer](Framework.md)
|
The Open MCT platform utilizes the [framework layer](framework.md)
|
||||||
to provide an extensible baseline for applications which includes:
|
to provide an extensible baseline for applications which includes:
|
||||||
|
|
||||||
* A common user interface (and user interface paradigm) for dealing with
|
* A common user interface (and user interface paradigm) for dealing with
|
||||||
@ -38,7 +38,7 @@ in __any of these tiers__.
|
|||||||
are initiated from here and invoke behavior in the presentation layer. HTML
|
are initiated from here and invoke behavior in the presentation layer. HTML
|
||||||
templates are written in Angular’s template syntax; see the [Angular documentation on templates](https://docs.angularjs.org/guide/templates).
|
templates are written in Angular’s template syntax; see the [Angular documentation on templates](https://docs.angularjs.org/guide/templates).
|
||||||
These describe the page as actually seen by the user. Conceptually,
|
These describe the page as actually seen by the user. Conceptually,
|
||||||
stylesheets (controlling the lookandfeel of the rendered templates) belong
|
stylesheets (controlling the look-and-feel of the rendered templates) belong
|
||||||
in this grouping as well.
|
in this grouping as well.
|
||||||
* [_Presentation layer_](#presentation-layer): The presentation layer
|
* [_Presentation layer_](#presentation-layer): The presentation layer
|
||||||
is responsible for updating (and providing information to update)
|
is responsible for updating (and providing information to update)
|
||||||
@ -48,7 +48,7 @@ in __any of these tiers__.
|
|||||||
display.
|
display.
|
||||||
* [_Information model_](#information-model): Provides a common (within Open MCT
|
* [_Information model_](#information-model): Provides a common (within Open MCT
|
||||||
Web) set of interfaces for dealing with “things” domain objects within the
|
Web) set of interfaces for dealing with “things” domain objects within the
|
||||||
system. Userfacing concerns in a Open MCT Web application are expressed as
|
system. User-facing concerns in a Open MCT Web application are expressed as
|
||||||
domain objects; examples include folders (used to organize other domain
|
domain objects; examples include folders (used to organize other domain
|
||||||
objects), layouts (used to build displays), or telemetry points (used as
|
objects), layouts (used to build displays), or telemetry points (used as
|
||||||
handles for streams of remote measurements.) These domain objects expose a
|
handles for streams of remote measurements.) These domain objects expose a
|
||||||
@ -616,7 +616,7 @@ follows:
|
|||||||
part of an action's extension definition.
|
part of an action's extension definition.
|
||||||
* `CreateActionProvider` provides the various Create actions which
|
* `CreateActionProvider` provides the various Create actions which
|
||||||
populate the Create menu. These are driven by the available types,
|
populate the Create menu. These are driven by the available types,
|
||||||
so do not map easily ot extension category `actions`; instead, these
|
so do not map easily to extension category `actions`; instead, these
|
||||||
are generated after looking up which actions are available from the
|
are generated after looking up which actions are available from the
|
||||||
[`TypeService`](#type-service).
|
[`TypeService`](#type-service).
|
||||||
* `ActionAggregator` merges together actions from multiple providers.
|
* `ActionAggregator` merges together actions from multiple providers.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# API Refactoring
|
# API Refactoring
|
||||||
|
|
||||||
This document summarizes a path toward implementing API changes
|
This document summarizes a path toward implementing API changes
|
||||||
from the [API Redesign](../proposals/APIRedesign.md) for Open MCT Web
|
from the [API Redesign](../proposals/APIRedesign.md) for Open MCT
|
||||||
v1.0.0.
|
v1.0.0.
|
||||||
|
|
||||||
# Goals
|
# Goals
|
||||||
@ -161,7 +161,7 @@ be included in a straightforward fashion.
|
|||||||
|
|
||||||
Some goals for this build step:
|
Some goals for this build step:
|
||||||
|
|
||||||
* Compile (and, preferably, optimize/minify) Open MCT Web
|
* Compile (and, preferably, optimize/minify) Open MCT
|
||||||
sources into a single `.js` file.
|
sources into a single `.js` file.
|
||||||
* It is desirable to do the same for HTML sources, but
|
* It is desirable to do the same for HTML sources, but
|
||||||
may wish to defer this until a subsequent refactoring
|
may wish to defer this until a subsequent refactoring
|
||||||
@ -170,7 +170,7 @@ Some goals for this build step:
|
|||||||
derivative projects in a straightforward fashion.
|
derivative projects in a straightforward fashion.
|
||||||
|
|
||||||
Should also consider which dependency/packaging manager should
|
Should also consider which dependency/packaging manager should
|
||||||
be used by dependent projects to obtain Open MCT Web. Approaches
|
be used by dependent projects to obtain Open MCT. Approaches
|
||||||
include:
|
include:
|
||||||
|
|
||||||
1. Plain `npm`. Dependents then declare their dependency with
|
1. Plain `npm`. Dependents then declare their dependency with
|
||||||
@ -203,7 +203,7 @@ to use for asset generation/management and compilation/minification/etc.
|
|||||||
|
|
||||||
## Step 3. Separate repositories
|
## Step 3. Separate repositories
|
||||||
|
|
||||||
Refactor existing applications built on Open MCT Web such that they
|
Refactor existing applications built on Open MCT such that they
|
||||||
are no longer forks, but instead separate projects with a dependency
|
are no longer forks, but instead separate projects with a dependency
|
||||||
on the built artifacts from Step 2.
|
on the built artifacts from Step 2.
|
||||||
|
|
||||||
@ -211,7 +211,7 @@ Note that this is achievable already using `bower` (see `warp-bower`
|
|||||||
branch at http://developer.nasa.gov/mct/warp for an example.)
|
branch at http://developer.nasa.gov/mct/warp for an example.)
|
||||||
However, changes involved in switching to an imperative API and
|
However, changes involved in switching to an imperative API and
|
||||||
introducing a build process may change (and should simplify) the
|
introducing a build process may change (and should simplify) the
|
||||||
approach used to utilize Open MCT Web as a dependency, so these
|
approach used to utilize Open MCT as a dependency, so these
|
||||||
changes should be introduced first.
|
changes should be introduced first.
|
||||||
|
|
||||||
## Step 4. Design registration API
|
## Step 4. Design registration API
|
||||||
@ -287,7 +287,7 @@ or separately in parallel) and should involve a tight cycle of:
|
|||||||
planning should be done to spread out the changes incrementally.
|
planning should be done to spread out the changes incrementally.
|
||||||
|
|
||||||
By necessity, these changes may break functionality in applications
|
By necessity, these changes may break functionality in applications
|
||||||
built using Open MCT Web. On a case-by-case basis, should consider
|
built using Open MCT. On a case-by-case basis, should consider
|
||||||
providing temporary "legacy support" to allow downstream updates
|
providing temporary "legacy support" to allow downstream updates
|
||||||
to occur as a separate task; the relevant trade here is between
|
to occur as a separate task; the relevant trade here is between
|
||||||
waste/effort required to maintain legacy support, versus the
|
waste/effort required to maintain legacy support, versus the
|
||||||
@ -299,11 +299,11 @@ across several repositories.
|
|||||||
|
|
||||||
Update bundles to remove any usages of legacy support for bundles
|
Update bundles to remove any usages of legacy support for bundles
|
||||||
(including that used by dependent projects.) Then, remove legacy
|
(including that used by dependent projects.) Then, remove legacy
|
||||||
support from Open MCT Web.
|
support from Open MCT.
|
||||||
|
|
||||||
## Step 8. Release candidacy
|
## Step 8. Release candidacy
|
||||||
|
|
||||||
Once API changes are complete, Open MCT Web should enter a release
|
Once API changes are complete, Open MCT should enter a release
|
||||||
candidacy cycle. Important things to look at here:
|
candidacy cycle. Important things to look at here:
|
||||||
|
|
||||||
* Are changes really complete?
|
* Are changes really complete?
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Overview
|
# Overview
|
||||||
|
|
||||||
The purpose of this document is to review feedback on Open MCT Web's
|
The purpose of this document is to review feedback on Open MCT's
|
||||||
current API and propose improvements to the API, particularly for a
|
current API and propose improvements to the API, particularly for a
|
||||||
1.0.0 release.
|
1.0.0 release.
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ useful, powerful interfaces.
|
|||||||
## Developer Intern Feedback
|
## Developer Intern Feedback
|
||||||
|
|
||||||
This feedback comes from interns who worked closely with
|
This feedback comes from interns who worked closely with
|
||||||
Open MCT Web as their primary task over the Summer of 2015.
|
Open MCT as their primary task over the Summer of 2015.
|
||||||
|
|
||||||
### Developer Intern 1
|
### Developer Intern 1
|
||||||
|
|
||||||
@ -98,13 +98,13 @@ Worked on bug fixes in the platform and a plugin for search.
|
|||||||
It is hard to figure out what the difference between the various ways of
|
It is hard to figure out what the difference between the various ways of
|
||||||
dealing with telemetry are. e.g., what is the difference between just
|
dealing with telemetry are. e.g., what is the difference between just
|
||||||
"Telemetry" and the "Telemetry Service"? There are many
|
"Telemetry" and the "Telemetry Service"? There are many
|
||||||
"Telemetry Thing"s which seem related, but in an unclear way.
|
"Telemetry Things" which seem related, but in an unclear way.
|
||||||
|
|
||||||
### Developer Intern 2
|
### Developer Intern 2
|
||||||
|
|
||||||
Worked on platform bug fixes and mobile support.
|
Worked on platform bug fixes and mobile support.
|
||||||
|
|
||||||
* No guide for the UI and front end for the HTML/CSS part of Open MCT Web.
|
* No guide for the UI and front end for the HTML/CSS part of Open MCT.
|
||||||
Not sure if this is applicable or needed for developers, however would
|
Not sure if this is applicable or needed for developers, however would
|
||||||
be helpful to any front end development
|
be helpful to any front end development
|
||||||
* Found it difficult to follow the plot controller & subplot
|
* Found it difficult to follow the plot controller & subplot
|
||||||
@ -118,11 +118,11 @@ Worked on platform bug fixes and mobile support.
|
|||||||
## Plugin Developer Feedback
|
## Plugin Developer Feedback
|
||||||
|
|
||||||
This feedback comes from developers who have worked on plugins for
|
This feedback comes from developers who have worked on plugins for
|
||||||
Open MCT Web, but have not worked on the platform.
|
Open MCT, but have not worked on the platform.
|
||||||
|
|
||||||
### Plugin Developer 1
|
### Plugin Developer 1
|
||||||
|
|
||||||
Used Open MCT Web over the course of several months (on a
|
Used Open MCT over the course of several months (on a
|
||||||
less-than-half-time basis) to develop a
|
less-than-half-time basis) to develop a
|
||||||
spectrum visualization plugin.
|
spectrum visualization plugin.
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ spectrum visualization plugin.
|
|||||||
|
|
||||||
### Plugin Developer 2
|
### Plugin Developer 2
|
||||||
|
|
||||||
Used Open MCT Web over the course of several weeks (on a half-time basis)
|
Used Open MCT over the course of several weeks (on a half-time basis)
|
||||||
to develop a tabular visualization plugin.
|
to develop a tabular visualization plugin.
|
||||||
|
|
||||||
* Pain points
|
* Pain points
|
||||||
@ -180,7 +180,7 @@ to develop a tabular visualization plugin.
|
|||||||
* Add a model property to the bundle.json to take in "Hello World"
|
* Add a model property to the bundle.json to take in "Hello World"
|
||||||
as a parameter and pass through to the controller/view
|
as a parameter and pass through to the controller/view
|
||||||
|
|
||||||
### Open Source Contributer
|
### Open Source Contributor
|
||||||
|
|
||||||
* [Failures are non-graceful when services are missing.](
|
* [Failures are non-graceful when services are missing.](
|
||||||
https://github.com/nasa/openmctweb/issues/79)
|
https://github.com/nasa/openmctweb/issues/79)
|
||||||
@ -197,7 +197,7 @@ to develop a tabular visualization plugin.
|
|||||||
## Long-term Developer Notes
|
## Long-term Developer Notes
|
||||||
|
|
||||||
The following notes are from original platform developer, with long
|
The following notes are from original platform developer, with long
|
||||||
term experience using Open MCT Web.
|
term experience using Open MCT.
|
||||||
|
|
||||||
* Bundle mechanism allows for grouping related components across concerns,
|
* Bundle mechanism allows for grouping related components across concerns,
|
||||||
and adding and removing these easily. (e.g. model and view components of
|
and adding and removing these easily. (e.g. model and view components of
|
||||||
@ -214,13 +214,13 @@ to an entirely different framework.
|
|||||||
|
|
||||||
We can expect AngularJS 1.x to reach end-of-life reasonably soon thereafter.
|
We can expect AngularJS 1.x to reach end-of-life reasonably soon thereafter.
|
||||||
|
|
||||||
Our API is currently a superset of Angular's API, so this directly effects
|
Our API is currently a superset of Angular's API, so this directly affects
|
||||||
our API. Specifically, API changes should be oriented towards removing
|
our API. Specifically, API changes should be oriented towards removing
|
||||||
or reducing the Angular dependency.
|
or reducing the Angular dependency.
|
||||||
|
|
||||||
### Angular's Role
|
### Angular's Role
|
||||||
|
|
||||||
Angular is Open MCT Web's:
|
Angular is Open MCT's:
|
||||||
|
|
||||||
* Dependency injection framework.
|
* Dependency injection framework.
|
||||||
* Template rendering.
|
* Template rendering.
|
||||||
@ -268,7 +268,7 @@ by experience:
|
|||||||
|
|
||||||
* Feedback from new developers is that Angular was a hindrance to
|
* Feedback from new developers is that Angular was a hindrance to
|
||||||
training, not a benefit. ("One more thing to learn.") Significant
|
training, not a benefit. ("One more thing to learn.") Significant
|
||||||
documentation remains necessary for Open MCT Web.
|
documentation remains necessary for Open MCT.
|
||||||
* Expected enhancements to maintainability will be effectively
|
* Expected enhancements to maintainability will be effectively
|
||||||
invalidated by an expected Angular end-of-life.
|
invalidated by an expected Angular end-of-life.
|
||||||
* Data binding and automatic view updates do save development effort,
|
* Data binding and automatic view updates do save development effort,
|
||||||
@ -456,7 +456,7 @@ Instead, propose that:
|
|||||||
For parity with actions, a `View` would be a constructor which
|
For parity with actions, a `View` would be a constructor which
|
||||||
takes an `ActionContext` as a parameter (with similarly-defined
|
takes an `ActionContext` as a parameter (with similarly-defined
|
||||||
properties) and exposes a method to retrieve the HTML elements
|
properties) and exposes a method to retrieve the HTML elements
|
||||||
associateed with it.
|
associated with it.
|
||||||
|
|
||||||
The platform would then additionally expose an `AngularView`
|
The platform would then additionally expose an `AngularView`
|
||||||
implementation to improve compatibility with existing
|
implementation to improve compatibility with existing
|
||||||
@ -526,7 +526,7 @@ subset of `$http`'s functionality.
|
|||||||
|
|
||||||
### Detriments
|
### Detriments
|
||||||
|
|
||||||
* Increases the number of interfaces in Open MCT Web. (Arguably,
|
* Increases the number of interfaces in Open MCT. (Arguably,
|
||||||
not really, since the same interfaces would exist if exposed
|
not really, since the same interfaces would exist if exposed
|
||||||
by Angular.)
|
by Angular.)
|
||||||
|
|
||||||
@ -574,7 +574,7 @@ This would also allow for "composite bundles" which serve as
|
|||||||
proxies for multiple bundles. The `BundleContext` could contain
|
proxies for multiple bundles. The `BundleContext` could contain
|
||||||
(or later be amended to contain) filtering rules to ignore
|
(or later be amended to contain) filtering rules to ignore
|
||||||
other bundles and so forth (this has been useful for administering
|
other bundles and so forth (this has been useful for administering
|
||||||
Open MCT Web in subtly different configurations in the past.)
|
Open MCT in subtly different configurations in the past.)
|
||||||
|
|
||||||
### Benefits
|
### Benefits
|
||||||
|
|
||||||
@ -827,7 +827,7 @@ This could be resolved by:
|
|||||||
|
|
||||||
## Nomenclature Change
|
## Nomenclature Change
|
||||||
|
|
||||||
Instead of presenting Open MCT Web as a "framework" or
|
Instead of presenting Open MCT as a "framework" or
|
||||||
"platform", present it as an "extensible application."
|
"platform", present it as an "extensible application."
|
||||||
|
|
||||||
This is mostly a change for the developer guide. A
|
This is mostly a change for the developer guide. A
|
||||||
@ -1040,7 +1040,7 @@ This is a more specific variant of
|
|||||||
* Removes a whole category of API (bundle definitions), reducing
|
* Removes a whole category of API (bundle definitions), reducing
|
||||||
learning curve associated with the software.
|
learning curve associated with the software.
|
||||||
* Closer to Angular style, reducing disconnect between learning
|
* Closer to Angular style, reducing disconnect between learning
|
||||||
Angular and learning Open MCT Web (reducing burden of having
|
Angular and learning Open MCT (reducing burden of having
|
||||||
to learn multiple paradigms.)
|
to learn multiple paradigms.)
|
||||||
* Clarifies "what can be found where" (albeit not perfectly)
|
* Clarifies "what can be found where" (albeit not perfectly)
|
||||||
since you can look to module dependencies and follow back from there.
|
since you can look to module dependencies and follow back from there.
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
|
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
|
||||||
|
|
||||||
- [Reducing interface depth (the bundle.json version)](#reducing-interface-depth-the-bundlejson-version)
|
- [Reducing interface depth (the bundle.json version)](#reducing-interface-depth-the-bundlejson-version)
|
||||||
- [Imperitive component registries](#imperitive-component-registries)
|
- [Imperitive component registries](#imperative-component-registries)
|
||||||
- [Get rid of "extension category" concept.](#get-rid-of-extension-category-concept)
|
- [Get rid of "extension category" concept.](#get-rid-of-extension-category-concept)
|
||||||
- [Reduce number and depth of extension points](#reduce-number-and-depth-of-extension-points)
|
- [Reduce number and depth of extension points](#reduce-number-and-depth-of-extension-points)
|
||||||
- [Composite services should not be the default](#composite-services-should-not-be-the-default)
|
- [Composite services should not be the default](#composite-services-should-not-be-the-default)
|
||||||
@ -30,11 +30,11 @@
|
|||||||
|
|
||||||
# Reducing interface depth (the bundle.json version)
|
# Reducing interface depth (the bundle.json version)
|
||||||
|
|
||||||
## Imperitive component registries
|
## Imperative component registries
|
||||||
|
|
||||||
Transition component registries to javascript, get rid of bundle.json and bundles.json. Prescribe a method for application configuration, but allow flexibility in how application configuration is defined.
|
Transition component registries to javascript, get rid of bundle.json and bundles.json. Prescribe a method for application configuration, but allow flexibility in how application configuration is defined.
|
||||||
|
|
||||||
Register components in an imperitive fashion, see angularApp.factory, angularApp.controller, etc. Alternatively, implement our own application object with new registries and it's own form of registering objects.
|
Register components in an imperative fashion, see angularApp.factory, angularApp.controller, etc. Alternatively, implement our own application object with new registries and it's own form of registering objects.
|
||||||
|
|
||||||
## Get rid of "extension category" concept.
|
## Get rid of "extension category" concept.
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ To reduce interface depth, we can replace our own provider and registry patterns
|
|||||||
|
|
||||||
## More angular: for all services
|
## More angular: for all services
|
||||||
|
|
||||||
Increasing our commitment to angular would mean using more of the angular factorys, services, etc, and less of our home grown tools. We'd implement our services and extension points as angular providers, and make them configurable via app.config.
|
Increasing our commitment to angular would mean using more of the angular factories, services, etc, and less of our home grown tools. We'd implement our services and extension points as angular providers, and make them configurable via app.config.
|
||||||
|
|
||||||
As an example, registering a specific type of model provider in angular would look like:
|
As an example, registering a specific type of model provider in angular would look like:
|
||||||
|
|
||||||
@ -128,7 +128,7 @@ Allow developers to use whatever module loading system they'd like to use, while
|
|||||||
|
|
||||||
Using gulp or grunt as a task runner would bring us in line with standard web developer workflows and help standardize rendering, deployment, and packaging. Additional tools can be added to the workflow at low cost, simplifying the setup of developer environments.
|
Using gulp or grunt as a task runner would bring us in line with standard web developer workflows and help standardize rendering, deployment, and packaging. Additional tools can be added to the workflow at low cost, simplifying the setup of developer environments.
|
||||||
|
|
||||||
Gulp and grunt provide useful developer tooling such as live reload, automatic scss/less/etc compiliation, and ease of extensibility for standard production build processes. They're key in decoupling code.
|
Gulp and grunt provide useful developer tooling such as live reload, automatic scss/less/etc compilation, and ease of extensibility for standard production build processes. They're key in decoupling code.
|
||||||
|
|
||||||
## Package openmctweb as single versioned file.
|
## Package openmctweb as single versioned file.
|
||||||
|
|
||||||
|
@ -933,15 +933,22 @@ Note that `templateUrl` is not supported for `containers`.
|
|||||||
|
|
||||||
Controls provide options for the `mct-control` directive.
|
Controls provide options for the `mct-control` directive.
|
||||||
|
|
||||||
Six standard control types are included in the forms bundle:
|
These standard control types are included in the forms bundle:
|
||||||
|
|
||||||
* `textfield`: An area to enter plain text.
|
* `textfield`: A text input to enter plain text.
|
||||||
|
* `numberfield`: A text input to enter numbers.
|
||||||
* `select`: A drop-down list of options.
|
* `select`: A drop-down list of options.
|
||||||
* `checkbox`: A box which may be checked/unchecked.
|
* `checkbox`: A box which may be checked/unchecked.
|
||||||
* `color`: A color picker.
|
* `color`: A color picker.
|
||||||
* `button`: A button.
|
* `button`: A button.
|
||||||
* `datetime`: An input for UTC date/time entry; gives result as a UNIX
|
* `datetime`: An input for UTC date/time entry; gives result as a UNIX
|
||||||
timestamp, in milliseconds since start of 1970, UTC.
|
timestamp, in milliseconds since start of 1970, UTC.
|
||||||
|
* `composite`: A control parenting an array of other controls.
|
||||||
|
* `menu-button`: A drop-down list of items supporting custom behavior
|
||||||
|
on click.
|
||||||
|
* `dialog-button`: A button which opens a dialog allowing a single property
|
||||||
|
to be edited.
|
||||||
|
* `radio`: A radio button.
|
||||||
|
|
||||||
New controls may be added as extensions of the controls category. Extensions of
|
New controls may be added as extensions of the controls category. Extensions of
|
||||||
this category have two properties:
|
this category have two properties:
|
||||||
@ -1153,7 +1160,7 @@ For example, the _My Items_ folder is added as an extension of this category.
|
|||||||
|
|
||||||
Extensions of this category should have the following properties:
|
Extensions of this category should have the following properties:
|
||||||
|
|
||||||
* `id`: The machine-readable identifier for the domaiwn object being exposed.
|
* `id`: The machine-readable identifier for the domain object being exposed.
|
||||||
* `model`: The model, as a JSON object, for the domain object being exposed.
|
* `model`: The model, as a JSON object, for the domain object being exposed.
|
||||||
|
|
||||||
## Stylesheets Category
|
## Stylesheets Category
|
||||||
@ -1333,55 +1340,6 @@ are supported:
|
|||||||
Open MCT defines several Angular directives that are intended for use both
|
Open MCT defines several Angular directives that are intended for use both
|
||||||
internally within the platform, and by plugins.
|
internally within the platform, and by plugins.
|
||||||
|
|
||||||
## Before Unload
|
|
||||||
|
|
||||||
The `mct-before-unload` directive is used to listen for (and prompt for user
|
|
||||||
confirmation) of navigation changes in the browser. This includes reloading,
|
|
||||||
following links out of Open MCT, or changing routes. It is used to hook into
|
|
||||||
both `onbeforeunload` event handling as well as route changes from within
|
|
||||||
Angular.
|
|
||||||
|
|
||||||
This directive is useable as an attribute. Its value should be an Angular
|
|
||||||
expression. When an action that would trigger an unload and/or route change
|
|
||||||
occurs, this Angular expression is evaluated. Its result should be a message to
|
|
||||||
display to the user to confirm their navigation change; if this expression
|
|
||||||
evaluates to a falsy value, no message will be displayed.
|
|
||||||
|
|
||||||
## Chart
|
|
||||||
|
|
||||||
The `mct-chart` directive is used to support drawing of simple charts. It is
|
|
||||||
present to support the Plot view, and its functionality is limited to the
|
|
||||||
functionality that is relevant for that view.
|
|
||||||
|
|
||||||
This directive is used at the element level and takes one attribute, `draw`
|
|
||||||
which is an Angular expression which will should evaluate to a drawing object.
|
|
||||||
This drawing object should contain the following properties:
|
|
||||||
|
|
||||||
* `dimensions`: The size, in logical coordinates, of the chart area. A
|
|
||||||
two-element array or numbers.
|
|
||||||
* `origin`: The position, in logical coordinates, of the lower-left corner of
|
|
||||||
the chart area. A two-element array or numbers.
|
|
||||||
* `lines`: An array of lines (e.g. as a plot line) to draw, where each line is
|
|
||||||
expressed as an object containing:
|
|
||||||
* `buffer`: A Float32Array containing points in the line, in logical
|
|
||||||
coordinates, in sequential x,y pairs.
|
|
||||||
* `color`: The color of the line, as a four-element RGBA array, where
|
|
||||||
each element is a number in the range of 0.0-1.0.
|
|
||||||
* `points`: The number of points in the line.
|
|
||||||
* `boxes`: An array of rectangles to draw in the chart area. Each is an object
|
|
||||||
containing:
|
|
||||||
* `start`: The first corner of the rectangle, as a two-element array of
|
|
||||||
numbers, in logical coordinates.
|
|
||||||
* `end`: The opposite corner of the rectangle, as a two-element array of
|
|
||||||
numbers, in logical coordinates. color : The color of the line, as a
|
|
||||||
four-element RGBA array, where each element is a number in the range of
|
|
||||||
0.0-1.0.
|
|
||||||
|
|
||||||
While `mct-chart` is intended to support plots specifically, it does perform
|
|
||||||
some useful management of canvas objects (e.g. choosing between WebGL and Canvas
|
|
||||||
2D APIs for drawing based on browser support) so its usage is recommended when
|
|
||||||
its supported drawing primitives are sufficient for other charting tasks.
|
|
||||||
|
|
||||||
## Container
|
## Container
|
||||||
|
|
||||||
The `mct-container` is similar to the `mct-include` directive insofar as it allows
|
The `mct-container` is similar to the `mct-include` directive insofar as it allows
|
||||||
@ -2304,10 +2262,7 @@ The platform understands the following policy categories (specifiable as the
|
|||||||
|
|
||||||
* `action`: Determines whether or not a given action is allowable. The candidate
|
* `action`: Determines whether or not a given action is allowable. The candidate
|
||||||
argument here is an Action; the context is its action context object.
|
argument here is an Action; the context is its action context object.
|
||||||
* `composition`: Determines whether or not domain objects of a given type are
|
* `composition`: Determines whether or not a given domain object(first argument, `parent`) can contain a candidate child object (second argument, `child`).
|
||||||
allowed to contain domain objects of another type. The candidate argument here
|
|
||||||
is the container's `Type`; the context argument is the `Type` of the object to be
|
|
||||||
contained.
|
|
||||||
* `view`: Determines whether or not a view is applicable for a domain object.
|
* `view`: Determines whether or not a view is applicable for a domain object.
|
||||||
The candidate argument is the view's extension definition; the context argument
|
The candidate argument is the view's extension definition; the context argument
|
||||||
is the `DomainObject` to be viewed.
|
is the `DomainObject` to be viewed.
|
||||||
@ -2328,7 +2283,7 @@ To install build dependencies (only needs to be run once):
|
|||||||
|
|
||||||
To build:
|
To build:
|
||||||
|
|
||||||
`npm run prepublish`
|
`npm run prepare`
|
||||||
|
|
||||||
This will compile and minify JavaScript sources, as well as copy over assets.
|
This will compile and minify JavaScript sources, as well as copy over assets.
|
||||||
The contents of the `dist` folder will contain a runnable Open MCT
|
The contents of the `dist` folder will contain a runnable Open MCT
|
||||||
|
121
docs/src/guide/security.md
Normal file
121
docs/src/guide/security.md
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
# Security Guide
|
||||||
|
|
||||||
|
Open MCT is a rich client with plugin support that executes as a single page
|
||||||
|
web application in a browser environment. Security concerns and
|
||||||
|
vulnerabilities associated with the web as a platform should be considered
|
||||||
|
before deploying Open MCT (or any other web application) for mission or
|
||||||
|
production usage.
|
||||||
|
|
||||||
|
This document describes several important points to consider when developing
|
||||||
|
for or deploying Open MCT securely. Other resources such as
|
||||||
|
[Open Web Application Security Project (OWASP)](https://www.owasp.org)
|
||||||
|
provide a deeper and more general overview of security for web applications.
|
||||||
|
|
||||||
|
|
||||||
|
## Security Model
|
||||||
|
|
||||||
|
Open MCT has been architected assuming the following deployment pattern:
|
||||||
|
|
||||||
|
* A tagged, tested Open MCT version will be used.
|
||||||
|
* Externally authored plugins will be installed.
|
||||||
|
* A server will provide persistent storage, telemetry, and other shared data.
|
||||||
|
* Authorization, authentication, and auditing will be handled by a server.
|
||||||
|
|
||||||
|
|
||||||
|
## Security Procedures
|
||||||
|
|
||||||
|
The Open MCT team secures our code base using a combination of code review,
|
||||||
|
dependency review, and periodic security reviews. Static analysis performed
|
||||||
|
during automated verification additionally safeguards against common
|
||||||
|
coding errors which may result in vulnerabilities.
|
||||||
|
|
||||||
|
|
||||||
|
### Code Review
|
||||||
|
|
||||||
|
All contributions are reviewed by internal team members. External
|
||||||
|
contributors receive increased scrutiny for security and quality,
|
||||||
|
and must sign a licensing agreement.
|
||||||
|
|
||||||
|
### Dependency Review
|
||||||
|
|
||||||
|
Before integrating third-party dependencies, they are reviewed for security
|
||||||
|
and quality, with consideration given to authors and users of these
|
||||||
|
dependencies, as well as review of open source code.
|
||||||
|
|
||||||
|
### Periodic Security Reviews
|
||||||
|
|
||||||
|
Open MCT's code, design, and architecture are periodically reviewed
|
||||||
|
(approximately annually) for common security issues, such as the
|
||||||
|
[OWASP Top Ten](https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project).
|
||||||
|
|
||||||
|
|
||||||
|
## Security Concerns
|
||||||
|
|
||||||
|
Certain security concerns deserve special attention when deploying Open MCT,
|
||||||
|
or when authoring plugins.
|
||||||
|
|
||||||
|
### Identity Spoofing
|
||||||
|
|
||||||
|
Open MCT issues calls to web services with the privileges of a logged in user.
|
||||||
|
Compromised sources (either for Open MCT itself or a plugin) could
|
||||||
|
therefore allow malicious code to execute with those privileges.
|
||||||
|
|
||||||
|
To avoid this:
|
||||||
|
|
||||||
|
* Serve Open MCT and other scripts over SSL (https rather than http)
|
||||||
|
to prevent man-in-the-middle attacks.
|
||||||
|
* Exercise precautions such as security reviews for any plugins or
|
||||||
|
applications built for or with Open MCT to reject malicious changes.
|
||||||
|
|
||||||
|
### Information Disclosure
|
||||||
|
|
||||||
|
If Open MCT is used to handle or display sensitive data, any components
|
||||||
|
(such as adapter plugins) must take care to avoid leaking or disclosing
|
||||||
|
this information. For example, avoid sending sensitive data to third-party
|
||||||
|
servers or insecure APIs.
|
||||||
|
|
||||||
|
### Data Tampering
|
||||||
|
|
||||||
|
The web application architecture leaves open the possibility that direct
|
||||||
|
calls will be made to back-end services, circumventing Open MCT entirely.
|
||||||
|
As such, Open MCT assumes that server components will perform any necessary
|
||||||
|
data validation during calls issues to the server.
|
||||||
|
|
||||||
|
Additionally, plugins which serialize and write data to the server must
|
||||||
|
escape that data to avoid database injection attacks, and similar.
|
||||||
|
|
||||||
|
### Repudiation
|
||||||
|
|
||||||
|
Open MCT assumes that servers log any relevant interactions and associates
|
||||||
|
these with a user identity; the specific user actions taken within the
|
||||||
|
application are assumed not to be of concern for auditing.
|
||||||
|
|
||||||
|
In the absence of server-side logging, users may disclaim (maliciously,
|
||||||
|
mistakenly, or otherwise) actions taken within the system without any
|
||||||
|
way to prove otherwise.
|
||||||
|
|
||||||
|
If keeping client-level interactions is important, this will need to be
|
||||||
|
implemented via a plugin.
|
||||||
|
|
||||||
|
### Denial-of-service
|
||||||
|
|
||||||
|
Open MCT assumes that server-side components will be insulated against
|
||||||
|
denial-of-service attacks. Services should only permit resource-intensive
|
||||||
|
tasks to be initiated by known or trusted users.
|
||||||
|
|
||||||
|
### Elevation of Privilege
|
||||||
|
|
||||||
|
Corollary to the assumption that servers guide against identity spoofing,
|
||||||
|
Open MCT assumes that services do not allow a user to act with
|
||||||
|
inappropriately escalated privileges. Open MCT cannot protect against
|
||||||
|
such escalation; in the clearest case, a malicious actor could interact
|
||||||
|
with web services directly to exploit such a vulnerability.
|
||||||
|
|
||||||
|
## Additional Reading
|
||||||
|
|
||||||
|
The following resources have been used as a basis for identifying potential
|
||||||
|
security threats to Open MCT deployments in preparation of this document:
|
||||||
|
|
||||||
|
* [STRIDE model](https://www.owasp.org/index.php/Threat_Risk_Modeling#STRIDE)
|
||||||
|
* [Attack Surface Analysis Cheat Sheet](https://www.owasp.org/index.php/Attack_Surface_Analysis_Cheat_Sheet)
|
||||||
|
* [XSS Prevention Cheat Sheet](https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet)
|
@ -9,13 +9,24 @@
|
|||||||
|
|
||||||
Open MCT provides functionality out of the box, but it's also a platform for
|
Open MCT provides functionality out of the box, but it's also a platform for
|
||||||
building rich mission operations applications based on modern web technology.
|
building rich mission operations applications based on modern web technology.
|
||||||
The platform is configured declaratively, and defines conventions for
|
The platform is configured by plugins which extend the platform at a variety
|
||||||
building on the provided capabilities by creating modular 'bundles' that
|
of extension points. The details of how to
|
||||||
extend the platform at a variety of extension points. The details of how to
|
|
||||||
extend the platform are provided in the following documentation.
|
extend the platform are provided in the following documentation.
|
||||||
|
|
||||||
## Sections
|
## Sections
|
||||||
|
|
||||||
|
* The [API](api/) document is generated from inline documentation
|
||||||
|
using [JSDoc](http://usejsdoc.org/), and describes the JavaScript objects and
|
||||||
|
functions that make up the software platform.
|
||||||
|
|
||||||
|
* The [Development Process](process/) document describes the
|
||||||
|
Open MCT software development cycle.
|
||||||
|
|
||||||
|
## Legacy Documentation
|
||||||
|
|
||||||
|
As we transition to a new API, the following documentation for the old API
|
||||||
|
(which is supported during the transtion) may be useful as well:
|
||||||
|
|
||||||
* The [Architecture Overview](architecture/) describes the concepts used
|
* The [Architecture Overview](architecture/) describes the concepts used
|
||||||
throughout Open MCT, and gives a high level overview of the platform's design.
|
throughout Open MCT, and gives a high level overview of the platform's design.
|
||||||
|
|
||||||
@ -23,12 +34,4 @@
|
|||||||
platform and the functionality that it provides.
|
platform and the functionality that it provides.
|
||||||
|
|
||||||
* The [Tutorials](tutorials/) give examples of extending the platform to add
|
* The [Tutorials](tutorials/) give examples of extending the platform to add
|
||||||
functionality,
|
functionality, and integrate with data sources.
|
||||||
and integrate with data sources.
|
|
||||||
|
|
||||||
* The [API](api/) document is generated from inline documentation
|
|
||||||
using [JSDoc](http://usejsdoc.org/), and describes the JavaScript objects and
|
|
||||||
functions that make up the software platform.
|
|
||||||
|
|
||||||
* Finally, the [Development Process](process/) document describes the
|
|
||||||
Open MCT software development cycle.
|
|
||||||
|
@ -102,7 +102,7 @@ perform:
|
|||||||
|
|
||||||
* A relevant subset of [_user testing_](procedures.md#user-test-procedures)
|
* A relevant subset of [_user testing_](procedures.md#user-test-procedures)
|
||||||
identified by the acting [project manager](../cycle.md#roles).
|
identified by the acting [project manager](../cycle.md#roles).
|
||||||
* [_Long-duration testing_](procedures.md#long-duration-testng)
|
* [_Long-duration testing_](procedures.md#long-duration-testing)
|
||||||
(specifically, for 24 hours.)
|
(specifically, for 24 hours.)
|
||||||
|
|
||||||
Issues are reported as a product of both forms of testing.
|
Issues are reported as a product of both forms of testing.
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,2 +1,2 @@
|
|||||||
This directory is for example bundles, which are intended to illustrate
|
This directory is for example bundles, which are intended to illustrate
|
||||||
how to author new software components using Open MCT Web.
|
how to author new software components using Open MCT.
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
This bundle is intended to serve as an example of registering
|
|
||||||
extensions which are mapped directly to built-in Angular features.
|
|
||||||
|
|
||||||
These are:
|
|
||||||
* Controllers
|
|
||||||
* Directives
|
|
||||||
* Routes
|
|
||||||
* Services
|
|
@ -1,74 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define*/
|
|
||||||
|
|
||||||
define([
|
|
||||||
"./src/ExampleController",
|
|
||||||
"./src/ExampleDirective",
|
|
||||||
"./src/ExampleService",
|
|
||||||
'legacyRegistry'
|
|
||||||
], function (
|
|
||||||
ExampleController,
|
|
||||||
ExampleDirective,
|
|
||||||
ExampleService,
|
|
||||||
legacyRegistry
|
|
||||||
) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
legacyRegistry.register("example/builtins", {
|
|
||||||
"name": "Angular Built-ins Example",
|
|
||||||
"description": "Example showing how to declare extensions with built-in support from Angular.",
|
|
||||||
"sources": "src",
|
|
||||||
"extensions": {
|
|
||||||
"controllers": [
|
|
||||||
{
|
|
||||||
"key": "ExampleController",
|
|
||||||
"implementation": ExampleController,
|
|
||||||
"depends": [
|
|
||||||
"$scope",
|
|
||||||
"exampleService"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"directives": [
|
|
||||||
{
|
|
||||||
"key": "exampleDirective",
|
|
||||||
"implementation": ExampleDirective,
|
|
||||||
"depends": [
|
|
||||||
"examples[]"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"routes": [
|
|
||||||
{
|
|
||||||
"templateUrl": "templates/example.html"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": [
|
|
||||||
{
|
|
||||||
"key": "exampleService",
|
|
||||||
"implementation": ExampleService
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,66 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define,Promise*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module defining ExampleDirective. Created by vwoeltje on 11/4/14.
|
|
||||||
*/
|
|
||||||
define(
|
|
||||||
[],
|
|
||||||
function () {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var HAS_EXTENSIONS = "A directive loaded these message from " +
|
|
||||||
"example extensions.",
|
|
||||||
NO_EXTENSIONS = "A directive tried to load example extensions," +
|
|
||||||
" but found none.",
|
|
||||||
MESSAGE = "I heard this from my partial constructor.";
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
function ExampleDirective(examples) {
|
|
||||||
// Build up a template from example extensions
|
|
||||||
var template = examples.length > 0 ?
|
|
||||||
HAS_EXTENSIONS : NO_EXTENSIONS;
|
|
||||||
|
|
||||||
template += "<ul>";
|
|
||||||
examples.forEach(function (E) {
|
|
||||||
template += "<li>";
|
|
||||||
if (typeof E === 'function') {
|
|
||||||
template += (new E(MESSAGE)).getText();
|
|
||||||
} else {
|
|
||||||
template += E.text;
|
|
||||||
}
|
|
||||||
template += "</li>";
|
|
||||||
});
|
|
||||||
template += "</ul>";
|
|
||||||
|
|
||||||
return {
|
|
||||||
template: template
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return ExampleDirective;
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,82 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define*/
|
|
||||||
|
|
||||||
define([
|
|
||||||
"./src/SomeProvider",
|
|
||||||
"./src/SomeOtherProvider",
|
|
||||||
"./src/SomeDecorator",
|
|
||||||
"./src/SomeOtherDecorator",
|
|
||||||
"./src/SomeAggregator",
|
|
||||||
"./src/SomeOtherExample",
|
|
||||||
'legacyRegistry'
|
|
||||||
], function (
|
|
||||||
SomeProvider,
|
|
||||||
SomeOtherProvider,
|
|
||||||
SomeDecorator,
|
|
||||||
SomeOtherDecorator,
|
|
||||||
SomeAggregator,
|
|
||||||
SomeOtherExample,
|
|
||||||
legacyRegistry
|
|
||||||
) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
legacyRegistry.register("example/composite", {
|
|
||||||
"extensions": {
|
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"implementation": SomeProvider,
|
|
||||||
"provides": "someService",
|
|
||||||
"type": "provider"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"implementation": SomeOtherProvider,
|
|
||||||
"provides": "someService",
|
|
||||||
"type": "provider"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"implementation": SomeDecorator,
|
|
||||||
"provides": "someService",
|
|
||||||
"type": "decorator"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"implementation": SomeOtherDecorator,
|
|
||||||
"provides": "someService",
|
|
||||||
"type": "decorator"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"implementation": SomeAggregator,
|
|
||||||
"provides": "someService",
|
|
||||||
"type": "aggregator"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"examples": [
|
|
||||||
{
|
|
||||||
"implementation": SomeOtherExample,
|
|
||||||
"depends": [
|
|
||||||
"someService"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -49,7 +49,7 @@ define([
|
|||||||
{
|
{
|
||||||
"key": "eventGenerator",
|
"key": "eventGenerator",
|
||||||
"name": "Event Message Generator",
|
"name": "Event Message Generator",
|
||||||
"glyph": "\u0066",
|
"cssClass": "icon-folder-new",
|
||||||
"description": "For development use. Creates sample event message data that mimics a live data stream.",
|
"description": "For development use. Creates sample event message data that mimics a live data stream.",
|
||||||
"priority": 10,
|
"priority": 10,
|
||||||
"features": "creation",
|
"features": "creation",
|
||||||
@ -60,8 +60,8 @@ define([
|
|||||||
"source": "eventGenerator",
|
"source": "eventGenerator",
|
||||||
"domains": [
|
"domains": [
|
||||||
{
|
{
|
||||||
"key": "time",
|
"key": "utc",
|
||||||
"name": "Time",
|
"name": "Timestamp",
|
||||||
"format": "utc"
|
"format": "utc"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
"LMP: 47 degrees.",
|
"LMP: 47 degrees.",
|
||||||
"CC: Eagle, looking great. You're GO.",
|
"CC: Eagle, looking great. You're GO.",
|
||||||
"CC: Roger. 1202. We copy it.",
|
"CC: Roger. 1202. We copy it.",
|
||||||
"O1: LMP 35 degrees. 35 degrees. 750. Coming aown to 23.fl",
|
"O1: LMP 35 degrees. 35 degrees. 750. Coming down to 23.fl",
|
||||||
"LMP: 700 feet, 21 down, 33 degrees.",
|
"LMP: 700 feet, 21 down, 33 degrees.",
|
||||||
"LMP: 600 feet, down at 19.",
|
"LMP: 600 feet, down at 19.",
|
||||||
"LMP: 540 feet, down at - 30. Down at 15.",
|
"LMP: 540 feet, down at - 30. Down at 15.",
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -27,12 +27,11 @@
|
|||||||
* Modified by shale on 06/23/2015.
|
* Modified by shale on 06/23/2015.
|
||||||
*/
|
*/
|
||||||
define(
|
define(
|
||||||
['text!../data/transcript.json'],
|
['../data/transcript.json'],
|
||||||
function (transcript) {
|
function (messages) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var firstObservedTime = Date.now(),
|
var firstObservedTime = Date.now();
|
||||||
messages = JSON.parse(transcript);
|
|
||||||
|
|
||||||
function EventTelemetry(request, interval) {
|
function EventTelemetry(request, interval) {
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -36,7 +36,7 @@ define([
|
|||||||
"name": "Export Telemetry as CSV",
|
"name": "Export Telemetry as CSV",
|
||||||
"implementation": ExportTelemetryAsCSVAction,
|
"implementation": ExportTelemetryAsCSVAction,
|
||||||
"category": "contextual",
|
"category": "contextual",
|
||||||
"glyph": "\u0033",
|
"cssClass": "icon-download",
|
||||||
"depends": [ "exportService" ]
|
"depends": [ "exportService" ]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,52 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define,Promise*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module defining SomeExample. Created by vwoeltje on 11/5/14.
|
|
||||||
*/
|
|
||||||
define(
|
|
||||||
[],
|
|
||||||
function () {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
function SomeExample(exampleService, message) {
|
|
||||||
return {
|
|
||||||
getText: function () {
|
|
||||||
return [
|
|
||||||
'"',
|
|
||||||
exampleService.getMessage(),
|
|
||||||
'" and "',
|
|
||||||
message,
|
|
||||||
'"'
|
|
||||||
].join("");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return SomeExample;
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<!--
|
<!--
|
||||||
Open MCT Web, Copyright (c) 2014-2015, United States Government
|
Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
as represented by the Administrator of the National Aeronautics and Space
|
as represented by the Administrator of the National Aeronautics and Space
|
||||||
Administration. All rights reserved.
|
Administration. All rights reserved.
|
||||||
|
|
||||||
Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
"License"); you may not use this file except in compliance with the License.
|
"License"); you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
http://www.apache.org/licenses/LICENSE-2.0.
|
http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,18 +14,20 @@
|
|||||||
License for the specific language governing permissions and limitations
|
License for the specific language governing permissions and limitations
|
||||||
under the License.
|
under the License.
|
||||||
|
|
||||||
Open MCT Web includes source code licensed under additional open source
|
Open MCT includes source code licensed under additional open source
|
||||||
licenses. See the Open Source Licenses file (LICENSES.md) included with
|
licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
this source code distribution or the Licensing information page available
|
this source code distribution or the Licensing information page available
|
||||||
at runtime from the About dialog for additional information.
|
at runtime from the About dialog for additional information.
|
||||||
-->
|
-->
|
||||||
<div ng-controller="ExampleFormController">
|
<div ng-controller="ExampleFormController">
|
||||||
<mct-toolbar structure="toolbar" ng-model="state" name="aToolbar">
|
<mct-toolbar structure="toolbar"
|
||||||
</mct-toolbar>
|
ng-model="state"
|
||||||
|
name="aToolbar"></mct-toolbar>
|
||||||
<mct-form structure="form" ng-model="state" name="aForm">
|
|
||||||
</mct-form>
|
|
||||||
|
|
||||||
|
<mct-form structure="form"
|
||||||
|
ng-model="state"
|
||||||
|
class="validates"
|
||||||
|
name="aForm"></mct-form>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Dirty: {{aForm.$dirty}}</li>
|
<li>Dirty: {{aForm.$dirty}}</li>
|
||||||
@ -33,11 +35,8 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
|
|
||||||
|
|
||||||
<textarea>
|
<textarea>
|
||||||
{{state | json}}
|
{{state | json}}
|
||||||
</textarea>
|
</textarea>
|
||||||
|
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -78,27 +78,26 @@ define(
|
|||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
control: "button",
|
control: "button",
|
||||||
glyph: "1",
|
csslass: "icon-save",
|
||||||
description: "Button A",
|
|
||||||
click: function () {
|
click: function () {
|
||||||
window.alert("A");
|
window.alert("Save");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
control: "button",
|
control: "button",
|
||||||
glyph: "2",
|
csslass: "icon-x",
|
||||||
description: "Button B",
|
description: "Button B",
|
||||||
click: function () {
|
click: function () {
|
||||||
window.alert("B");
|
window.alert("Cancel");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
control: "button",
|
control: "button",
|
||||||
glyph: "3",
|
csslass: "icon-trash",
|
||||||
description: "Button C",
|
description: "Button C",
|
||||||
disabled: true,
|
disabled: true,
|
||||||
click: function () {
|
click: function () {
|
||||||
window.alert("C");
|
window.alert("Delete");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
110
example/generator/GeneratorMetadataProvider.js
Normal file
110
example/generator/GeneratorMetadataProvider.js
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
define([
|
||||||
|
'lodash'
|
||||||
|
], function (
|
||||||
|
_
|
||||||
|
) {
|
||||||
|
|
||||||
|
var METADATA_BY_TYPE = {
|
||||||
|
'generator': {
|
||||||
|
values: [
|
||||||
|
{
|
||||||
|
key: "name",
|
||||||
|
name: "Name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "utc",
|
||||||
|
name: "Time",
|
||||||
|
format: "utc",
|
||||||
|
hints: {
|
||||||
|
domain: 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "yesterday",
|
||||||
|
name: "Yesterday",
|
||||||
|
format: "utc",
|
||||||
|
hints: {
|
||||||
|
domain: 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "sin",
|
||||||
|
name: "Sine",
|
||||||
|
formatString: '%0.2f',
|
||||||
|
hints: {
|
||||||
|
range: 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "cos",
|
||||||
|
name: "Cosine",
|
||||||
|
formatString: '%0.2f',
|
||||||
|
hints: {
|
||||||
|
range: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'example.state-generator': {
|
||||||
|
values: [
|
||||||
|
{
|
||||||
|
key: "name",
|
||||||
|
name: "Name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "utc",
|
||||||
|
name: "Time",
|
||||||
|
format: "utc",
|
||||||
|
hints: {
|
||||||
|
domain: 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "state",
|
||||||
|
source: "value",
|
||||||
|
name: "State",
|
||||||
|
format: "enum",
|
||||||
|
enumerations: [
|
||||||
|
{
|
||||||
|
value: 0,
|
||||||
|
string: "OFF"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 1,
|
||||||
|
string: "ON"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
hints: {
|
||||||
|
range: 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "value",
|
||||||
|
name: "Value",
|
||||||
|
hints: {
|
||||||
|
range: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function GeneratorMetadataProvider() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
GeneratorMetadataProvider.prototype.supportsMetadata = function (domainObject) {
|
||||||
|
return METADATA_BY_TYPE.hasOwnProperty(domainObject.type);
|
||||||
|
};
|
||||||
|
|
||||||
|
GeneratorMetadataProvider.prototype.getMetadata = function (domainObject) {
|
||||||
|
return _.extend(
|
||||||
|
{},
|
||||||
|
domainObject.telemetry,
|
||||||
|
METADATA_BY_TYPE[domainObject.type]
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
return GeneratorMetadataProvider;
|
||||||
|
|
||||||
|
});
|
91
example/generator/GeneratorProvider.js
Normal file
91
example/generator/GeneratorProvider.js
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
* Administration. All rights reserved.
|
||||||
|
*
|
||||||
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
* Open MCT includes source code licensed under additional open source
|
||||||
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
* this source code distribution or the Licensing information page available
|
||||||
|
* at runtime from the About dialog for additional information.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
define([
|
||||||
|
'./WorkerInterface'
|
||||||
|
], function (
|
||||||
|
WorkerInterface
|
||||||
|
) {
|
||||||
|
|
||||||
|
var REQUEST_DEFAULTS = {
|
||||||
|
amplitude: 1,
|
||||||
|
period: 10,
|
||||||
|
offset: 0,
|
||||||
|
dataRateInHz: 1,
|
||||||
|
phase: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
function GeneratorProvider() {
|
||||||
|
this.workerInterface = new WorkerInterface();
|
||||||
|
}
|
||||||
|
|
||||||
|
GeneratorProvider.prototype.canProvideTelemetry = function (domainObject) {
|
||||||
|
return domainObject.type === 'generator';
|
||||||
|
};
|
||||||
|
|
||||||
|
GeneratorProvider.prototype.supportsRequest =
|
||||||
|
GeneratorProvider.prototype.supportsSubscribe =
|
||||||
|
GeneratorProvider.prototype.canProvideTelemetry;
|
||||||
|
|
||||||
|
GeneratorProvider.prototype.makeWorkerRequest = function (domainObject, request) {
|
||||||
|
var props = [
|
||||||
|
'amplitude',
|
||||||
|
'period',
|
||||||
|
'offset',
|
||||||
|
'dataRateInHz',
|
||||||
|
'phase',
|
||||||
|
];
|
||||||
|
|
||||||
|
request = request || {};
|
||||||
|
|
||||||
|
var workerRequest = {};
|
||||||
|
|
||||||
|
props.forEach(function (prop) {
|
||||||
|
if (domainObject.telemetry && domainObject.telemetry.hasOwnProperty(prop)) {
|
||||||
|
workerRequest[prop] = domainObject.telemetry[prop];
|
||||||
|
}
|
||||||
|
if (request && request.hasOwnProperty(prop)) {
|
||||||
|
workerRequest[prop] = request[prop];
|
||||||
|
}
|
||||||
|
if (!workerRequest.hasOwnProperty(prop)) {
|
||||||
|
workerRequest[prop] = REQUEST_DEFAULTS[prop];
|
||||||
|
}
|
||||||
|
workerRequest[prop] = Number(workerRequest[prop]);
|
||||||
|
});
|
||||||
|
workerRequest.name = domainObject.name;
|
||||||
|
return workerRequest;
|
||||||
|
};
|
||||||
|
|
||||||
|
GeneratorProvider.prototype.request = function (domainObject, request) {
|
||||||
|
var workerRequest = this.makeWorkerRequest(domainObject, request);
|
||||||
|
workerRequest.start = request.start;
|
||||||
|
workerRequest.end = request.end;
|
||||||
|
return this.workerInterface.request(workerRequest);
|
||||||
|
};
|
||||||
|
|
||||||
|
GeneratorProvider.prototype.subscribe = function (domainObject, callback) {
|
||||||
|
var workerRequest = this.makeWorkerRequest(domainObject, {});
|
||||||
|
return this.workerInterface.subscribe(workerRequest, callback);
|
||||||
|
};
|
||||||
|
|
||||||
|
return GeneratorProvider;
|
||||||
|
});
|
95
example/generator/SinewaveLimitProvider.js
Normal file
95
example/generator/SinewaveLimitProvider.js
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
* Administration. All rights reserved.
|
||||||
|
*
|
||||||
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
* Open MCT includes source code licensed under additional open source
|
||||||
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
* this source code distribution or the Licensing information page available
|
||||||
|
* at runtime from the About dialog for additional information.
|
||||||
|
*****************************************************************************/
|
||||||
|
/*global define*/
|
||||||
|
|
||||||
|
define([
|
||||||
|
|
||||||
|
], function (
|
||||||
|
|
||||||
|
) {
|
||||||
|
|
||||||
|
var RED = {
|
||||||
|
sin: 0.9,
|
||||||
|
cos: 0.9
|
||||||
|
},
|
||||||
|
YELLOW = {
|
||||||
|
sin: 0.5,
|
||||||
|
cos: 0.5
|
||||||
|
},
|
||||||
|
LIMITS = {
|
||||||
|
rh: {
|
||||||
|
cssClass: "s-limit-upr s-limit-red",
|
||||||
|
low: RED,
|
||||||
|
high: Number.POSITIVE_INFINITY,
|
||||||
|
name: "Red High"
|
||||||
|
},
|
||||||
|
rl: {
|
||||||
|
cssClass: "s-limit-lwr s-limit-red",
|
||||||
|
high: -RED,
|
||||||
|
low: Number.NEGATIVE_INFINITY,
|
||||||
|
name: "Red Low"
|
||||||
|
},
|
||||||
|
yh: {
|
||||||
|
cssClass: "s-limit-upr s-limit-yellow",
|
||||||
|
low: YELLOW,
|
||||||
|
high: RED,
|
||||||
|
name: "Yellow High"
|
||||||
|
},
|
||||||
|
yl: {
|
||||||
|
cssClass: "s-limit-lwr s-limit-yellow",
|
||||||
|
low: -RED,
|
||||||
|
high: -YELLOW,
|
||||||
|
name: "Yellow Low"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
function SinewaveLimitProvider() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
SinewaveLimitProvider.prototype.supportsLimits = function (domainObject) {
|
||||||
|
return domainObject.type === 'generator';
|
||||||
|
};
|
||||||
|
|
||||||
|
SinewaveLimitProvider.prototype.getLimitEvaluator = function (domainObject) {
|
||||||
|
return {
|
||||||
|
evaluate: function (datum, valueMetadata) {
|
||||||
|
var range = valueMetadata && valueMetadata.key;
|
||||||
|
|
||||||
|
if (datum[range] > RED[range]) {
|
||||||
|
return LIMITS.rh;
|
||||||
|
}
|
||||||
|
if (datum[range] < -RED[range]) {
|
||||||
|
return LIMITS.rl;
|
||||||
|
}
|
||||||
|
if (datum[range] > YELLOW[range]) {
|
||||||
|
return LIMITS.yh;
|
||||||
|
}
|
||||||
|
if (datum[range] < -YELLOW[range]) {
|
||||||
|
return LIMITS.yl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
return SinewaveLimitProvider;
|
||||||
|
});
|
82
example/generator/StateGeneratorProvider.js
Normal file
82
example/generator/StateGeneratorProvider.js
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
* Administration. All rights reserved.
|
||||||
|
*
|
||||||
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
* Open MCT includes source code licensed under additional open source
|
||||||
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
* this source code distribution or the Licensing information page available
|
||||||
|
* at runtime from the About dialog for additional information.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
define([
|
||||||
|
|
||||||
|
], function (
|
||||||
|
|
||||||
|
) {
|
||||||
|
|
||||||
|
function StateGeneratorProvider() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function pointForTimestamp(timestamp, duration, name) {
|
||||||
|
return {
|
||||||
|
name: name,
|
||||||
|
utc: Math.floor(timestamp / duration) * duration,
|
||||||
|
value: Math.floor(timestamp / duration) % 2
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
StateGeneratorProvider.prototype.supportsSubscribe = function (domainObject) {
|
||||||
|
return domainObject.type === 'example.state-generator';
|
||||||
|
};
|
||||||
|
|
||||||
|
StateGeneratorProvider.prototype.subscribe = function (domainObject, callback) {
|
||||||
|
var duration = domainObject.telemetry.duration * 1000;
|
||||||
|
|
||||||
|
var interval = setInterval(function () {
|
||||||
|
var now = Date.now();
|
||||||
|
var datum = pointForTimestamp(now, duration, domainObject.name);
|
||||||
|
datum.value += "";
|
||||||
|
callback(datum);
|
||||||
|
}, duration);
|
||||||
|
|
||||||
|
return function () {
|
||||||
|
clearInterval(interval);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
StateGeneratorProvider.prototype.supportsRequest = function (domainObject, options) {
|
||||||
|
return domainObject.type === 'example.state-generator';
|
||||||
|
};
|
||||||
|
|
||||||
|
StateGeneratorProvider.prototype.request = function (domainObject, options) {
|
||||||
|
var start = options.start;
|
||||||
|
var end = options.end;
|
||||||
|
var duration = domainObject.telemetry.duration * 1000;
|
||||||
|
if (options.strategy === 'latest' || options.size === 1) {
|
||||||
|
start = end;
|
||||||
|
}
|
||||||
|
var data = [];
|
||||||
|
while (start <= end && data.length < 5000) {
|
||||||
|
data.push(pointForTimestamp(start, duration, domainObject.name));
|
||||||
|
start += duration;
|
||||||
|
}
|
||||||
|
return Promise.resolve(data);
|
||||||
|
};
|
||||||
|
|
||||||
|
return StateGeneratorProvider;
|
||||||
|
|
||||||
|
});
|
108
example/generator/WorkerInterface.js
Normal file
108
example/generator/WorkerInterface.js
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
* Administration. All rights reserved.
|
||||||
|
*
|
||||||
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
* Open MCT includes source code licensed under additional open source
|
||||||
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
* this source code distribution or the Licensing information page available
|
||||||
|
* at runtime from the About dialog for additional information.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
define([
|
||||||
|
'raw-loader!./generatorWorker.js',
|
||||||
|
'uuid'
|
||||||
|
], function (
|
||||||
|
workerText,
|
||||||
|
uuid
|
||||||
|
) {
|
||||||
|
|
||||||
|
var workerBlob = new Blob(
|
||||||
|
[workerText],
|
||||||
|
{type: 'application/javascript'}
|
||||||
|
);
|
||||||
|
var workerUrl = URL.createObjectURL(workerBlob);
|
||||||
|
|
||||||
|
function WorkerInterface() {
|
||||||
|
this.worker = new Worker(workerUrl);
|
||||||
|
this.worker.onmessage = this.onMessage.bind(this);
|
||||||
|
this.callbacks = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
WorkerInterface.prototype.onMessage = function (message) {
|
||||||
|
message = message.data;
|
||||||
|
var callback = this.callbacks[message.id];
|
||||||
|
if (callback) {
|
||||||
|
callback(message);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
WorkerInterface.prototype.dispatch = function (request, data, callback) {
|
||||||
|
var message = {
|
||||||
|
request: request,
|
||||||
|
data: data,
|
||||||
|
id: uuid()
|
||||||
|
};
|
||||||
|
|
||||||
|
if (callback) {
|
||||||
|
this.callbacks[message.id] = callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.worker.postMessage(message);
|
||||||
|
|
||||||
|
return message.id;
|
||||||
|
};
|
||||||
|
|
||||||
|
WorkerInterface.prototype.request = function (request) {
|
||||||
|
var deferred = {};
|
||||||
|
var promise = new Promise(function (resolve, reject) {
|
||||||
|
deferred.resolve = resolve;
|
||||||
|
deferred.reject = reject;
|
||||||
|
});
|
||||||
|
var messageId;
|
||||||
|
|
||||||
|
function callback(message) {
|
||||||
|
if (message.error) {
|
||||||
|
deferred.reject(message.error);
|
||||||
|
} else {
|
||||||
|
deferred.resolve(message.data);
|
||||||
|
}
|
||||||
|
delete this.callbacks[messageId];
|
||||||
|
}
|
||||||
|
|
||||||
|
messageId = this.dispatch('request', request, callback.bind(this));
|
||||||
|
|
||||||
|
return promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
WorkerInterface.prototype.subscribe = function (request, cb) {
|
||||||
|
function callback(message) {
|
||||||
|
cb(message.data);
|
||||||
|
};
|
||||||
|
|
||||||
|
var messageId = this.dispatch('subscribe', request, callback);
|
||||||
|
|
||||||
|
return function () {
|
||||||
|
this.dispatch('unsubscribe', {
|
||||||
|
id: messageId
|
||||||
|
});
|
||||||
|
delete this.callbacks[messageId];
|
||||||
|
}.bind(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return WorkerInterface;
|
||||||
|
});
|
@ -1,144 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define*/
|
|
||||||
|
|
||||||
define([
|
|
||||||
"./src/SinewaveTelemetryProvider",
|
|
||||||
"./src/SinewaveLimitCapability",
|
|
||||||
"./src/SinewaveDeltaFormat",
|
|
||||||
'legacyRegistry'
|
|
||||||
], function (
|
|
||||||
SinewaveTelemetryProvider,
|
|
||||||
SinewaveLimitCapability,
|
|
||||||
SinewaveDeltaFormat,
|
|
||||||
legacyRegistry
|
|
||||||
) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
legacyRegistry.register("example/generator", {
|
|
||||||
"name": "Sine Wave Generator",
|
|
||||||
"description": "For development use. Generates example streaming telemetry data using a simple sine wave algorithm.",
|
|
||||||
"extensions": {
|
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"implementation": SinewaveTelemetryProvider,
|
|
||||||
"type": "provider",
|
|
||||||
"provides": "telemetryService",
|
|
||||||
"depends": [
|
|
||||||
"$q",
|
|
||||||
"$timeout"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"capabilities": [
|
|
||||||
{
|
|
||||||
"key": "limit",
|
|
||||||
"implementation": SinewaveLimitCapability
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"formats": [
|
|
||||||
{
|
|
||||||
"key": "example.delta",
|
|
||||||
"implementation": SinewaveDeltaFormat
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"constants": [
|
|
||||||
{
|
|
||||||
"key": "TIME_CONDUCTOR_DOMAINS",
|
|
||||||
"value": [
|
|
||||||
{
|
|
||||||
"key": "time",
|
|
||||||
"name": "Time"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "yesterday",
|
|
||||||
"name": "Yesterday"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "delta",
|
|
||||||
"name": "Delta",
|
|
||||||
"format": "example.delta"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"priority": -1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"types": [
|
|
||||||
{
|
|
||||||
"key": "generator",
|
|
||||||
"name": "Sine Wave Generator",
|
|
||||||
"glyph": "\u0054",
|
|
||||||
"description": "For development use. Generates example streaming telemetry data using a simple sine wave algorithm.",
|
|
||||||
"priority": 10,
|
|
||||||
"features": "creation",
|
|
||||||
"model": {
|
|
||||||
"telemetry": {
|
|
||||||
"period": 10
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"telemetry": {
|
|
||||||
"source": "generator",
|
|
||||||
"domains": [
|
|
||||||
{
|
|
||||||
"key": "time",
|
|
||||||
"name": "Time"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "yesterday",
|
|
||||||
"name": "Yesterday"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "delta",
|
|
||||||
"name": "Delta",
|
|
||||||
"format": "example.delta"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ranges": [
|
|
||||||
{
|
|
||||||
"key": "sin",
|
|
||||||
"name": "Sine"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "cos",
|
|
||||||
"name": "Cosine"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"name": "Period",
|
|
||||||
"control": "textfield",
|
|
||||||
"cssclass": "l-input-sm l-numeric",
|
|
||||||
"key": "period",
|
|
||||||
"required": true,
|
|
||||||
"property": [
|
|
||||||
"telemetry",
|
|
||||||
"period"
|
|
||||||
],
|
|
||||||
"pattern": "^\\d*(\\.\\d*)?$"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
156
example/generator/generatorWorker.js
Normal file
156
example/generator/generatorWorker.js
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
* Administration. All rights reserved.
|
||||||
|
*
|
||||||
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
* Open MCT includes source code licensed under additional open source
|
||||||
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
* this source code distribution or the Licensing information page available
|
||||||
|
* at runtime from the About dialog for additional information.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
/*global self*/
|
||||||
|
|
||||||
|
(function () {
|
||||||
|
|
||||||
|
var FIFTEEN_MINUTES = 15 * 60 * 1000;
|
||||||
|
|
||||||
|
var handlers = {
|
||||||
|
subscribe: onSubscribe,
|
||||||
|
unsubscribe: onUnsubscribe,
|
||||||
|
request: onRequest
|
||||||
|
};
|
||||||
|
|
||||||
|
var subscriptions = {};
|
||||||
|
|
||||||
|
function workSubscriptions(timestamp) {
|
||||||
|
var now = Date.now();
|
||||||
|
var nextWork = Math.min.apply(Math, Object.values(subscriptions).map(function (subscription) {
|
||||||
|
return subscription(now);
|
||||||
|
}));
|
||||||
|
var wait = nextWork - now;
|
||||||
|
if (wait < 0) {
|
||||||
|
wait = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Number.isFinite(wait)) {
|
||||||
|
setTimeout(workSubscriptions, wait);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onSubscribe(message) {
|
||||||
|
var data = message.data;
|
||||||
|
|
||||||
|
// Keep
|
||||||
|
var start = Date.now();
|
||||||
|
var step = 1000 / data.dataRateInHz;
|
||||||
|
var nextStep = start - (start % step) + step;
|
||||||
|
|
||||||
|
function work(now) {
|
||||||
|
while (nextStep < now) {
|
||||||
|
self.postMessage({
|
||||||
|
id: message.id,
|
||||||
|
data: {
|
||||||
|
name: data.name,
|
||||||
|
utc: nextStep,
|
||||||
|
yesterday: nextStep - 60*60*24*1000,
|
||||||
|
sin: sin(nextStep, data.period, data.amplitude, data.offset, data.phase),
|
||||||
|
cos: cos(nextStep, data.period, data.amplitude, data.offset, data.phase)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
nextStep += step;
|
||||||
|
}
|
||||||
|
return nextStep;
|
||||||
|
}
|
||||||
|
|
||||||
|
subscriptions[message.id] = work;
|
||||||
|
workSubscriptions();
|
||||||
|
}
|
||||||
|
|
||||||
|
function onUnsubscribe(message) {
|
||||||
|
delete subscriptions[message.data.id];
|
||||||
|
}
|
||||||
|
|
||||||
|
function onRequest(message) {
|
||||||
|
var request = message.data;
|
||||||
|
if (request.end == undefined) {
|
||||||
|
request.end = Date.now();
|
||||||
|
}
|
||||||
|
if (request.start == undefined){
|
||||||
|
request.start = request.end - FIFTEEN_MINUTES;
|
||||||
|
}
|
||||||
|
|
||||||
|
var now = Date.now();
|
||||||
|
var start = request.start;
|
||||||
|
var end = request.end > now ? now : request.end;
|
||||||
|
var amplitude = request.amplitude;
|
||||||
|
var period = request.period;
|
||||||
|
var offset = request.offset;
|
||||||
|
var dataRateInHz = request.dataRateInHz;
|
||||||
|
var phase = request.phase;
|
||||||
|
|
||||||
|
var step = 1000 / dataRateInHz;
|
||||||
|
var nextStep = start - (start % step) + step;
|
||||||
|
|
||||||
|
var data = [];
|
||||||
|
|
||||||
|
for (; nextStep < end && data.length < 5000; nextStep += step) {
|
||||||
|
data.push({
|
||||||
|
name: request.name,
|
||||||
|
utc: nextStep,
|
||||||
|
yesterday: nextStep - 60*60*24*1000,
|
||||||
|
sin: sin(nextStep, period, amplitude, offset, phase),
|
||||||
|
cos: cos(nextStep, period, amplitude, offset, phase)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
self.postMessage({
|
||||||
|
id: message.id,
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function cos(timestamp, period, amplitude, offset, phase) {
|
||||||
|
return amplitude *
|
||||||
|
Math.cos(phase + (timestamp / period / 1000 * Math.PI * 2)) + offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sin(timestamp, period, amplitude, offset, phase) {
|
||||||
|
return amplitude *
|
||||||
|
Math.sin(phase + (timestamp / period / 1000 * Math.PI * 2)) + offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sendError(error, message) {
|
||||||
|
self.postMessage({
|
||||||
|
error: error.name + ': ' + error.message,
|
||||||
|
message: message,
|
||||||
|
id: message.id
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
self.onmessage = function handleMessage(event) {
|
||||||
|
var message = event.data;
|
||||||
|
var handler = handlers[message.request];
|
||||||
|
|
||||||
|
if (!handler) {
|
||||||
|
sendError(new Error('unknown message type'), message);
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
handler(message);
|
||||||
|
} catch (e) {
|
||||||
|
sendError(e, message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}());
|
144
example/generator/plugin.js
Normal file
144
example/generator/plugin.js
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
* Administration. All rights reserved.
|
||||||
|
*
|
||||||
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
* Open MCT includes source code licensed under additional open source
|
||||||
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
* this source code distribution or the Licensing information page available
|
||||||
|
* at runtime from the About dialog for additional information.
|
||||||
|
*****************************************************************************/
|
||||||
|
/*global define*/
|
||||||
|
|
||||||
|
define([
|
||||||
|
"./GeneratorProvider",
|
||||||
|
"./SinewaveLimitProvider",
|
||||||
|
"./StateGeneratorProvider",
|
||||||
|
"./GeneratorMetadataProvider"
|
||||||
|
], function (
|
||||||
|
GeneratorProvider,
|
||||||
|
SinewaveLimitProvider,
|
||||||
|
StateGeneratorProvider,
|
||||||
|
GeneratorMetadataProvider
|
||||||
|
) {
|
||||||
|
|
||||||
|
return function(openmct){
|
||||||
|
|
||||||
|
openmct.types.addType("example.state-generator", {
|
||||||
|
name: "State Generator",
|
||||||
|
description: "For development use. Generates test enumerated telemetry by cycling through a given set of states",
|
||||||
|
cssClass: "icon-telemetry",
|
||||||
|
creatable: true,
|
||||||
|
form: [
|
||||||
|
{
|
||||||
|
name: "State Duration (seconds)",
|
||||||
|
control: "textfield",
|
||||||
|
cssClass: "l-input-sm l-numeric",
|
||||||
|
key: "duration",
|
||||||
|
required: true,
|
||||||
|
property: [
|
||||||
|
"telemetry",
|
||||||
|
"duration"
|
||||||
|
],
|
||||||
|
pattern: "^\\d*(\\.\\d*)?$"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
initialize: function (object) {
|
||||||
|
object.telemetry = {
|
||||||
|
duration: 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
openmct.telemetry.addProvider(new StateGeneratorProvider());
|
||||||
|
|
||||||
|
openmct.types.addType("generator", {
|
||||||
|
name: "Sine Wave Generator",
|
||||||
|
description: "For development use. Generates example streaming telemetry data using a simple sine wave algorithm.",
|
||||||
|
cssClass: "icon-telemetry",
|
||||||
|
creatable: true,
|
||||||
|
form: [
|
||||||
|
{
|
||||||
|
name: "Period",
|
||||||
|
control: "numberfield",
|
||||||
|
cssClass: "l-input-sm l-numeric",
|
||||||
|
key: "period",
|
||||||
|
required: true,
|
||||||
|
property: [
|
||||||
|
"telemetry",
|
||||||
|
"period"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Amplitude",
|
||||||
|
control: "numberfield",
|
||||||
|
cssClass: "l-input-sm l-numeric",
|
||||||
|
key: "amplitude",
|
||||||
|
required: true,
|
||||||
|
property: [
|
||||||
|
"telemetry",
|
||||||
|
"amplitude"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Offset",
|
||||||
|
control: "numberfield",
|
||||||
|
cssClass: "l-input-sm l-numeric",
|
||||||
|
key: "offset",
|
||||||
|
required: true,
|
||||||
|
property: [
|
||||||
|
"telemetry",
|
||||||
|
"offset"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Data Rate (hz)",
|
||||||
|
control: "numberfield",
|
||||||
|
cssClass: "l-input-sm l-numeric",
|
||||||
|
key: "dataRateInHz",
|
||||||
|
required: true,
|
||||||
|
property: [
|
||||||
|
"telemetry",
|
||||||
|
"dataRateInHz"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Phase (radians)",
|
||||||
|
control: "numberfield",
|
||||||
|
cssClass: "l-input-sm l-numeric",
|
||||||
|
key: "phase",
|
||||||
|
required: true,
|
||||||
|
property: [
|
||||||
|
"telemetry",
|
||||||
|
"phase"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
initialize: function (object) {
|
||||||
|
object.telemetry = {
|
||||||
|
period: 10,
|
||||||
|
amplitude: 1,
|
||||||
|
offset: 0,
|
||||||
|
dataRateInHz: 1,
|
||||||
|
phase: 0
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
openmct.telemetry.addProvider(new GeneratorProvider());
|
||||||
|
openmct.telemetry.addProvider(new GeneratorMetadataProvider());
|
||||||
|
openmct.telemetry.addProvider(new SinewaveLimitProvider());
|
||||||
|
};
|
||||||
|
|
||||||
|
});
|
@ -1,68 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define,Promise*/
|
|
||||||
|
|
||||||
define(
|
|
||||||
['./SinewaveConstants', 'moment'],
|
|
||||||
function (SinewaveConstants, moment) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var START_TIME = SinewaveConstants.START_TIME,
|
|
||||||
FORMAT_REGEX = /^-?\d+:\d+:\d+$/,
|
|
||||||
SECOND = 1000,
|
|
||||||
MINUTE = SECOND * 60,
|
|
||||||
HOUR = MINUTE * 60;
|
|
||||||
|
|
||||||
function SinewaveDeltaFormat() {
|
|
||||||
}
|
|
||||||
|
|
||||||
function twoDigit(v) {
|
|
||||||
return v >= 10 ? String(v) : ('0' + v);
|
|
||||||
}
|
|
||||||
|
|
||||||
SinewaveDeltaFormat.prototype.format = function (value) {
|
|
||||||
var delta = Math.abs(value - START_TIME),
|
|
||||||
negative = value < START_TIME,
|
|
||||||
seconds = Math.floor(delta / SECOND) % 60,
|
|
||||||
minutes = Math.floor(delta / MINUTE) % 60,
|
|
||||||
hours = Math.floor(delta / HOUR);
|
|
||||||
return (negative ? "-" : "") +
|
|
||||||
[ hours, minutes, seconds ].map(twoDigit).join(":");
|
|
||||||
};
|
|
||||||
|
|
||||||
SinewaveDeltaFormat.prototype.validate = function (text) {
|
|
||||||
return FORMAT_REGEX.test(text);
|
|
||||||
};
|
|
||||||
|
|
||||||
SinewaveDeltaFormat.prototype.parse = function (text) {
|
|
||||||
var negative = text[0] === "-",
|
|
||||||
parts = text.replace("-", "").split(":");
|
|
||||||
return [ HOUR, MINUTE, SECOND ].map(function (sz, i) {
|
|
||||||
return parseInt(parts[i], 10) * sz;
|
|
||||||
}).reduce(function (a, b) {
|
|
||||||
return a + b;
|
|
||||||
}, 0) * (negative ? -1 : 1) + START_TIME;
|
|
||||||
};
|
|
||||||
|
|
||||||
return SinewaveDeltaFormat;
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,87 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define*/
|
|
||||||
|
|
||||||
define(
|
|
||||||
[],
|
|
||||||
function () {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var RED = 0.9,
|
|
||||||
YELLOW = 0.5,
|
|
||||||
LIMITS = {
|
|
||||||
rh: {
|
|
||||||
cssClass: "s-limit-upr s-limit-red",
|
|
||||||
low: RED,
|
|
||||||
high: Number.POSITIVE_INFINITY,
|
|
||||||
name: "Red High"
|
|
||||||
},
|
|
||||||
rl: {
|
|
||||||
cssClass: "s-limit-lwr s-limit-red",
|
|
||||||
high: -RED,
|
|
||||||
low: Number.NEGATIVE_INFINITY,
|
|
||||||
name: "Red Low"
|
|
||||||
},
|
|
||||||
yh: {
|
|
||||||
cssClass: "s-limit-upr s-limit-yellow",
|
|
||||||
low: YELLOW,
|
|
||||||
high: RED,
|
|
||||||
name: "Yellow High"
|
|
||||||
},
|
|
||||||
yl: {
|
|
||||||
cssClass: "s-limit-lwr s-limit-yellow",
|
|
||||||
low: -RED,
|
|
||||||
high: -YELLOW,
|
|
||||||
name: "Yellow Low"
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
function SinewaveLimitCapability(domainObject) {
|
|
||||||
return {
|
|
||||||
limits: function (range) {
|
|
||||||
return LIMITS;
|
|
||||||
},
|
|
||||||
evaluate: function (datum, range) {
|
|
||||||
range = range || 'sin';
|
|
||||||
if (datum[range] > RED) {
|
|
||||||
return LIMITS.rh;
|
|
||||||
}
|
|
||||||
if (datum[range] < -RED) {
|
|
||||||
return LIMITS.rl;
|
|
||||||
}
|
|
||||||
if (datum[range] > YELLOW) {
|
|
||||||
return LIMITS.yh;
|
|
||||||
}
|
|
||||||
if (datum[range] < -YELLOW) {
|
|
||||||
return LIMITS.yl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
SinewaveLimitCapability.appliesTo = function (model) {
|
|
||||||
return model.type === 'generator';
|
|
||||||
};
|
|
||||||
|
|
||||||
return SinewaveLimitCapability;
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,119 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define,Promise*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module defining SinewaveTelemetryProvider. Created by vwoeltje on 11/12/14.
|
|
||||||
*/
|
|
||||||
define(
|
|
||||||
["./SinewaveTelemetrySeries"],
|
|
||||||
function (SinewaveTelemetrySeries) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
function SinewaveTelemetryProvider($q, $timeout) {
|
|
||||||
var subscriptions = [],
|
|
||||||
generating = false;
|
|
||||||
|
|
||||||
//
|
|
||||||
function matchesSource(request) {
|
|
||||||
return request.source === "generator";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Used internally; this will be repacked by doPackage
|
|
||||||
function generateData(request) {
|
|
||||||
return {
|
|
||||||
key: request.key,
|
|
||||||
telemetry: new SinewaveTelemetrySeries(request)
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
function doPackage(results) {
|
|
||||||
var packaged = {};
|
|
||||||
results.forEach(function (result) {
|
|
||||||
packaged[result.key] = result.telemetry;
|
|
||||||
});
|
|
||||||
// Format as expected (sources -> keys -> telemetry)
|
|
||||||
return { generator: packaged };
|
|
||||||
}
|
|
||||||
|
|
||||||
function requestTelemetry(requests) {
|
|
||||||
return $timeout(function () {
|
|
||||||
return doPackage(requests.filter(matchesSource).map(generateData));
|
|
||||||
}, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleSubscriptions() {
|
|
||||||
subscriptions.forEach(function (subscription) {
|
|
||||||
var requests = subscription.requests;
|
|
||||||
subscription.callback(doPackage(
|
|
||||||
requests.filter(matchesSource).map(generateData)
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function startGenerating() {
|
|
||||||
generating = true;
|
|
||||||
$timeout(function () {
|
|
||||||
handleSubscriptions();
|
|
||||||
if (generating && subscriptions.length > 0) {
|
|
||||||
startGenerating();
|
|
||||||
} else {
|
|
||||||
generating = false;
|
|
||||||
}
|
|
||||||
}, 1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
function subscribe(callback, requests) {
|
|
||||||
var subscription = {
|
|
||||||
callback: callback,
|
|
||||||
requests: requests
|
|
||||||
};
|
|
||||||
|
|
||||||
function unsubscribe() {
|
|
||||||
subscriptions = subscriptions.filter(function (s) {
|
|
||||||
return s !== subscription;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
subscriptions.push(subscription);
|
|
||||||
|
|
||||||
if (!generating) {
|
|
||||||
startGenerating();
|
|
||||||
}
|
|
||||||
|
|
||||||
return unsubscribe;
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
requestTelemetry: requestTelemetry,
|
|
||||||
subscribe: subscribe
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return SinewaveTelemetryProvider;
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,78 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define,Promise*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module defining SinewaveTelemetry. Created by vwoeltje on 11/12/14.
|
|
||||||
*/
|
|
||||||
define(
|
|
||||||
['./SinewaveConstants'],
|
|
||||||
function (SinewaveConstants) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var ONE_DAY = 60 * 60 * 24,
|
|
||||||
firstObservedTime = Math.floor(SinewaveConstants.START_TIME / 1000);
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
function SinewaveTelemetrySeries(request) {
|
|
||||||
var timeOffset = (request.domain === 'yesterday') ? ONE_DAY : 0,
|
|
||||||
latestTime = Math.floor(Date.now() / 1000) - timeOffset,
|
|
||||||
firstTime = firstObservedTime - timeOffset,
|
|
||||||
endTime = (request.end !== undefined) ?
|
|
||||||
Math.floor(request.end / 1000) : latestTime,
|
|
||||||
count = Math.min(endTime, latestTime) - firstTime,
|
|
||||||
period = +request.period || 30,
|
|
||||||
generatorData = {},
|
|
||||||
requestStart = (request.start === undefined) ? firstTime :
|
|
||||||
Math.max(Math.floor(request.start / 1000), firstTime),
|
|
||||||
offset = requestStart - firstTime;
|
|
||||||
|
|
||||||
if (request.size !== undefined) {
|
|
||||||
offset = Math.max(offset, count - request.size);
|
|
||||||
}
|
|
||||||
|
|
||||||
generatorData.getPointCount = function () {
|
|
||||||
return count - offset;
|
|
||||||
};
|
|
||||||
|
|
||||||
generatorData.getDomainValue = function (i, domain) {
|
|
||||||
// delta uses the same numeric values as the default domain,
|
|
||||||
// so it's not checked for here, just formatted for display
|
|
||||||
// differently.
|
|
||||||
return (i + offset) * 1000 + firstTime * 1000 -
|
|
||||||
(domain === 'yesterday' ? (ONE_DAY * 1000) : 0);
|
|
||||||
};
|
|
||||||
|
|
||||||
generatorData.getRangeValue = function (i, range) {
|
|
||||||
range = range || "sin";
|
|
||||||
return Math[range]((i + offset) * Math.PI * 2 / period);
|
|
||||||
};
|
|
||||||
|
|
||||||
return generatorData;
|
|
||||||
}
|
|
||||||
|
|
||||||
return SinewaveTelemetrySeries;
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -38,7 +38,8 @@ define([
|
|||||||
"provides": "identityService",
|
"provides": "identityService",
|
||||||
"type": "provider",
|
"type": "provider",
|
||||||
"depends": [
|
"depends": [
|
||||||
"dialogService"
|
"dialogService",
|
||||||
|
"$q"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -55,21 +55,37 @@ define(
|
|||||||
* @implements {IdentityService}
|
* @implements {IdentityService}
|
||||||
* @memberof platform/identity
|
* @memberof platform/identity
|
||||||
*/
|
*/
|
||||||
function ExampleIdentityProvider(dialogService) {
|
function ExampleIdentityProvider(dialogService, $q) {
|
||||||
// Handle rejected dialog messages by treating the
|
this.dialogService = dialogService;
|
||||||
// current user as undefined.
|
this.$q = $q;
|
||||||
function echo(v) { return v; }
|
|
||||||
function giveUndefined() { return undefined; }
|
|
||||||
|
|
||||||
this.userPromise =
|
this.returnUser = this.returnUser.bind(this);
|
||||||
dialogService.getUserInput(DIALOG_STRUCTURE, DEFAULT_IDENTITY)
|
this.returnUndefined = this.returnUndefined.bind(this);
|
||||||
.then(echo, giveUndefined);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ExampleIdentityProvider.prototype.getUser = function () {
|
ExampleIdentityProvider.prototype.getUser = function () {
|
||||||
return this.userPromise;
|
if (this.user) {
|
||||||
|
return this.$q.when(this.user);
|
||||||
|
} else {
|
||||||
|
return this.dialogService.getUserInput(DIALOG_STRUCTURE, DEFAULT_IDENTITY)
|
||||||
|
.then(this.returnUser, this.returnUndefined);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
ExampleIdentityProvider.prototype.returnUser = function (user) {
|
||||||
|
return this.user = user;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
ExampleIdentityProvider.prototype.returnUndefined = function () {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
return ExampleIdentityProvider;
|
return ExampleIdentityProvider;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -1,80 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define*/
|
|
||||||
|
|
||||||
define([
|
|
||||||
"./src/ImageTelemetryProvider",
|
|
||||||
'legacyRegistry'
|
|
||||||
], function (
|
|
||||||
ImageTelemetryProvider,
|
|
||||||
legacyRegistry
|
|
||||||
) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
legacyRegistry.register("example/imagery", {
|
|
||||||
"name": "Imagery",
|
|
||||||
"description": "Example of a component that produces image telemetry.",
|
|
||||||
"extensions": {
|
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"implementation": ImageTelemetryProvider,
|
|
||||||
"type": "provider",
|
|
||||||
"provides": "telemetryService",
|
|
||||||
"depends": [
|
|
||||||
"$q",
|
|
||||||
"$timeout"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"types": [
|
|
||||||
{
|
|
||||||
"key": "imagery",
|
|
||||||
"name": "Example Imagery",
|
|
||||||
"glyph": "\u00e3",
|
|
||||||
"features": "creation",
|
|
||||||
"description": "For development use. Creates example imagery data that mimics a live imagery stream.",
|
|
||||||
"priority": 10,
|
|
||||||
"model": {
|
|
||||||
"telemetry": {}
|
|
||||||
},
|
|
||||||
"telemetry": {
|
|
||||||
"source": "imagery",
|
|
||||||
"domains": [
|
|
||||||
{
|
|
||||||
"name": "Time",
|
|
||||||
"key": "time",
|
|
||||||
"format": "utc"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ranges": [
|
|
||||||
{
|
|
||||||
"name": "Image",
|
|
||||||
"key": "url",
|
|
||||||
"format": "imageUrl"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
145
example/imagery/plugin.js
Normal file
145
example/imagery/plugin.js
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
* Administration. All rights reserved.
|
||||||
|
*
|
||||||
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
* Open MCT includes source code licensed under additional open source
|
||||||
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
* this source code distribution or the Licensing information page available
|
||||||
|
* at runtime from the About dialog for additional information.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
define([
|
||||||
|
|
||||||
|
], function(
|
||||||
|
|
||||||
|
) {
|
||||||
|
function ImageryPlugin() {
|
||||||
|
|
||||||
|
var IMAGE_SAMPLES = [
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18731.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18732.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18733.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18734.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18735.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18736.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18737.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18738.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18739.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18740.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18741.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18742.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18743.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18744.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18745.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18746.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18747.jpg",
|
||||||
|
"https://www.hq.nasa.gov/alsj/a16/AS16-117-18748.jpg"
|
||||||
|
];
|
||||||
|
|
||||||
|
function pointForTimestamp(timestamp, name) {
|
||||||
|
return {
|
||||||
|
name: name,
|
||||||
|
utc: Math.floor(timestamp / 5000) * 5000,
|
||||||
|
url: IMAGE_SAMPLES[Math.floor(timestamp / 5000) % IMAGE_SAMPLES.length]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
var realtimeProvider = {
|
||||||
|
supportsSubscribe: function (domainObject) {
|
||||||
|
return domainObject.type === 'example.imagery';
|
||||||
|
},
|
||||||
|
subscribe: function (domainObject, callback) {
|
||||||
|
var interval = setInterval(function () {
|
||||||
|
callback(pointForTimestamp(Date.now(), domainObject.name));
|
||||||
|
}, 5000);
|
||||||
|
|
||||||
|
return function (interval) {
|
||||||
|
clearInterval(interval);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var historicalProvider = {
|
||||||
|
supportsRequest: function (domainObject, options) {
|
||||||
|
return domainObject.type === 'example.imagery'
|
||||||
|
&& options.strategy !== 'latest';
|
||||||
|
},
|
||||||
|
request: function (domainObject, options) {
|
||||||
|
var start = options.start;
|
||||||
|
var end = options.end;
|
||||||
|
var data = [];
|
||||||
|
while (start <= end && data.length < 5000) {
|
||||||
|
data.push(pointForTimestamp(start, domainObject.name));
|
||||||
|
start += 5000;
|
||||||
|
}
|
||||||
|
return Promise.resolve(data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var ladProvider = {
|
||||||
|
supportsRequest: function (domainObject, options) {
|
||||||
|
return domainObject.type === 'example.imagery' &&
|
||||||
|
options.strategy === 'latest';
|
||||||
|
},
|
||||||
|
request: function (domainObject, options) {
|
||||||
|
return Promise.resolve([pointForTimestamp(Date.now(), domainObject.name)]);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
return function install(openmct) {
|
||||||
|
openmct.types.addType('example.imagery', {
|
||||||
|
key: 'example.imagery',
|
||||||
|
name: 'Example Imagery',
|
||||||
|
cssClass: 'icon-image',
|
||||||
|
description: 'For development use. Creates example imagery ' +
|
||||||
|
'data that mimics a live imagery stream.',
|
||||||
|
creatable: true,
|
||||||
|
initialize: function (object) {
|
||||||
|
object.telemetry = {
|
||||||
|
values: [
|
||||||
|
{
|
||||||
|
name: 'Name',
|
||||||
|
key: 'name'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Time',
|
||||||
|
key: 'utc',
|
||||||
|
format: 'utc',
|
||||||
|
hints: {
|
||||||
|
domain: 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Image',
|
||||||
|
key: 'url',
|
||||||
|
format: 'image',
|
||||||
|
hints: {
|
||||||
|
image: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
openmct.telemetry.addProvider(realtimeProvider);
|
||||||
|
openmct.telemetry.addProvider(historicalProvider);
|
||||||
|
openmct.telemetry.addProvider(ladProvider);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return ImageryPlugin;
|
||||||
|
});
|
@ -1,66 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define,Promise*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module defining ImageTelemetry. Created by vwoeltje on 06/22/15.
|
|
||||||
*/
|
|
||||||
define(
|
|
||||||
[],
|
|
||||||
function () {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var firstObservedTime = Date.now(),
|
|
||||||
images = [
|
|
||||||
"http://www.nasa.gov/393811main_Palomar_ao_bouchez_10s_after_impact_4x3_946-710.png",
|
|
||||||
"http://www.nasa.gov/393821main_Palomar_ao_bouchez_15s_after_impact_4x3_946-710.png",
|
|
||||||
"http://www.nasa.gov/images/content/393801main_CfhtVeillet2_4x3_516-387.jpg",
|
|
||||||
"http://www.nasa.gov/images/content/392790main_1024_768_GeminiNorth_NightBeforeImpact_946-710.jpg"
|
|
||||||
].map(function (url, index) {
|
|
||||||
return {
|
|
||||||
timestamp: firstObservedTime + 1000 * index,
|
|
||||||
url: url
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
function ImageTelemetry() {
|
|
||||||
return {
|
|
||||||
getPointCount: function () {
|
|
||||||
return Math.floor((Date.now() - firstObservedTime) / 1000);
|
|
||||||
},
|
|
||||||
getDomainValue: function (i, domain) {
|
|
||||||
return images[i % images.length].timestamp;
|
|
||||||
},
|
|
||||||
getRangeValue: function (i, range) {
|
|
||||||
return images[i % images.length].url;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return ImageTelemetry;
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,115 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define,Promise*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module defining ImageTelemetryProvider. Created by vwoeltje on 06/22/15.
|
|
||||||
*/
|
|
||||||
define(
|
|
||||||
["./ImageTelemetry"],
|
|
||||||
function (ImageTelemetry) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
function ImageTelemetryProvider($q, $timeout) {
|
|
||||||
var subscriptions = [];
|
|
||||||
|
|
||||||
//
|
|
||||||
function matchesSource(request) {
|
|
||||||
return request.source === "imagery";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Used internally; this will be repacked by doPackage
|
|
||||||
function generateData(request) {
|
|
||||||
return {
|
|
||||||
key: request.key,
|
|
||||||
telemetry: new ImageTelemetry()
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
function doPackage(results) {
|
|
||||||
var packaged = {};
|
|
||||||
results.forEach(function (result) {
|
|
||||||
packaged[result.key] = result.telemetry;
|
|
||||||
});
|
|
||||||
// Format as expected (sources -> keys -> telemetry)
|
|
||||||
return { imagery: packaged };
|
|
||||||
}
|
|
||||||
|
|
||||||
function requestTelemetry(requests) {
|
|
||||||
return $timeout(function () {
|
|
||||||
return doPackage(requests.filter(matchesSource).map(generateData));
|
|
||||||
}, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleSubscriptions() {
|
|
||||||
subscriptions.forEach(function (subscription) {
|
|
||||||
var requests = subscription.requests;
|
|
||||||
subscription.callback(doPackage(
|
|
||||||
requests.filter(matchesSource).map(generateData)
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function startGenerating() {
|
|
||||||
$timeout(function () {
|
|
||||||
handleSubscriptions();
|
|
||||||
if (subscriptions.length > 0) {
|
|
||||||
startGenerating();
|
|
||||||
}
|
|
||||||
}, 1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
function subscribe(callback, requests) {
|
|
||||||
var subscription = {
|
|
||||||
callback: callback,
|
|
||||||
requests: requests
|
|
||||||
};
|
|
||||||
|
|
||||||
function unsubscribe() {
|
|
||||||
subscriptions = subscriptions.filter(function (s) {
|
|
||||||
return s !== subscription;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
subscriptions.push(subscription);
|
|
||||||
|
|
||||||
if (subscriptions.length === 1) {
|
|
||||||
startGenerating();
|
|
||||||
}
|
|
||||||
|
|
||||||
return unsubscribe;
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
requestTelemetry: requestTelemetry,
|
|
||||||
subscribe: subscribe
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return ImageTelemetryProvider;
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
@include phoneandtablet {
|
@include phoneandtablet {
|
||||||
// Show the Create button
|
// Show the Create button
|
||||||
.create-btn-holder {
|
.create-button-holder {
|
||||||
display: block !important;
|
display: block !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -23,45 +23,43 @@
|
|||||||
|
|
||||||
define([
|
define([
|
||||||
"./src/RemsTelemetryServerAdapter",
|
"./src/RemsTelemetryServerAdapter",
|
||||||
"./src/RemsTelemetryInitializer",
|
|
||||||
"./src/RemsTelemetryModelProvider",
|
"./src/RemsTelemetryModelProvider",
|
||||||
"./src/RemsTelemetryProvider",
|
"./src/RemsTelemetryProvider",
|
||||||
'legacyRegistry',
|
'legacyRegistry',
|
||||||
"module"
|
"module"
|
||||||
], function (
|
], function (
|
||||||
RemsTelemetryServerAdapter,
|
RemsTelemetryServerAdapter,
|
||||||
RemsTelemetryInitializer,
|
|
||||||
RemsTelemetryModelProvider,
|
RemsTelemetryModelProvider,
|
||||||
RemsTelemetryProvider,
|
RemsTelemetryProvider,
|
||||||
legacyRegistry
|
legacyRegistry
|
||||||
) {
|
) {
|
||||||
"use strict";
|
"use strict";
|
||||||
legacyRegistry.register("example/notifications", {
|
legacyRegistry.register("example/msl", {
|
||||||
"name" : "Mars Science Laboratory Data Adapter",
|
"name" : "Mars Science Laboratory Data Adapter",
|
||||||
"extensions" : {
|
"extensions" : {
|
||||||
"types": [
|
"types": [
|
||||||
{
|
{
|
||||||
"name":"Mars Science Laboratory",
|
"name":"Mars Science Laboratory",
|
||||||
"key": "msl.curiosity",
|
"key": "msl.curiosity",
|
||||||
"glyph": "o"
|
"cssClass": "icon-object"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Instrument",
|
"name": "Instrument",
|
||||||
"key": "msl.instrument",
|
"key": "msl.instrument",
|
||||||
"glyph": "o",
|
"cssClass": "icon-object",
|
||||||
"model": {"composition": []}
|
"model": {"composition": []}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Measurement",
|
"name": "Measurement",
|
||||||
"key": "msl.measurement",
|
"key": "msl.measurement",
|
||||||
"glyph": "\u0054",
|
"cssClass": "icon-telemetry",
|
||||||
"model": {"telemetry": {}},
|
"model": {"telemetry": {}},
|
||||||
"telemetry": {
|
"telemetry": {
|
||||||
"source": "rems.source",
|
"source": "rems.source",
|
||||||
"domains": [
|
"domains": [
|
||||||
{
|
{
|
||||||
"name": "Time",
|
"name": "Time",
|
||||||
"key": "timestamp",
|
"key": "utc",
|
||||||
"format": "utc"
|
"format": "utc"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -75,13 +73,18 @@ define([
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"roots": [
|
"roots": [
|
||||||
|
{
|
||||||
|
"id": "msl:curiosity"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"models": [
|
||||||
{
|
{
|
||||||
"id": "msl:curiosity",
|
"id": "msl:curiosity",
|
||||||
"priority": "preferred",
|
"priority": "preferred",
|
||||||
"model": {
|
"model": {
|
||||||
"type": "msl.curiosity",
|
"type": "msl.curiosity",
|
||||||
"name": "Mars Science Laboratory",
|
"name": "Mars Science Laboratory",
|
||||||
"composition": []
|
"composition": ["msl_tlm:rems"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -89,13 +92,7 @@ define([
|
|||||||
{
|
{
|
||||||
"key":"rems.adapter",
|
"key":"rems.adapter",
|
||||||
"implementation": RemsTelemetryServerAdapter,
|
"implementation": RemsTelemetryServerAdapter,
|
||||||
"depends": ["$q", "$http", "$log", "REMS_WS_URL"]
|
"depends": ["$http", "$log", "REMS_WS_URL"]
|
||||||
}
|
|
||||||
],
|
|
||||||
"runs": [
|
|
||||||
{
|
|
||||||
"implementation": RemsTelemetryInitializer,
|
|
||||||
"depends": ["rems.adapter", "objectService"]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"components": [
|
"components": [
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -44,31 +44,31 @@ define(
|
|||||||
{
|
{
|
||||||
"name": "Min. Air Temperature",
|
"name": "Min. Air Temperature",
|
||||||
"identifier": "min_temp",
|
"identifier": "min_temp",
|
||||||
"units": "degrees",
|
"units": "Degrees (C)",
|
||||||
"type": "float"
|
"type": "float"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Max. Air Temperature",
|
"name": "Max. Air Temperature",
|
||||||
"identifier": "max_temp",
|
"identifier": "max_temp",
|
||||||
"units": "degrees",
|
"units": "Degrees (C)",
|
||||||
"type": "float"
|
"type": "float"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Atmospheric Pressure",
|
"name": "Atmospheric Pressure",
|
||||||
"identifier": "pressure",
|
"identifier": "pressure",
|
||||||
"units": "pascals",
|
"units": "Millibars",
|
||||||
"type": "float"
|
"type": "float"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Min. Ground Temperature",
|
"name": "Min. Ground Temperature",
|
||||||
"identifier": "min_gts_temp",
|
"identifier": "min_gts_temp",
|
||||||
"units": "degrees",
|
"units": "Degrees (C)",
|
||||||
"type": "float"
|
"type": "float"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Max. Ground Temperature",
|
"name": "Max. Ground Temperature",
|
||||||
"identifier": "max_gts_temp",
|
"identifier": "max_gts_temp",
|
||||||
"units": "degrees",
|
"units": "Degrees (C)",
|
||||||
"type": "float"
|
"type": "float"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,71 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define*/
|
|
||||||
|
|
||||||
define(
|
|
||||||
function (){
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var TAXONOMY_ID = "msl:curiosity",
|
|
||||||
PREFIX = "msl_tlm:";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function that is executed on application startup and populates
|
|
||||||
* the navigation tree with objects representing the MSL REMS
|
|
||||||
* telemetry points. The tree is populated based on the data
|
|
||||||
* dictionary on the provider.
|
|
||||||
*
|
|
||||||
* @param {RemsTelemetryServerAdapter} adapter The server adapter
|
|
||||||
* (necessary in order to retrieve data dictionary)
|
|
||||||
* @param objectService the ObjectService which allows for lookup of
|
|
||||||
* objects by ID
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
function RemsTelemetryInitializer(adapter, objectService) {
|
|
||||||
function makeId(element) {
|
|
||||||
return PREFIX + element.identifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
function initializeTaxonomy(dictionary) {
|
|
||||||
function getTaxonomyObject(domainObjects) {
|
|
||||||
return domainObjects[TAXONOMY_ID];
|
|
||||||
}
|
|
||||||
|
|
||||||
function populateModel (taxonomyObject) {
|
|
||||||
return taxonomyObject.useCapability(
|
|
||||||
"mutation",
|
|
||||||
function (model) {
|
|
||||||
model.name = dictionary.name;
|
|
||||||
model.composition = dictionary.instruments.map(makeId);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
objectService.getObjects([TAXONOMY_ID])
|
|
||||||
.then(getTaxonomyObject)
|
|
||||||
.then(populateModel);
|
|
||||||
}
|
|
||||||
initializeTaxonomy(adapter.dictionary);
|
|
||||||
}
|
|
||||||
return RemsTelemetryInitializer;
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -42,14 +42,19 @@ define(
|
|||||||
* @param REMS_WS_URL The location of the REMS telemetry data.
|
* @param REMS_WS_URL The location of the REMS telemetry data.
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
function RemsTelemetryServerAdapter($q, $http, $log, REMS_WS_URL) {
|
function RemsTelemetryServerAdapter($http, $log, REMS_WS_URL) {
|
||||||
this.localDataURI = module.uri.substring(0, module.uri.lastIndexOf('/') + 1) + LOCAL_DATA;
|
this.localDataURI = module.uri.substring(0, module.uri.lastIndexOf('/') + 1) + LOCAL_DATA;
|
||||||
this.deferreds = {};
|
|
||||||
this.REMS_WS_URL = REMS_WS_URL;
|
this.REMS_WS_URL = REMS_WS_URL;
|
||||||
this.$q = $q;
|
|
||||||
this.$http = $http;
|
this.$http = $http;
|
||||||
this.$log = $log;
|
this.$log = $log;
|
||||||
this.cache = undefined;
|
this.promise = undefined;
|
||||||
|
|
||||||
|
this.dataTransforms = {
|
||||||
|
//Convert from pascals to millibars
|
||||||
|
'pressure': function pascalsToMillibars(pascals) {
|
||||||
|
return pascals / 100;
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -65,15 +70,12 @@ define(
|
|||||||
*/
|
*/
|
||||||
RemsTelemetryServerAdapter.prototype.requestHistory = function(request) {
|
RemsTelemetryServerAdapter.prototype.requestHistory = function(request) {
|
||||||
var self = this,
|
var self = this,
|
||||||
id = request.key,
|
id = request.key;
|
||||||
deferred = this.$q.defer();
|
|
||||||
|
var dataTransforms = this.dataTransforms;
|
||||||
|
|
||||||
function processResponse(response){
|
function processResponse(response){
|
||||||
var data = [];
|
var data = [];
|
||||||
/*
|
|
||||||
* Currently all data is returned for entire history of the mission. Cache response to avoid unnecessary re-queries.
|
|
||||||
*/
|
|
||||||
self.cache = response;
|
|
||||||
/*
|
/*
|
||||||
* History data is organised by Sol. Iterate over sols...
|
* History data is organised by Sol. Iterate over sols...
|
||||||
*/
|
*/
|
||||||
@ -82,13 +84,14 @@ define(
|
|||||||
* Check that valid data exists
|
* Check that valid data exists
|
||||||
*/
|
*/
|
||||||
if (!isNaN(solData[id])) {
|
if (!isNaN(solData[id])) {
|
||||||
|
var dataTransform = dataTransforms[id];
|
||||||
/*
|
/*
|
||||||
* Append each data point to the array of values
|
* Append each data point to the array of values
|
||||||
* for this data point property (min. temp, etc).
|
* for this data point property (min. temp, etc).
|
||||||
*/
|
*/
|
||||||
data.unshift({
|
data.unshift({
|
||||||
date: Date.parse(solData[TERRESTRIAL_DATE]),
|
date: Date.parse(solData[TERRESTRIAL_DATE]),
|
||||||
value: solData[id]
|
value: dataTransform ? dataTransform(solData[id]) : solData[id]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -110,17 +113,15 @@ define(
|
|||||||
}
|
}
|
||||||
|
|
||||||
function packageAndResolve(results){
|
function packageAndResolve(results){
|
||||||
deferred.resolve({id: id, values: results});
|
return {id: id, values: results};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
this.$q.when(this.cache || this.$http.get(this.REMS_WS_URL))
|
return (this.promise = this.promise || this.$http.get(this.REMS_WS_URL))
|
||||||
.catch(fallbackToLocal)
|
.catch(fallbackToLocal)
|
||||||
.then(processResponse)
|
.then(processResponse)
|
||||||
.then(filterResults)
|
.then(filterResults)
|
||||||
.then(packageAndResolve);
|
.then(packageAndResolve);
|
||||||
|
|
||||||
return deferred.promise;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -132,7 +133,6 @@ define(
|
|||||||
* @returns {Promise | Array<RemsTelemetryValue>} that resolves with an Array of {@link RemsTelemetryValue} objects for the request data key.
|
* @returns {Promise | Array<RemsTelemetryValue>} that resolves with an Array of {@link RemsTelemetryValue} objects for the request data key.
|
||||||
*/
|
*/
|
||||||
RemsTelemetryServerAdapter.prototype.history = function(request) {
|
RemsTelemetryServerAdapter.prototype.history = function(request) {
|
||||||
var id = request.key;
|
|
||||||
return this.requestHistory(request);
|
return this.requestHistory(request);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<span class="status block ok" ng-controller="DialogLaunchController">
|
<span class="h-indicator" ng-controller="DialogLaunchController">
|
||||||
<!-- DO NOT ADD SPACES BETWEEN THE SPANS - IT ADDS WHITE SPACE!! -->
|
<!-- DO NOT ADD SPACES BETWEEN THE SPANS - IT ADDS WHITE SPACE!! -->
|
||||||
<span class="ui-symbol status-indicator"></span><span class="label">
|
<div class="ls-indicator icon-box-with-arrow s-status-available"><span class="label">
|
||||||
<a ng-click="launchProgress(true)">Known</a> |
|
<a ng-click="launchProgress(true)">Known</a>
|
||||||
<a ng-click="launchProgress(false)">Unknown</a> |
|
<a ng-click="launchProgress(false)">Unknown</a>
|
||||||
<a ng-click="launchError()">Error</a> |
|
<a ng-click="launchError()">Error</a>
|
||||||
<a ng-click="launchInfo()">Info</a>
|
<a ng-click="launchInfo()">Info</a>
|
||||||
</span><span class="count">Dialogs</span>
|
</span></div>
|
||||||
</span>
|
</span>
|
@ -1,9 +1,9 @@
|
|||||||
<span class="status block ok" ng-controller="NotificationLaunchController">
|
<span class="h-indicator" ng-controller="NotificationLaunchController">
|
||||||
<!-- DO NOT ADD SPACES BETWEEN THE SPANS - IT ADDS WHITE SPACE!! -->
|
<!-- DO NOT ADD SPACES BETWEEN THE SPANS - IT ADDS WHITE SPACE!! -->
|
||||||
<span class="ui-symbol status-indicator"></span><span class="label">
|
<div class="ls-indicator icon-bell s-status-available"><span class="label">
|
||||||
<a ng-click="newInfo()">Success</a> |
|
<a ng-click="newInfo()">Success</a>
|
||||||
<a ng-click="newError()">Error</a> |
|
<a ng-click="newError()">Error</a>
|
||||||
<a ng-click="newAlert()">Alert</a> |
|
<a ng-click="newAlert()">Alert</a>
|
||||||
<a ng-click="newProgress()">Progress</a>
|
<a ng-click="newProgress()">Progress</a>
|
||||||
</span><span class="count">Notifications</span>
|
</span></div>
|
||||||
</span>
|
</span>
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -44,7 +44,8 @@ define(
|
|||||||
periodically with the progress of an ongoing process.
|
periodically with the progress of an ongoing process.
|
||||||
*/
|
*/
|
||||||
$scope.launchProgress = function (knownProgress) {
|
$scope.launchProgress = function (knownProgress) {
|
||||||
var model = {
|
var dialog,
|
||||||
|
model = {
|
||||||
title: "Progress Dialog Example",
|
title: "Progress Dialog Example",
|
||||||
progress: 0,
|
progress: 0,
|
||||||
hint: "Do not navigate away from this page or close this browser tab while this operation is in progress.",
|
hint: "Do not navigate away from this page or close this browser tab while this operation is in progress.",
|
||||||
@ -57,7 +58,7 @@ define(
|
|||||||
label: "Cancel Operation",
|
label: "Cancel Operation",
|
||||||
callback: function () {
|
callback: function () {
|
||||||
$log.debug("Operation cancelled");
|
$log.debug("Operation cancelled");
|
||||||
dialogService.dismiss();
|
dialog.dismiss();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -77,7 +78,9 @@ define(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dialogService.showBlockingMessage(model)) {
|
dialog = dialogService.showBlockingMessage(model);
|
||||||
|
|
||||||
|
if (dialog) {
|
||||||
//Do processing here
|
//Do processing here
|
||||||
model.actionText = "Processing 100 objects...";
|
model.actionText = "Processing 100 objects...";
|
||||||
if (knownProgress) {
|
if (knownProgress) {
|
||||||
@ -93,7 +96,8 @@ define(
|
|||||||
Demonstrates launching an error dialog
|
Demonstrates launching an error dialog
|
||||||
*/
|
*/
|
||||||
$scope.launchError = function () {
|
$scope.launchError = function () {
|
||||||
var model = {
|
var dialog,
|
||||||
|
model = {
|
||||||
title: "Error Dialog Example",
|
title: "Error Dialog Example",
|
||||||
actionText: "Something happened, and it was not good.",
|
actionText: "Something happened, and it was not good.",
|
||||||
severity: "error",
|
severity: "error",
|
||||||
@ -102,20 +106,21 @@ define(
|
|||||||
label: "Try Again",
|
label: "Try Again",
|
||||||
callback: function () {
|
callback: function () {
|
||||||
$log.debug("Try Again Pressed");
|
$log.debug("Try Again Pressed");
|
||||||
dialogService.dismiss();
|
dialog.dismiss();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "Cancel",
|
label: "Cancel",
|
||||||
callback: function () {
|
callback: function () {
|
||||||
$log.debug("Cancel Pressed");
|
$log.debug("Cancel Pressed");
|
||||||
dialogService.dismiss();
|
dialog.dismiss();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
dialog = dialogService.showBlockingMessage(model);
|
||||||
|
|
||||||
if (!dialogService.showBlockingMessage(model)) {
|
if (!dialog) {
|
||||||
$log.error("Could not display modal dialog");
|
$log.error("Could not display modal dialog");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -124,7 +129,8 @@ define(
|
|||||||
Demonstrates launching an error dialog
|
Demonstrates launching an error dialog
|
||||||
*/
|
*/
|
||||||
$scope.launchInfo = function () {
|
$scope.launchInfo = function () {
|
||||||
var model = {
|
var dialog,
|
||||||
|
model = {
|
||||||
title: "Info Dialog Example",
|
title: "Info Dialog Example",
|
||||||
actionText: "This is an example of a blocking info" +
|
actionText: "This is an example of a blocking info" +
|
||||||
" dialog. This dialog can be used to draw the user's" +
|
" dialog. This dialog can be used to draw the user's" +
|
||||||
@ -134,12 +140,14 @@ define(
|
|||||||
label: "OK",
|
label: "OK",
|
||||||
callback: function () {
|
callback: function () {
|
||||||
$log.debug("OK Pressed");
|
$log.debug("OK Pressed");
|
||||||
dialogService.dismiss();
|
dialog.dismiss();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!dialogService.showBlockingMessage(model)) {
|
dialog = dialogService.showBlockingMessage(model);
|
||||||
|
|
||||||
|
if (!dialog) {
|
||||||
$log.error("Could not display modal dialog");
|
$log.error("Could not display modal dialog");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -32,17 +32,15 @@ define(
|
|||||||
* launched for demonstration and testing purposes.
|
* launched for demonstration and testing purposes.
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function DialogLaunchIndicator() {
|
function DialogLaunchIndicator() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DialogLaunchIndicator.template = 'dialogLaunchTemplate';
|
DialogLaunchIndicator.template = 'dialogLaunchTemplate';
|
||||||
|
|
||||||
DialogLaunchIndicator.prototype.getGlyph = function () {
|
|
||||||
return "i";
|
|
||||||
};
|
|
||||||
DialogLaunchIndicator.prototype.getGlyphClass = function () {
|
DialogLaunchIndicator.prototype.getGlyphClass = function () {
|
||||||
return 'caution';
|
return 'ok';
|
||||||
};
|
};
|
||||||
DialogLaunchIndicator.prototype.getText = function () {
|
DialogLaunchIndicator.prototype.getText = function () {
|
||||||
return "Launch test dialog";
|
return "Launch test dialog";
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -26,17 +26,21 @@ define(
|
|||||||
function () {
|
function () {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A tool for manually invoking notifications. When included this
|
||||||
|
* indicator will allow for notifications of different types to be
|
||||||
|
* launched for demonstration and testing purposes.
|
||||||
|
* @constructor
|
||||||
|
*/
|
||||||
|
|
||||||
function NotificationLaunchIndicator() {
|
function NotificationLaunchIndicator() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NotificationLaunchIndicator.template = 'notificationLaunchTemplate';
|
NotificationLaunchIndicator.template = 'notificationLaunchTemplate';
|
||||||
|
|
||||||
NotificationLaunchIndicator.prototype.getGlyph = function () {
|
|
||||||
return "i";
|
|
||||||
};
|
|
||||||
NotificationLaunchIndicator.prototype.getGlyphClass = function () {
|
NotificationLaunchIndicator.prototype.getGlyphClass = function () {
|
||||||
return 'caution';
|
return 'ok';
|
||||||
};
|
};
|
||||||
NotificationLaunchIndicator.prototype.getText = function () {
|
NotificationLaunchIndicator.prototype.getText = function () {
|
||||||
return "Launch notification";
|
return "Launch notification";
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,146 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define*/
|
|
||||||
|
|
||||||
define([
|
|
||||||
'legacyRegistry',
|
|
||||||
'../../platform/commonUI/browse/src/InspectorRegion',
|
|
||||||
'../../platform/commonUI/regions/src/Region'
|
|
||||||
], function (
|
|
||||||
legacyRegistry,
|
|
||||||
InspectorRegion,
|
|
||||||
Region
|
|
||||||
) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a 'plot options' region part to the inspector region for the
|
|
||||||
* Telemetry Plot type only. {@link InspectorRegion} is a default region
|
|
||||||
* implementation that is added automatically to all types. In order to
|
|
||||||
* customize what appears in the inspector region, you can start from a
|
|
||||||
* blank slate by using Region, or customize the default inspector
|
|
||||||
* region by using {@link InspectorRegion}.
|
|
||||||
*/
|
|
||||||
var plotInspector = new InspectorRegion(),
|
|
||||||
/**
|
|
||||||
* Two region parts are defined here. One that appears only in browse
|
|
||||||
* mode, and one that appears only in edit mode. For not they both point
|
|
||||||
* to the same representation, but a different key could be used here to
|
|
||||||
* include a customized representation for edit mode.
|
|
||||||
*/
|
|
||||||
plotOptionsBrowseRegion = new Region({
|
|
||||||
name: "plot-options",
|
|
||||||
title: "Plot Options",
|
|
||||||
modes: ['browse'],
|
|
||||||
content: {
|
|
||||||
key: "plot-options-browse"
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
plotOptionsEditRegion = new Region({
|
|
||||||
name: "plot-options",
|
|
||||||
title: "Plot Options",
|
|
||||||
modes: ['edit'],
|
|
||||||
content: {
|
|
||||||
key: "plot-options-browse"
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Both parts are added, and policies of type 'region' will determine
|
|
||||||
* which is shown based on domain object state. A default policy is
|
|
||||||
* provided which will check the 'modes' attribute of the region part
|
|
||||||
* definition.
|
|
||||||
*/
|
|
||||||
plotInspector.addRegion(plotOptionsBrowseRegion);
|
|
||||||
plotInspector.addRegion(plotOptionsEditRegion);
|
|
||||||
|
|
||||||
legacyRegistry.register("example/plotType", {
|
|
||||||
"name": "Plot Type",
|
|
||||||
"description": "Example illustrating registration of a new object type",
|
|
||||||
"extensions": {
|
|
||||||
"types": [
|
|
||||||
{
|
|
||||||
"key": "plot",
|
|
||||||
"name": "Example Telemetry Plot",
|
|
||||||
"glyph": "\u0074",
|
|
||||||
"description": "For development use. A plot for displaying telemetry.",
|
|
||||||
"priority": 10,
|
|
||||||
"delegates": [
|
|
||||||
"telemetry"
|
|
||||||
],
|
|
||||||
"features": "creation",
|
|
||||||
"contains": [
|
|
||||||
{
|
|
||||||
"has": "telemetry"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"model": {
|
|
||||||
"composition": []
|
|
||||||
},
|
|
||||||
"inspector": plotInspector,
|
|
||||||
"telemetry": {
|
|
||||||
"source": "generator",
|
|
||||||
"domains": [
|
|
||||||
{
|
|
||||||
"key": "time",
|
|
||||||
"name": "Time"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "yesterday",
|
|
||||||
"name": "Yesterday"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "delta",
|
|
||||||
"name": "Delta",
|
|
||||||
"format": "example.delta"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ranges": [
|
|
||||||
{
|
|
||||||
"key": "sin",
|
|
||||||
"name": "Sine"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "cos",
|
|
||||||
"name": "Cosine"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"name": "Period",
|
|
||||||
"control": "textfield",
|
|
||||||
"cssclass": "l-small l-numeric",
|
|
||||||
"key": "period",
|
|
||||||
"required": true,
|
|
||||||
"property": [
|
|
||||||
"telemetry",
|
|
||||||
"period"
|
|
||||||
],
|
|
||||||
"pattern": "^\\d*(\\.\\d*)?$"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -59,11 +59,14 @@ define(
|
|||||||
update();
|
update();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
getGlyph: function () {
|
/**
|
||||||
return ".";
|
* Get the CSS class that defines the icon
|
||||||
},
|
* to display in this indicator. This will appear
|
||||||
getGlyphClass: function () {
|
* as a dataflow icon.
|
||||||
return undefined;
|
* @returns {string} the cssClass of the dataflow icon
|
||||||
|
*/
|
||||||
|
getCssClass: function () {
|
||||||
|
return "icon-connectivity";
|
||||||
},
|
},
|
||||||
getText: function () {
|
getText: function () {
|
||||||
return displayed + " digests/sec";
|
return displayed + " digests/sec";
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -55,24 +55,13 @@ define(
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
/**
|
/**
|
||||||
* Get the glyph (single character used as an icon)
|
* Get the CSS class (single character used as an icon)
|
||||||
* to display in this indicator. This will return ".",
|
* to display in this indicator. This will return ".",
|
||||||
* which should appear as a dataflow icon.
|
* which should appear as a database icon.
|
||||||
* @returns {string} the character of the database icon
|
* @returns {string} the character of the database icon
|
||||||
*/
|
*/
|
||||||
getGlyph: function () {
|
getCssClass: function () {
|
||||||
return "E";
|
return "icon-database";
|
||||||
},
|
|
||||||
/**
|
|
||||||
* Get the name of the CSS class to apply to the glyph.
|
|
||||||
* This is used to color the glyph to match its
|
|
||||||
* state (one of ok, caution or err)
|
|
||||||
* @returns {string} the CSS class to apply to this glyph
|
|
||||||
*/
|
|
||||||
getGlyphClass: function () {
|
|
||||||
return (watches > 2000) ? "caution" :
|
|
||||||
(watches < 1000) ? "ok" :
|
|
||||||
undefined;
|
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* Get the text that should appear in the indicator.
|
* Get the text that should appear in the indicator.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
@ -33,6 +33,11 @@ define([
|
|||||||
legacyRegistry.register("example/scratchpad", {
|
legacyRegistry.register("example/scratchpad", {
|
||||||
"extensions": {
|
"extensions": {
|
||||||
"roots": [
|
"roots": [
|
||||||
|
{
|
||||||
|
"id": "scratch:root"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"models": [
|
||||||
{
|
{
|
||||||
"id": "scratch:root",
|
"id": "scratch:root",
|
||||||
"model": {
|
"model": {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
* Open MCT, Copyright (c) 2014-2017, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
* License for the specific language governing permissions and limitations
|
* License for the specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
* Open MCT includes source code licensed under additional open source
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
* this source code distribution or the Licensing information page available
|
* this source code distribution or the Licensing information page available
|
||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
|
19
example/simpleVuePlugin/HelloWorld.vue
Normal file
19
example/simpleVuePlugin/HelloWorld.vue
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<template>
|
||||||
|
<div class="example">{{ msg }}</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
msg: 'Hello world!'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.example {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
</style>
|
37
example/simpleVuePlugin/plugin.js
Normal file
37
example/simpleVuePlugin/plugin.js
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import Vue from 'Vue';
|
||||||
|
import HelloWorld from './HelloWorld.vue';
|
||||||
|
|
||||||
|
function SimpleVuePlugin () {
|
||||||
|
return function install(openmct) {
|
||||||
|
var views = (openmct.mainViews || openmct.objectViews);
|
||||||
|
|
||||||
|
openmct.types.addType('hello-world', {
|
||||||
|
name: 'Hello World',
|
||||||
|
description: 'An introduction object',
|
||||||
|
creatable: true
|
||||||
|
});
|
||||||
|
openmct.objectViews.addProvider({
|
||||||
|
name: "demo-provider",
|
||||||
|
key: "hello-world",
|
||||||
|
cssClass: "icon-packet",
|
||||||
|
canView: function (d) {
|
||||||
|
return d.type === 'hello-world';
|
||||||
|
},
|
||||||
|
view: function (domainObject) {
|
||||||
|
var vm;
|
||||||
|
return {
|
||||||
|
show: function (container) {
|
||||||
|
vm = new Vue(HelloWorld);
|
||||||
|
container.appendChild(vm.$mount().$el);
|
||||||
|
},
|
||||||
|
destroy: function (container) {
|
||||||
|
vm.$destroy();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default SimpleVuePlugin
|
107
example/styleguide/bundle.js
Normal file
107
example/styleguide/bundle.js
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
define([
|
||||||
|
"./src/ExampleStyleGuideModelProvider",
|
||||||
|
"./src/MCTExample",
|
||||||
|
"./res/templates/intro.html",
|
||||||
|
"./res/templates/standards.html",
|
||||||
|
"./res/templates/colors.html",
|
||||||
|
"./res/templates/status.html",
|
||||||
|
"./res/templates/glyphs.html",
|
||||||
|
"./res/templates/controls.html",
|
||||||
|
"./res/templates/input.html",
|
||||||
|
"./res/templates/menus.html",
|
||||||
|
'legacyRegistry'
|
||||||
|
], function (
|
||||||
|
ExampleStyleGuideModelProvider,
|
||||||
|
MCTExample,
|
||||||
|
introTemplate,
|
||||||
|
standardsTemplate,
|
||||||
|
colorsTemplate,
|
||||||
|
statusTemplate,
|
||||||
|
glyphsTemplate,
|
||||||
|
controlsTemplate,
|
||||||
|
inputTemplate,
|
||||||
|
menusTemplate,
|
||||||
|
legacyRegistry
|
||||||
|
) {
|
||||||
|
legacyRegistry.register("example/styleguide", {
|
||||||
|
"name": "Open MCT Style Guide",
|
||||||
|
"description": "Examples and documentation illustrating UI styles in use in Open MCT.",
|
||||||
|
"extensions":
|
||||||
|
{
|
||||||
|
"types": [
|
||||||
|
{ "key": "styleguide.intro", "name": "Introduction", "cssClass": "icon-page", "description": "Introduction and overview to the style guide" },
|
||||||
|
{ "key": "styleguide.standards", "name": "Standards", "cssClass": "icon-page", "description": "" },
|
||||||
|
{ "key": "styleguide.colors", "name": "Colors", "cssClass": "icon-page", "description": "" },
|
||||||
|
{ "key": "styleguide.status", "name": "status", "cssClass": "icon-page", "description": "Limits, telemetry paused, etc." },
|
||||||
|
{ "key": "styleguide.glyphs", "name": "Glyphs", "cssClass": "icon-page", "description": "Glyphs overview" },
|
||||||
|
{ "key": "styleguide.controls", "name": "Controls", "cssClass": "icon-page", "description": "Buttons, selects, HTML controls" },
|
||||||
|
{ "key": "styleguide.input", "name": "Text Inputs", "cssClass": "icon-page", "description": "Various text inputs" },
|
||||||
|
{ "key": "styleguide.menus", "name": "Menus", "cssClass": "icon-page", "description": "Context menus, dropdowns" }
|
||||||
|
],
|
||||||
|
"views": [
|
||||||
|
{ "key": "styleguide.intro", "type": "styleguide.intro", "template": introTemplate, "editable": false },
|
||||||
|
{ "key": "styleguide.standards", "type": "styleguide.standards", "template": standardsTemplate, "editable": false },
|
||||||
|
{ "key": "styleguide.colors", "type": "styleguide.colors", "template": colorsTemplate, "editable": false },
|
||||||
|
{ "key": "styleguide.status", "type": "styleguide.status", "template": statusTemplate, "editable": false },
|
||||||
|
{ "key": "styleguide.glyphs", "type": "styleguide.glyphs", "template": glyphsTemplate, "editable": false },
|
||||||
|
{ "key": "styleguide.controls", "type": "styleguide.controls", "template": controlsTemplate, "editable": false },
|
||||||
|
{ "key": "styleguide.input", "type": "styleguide.input", "template": inputTemplate, "editable": false },
|
||||||
|
{ "key": "styleguide.menus", "type": "styleguide.menus", "template": menusTemplate, "editable": false }
|
||||||
|
],
|
||||||
|
"roots": [
|
||||||
|
{
|
||||||
|
"id": "styleguide:home"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"models": [
|
||||||
|
{
|
||||||
|
"id": "styleguide:home",
|
||||||
|
"priority" : "preferred",
|
||||||
|
"model": {
|
||||||
|
"type": "folder",
|
||||||
|
"name": "Style Guide Home",
|
||||||
|
"location": "ROOT",
|
||||||
|
"composition": [
|
||||||
|
"intro",
|
||||||
|
"standards",
|
||||||
|
"colors",
|
||||||
|
"status",
|
||||||
|
"glyphs",
|
||||||
|
"styleguide:ui-elements"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "styleguide:ui-elements",
|
||||||
|
"priority" : "preferred",
|
||||||
|
"model": {
|
||||||
|
"type": "folder",
|
||||||
|
"name": "UI Elements",
|
||||||
|
"location": "styleguide:home",
|
||||||
|
"composition": [
|
||||||
|
"controls",
|
||||||
|
"input",
|
||||||
|
"menus"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"directives": [
|
||||||
|
{
|
||||||
|
"key": "mctExample",
|
||||||
|
"implementation": MCTExample
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"provides": "modelService",
|
||||||
|
"type": "provider",
|
||||||
|
"implementation": ExampleStyleGuideModelProvider,
|
||||||
|
"depends": [
|
||||||
|
"$q"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
1
example/styleguide/res/images/diagram-containment.svg
Normal file
1
example/styleguide/res/images/diagram-containment.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 10 KiB |
1
example/styleguide/res/images/diagram-objects.svg
Normal file
1
example/styleguide/res/images/diagram-objects.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 8.7 KiB |
1
example/styleguide/res/images/diagram-views.svg
Normal file
1
example/styleguide/res/images/diagram-views.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 800 622.47"><defs><style>.a,.d{fill:#fff;}.b,.c,.k,.m,.n,.o{fill:none;}.b{stroke:#000;stroke-linecap:square;}.b,.c,.d,.f,.k,.m,.n,.o{stroke-miterlimit:10;}.b,.k{stroke-width:2px;}.c{stroke:#ababab;stroke-dasharray:5;}.d,.k,.o{stroke:#737373;}.e{opacity:0.5;fill:url(#a);}.f{fill:#d6d6d6;fill-opacity:0.8;stroke:#fff;}.g{mask:url(#b);}.h{fill:#a8a8a8;}.i{fill:#00b1e2;}.j{fill:#f16e86;}.k{stroke-linecap:round;}.l{mask:url(#c);}.m{stroke:#00b1e2;}.m,.n{stroke-width:10px;}.n{stroke:#f16e86;}</style><linearGradient id="a" x1="523.15" y1="-401.02" x2="513.75" y2="-437.16" gradientTransform="translate(90.62 338.26) rotate(45)" gradientUnits="userSpaceOnUse"><stop offset="0"/><stop offset="1" stop-opacity="0"/></linearGradient><mask id="b" x="-1187.45" y="-269.68" width="1813.84" height="554.26" maskUnits="userSpaceOnUse"><polygon class="a" points="625.33 284.58 452.55 238.2 452.55 170.5 625.33 216.88 625.33 284.58"/><line class="b" x1="486.25" y1="179.55" x2="486.25" y2="247.32"/><line class="b" x1="573.58" y1="202.99" x2="573.58" y2="270.76"/><line class="b" x1="452.46" y1="192.89" x2="625.16" y2="239.25"/><line class="b" x1="452.46" y1="215.48" x2="625.16" y2="261.83"/></mask><mask id="c" x="-1468.9" y="-163.59" width="1866.4" height="673.87" maskUnits="userSpaceOnUse"><polygon class="a" points="344.11 510.28 171.1 462.49 171.1 289.49 344.11 337.28 344.11 510.28"/></mask></defs><title>objects-diagram</title><polyline class="c" points="460.63 153.71 480.14 142.45 513.15 123.39"/><polyline class="c" points="312.69 239.13 336.82 225.2 365.42 208.68"/><polygon class="d" points="742.15 65.53 519.88 5.97 519.88 368.97 742.15 428.53 742.15 65.53"/><polygon class="e" points="742.15 428.53 742.15 377.47 786.44 403 742.15 428.53"/><polyline class="c" points="619.05 308.21 626.95 303.65 636.44 298.17"/><polygon class="f" points="637.26 156.11 443.71 104.25 443.71 402.92 637.26 454.78 637.26 156.11"/><g class="g"><polygon class="h" points="625.33 239.44 452.55 193.07 452.55 170.5 625.33 216.88 625.33 239.44"/><polygon class="i" points="625.33 262.01 452.55 215.64 452.55 193.07 625.33 239.44 625.33 262.01"/><polygon class="j" points="625.33 284.58 452.55 238.2 452.55 215.64 625.33 262.01 625.33 284.58"/></g><polyline class="c" points="467.58 395.66 481.45 387.65 490.54 382.4"/><polygon class="f" points="490.33 240.94 296.78 189.08 296.78 487.75 490.33 539.62 490.33 240.94"/><polygon class="h" points="386.94 387.36 314 367.78 314 238.33 386.94 257.91 386.94 387.36"/><line class="k" x1="402.02" y1="280.97" x2="355.33" y2="284.32"/><line class="k" x1="401.71" y1="316.74" x2="355.33" y2="291.74"/><polygon class="i" points="473.63 301.9 400.69 282.32 400.69 261.6 473.63 281.18 473.63 301.9"/><polygon class="j" points="473.63 337.63 400.69 318.05 400.69 297.32 473.63 316.9 473.63 337.63"/><polyline class="c" points="331.67 474.13 343.85 467.1 356.86 459.58"/><polyline class="c" points="183.35 313.8 207.44 299.89 231.58 285.96"/><polygon class="c" points="710.61 148.05 546.55 104.09 546.55 144.26 710.61 188.22 710.61 148.05"/><polygon class="c" points="710.61 215.05 546.55 171.09 546.55 211.26 710.61 255.22 710.61 215.05"/><line class="c" x1="162.68" y1="266.5" x2="533" y2="52.7"/><line class="c" x1="356.23" y1="617.04" x2="726.54" y2="403.24"/><polygon class="f" points="356.23 318.36 162.68 266.5 162.68 565.18 356.23 617.04 356.23 318.36"/><g class="l"><path class="m" d="M165.1,350.83c12-19.68,24-57.37,47,7s29,42,46,35.71,27,34.46,50,51.81,75,16.72,89,15.59"/><path class="n" d="M349.1,427.78c-9.13-13.05-13.7-31.26-31.2-9.54s-22.07,9.47-35,.86-20.55,6.69-38.05,6.89-67.08-25.38-77.73-30.61"/></g><polygon class="i" points="211.4 436.27 47.34 392.31 47.34 432.48 211.4 476.44 211.4 436.27"/><polygon class="o" points="211.4 436.27 47.34 392.31 47.34 432.48 211.4 476.44 211.4 436.27"/><polygon class="j" points="211.4 503.27 47.34 459.31 47.34 499.48 211.4 543.44 211.4 503.27"/><polygon class="o" points="211.4 503.27 47.34 459.31 47.34 499.48 211.4 543.44 211.4 503.27"/><line class="c" x1="513.15" y1="123.39" x2="544.97" y2="105.02"/><line class="c" x1="365.42" y1="208.68" x2="460.63" y2="153.71"/><line class="c" x1="231.58" y1="285.96" x2="312.69" y2="239.13"/><line class="c" x1="48.79" y1="391.49" x2="183.35" y2="313.8"/><line class="c" x1="636.44" y1="298.17" x2="709.92" y2="255.75"/><line class="c" x1="490.54" y1="382.4" x2="619.05" y2="308.21"/><line class="c" x1="356.86" y1="459.58" x2="467.58" y2="395.66"/><line class="c" x1="212.34" y1="543.03" x2="331.67" y2="474.13"/></svg>
|
After Width: | Height: | Size: 4.5 KiB |
84
example/styleguide/res/templates/colors.html
Normal file
84
example/styleguide/res/templates/colors.html
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
<!--
|
||||||
|
Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
Administration. All rights reserved.
|
||||||
|
|
||||||
|
Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
Open MCT includes source code licensed under additional open source
|
||||||
|
licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
this source code distribution or the Licensing information page available
|
||||||
|
at runtime from the About dialog for additional information.
|
||||||
|
-->
|
||||||
|
<div ng-init="colors = [
|
||||||
|
{ 'category': 'Interface', 'description': 'Colors used in the application envelope, buttons and controls.', 'items': [{ 'name': 'Body Background', 'constant': '$colorBodyBg', 'valEspresso': '#333', 'valSnow': '#fcfcfc' },
|
||||||
|
{ 'name': 'Body Foreground', 'constant': '$colorBodyFg', 'valEspresso': '#999', 'valSnow': '#666' },
|
||||||
|
{ 'name': 'Key Color Background', 'constant': '$colorKey', 'valEspresso': '#0099cc', 'valSnow': '#0099cc' },
|
||||||
|
{ 'name': 'Key Color Foreground', 'constant': '$colorKeyFg', 'valEspresso': '#fff', 'valSnow': '#fff' },
|
||||||
|
{ 'name': 'Paused Color Background', 'constant': '$colorPausedBg', 'valEspresso': '#c56f01', 'valSnow': '#ff9900' },
|
||||||
|
{ 'name': 'Paused Color Foreground', 'constant': '$colorPausedFg', 'valEspresso': '#fff', 'valSnow': '#fff' }]},
|
||||||
|
{ 'category': 'Forms', 'description': 'Colors in forms, mainly to articulate validation status.', 'items': [{ 'name': 'Valid Entry', 'constant': '$colorFormValid', 'valEspresso': '#33cc33', 'valSnow': '#33cc33' },
|
||||||
|
{ 'name': 'Errorenous Entry', 'constant': '$colorFormError', 'valEspresso': '#990000', 'valSnow': '#990000' },
|
||||||
|
{ 'name': 'Invalid Entry', 'constant': '$colorFormInvalid', 'valEspresso': '#ff3300', 'valSnow': '#ff2200' }]},
|
||||||
|
{ 'category': 'Application Status', 'description': 'Colors related to the status of application objects, such as a successful connection to a service.', 'items': [{ 'name': 'Alert Color', 'constant': '$colorAlert', 'valEspresso': '#ff3c00', 'valSnow': '#ff3c00' },
|
||||||
|
{ 'name': 'Status Color Foreground', 'constant': '$colorStatusFg', 'valEspresso': '#ccc', 'valSnow': '#fff' },
|
||||||
|
{ 'name': 'Default Status Color', 'constant': '$colorStatusDefault', 'valEspresso': '#ccc', 'valSnow': '#ccc' },
|
||||||
|
{ 'name': 'Status: Informational Color', 'constant': '$colorStatusInfo', 'valEspresso': '#62ba72', 'valSnow': '#60ba7b' },
|
||||||
|
{ 'name': 'Status: Alert Color', 'constant': '$colorStatusAlert', 'valEspresso': '#ffa66d', 'valSnow': '#ffb66c' },
|
||||||
|
{ 'name': 'Status: Error Color', 'constant': '$colorStatusError', 'valEspresso': '#d4585c', 'valSnow': '#c96b68' }]},
|
||||||
|
{ 'category': 'Telemetry Status', 'description': 'Telemetry status colors used to indicate limit violations and alarm states. Note that these colors should be reserved exclusively for this usage.', 'items': [{ 'name': 'Yellow Limit Color Background', 'constant': '$colorLimitYellowBg', 'valEspresso': 'rgba(255,170,0,0.3)', 'valSnow': 'rgba(255,170,0,0.3)' },
|
||||||
|
{ 'name': 'Yellow Limit Color Icon', 'constant': '$colorLimitYellowIc', 'valEspresso': '#ffaa00', 'valSnow': '#ffaa00' },
|
||||||
|
{ 'name': 'Red Limit Color Background', 'constant': '$colorLimitRedBg', 'valEspresso': 'rgba(255,0,0,0.3)', 'valSnow': 'rgba(255,0,0,0.3)' },
|
||||||
|
{ 'name': 'Red Limit Color Icon', 'constant': '$colorLimitRedIc', 'valEspresso': 'red', 'valSnow': 'red' }]}
|
||||||
|
]"></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="l-style-guide s-text">
|
||||||
|
<p class="doc-title">Open MCT Style Guide</p>
|
||||||
|
<h1>Colors</h1>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Overview</h2>
|
||||||
|
<p>In mission operations, color is used to convey meaning. Alerts, warnings and status conditions are by convention communicated with colors in the green, yellow and red families. Colors must also be reserved for use in plots. As a result, Open MCT uses color selectively and sparingly. Follow these guidelines:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Don't use red, orange, yellow or green colors in any element that isn't conveying some kind of status information.</li>
|
||||||
|
<li>Each theme has a key color (typically blue-ish) that should be used to emphasize interactive elements and important UI controls.</li>
|
||||||
|
<li>Within each theme values are used to push elements back or bring them forward, lowering or raising them in visual importance.
|
||||||
|
<span class="themed espresso">In this theme, Espresso, lighter colors are placed on a dark background. The lighter a color is, the more it comes toward the observer and is raised in importance.</span>
|
||||||
|
<span class="themed snow">In this theme, Snow, darker colors are placed on a light background. The darker a color is, the more it comes toward the observer and is raised in importance.</span>
|
||||||
|
</li>
|
||||||
|
<li>For consistency, use a theme's pre-defined status colors.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section" ng-repeat="colorSet in colors">
|
||||||
|
<h2>{{ colorSet.category }}</h2>
|
||||||
|
<p>{{ colorSet.description }}</p>
|
||||||
|
<div class="items-holder grid">
|
||||||
|
<div class="item swatch-item" ng-repeat="color in colorSet.items">
|
||||||
|
<div class="h-swatch">
|
||||||
|
<div class="swatch themed espresso" style="background-color: {{ color.valEspresso }}"></div>
|
||||||
|
<div class="swatch themed snow" style="background-color: {{ color.valSnow }}"></div>
|
||||||
|
</div>
|
||||||
|
<table class="details">
|
||||||
|
<tr><td class="label">Name</td><td class="value">{{color.name}}</td></tr>
|
||||||
|
<tr><td class="label">SASS</td><td class="value">{{color.constant}}</td></tr>
|
||||||
|
<tr><td class="label">Value</td><td class="value">
|
||||||
|
<span class="themed espresso">{{color.valEspresso}}</span>
|
||||||
|
<span class="themed snow">{{color.valSnow}}</span>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
172
example/styleguide/res/templates/controls.html
Normal file
172
example/styleguide/res/templates/controls.html
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
<!--
|
||||||
|
Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
Administration. All rights reserved.
|
||||||
|
|
||||||
|
Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
Open MCT includes source code licensed under additional open source
|
||||||
|
licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
this source code distribution or the Licensing information page available
|
||||||
|
at runtime from the About dialog for additional information.
|
||||||
|
-->
|
||||||
|
<div class="l-style-guide s-text">
|
||||||
|
<p class="doc-title">Open MCT Style Guide</p>
|
||||||
|
<h1>Controls</h1>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Standard Buttons</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Use a standard button in locations where there's sufficient room and you must make it clear that the element is an interactive button element. Buttons can be displayed with only an icon, only text, or with icon and text combined.</p>
|
||||||
|
<p>Use an icon whenever possible to aid the user's recognition and recall. If both and icon and text are to be used, the text must be within a <code>span</code> with class <code>.title-label</code>.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><a class="s-button icon-pencil" title="Edit"></a>
|
||||||
|
<a class="s-button" title="Edit">Edit</a>
|
||||||
|
<a class="s-button icon-pencil" title="Edit">
|
||||||
|
<span class="title-label">Edit</span>
|
||||||
|
</a>
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>"Major" Buttons</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Major buttons allow emphasis to be placed on a button. Use this on a single button when the user has a small number of choices, and one choice is a normal default. Just add <code>.major</code> to any element that uses <code>.s-button</code>.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><a class="s-button major">Ok</a>
|
||||||
|
<a class="s-button">Cancel</a>
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Button Sets</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Use button sets to connect buttons that have related purpose or functionality. Buttons in a set round the outer corners of only the first and last buttons, any other buttons in the middle simply get division spacers.</p>
|
||||||
|
<p>To use, simply wrap two or more <code>.s-button</code> elements within <code>.l-btn-set</code>.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><span class="l-btn-set">
|
||||||
|
<a class="s-button icon-magnify"></a>
|
||||||
|
<a class="s-button icon-magnify-in"></a>
|
||||||
|
<a class="s-button icon-magnify-out"></a>
|
||||||
|
</span>
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Icon-only Buttons</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>When a button is presented within another control it may be advantageous to avoid visual clutter by using an icon-only button. These type of controls present an icon without the "base" of standard buttons. Icon-only buttons should only be used in a context where they are clearly an interactive element and not an object-type identifier, and should not be used with text.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><a class="s-icon-button icon-pencil" title="Edit"></a>
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Checkboxes</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Checkboxes use a combination of minimal additional markup with CSS to present a custom and common look-and-feel across platforms.</p>
|
||||||
|
<p>The basic structure is a <code>label</code> with a checkbox-type input and an <code>em</code> element inside. The <code>em</code> is needed as the holder of the custom element; the input itself is hidden. Putting everything inside the <code>label</code> allows the label itself to act as a clickable element.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><label class="checkbox custom no-text">
|
||||||
|
<input type="checkbox" />
|
||||||
|
<em></em>
|
||||||
|
</label>
|
||||||
|
<br />
|
||||||
|
<label class="checkbox custom no-text">
|
||||||
|
<input type="checkbox" checked />
|
||||||
|
<em></em>
|
||||||
|
</label>
|
||||||
|
<br />
|
||||||
|
<label class="checkbox custom">Labeled checkbox
|
||||||
|
<input type="checkbox" />
|
||||||
|
<em></em>
|
||||||
|
</label></mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Radio Buttons</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Radio buttons use the same technique as checkboxes above.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><label class="radio custom">Red
|
||||||
|
<input name="Alarm Status" type="radio" />
|
||||||
|
<em></em>
|
||||||
|
</label>
|
||||||
|
<br />
|
||||||
|
<label class="radio custom">Orange
|
||||||
|
<input name="Alarm Status" type="radio" checked />
|
||||||
|
<em></em>
|
||||||
|
</label>
|
||||||
|
<br />
|
||||||
|
<label class="radio custom">Yellow
|
||||||
|
<input name="Alarm Status" type="radio" />
|
||||||
|
<em></em>
|
||||||
|
</label>
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Selects</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Similar to checkboxes and radio buttons, selects use a combination of minimal additional markup with CSS to present a custom and common look-and-feel across platforms. The <code>select</code> element is wrapped by another element, such as a <code>div</code>, which acts as the main display element for the styling. The <code>select</code> provides the click and select functionality, while having all of its native look-and-feel suppressed.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><div class="select">
|
||||||
|
<select>
|
||||||
|
<option value="" selected="selected">- Select One -</option>
|
||||||
|
<option value="Colussus">Colussus</option>
|
||||||
|
<option value="HAL 9000">HAL 9000</option>
|
||||||
|
<option value="Mother">Mother</option>
|
||||||
|
<option value="Skynet">Skynet</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Local Controls</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Local controls are typically buttons and selects that provide actions in close proximity to a component.</p>
|
||||||
|
<p>These controls can optionally be hidden to reduce clutter until the user hovers their cursor over an enclosing element. To use this approach, apply the class <code>.has-local-controls</code> to the element that should be aware of the hover and ensure that element encloses <code>.h-local-controls</code>.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><div class="plot-display-area" style="padding: 10px; position: relative;">
|
||||||
|
Some content in here
|
||||||
|
<div class="h-local-controls h-local-controls-overlay-content l-btn-set">
|
||||||
|
<a class="s-button icon-arrow-left" title="Restore previous pan/zoom"></a>
|
||||||
|
<a class="s-button icon-reset" title="Reset pan/zoom"></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="plot-display-area has-local-controls" style="padding: 10px; position: relative;">
|
||||||
|
Hover here
|
||||||
|
<div class="h-local-controls h-local-controls-overlay-content local-controls-hidden l-btn-set">
|
||||||
|
<a class="s-button icon-arrow-left" title="Restore previous pan/zoom"></a>
|
||||||
|
<a class="s-button icon-reset" title="Reset pan/zoom"></a>
|
||||||
|
</div>
|
||||||
|
</div></mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
216
example/styleguide/res/templates/glyphs.html
Normal file
216
example/styleguide/res/templates/glyphs.html
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
<!--
|
||||||
|
Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
Administration. All rights reserved.
|
||||||
|
|
||||||
|
Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
Open MCT includes source code licensed under additional open source
|
||||||
|
licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
this source code distribution or the Licensing information page available
|
||||||
|
at runtime from the About dialog for additional information.
|
||||||
|
-->
|
||||||
|
<div ng-init="general= [{ 'meaning': 'Pay attention', 'cssClass': 'icon-alert-rect', 'cssContent': 'e900', 'htmlEntity': '&#xe900' },
|
||||||
|
{ 'meaning': 'Warning', 'cssClass': 'icon-alert-triangle', 'cssContent': 'e901', 'htmlEntity': '&#xe901' },
|
||||||
|
{ 'meaning': 'Invoke menu', 'cssClass': 'icon-arrow-down', 'cssContent': 'e902', 'htmlEntity': '&#xe902' },
|
||||||
|
{ 'meaning': 'General usage arrow pointing left', 'cssClass': 'icon-arrow-left', 'cssContent': 'e903', 'htmlEntity': '&#xe903' },
|
||||||
|
{ 'meaning': 'General usage arrow pointing right', 'cssClass': 'icon-arrow-right', 'cssContent': 'e904', 'htmlEntity': '&#xe904' },
|
||||||
|
{ 'meaning': 'Upper limit, red', 'cssClass': 'icon-arrow-double-up', 'cssContent': 'e905', 'htmlEntity': '&#xe905' },
|
||||||
|
{ 'meaning': 'Upper limit, yellow', 'cssClass': 'icon-arrow-tall-up', 'cssContent': 'e906', 'htmlEntity': '&#xe906' },
|
||||||
|
{ 'meaning': 'Lower limit, yellow', 'cssClass': 'icon-arrow-tall-down', 'cssContent': 'e907', 'htmlEntity': '&#xe907' },
|
||||||
|
{ 'meaning': 'Lower limit, red', 'cssClass': 'icon-arrow-double-down', 'cssContent': 'e908', 'htmlEntity': '&#xe908' },
|
||||||
|
{ 'meaning': 'General usage arrow pointing up', 'cssClass': 'icon-arrow-up', 'cssContent': 'e909', 'htmlEntity': '&#xe909' },
|
||||||
|
{ 'meaning': 'Required form element', 'cssClass': 'icon-asterisk', 'cssContent': 'e910', 'htmlEntity': '&#xe910' },
|
||||||
|
{ 'meaning': 'Alert', 'cssClass': 'icon-bell', 'cssContent': 'e911', 'htmlEntity': '&#xe911' },
|
||||||
|
{ 'meaning': 'General usage box symbol', 'cssClass': 'icon-box', 'cssContent': 'e912', 'htmlEntity': '&#xe912' },
|
||||||
|
{ 'meaning': 'Click on or into', 'cssClass': 'icon-box-with-arrow', 'cssContent': 'e913', 'htmlEntity': '&#xe913' },
|
||||||
|
{ 'meaning': 'General usage checkmark, used in checkboxes; complete', 'cssClass': 'icon-check', 'cssContent': 'e914', 'htmlEntity': '&#xe914' },
|
||||||
|
{ 'meaning': 'Connected', 'cssClass': 'icon-connectivity', 'cssContent': 'e915', 'htmlEntity': '&#xe915' },
|
||||||
|
{ 'meaning': 'Status: DB connected', 'cssClass': 'icon-database-in-brackets', 'cssContent': 'e916', 'htmlEntity': '&#xe916' },
|
||||||
|
{ 'meaning': 'View or make visible', 'cssClass': 'icon-eye-open', 'cssContent': 'e917', 'htmlEntity': '&#xe917' },
|
||||||
|
{ 'meaning': 'Settings, properties', 'cssClass': 'icon-gear', 'cssContent': 'e918', 'htmlEntity': '&#xe918' },
|
||||||
|
{ 'meaning': 'Process, progress, time', 'cssClass': 'icon-hourglass', 'cssContent': 'e919', 'htmlEntity': '&#xe919' },
|
||||||
|
{ 'meaning': 'Info', 'cssClass': 'icon-info', 'cssContent': 'e920', 'htmlEntity': '&#xe920' },
|
||||||
|
{ 'meaning': 'Link (alias)', 'cssClass': 'icon-link', 'cssContent': 'e921', 'htmlEntity': '&#xe921' },
|
||||||
|
{ 'meaning': 'Locked', 'cssClass': 'icon-lock', 'cssContent': 'e922', 'htmlEntity': '&#xe922' },
|
||||||
|
{ 'meaning': 'General usage minus symbol; used in timer object', 'cssClass': 'icon-minus', 'cssContent': 'e923', 'htmlEntity': '&#xe923' },
|
||||||
|
{ 'meaning': 'An item that is shared', 'cssClass': 'icon-people', 'cssContent': 'e924', 'htmlEntity': '&#xe924' },
|
||||||
|
{ 'meaning': 'User profile or belonging to an individual', 'cssClass': 'icon-person', 'cssContent': 'e925', 'htmlEntity': '&#xe925' },
|
||||||
|
{ 'meaning': 'General usage plus symbol; used in timer object', 'cssClass': 'icon-plus', 'cssContent': 'e926', 'htmlEntity': '&#xe926' },
|
||||||
|
{ 'meaning': 'Delete', 'cssClass': 'icon-trash', 'cssContent': 'e927', 'htmlEntity': '&#xe927' },
|
||||||
|
{ 'meaning': 'Close, remove', 'cssClass': 'icon-x', 'cssContent': 'e928', 'htmlEntity': '&#xe928' },
|
||||||
|
{ 'meaning': 'Enclosing, inclusive; used in Time Conductor', 'cssClass': 'icon-brackets', 'cssContent': 'e929', 'htmlEntity': '&#xe929' },
|
||||||
|
{ 'meaning': 'Something is targeted', 'cssClass': 'icon-crosshair', 'cssContent': 'e930', 'htmlEntity': '&#xe930' },
|
||||||
|
{ 'meaning': 'Draggable', 'cssClass': 'icon-grippy', 'cssContent': 'e931', 'htmlEntity': '&#xe931' }
|
||||||
|
]; controls= [{ 'meaning': 'Reset zoom/pam', 'cssClass': 'icon-arrows-out', 'cssContent': 'e1000', 'htmlEntity': '&#xe1000' },
|
||||||
|
{ 'meaning': 'Expand vertically', 'cssClass': 'icon-arrows-right-left', 'cssContent': 'e1001', 'htmlEntity': '&#xe1001' },
|
||||||
|
{ 'meaning': 'View scrolling', 'cssClass': 'icon-arrows-up-down', 'cssContent': 'e1002', 'htmlEntity': '&#xe1002' },
|
||||||
|
{ 'meaning': 'Bullet; used in radio buttons', 'cssClass': 'icon-bullet', 'cssContent': 'e1004', 'htmlEntity': '&#xe1004' },
|
||||||
|
{ 'meaning': 'Invoke datetime picker', 'cssClass': 'icon-calendar', 'cssContent': 'e1005', 'htmlEntity': '&#xe1005' },
|
||||||
|
{ 'meaning': 'Web link', 'cssClass': 'icon-chain-links', 'cssContent': 'e1006', 'htmlEntity': '&#xe1006' },
|
||||||
|
{ 'meaning': 'Collapse left', 'cssClass': 'icon-collapse-pane-left', 'cssContent': 'e1007', 'htmlEntity': '&#xe1007' },
|
||||||
|
{ 'meaning': 'Collapse right', 'cssClass': 'icon-collapse-pane-right', 'cssContent': 'e1008', 'htmlEntity': '&#xe1008' },
|
||||||
|
{ 'meaning': 'Download', 'cssClass': 'icon-download', 'cssContent': 'e1009', 'htmlEntity': '&#xe1009' },
|
||||||
|
{ 'meaning': 'Copy/Duplicate', 'cssClass': 'icon-duplicate', 'cssContent': 'e1010', 'htmlEntity': '&#xe1010' },
|
||||||
|
{ 'meaning': 'New folder', 'cssClass': 'icon-folder-new', 'cssContent': 'e1011', 'htmlEntity': '&#xe1011' },
|
||||||
|
{ 'meaning': 'Exit fullscreen mode', 'cssClass': 'icon-fullscreen-collapse', 'cssContent': 'e1012', 'htmlEntity': '&#xe1012' },
|
||||||
|
{ 'meaning': 'Display fullscreen', 'cssClass': 'icon-fullscreen-expand', 'cssContent': 'e1013', 'htmlEntity': '&#xe1013' },
|
||||||
|
{ 'meaning': 'Layer order', 'cssClass': 'icon-layers', 'cssContent': 'e1014', 'htmlEntity': '&#xe1014' },
|
||||||
|
{ 'meaning': 'Line color', 'cssClass': 'icon-line-horz', 'cssContent': 'e1015', 'htmlEntity': '&#xe1015' },
|
||||||
|
{ 'meaning': 'Search', 'cssClass': 'icon-magnify', 'cssContent': 'e1016', 'htmlEntity': '&#xe1016' },
|
||||||
|
{ 'meaning': 'Zoom in', 'cssClass': 'icon-magnify-in', 'cssContent': 'e1017', 'htmlEntity': '&#xe1017' },
|
||||||
|
{ 'meaning': 'Zoom out', 'cssClass': 'icon-magnify-out', 'cssContent': 'e1018', 'htmlEntity': '&#xe1018' },
|
||||||
|
{ 'meaning': 'Menu', 'cssClass': 'icon-menu-hamburger', 'cssContent': 'e1019', 'htmlEntity': '&#xe1019' },
|
||||||
|
{ 'meaning': 'Move', 'cssClass': 'icon-move', 'cssContent': 'e1020', 'htmlEntity': '&#xe1020' },
|
||||||
|
{ 'meaning': 'Open in new window', 'cssClass': 'icon-new-window', 'cssContent': 'e1021', 'htmlEntity': '&#xe1021' },
|
||||||
|
{ 'meaning': 'Fill', 'cssClass': 'icon-paint-bucket', 'cssContent': 'e1022', 'htmlEntity': '&#xe1022' },
|
||||||
|
{ 'meaning': 'Pause real-time streaming', 'cssClass': 'icon-pause', 'cssContent': 'e1023', 'htmlEntity': '&#xe1023' },
|
||||||
|
{ 'meaning': 'Edit', 'cssClass': 'icon-pencil', 'cssContent': 'e1024', 'htmlEntity': '&#xe1024' },
|
||||||
|
{ 'meaning': 'Stop pause, resume real-time streaming', 'cssClass': 'icon-play', 'cssContent': 'e1025', 'htmlEntity': '&#xe1025' },
|
||||||
|
{ 'meaning': 'Plot resources', 'cssClass': 'icon-plot-resource', 'cssContent': 'e1026', 'htmlEntity': '&#xe1026' },
|
||||||
|
{ 'meaning': 'Previous', 'cssClass': 'icon-pointer-left', 'cssContent': 'e1027', 'htmlEntity': '&#xe1027' },
|
||||||
|
{ 'meaning': 'Next, navigate to', 'cssClass': 'icon-pointer-right', 'cssContent': 'e1028', 'htmlEntity': '&#xe1028' },
|
||||||
|
{ 'meaning': 'Refresh', 'cssClass': 'icon-refresh', 'cssContent': 'e1029', 'htmlEntity': '&#xe1029' },
|
||||||
|
{ 'meaning': 'Save', 'cssClass': 'icon-save', 'cssContent': 'e1030', 'htmlEntity': '&#xe1030' },
|
||||||
|
{ 'meaning': 'View plot', 'cssClass': 'icon-sine', 'cssContent': 'e1031', 'htmlEntity': '&#xe1031' },
|
||||||
|
{ 'meaning': 'Text color', 'cssClass': 'icon-T', 'cssContent': 'e1032', 'htmlEntity': '&#xe1032' },
|
||||||
|
{ 'meaning': 'Image thumbs strip; view items grid', 'cssClass': 'icon-thumbs-strip', 'cssContent': 'e1033', 'htmlEntity': '&#xe1033' },
|
||||||
|
{ 'meaning': 'Two part item, both parts', 'cssClass': 'icon-two-parts-both', 'cssContent': 'e1034', 'htmlEntity': '&#xe1034' },
|
||||||
|
{ 'meaning': 'Two part item, one only', 'cssClass': 'icon-two-parts-one-only', 'cssContent': 'e1035', 'htmlEntity': '&#xe1035' },
|
||||||
|
{ 'meaning': 'Resync', 'cssClass': 'icon-resync', 'cssContent': 'e1036', 'htmlEntity': '&#xe1036' },
|
||||||
|
{ 'meaning': 'Reset', 'cssClass': 'icon-reset', 'cssContent': 'e1037', 'htmlEntity': '&#xe1037' },
|
||||||
|
{ 'meaning': 'Clear', 'cssClass': 'icon-x-in-circle', 'cssContent': 'e1038', 'htmlEntity': '&#xe1038' },
|
||||||
|
{ 'meaning': 'Brightness', 'cssClass': 'icon-brightness', 'cssContent': 'e1039', 'htmlEntity': '&#xe1039' },
|
||||||
|
{ 'meaning': 'Contrast', 'cssClass': 'icon-contrast', 'cssContent': 'e1040', 'htmlEntity': '&#xe1040' },
|
||||||
|
{ 'meaning': 'Expand', 'cssClass': 'icon-expand', 'cssContent': 'e1041', 'htmlEntity': '&#xe1041' },
|
||||||
|
{ 'meaning': 'View items in a tabular list', 'cssClass': 'icon-list-view', 'cssContent': 'e1042', 'htmlEntity': '&#xe1042' },
|
||||||
|
{ 'meaning': 'Snap an object corner to a grid', 'cssClass': 'icon-grid-snap-to', 'cssContent': 'e1043', 'htmlEntity': '&#xe1043' },
|
||||||
|
{ 'meaning': 'Do not snap an object corner to a grid', 'cssClass': 'icon-grid-snap-no', 'cssContent': 'e1044', 'htmlEntity': '&#xe1044' },
|
||||||
|
{ 'meaning': 'Show an object frame in a Display Layout', 'cssClass': 'icon-frame-show', 'cssContent': 'e1045', 'htmlEntity': '&#xe1045' },
|
||||||
|
{ 'meaning': 'Do not show an object frame in a Display Layout', 'cssClass': 'icon-frame-hide', 'cssContent': 'e1046', 'htmlEntity': '&#xe1046' }
|
||||||
|
]; objects= [{ 'meaning': 'Activity', 'cssClass': 'icon-activity', 'cssContent': 'e1100', 'htmlEntity': '&#xe1100' },
|
||||||
|
{ 'meaning': 'Activity Mode', 'cssClass': 'icon-activity-mode', 'cssContent': 'e1101', 'htmlEntity': '&#xe1101' },
|
||||||
|
{ 'meaning': 'Auto-flow Tabular view', 'cssClass': 'icon-autoflow-tabular', 'cssContent': 'e1102', 'htmlEntity': '&#xe1102' },
|
||||||
|
{ 'meaning': 'Clock object type', 'cssClass': 'icon-clock', 'cssContent': 'e1103', 'htmlEntity': '&#xe1103' },
|
||||||
|
{ 'meaning': 'Database', 'cssClass': 'icon-database', 'cssContent': 'e1104', 'htmlEntity': '&#xe1104' },
|
||||||
|
{ 'meaning': 'Data query', 'cssClass': 'icon-database-query', 'cssContent': 'e1105', 'htmlEntity': '&#xe1105' },
|
||||||
|
{ 'meaning': 'Data Set domain object', 'cssClass': 'icon-dataset', 'cssContent': 'e1106', 'htmlEntity': '&#xe1106' },
|
||||||
|
{ 'meaning': 'Datatable, channel table', 'cssClass': 'icon-datatable', 'cssContent': 'e1107', 'htmlEntity': '&#xe1107' },
|
||||||
|
{ 'meaning': 'Dictionary', 'cssClass': 'icon-dictionary', 'cssContent': 'e1108', 'htmlEntity': '&#xe1108' },
|
||||||
|
{ 'meaning': 'Folder', 'cssClass': 'icon-folder', 'cssContent': 'e1109', 'htmlEntity': '&#xe1109' },
|
||||||
|
{ 'meaning': 'Imagery', 'cssClass': 'icon-image', 'cssContent': 'e1110', 'htmlEntity': '&#xe1110' },
|
||||||
|
{ 'meaning': 'Display Layout', 'cssClass': 'icon-layout', 'cssContent': 'e1111', 'htmlEntity': '&#xe1111' },
|
||||||
|
{ 'meaning': 'Generic Object', 'cssClass': 'icon-object', 'cssContent': 'e1112', 'htmlEntity': '&#xe1112' },
|
||||||
|
{ 'meaning': 'Unknown object type', 'cssClass': 'icon-object-unknown', 'cssContent': 'e1113', 'htmlEntity': '&#xe1113' },
|
||||||
|
{ 'meaning': 'Packet domain object', 'cssClass': 'icon-packet', 'cssContent': 'e1114', 'htmlEntity': '&#xe1114' },
|
||||||
|
{ 'meaning': 'Page', 'cssClass': 'icon-page', 'cssContent': 'e1115', 'htmlEntity': '&#xe1115' },
|
||||||
|
{ 'meaning': 'Overlay plot', 'cssClass': 'icon-plot-overlay', 'cssContent': 'e1116', 'htmlEntity': '&#xe1116' },
|
||||||
|
{ 'meaning': 'Stacked plot', 'cssClass': 'icon-plot-stacked', 'cssContent': 'e1117', 'htmlEntity': '&#xe1117' },
|
||||||
|
{ 'meaning': 'Session object', 'cssClass': 'icon-session', 'cssContent': 'e1118', 'htmlEntity': '&#xe1118' },
|
||||||
|
{ 'meaning': 'Table', 'cssClass': 'icon-tabular', 'cssContent': 'e1119', 'htmlEntity': '&#xe1119' },
|
||||||
|
{ 'meaning': 'Latest available data object', 'cssClass': 'icon-tabular-lad', 'cssContent': 'e1120', 'htmlEntity': '&#xe1120' },
|
||||||
|
{ 'meaning': 'Latest available data set', 'cssClass': 'icon-tabular-lad-set', 'cssContent': 'e1121', 'htmlEntity': '&#xe1121' },
|
||||||
|
{ 'meaning': 'Real-time table view', 'cssClass': 'icon-tabular-realtime', 'cssContent': 'e1122', 'htmlEntity': '&#xe1122' },
|
||||||
|
{ 'meaning': 'Real-time scrolling table', 'cssClass': 'icon-tabular-scrolling', 'cssContent': 'e1123', 'htmlEntity': '&#xe1123' },
|
||||||
|
{ 'meaning': 'Telemetry element', 'cssClass': 'icon-telemetry', 'cssContent': 'e1124', 'htmlEntity': '&#xe1124' },
|
||||||
|
{ 'meaning': 'Telemetry Panel object', 'cssClass': 'icon-telemetry-panel', 'cssContent': 'e1125', 'htmlEntity': '&#xe1125' },
|
||||||
|
{ 'meaning': 'Timeline object', 'cssClass': 'icon-timeline', 'cssContent': 'e1126', 'htmlEntity': '&#xe1126' },
|
||||||
|
{ 'meaning': 'Timer object', 'cssClass': 'icon-timer', 'cssContent': 'e1127', 'htmlEntity': '&#xe1127' },
|
||||||
|
{ 'meaning': 'Data Topic', 'cssClass': 'icon-topic', 'cssContent': 'e1128', 'htmlEntity': '&#xe1128' },
|
||||||
|
{ 'meaning': 'Fixed Position object', 'cssClass': 'icon-box-with-dashed-lines', 'cssContent': 'e1129', 'htmlEntity': '&#xe1129' },
|
||||||
|
{ 'meaning': 'Summary Widget', 'cssClass': 'icon-summary-widget', 'cssContent': 'e1130', 'htmlEntity': '&#xe1130' },
|
||||||
|
{ 'meaning': 'Notebook object', 'cssClass': 'icon-notebook', 'cssContent': 'e1131', 'htmlEntity': '&#xe1131' }
|
||||||
|
];
|
||||||
|
"></div>
|
||||||
|
|
||||||
|
<div class="l-style-guide s-text">
|
||||||
|
<p class="doc-title">Open MCT Style Guide</p>
|
||||||
|
<h1>Glyphs</h1>
|
||||||
|
<div class="l-section">
|
||||||
|
<p>Symbolic glyphs are used extensively in Open MCT to call attention to interactive elements, identify objects, and aid in visual recall. Glyphs are made available in a custom symbols font, and have associated CSS classes for their usage. Using a font in this way (versus using images or sprites) has advantages in that each symbol is in effect a scalable vector that can be sized up or down as needed. Color can also quite easily be applied via CSS.</p>
|
||||||
|
<p>New glyphs can be added if needed. Take care to observe the following guidelines:
|
||||||
|
<ul>
|
||||||
|
<li>Symbols should be created at 512 pixels high, and no more than 512 pixels wide. This size is based on a "crisp" 16px approach. Find out more about <a class="link" target="_blank" href="http://asimpleframe.com/writing/custom-icon-font-tutorial-icomoon">crisp symbol fonts</a>.</li>
|
||||||
|
<li>In general, the symbol should occupy most of a square area as possible; avoid symbol aspect ratios that are squat or tall.</li>
|
||||||
|
<li>For consistency and legibility, symbols are designed as mostly solid shapes. Avoid using thin lines or fine detail that will be lost when the icon is sized down. In general, no stroke should be less than 32 pixels.</li>
|
||||||
|
<li>Symbols should be legible down to a minimum of 12 x 12 pixels.</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>How to Use Glyphs</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>The easiest way to use a glyph is to include its CSS class in an element. The CSS adds a psuedo <code>:before</code> HTML element to whatever element it's attached to that makes proper use of the symbols font.</p>
|
||||||
|
<p>Alternately, you can use the <code>.ui-symbol</code> class in an object that contains encoded HTML entities. This method is only recommended if you cannot use the aforementioned CSS class approach.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><a class="s-button icon-gear" title="Settings"></a>
|
||||||
|
<br /><br />
|
||||||
|
<a class="s-icon-button icon-gear" title="Settings"></a>
|
||||||
|
<br /><br />
|
||||||
|
<div class="ui-symbol">  </div>
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>General User Interface Glyphs</h2>
|
||||||
|
<p>Glyphs suitable for denoting general user interface verbs and nouns.</p>
|
||||||
|
<div class="items-holder grid">
|
||||||
|
<div class="item glyph-item" ng-repeat="glyph in general">
|
||||||
|
<div class="glyph" ng-class="glyph.cssClass"></div>
|
||||||
|
<table class="details">
|
||||||
|
<tr><td class="label">Class</td><td class="value">.{{glyph.cssClass}}</td></tr>
|
||||||
|
<tr><td class="label">Meaning</td><td class="value">{{glyph.meaning}}</td></tr>
|
||||||
|
<tr><td class="label">CSS Content</td><td class="value">\{{glyph.cssContent}}</td></tr>
|
||||||
|
<tr><td class="label">HTML Entity</td><td class="value">{{glyph.htmlEntity}}</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Control Glyphs</h2>
|
||||||
|
<p>Glyphs created for use in various controls.</p>
|
||||||
|
<div class="items-holder grid">
|
||||||
|
<div class="item glyph-item" ng-repeat="glyph in controls">
|
||||||
|
<div class="glyph" ng-class="glyph.cssClass"></div>
|
||||||
|
<table class="details">
|
||||||
|
<tr><td class="label">Class</td><td class="value">.{{glyph.cssClass}}</td></tr>
|
||||||
|
<tr><td class="label">Meaning</td><td class="value">{{glyph.meaning}}</td></tr>
|
||||||
|
<tr><td class="label">CSS Content</td><td class="value">\{{glyph.cssContent}}</td></tr>
|
||||||
|
<tr><td class="label">HTML Entity</td><td class="value">{{glyph.htmlEntity}}</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Object Type Glyphs</h2>
|
||||||
|
<p>These glyphs are reserved exclusively to denote types of objects in the application. Only use them if you are referring to a pre-existing object type.</p>
|
||||||
|
<div class="items-holder grid">
|
||||||
|
<div class="item glyph-item" ng-repeat="glyph in objects">
|
||||||
|
<div class="glyph" ng-class="glyph.cssClass"></div>
|
||||||
|
<table class="details">
|
||||||
|
<tr><td class="label">Class</td><td class="value">.{{glyph.cssClass}}</td></tr>
|
||||||
|
<tr><td class="label">Meaning</td><td class="value">{{glyph.meaning}}</td></tr>
|
||||||
|
<tr><td class="label">CSS Content</td><td class="value">\{{glyph.cssContent}}</td></tr>
|
||||||
|
<tr><td class="label">HTML Entity</td><td class="value">{{glyph.htmlEntity}}</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
75
example/styleguide/res/templates/input.html
Normal file
75
example/styleguide/res/templates/input.html
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
<!--
|
||||||
|
Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
Administration. All rights reserved.
|
||||||
|
|
||||||
|
Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
Open MCT includes source code licensed under additional open source
|
||||||
|
licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
this source code distribution or the Licensing information page available
|
||||||
|
at runtime from the About dialog for additional information.
|
||||||
|
-->
|
||||||
|
<div class="l-style-guide s-text">
|
||||||
|
<p class="doc-title">Open MCT Style Guide</p>
|
||||||
|
<h1>Text Input</h1>
|
||||||
|
<div class="l-section">
|
||||||
|
<p>Text inputs and textareas have a consistent look-and-feel across the application. The input's <code>placeholder</code> attribute is styled to appear visually different from an entered value.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Text Inputs</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Use a text input where the user should enter relatively short text entries.</p>
|
||||||
|
<p>A variety of size styles are available: <code>.lg</code>, <code>.med</code> and <code>.sm</code>. <code>.lg</code> text inputs dynamically scale their width to 100% of their container's width. Numeric inputs that benefit from right-alignment can be styled by adding <code>.numeric</code>.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><input type="text" placeholder="Enter a value" />
|
||||||
|
<br /><br />
|
||||||
|
<input type="text" placeholder="Enter a value" value="An entered value" />
|
||||||
|
<br /><br />
|
||||||
|
<input type="text" placeholder="Enter a value" class="sm" value="Small" />
|
||||||
|
<br /><br />
|
||||||
|
<input type="text" placeholder="Enter a value" class="med" value="A medium input" />
|
||||||
|
<br /><br />
|
||||||
|
<input type="text" placeholder="Enter a value" class="lg" value="A large input" />
|
||||||
|
<br /><br />
|
||||||
|
<input type="text" placeholder="Enter a value" class="sm numeric" value="10.9" />
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Textareas</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Use a textarea where the user should enter relatively longer or multi-line text entries.</p>
|
||||||
|
<p>By default, textareas are styled to expand to 100% of the width and height of their container; additionally there are three size styles available that control the height of the element: <code>.lg</code>, <code>.med</code> and <code>.sm</code>.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><div style="position: relative; height: 100px">
|
||||||
|
<textarea placeholder="Enter a value"></textarea>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div style="position: relative; height: 100px">
|
||||||
|
<textarea placeholder="Enter a value">An entered value</textarea>
|
||||||
|
</div>
|
||||||
|
<br /><br />
|
||||||
|
<textarea placeholder="Enter a value" class="sm">A small textarea</textarea>
|
||||||
|
<br /><br />
|
||||||
|
<textarea placeholder="Enter a value" class="med">A medium textarea</textarea>
|
||||||
|
<br /><br />
|
||||||
|
<textarea placeholder="Enter a value" class="lg">A large textarea</textarea>
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
73
example/styleguide/res/templates/intro.html
Normal file
73
example/styleguide/res/templates/intro.html
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
<!--
|
||||||
|
Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
Administration. All rights reserved.
|
||||||
|
|
||||||
|
Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
Open MCT includes source code licensed under additional open source
|
||||||
|
licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
this source code distribution or the Licensing information page available
|
||||||
|
at runtime from the About dialog for additional information.
|
||||||
|
-->
|
||||||
|
<div class="l-style-guide s-text">
|
||||||
|
<p class="doc-title">Open MCT Style Guide</p>
|
||||||
|
<h1>Introduction</h1>
|
||||||
|
<div class="l-section">
|
||||||
|
<p>Open MCT is a robust, extensible telemetry monitoring and situational awareness system that provides a framework supporting fast and efficient multi-mission deployment. This guide will explore the major concepts and design elements of Open MCT. Its overall goal is to guide you in creating new features and plugins that seamlessly integrate with the base application.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Everything Is An Object</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>First and foremost, Open MCT uses a “object-oriented” approach: everything in the system is an object. Objects come in different types, and some objects can contain other objects of given types. This is similar to how the file management system of all modern computers works: a folder object can contain any other type of object, a presentation file can contain an image. This is conceptually the same in Open MCT.</p>
|
||||||
|
<p>As you develop plugins for Open MCT, consider how a generalized component might be combined with others when designing to create a rich and powerful larger object, rather than adding a single monolithic, non-modular plugin. To solve a particular problem or allow a new feature in Open MCT, you may need to introduce more than just one new object type.</p>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<img src="../images/diagram-objects.svg" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Object Types</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>In the same way that different types of files might be opened and edited by different applications, objects in Open MCT also have different types. For example, a Display Layout provides a way that other objects that display information can be combined and laid out in a canvas area to create a recallable display that suits the needs of the user that created it. A Telemetry Panel allows a user to collect together Telemetry Points and visualize them as a plot or a table.</p>
|
||||||
|
<p>Object types provide a containment model that guides the user in their choices while creating a new object, and allows view normalization when flipping between different views. When a given object may only contain other objects of certain types, advantages emerge: the result of adding new objects is more predictable, more alternate views can be provided because the similarities between the contained objects is close, and we can provide more helpful and pointed guidance to the user because we know what types of objects they might be working with at a given time.</p>
|
||||||
|
<p>The types of objects that a container can hold should be based on the purpose of the container and the views that it affords. For example, a Folder’s purpose is to allow a user to conceptually organize objects of all other types; a Folder must therefore be able to contain an object of any type.</p>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<img src="../images/diagram-containment.svg" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Object Views</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Views are simply different ways to view the content of a given object. For example, telemetry data could be viewed as a plot or a table. A clock can display its time in analog fashion or with digital numbers. In each view, all of the content is present; it’s just represented differently. When providing views for an object, all the content of the object should be present in each view.</p>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<img src="../images/diagram-views.svg" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p></p>
|
||||||
|
<p></p>
|
||||||
|
<p></p>
|
||||||
|
</div>
|
8
example/styleguide/res/templates/mct-example.html
Normal file
8
example/styleguide/res/templates/mct-example.html
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<div class="col">
|
||||||
|
<h3>Markup</h3>
|
||||||
|
<span class="w-markup">
|
||||||
|
<pre></pre>
|
||||||
|
</span>
|
||||||
|
<h3>Example</h3>
|
||||||
|
<div class="w-mct-example"></div>
|
||||||
|
</div>
|
168
example/styleguide/res/templates/menus.html
Normal file
168
example/styleguide/res/templates/menus.html
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
<!--
|
||||||
|
Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
Administration. All rights reserved.
|
||||||
|
|
||||||
|
Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
Open MCT includes source code licensed under additional open source
|
||||||
|
licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
this source code distribution or the Licensing information page available
|
||||||
|
at runtime from the About dialog for additional information.
|
||||||
|
-->
|
||||||
|
<div class="l-style-guide s-text">
|
||||||
|
<p class="doc-title">Open MCT Style Guide</p>
|
||||||
|
<h1>Menus</h1>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Context Menus</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Context menus are used extensively in Open MCT. They are created dynamically upon a contextual click and positioned at the user's cursor position coincident with the element that invoked them. Context menus must use absolute position and utilize a z-index that places them above other in-page elements.</p>
|
||||||
|
<p>See <a class="link" href="http://localhost:8080/#/browse/styleguide:home/controls?view=styleguide.standards">User Interface Standards</a> for more details on z-indexing in Open MCT. Context menus should be destroyed if the user clicks outside the menu element.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><div style="height: 120px">
|
||||||
|
<div class="menu-element context-menu-wrapper mobile-disable-select">
|
||||||
|
<div class="menu context-menu">
|
||||||
|
<ul>
|
||||||
|
<li onclick="alert('Perform an action')" title="Open in a new browser tab" class="icon-new-window">Open In New Tab</li>
|
||||||
|
<li onclick="alert('Perform an action')" title="Remove this object from its containing object." class="icon-trash">Remove</li>
|
||||||
|
<li onclick="alert('Perform an action')" title="Create Link to object in another location." class="icon-link">Create Link</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div></mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Dropdown Menus</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Dropdown menus are a dedicated, more discoverable context menu for a given object. Like context menus, dropdown menus are used extensively in Open MCT, and are most often associated with object header elements. They visually manifest as a downward pointing arrow <span class="context-available"></span> associated with an element, and when clicked displays a context menu at that location. See guidelines above about context menus in regards to z-indexing and element lifecycle.</p>
|
||||||
|
<p>Use a dropdown menu to encapsulate important the actions of an object in the object's header, or in a place that you'd use a context menu, but want to make the availability of the menu more apparent.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><div style="height: 220px" title="Ignore me, I'm just here to provide space for this example.">
|
||||||
|
|
||||||
|
<div class="l-flex-row flex-elem grows object-header">
|
||||||
|
<span class="type-icon flex-elem icon-layout"></span>
|
||||||
|
<span class="l-elem-wrapper l-flex-row flex-elem grows">
|
||||||
|
<span class="title-label flex-elem holder flex-can-shrink ng-binding">Object Header</span>
|
||||||
|
<span class="flex-elem context-available-w">
|
||||||
|
<span ng-controller="MenuArrowController as menuArrow" class="ng-scope">
|
||||||
|
<a class="context-available" ng-click="menuArrow.showMenu($event)"></a>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div></mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Checkbox Menus</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Checkbox menus add checkbox options to each item of a dropdown menu. Use this to </p>
|
||||||
|
<p>Use a dropdown menu to encapsulate important the actions of an object in the object's header, or in a place that you'd use a context menu, but want to make the availability of the menu more apparent.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><div style="height: 220px" title="Ignore me, I'm just here to provide space for this example.">
|
||||||
|
<div ng-controller="SearchMenuController as controller" class="ng-scope">
|
||||||
|
<div class="menu checkbox-menu" mct-click-elsewhere="parameters.menuVisible(false)">
|
||||||
|
<ul>
|
||||||
|
<!-- First element is special - it's a reset option -->
|
||||||
|
<li class="search-menu-item special icon-asterisk" title="Select all filters" ng-click="ngModel.checkAll = !ngModel.checkAll; controller.checkAll()">
|
||||||
|
<label class="checkbox custom no-text">
|
||||||
|
<input type="checkbox" class="checkbox ng-untouched ng-valid ng-dirty" ng-model="ngModel.checkAll" ng-change="controller.checkAll()">
|
||||||
|
<em></em>
|
||||||
|
</label>
|
||||||
|
All
|
||||||
|
</li>
|
||||||
|
<li class="search-menu-item icon-folder">
|
||||||
|
<label class="checkbox custom no-text">
|
||||||
|
<input type="checkbox" class="checkbox">
|
||||||
|
<em></em>
|
||||||
|
</label>
|
||||||
|
Folder
|
||||||
|
</li>
|
||||||
|
<li class="search-menu-item icon-layout">
|
||||||
|
<label class="checkbox custom no-text">
|
||||||
|
<input type="checkbox" class="checkbox">
|
||||||
|
<em></em>
|
||||||
|
</label>
|
||||||
|
Display Layout
|
||||||
|
</li>
|
||||||
|
<li class="search-menu-item icon-box-with-dashed-lines">
|
||||||
|
<label class="checkbox custom no-text">
|
||||||
|
<input type="checkbox" class="checkbox">
|
||||||
|
<em></em>
|
||||||
|
</label>
|
||||||
|
Fixed Position Display
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Palettes</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Use a palette to provide color choices. Similar to context menus and dropdowns, palettes should be dismissed when a choice is made within them, or if the user clicks outside one. Selected palette choices should utilize the <code>selected</code> CSS class to visualize indicate that state.</p>
|
||||||
|
<p>Note that while this example uses static markup for illustrative purposes, don't do this - use a front-end framework with repeaters to build the color choices.</p>
|
||||||
|
</div>
|
||||||
|
<mct-example><div style="height: 220px" title="Ignore me, I'm just here to provide space for this example.">
|
||||||
|
|
||||||
|
<div class="s-button s-menu-button menu-element t-color-palette icon-paint-bucket" ng-controller="ClickAwayController as toggle">
|
||||||
|
<span class="l-click-area" ng-click="toggle.toggle()"></span>
|
||||||
|
<span class="color-swatch" style="background: rgb(255, 0, 0);"></span>
|
||||||
|
<div class="menu l-palette l-color-palette" ng-show="toggle.isActive()">
|
||||||
|
<div class="l-palette-row l-option-row">
|
||||||
|
<div class="l-palette-item s-palette-item no-selection"></div>
|
||||||
|
<span class="l-palette-item-label">None</span>
|
||||||
|
</div>
|
||||||
|
<div class="l-palette-row">
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(0, 0, 0);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(28, 28, 28);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(57, 57, 57);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(85, 85, 85);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(113, 113, 113);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(142, 142, 142);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(170, 170, 170);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(198, 198, 198);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(227, 227, 227);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(255, 255, 255);"></div>
|
||||||
|
</div>
|
||||||
|
<div class="l-palette-row">
|
||||||
|
<div class="l-palette-item s-palette-item selected" style="background: rgb(255, 0, 0);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(224, 64, 64);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(240, 160, 72);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(255, 248, 96);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(128, 240, 72);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(128, 248, 248);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(88, 144, 224);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(0, 72, 240);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(136, 80, 240);"></div>
|
||||||
|
<div class="l-palette-item s-palette-item" style="background: rgb(224, 96, 248);"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div></mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
48
example/styleguide/res/templates/standards.html
Normal file
48
example/styleguide/res/templates/standards.html
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<!--
|
||||||
|
Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
Administration. All rights reserved.
|
||||||
|
|
||||||
|
Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
Open MCT includes source code licensed under additional open source
|
||||||
|
licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
this source code distribution or the Licensing information page available
|
||||||
|
at runtime from the About dialog for additional information.
|
||||||
|
-->
|
||||||
|
<div class="l-style-guide s-text">
|
||||||
|
<p class="doc-title">Open MCT Style Guide</p>
|
||||||
|
<h1>Standards</h1>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Absolute Positioning and Z-Indexing</h2>
|
||||||
|
<p>Absolute positioning is used in Open MCT in the main envelope interface to handle layout and draggable pane splitters, for elements that must be dynamically created and positioned (like context menus) and for buttons that are placed over other elements, such as a plot's zoom/pan history and reset buttons. When using absolute positioning, follow these guidelines:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Don't specify a z-index if you don't have to.</li>
|
||||||
|
<li>If you must specify a z-index, use the lowest number you that prevents your element from being covered and puts it at the correct level per the table below.</li>
|
||||||
|
</ul>
|
||||||
|
<!-- This content maintained at https://docs.google.com/spreadsheets/d/1AzhUY0P3hLCfT8yPa2Cb1dwOOsQXBuSgCrOkhIoVm0A/edit#gid=0 -->
|
||||||
|
<table>
|
||||||
|
<tr class='header'><td>Type</td><td>Description</td><td>Z-index Range</td></tr>
|
||||||
|
<tr><td>Base interface items</td><td>Base level elements</td><td>0 - 1</td></tr>
|
||||||
|
<tr><td>Primary pane</td><td>Elements in the primary "view area" pane</td><td>2</td></tr>
|
||||||
|
<tr><td>Inspector pane, splitters</td><td>Elements in the Inspector, and splitters themselves</td><td>3</td></tr>
|
||||||
|
<tr><td>More base interface stuff</td><td>Base level elements</td><td>4 - 9</td></tr>
|
||||||
|
<tr><td>Treeview</td><td>Lefthand treeview elements</td><td>30 - 39</td></tr>
|
||||||
|
<tr><td>Help bubbles, rollover hints</td><td>Infobubbles, and similar</td><td>50 - 59</td></tr>
|
||||||
|
<tr><td>Context, button and dropdown menus</td><td>Context menus, button menus, etc. that must overlay other elements</td><td>70 - 79</td></tr>
|
||||||
|
<tr><td>Overlays</td><td>Modal overlay displays</td><td>100 - 109</td></tr>
|
||||||
|
<tr><td>Event messages</td><td>Alerts, event dialogs</td><td>1000</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
227
example/styleguide/res/templates/status.html
Normal file
227
example/styleguide/res/templates/status.html
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
<!--
|
||||||
|
Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
Administration. All rights reserved.
|
||||||
|
|
||||||
|
Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
Open MCT includes source code licensed under additional open source
|
||||||
|
licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
this source code distribution or the Licensing information page available
|
||||||
|
at runtime from the About dialog for additional information.
|
||||||
|
-->
|
||||||
|
<style>
|
||||||
|
.w-mct-example div[class*="s-status"],
|
||||||
|
.w-mct-example span[class*="s-status"],
|
||||||
|
.w-mct-example div[class*="s-limit"],
|
||||||
|
.w-mct-example span[class*="s-limit"] {
|
||||||
|
border-radius: 3px;
|
||||||
|
padding: 2px 5px;
|
||||||
|
}
|
||||||
|
.w-mct-example table {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="l-style-guide s-text">
|
||||||
|
<p class="doc-title">Open MCT Style Guide</p>
|
||||||
|
<h1>Status Indication</h1>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Status Classes</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Status classes allow any block or inline-block element to be decorated in order to articulate a
|
||||||
|
status. Provided classes include color-only and color plus icon; custom icons can easily be
|
||||||
|
employed by using a color-only status class in combination with an <a class="link" href="#/browse/styleguide:home/glyphs?tc.mode=local&tc.timeSystem=utc&tc.startDelta=1800000&tc.endDelta=0&view=styleguide.glyphs">glyph</a>.</p>
|
||||||
|
<ul>
|
||||||
|
<li>Color only</li>
|
||||||
|
<ul>
|
||||||
|
<li><code>s-status-warning-hi</code></li>
|
||||||
|
<li><code>s-status-warning-lo</code></li>
|
||||||
|
<li><code>s-status-diagnostic</code></li>
|
||||||
|
<li><code>s-status-info</code></li>
|
||||||
|
<li><code>s-status-ok</code></li>
|
||||||
|
</ul>
|
||||||
|
<li>Color and icon</li>
|
||||||
|
<ul>
|
||||||
|
<li><code>s-status-icon-warning-hi</code></li>
|
||||||
|
<li><code>s-status-icon-warning-lo</code></li>
|
||||||
|
<li><code>s-status-icon-diagnostic</code></li>
|
||||||
|
<li><code>s-status-icon-info</code></li>
|
||||||
|
<li><code>s-status-icon-ok</code></li>
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<mct-example><!-- Color alone examples -->
|
||||||
|
<div class="s-status-warning-hi">WARNING HI</div>
|
||||||
|
<div class="s-status-warning-lo">WARNING LOW</div>
|
||||||
|
<div class="s-status-diagnostic">DIAGNOSTIC</div>
|
||||||
|
<div class="s-status-info">INFO</div>
|
||||||
|
<div class="s-status-ok">OK</div>
|
||||||
|
|
||||||
|
<!-- Color and icon examples -->
|
||||||
|
<div class="s-status-icon-warning-hi">WARNING HI with icon</div>
|
||||||
|
<div class="s-status-icon-warning-lo">WARNING LOW with icon</div>
|
||||||
|
<div class="s-status-icon-diagnostic">DIAGNOSTIC with icon</div>
|
||||||
|
<div class="s-status-icon-info">INFO with icon</div>
|
||||||
|
<div class="s-status-icon-ok">OK with icon</div>
|
||||||
|
<div class="s-status-warning-hi icon-alert-triangle">WARNING HI with custom icon</div>
|
||||||
|
<div>Some text with an <span class="s-status-icon-diagnostic">inline element</span> showing a Diagnostic status.</div>
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Limit Classes</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Limit classes are a specialized form of status, specifically meant to be applied to telemetry
|
||||||
|
displays to indicate that a limit threshold has been violated. Open MCT provides both severity
|
||||||
|
and direction classes; severity (yellow and red) can be used alone or in combination
|
||||||
|
with direction (upper or lower). Direction classes cannot be used on their own.</p>
|
||||||
|
<p>Like Status classes, Limits can be used as color-only, or color plus icon. Custom icons can
|
||||||
|
be applied in the same fashion as described above.</p>
|
||||||
|
<ul>
|
||||||
|
<li>Severity color alone</li>
|
||||||
|
<ul>
|
||||||
|
<li><code>s-limit-yellow</code>: A yellow limit.</li>
|
||||||
|
<li><code>s-limit-red</code>: A red limit.</li>
|
||||||
|
</ul>
|
||||||
|
<li>Severity color and icon</li>
|
||||||
|
<ul>
|
||||||
|
<li><code>s-limit-icon-yellow</code>: A yellow limit with icon.</li>
|
||||||
|
<li><code>s-limit-icon-red</code>: A red limit with icon.</li>
|
||||||
|
</ul>
|
||||||
|
<li>Direction indicators. MUST be used with a "color alone" limit class. See
|
||||||
|
examples for more.</li>
|
||||||
|
<ul>
|
||||||
|
<li><code>s-limit-upr</code>: Upper limit.</li>
|
||||||
|
<li><code>s-limit-lwr</code>: Lower limit.</li>
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<mct-example><!-- Color alone examples -->
|
||||||
|
<div class="s-limit-yellow">Yellow limit</div>
|
||||||
|
<div class="s-limit-red">Red limit</div>
|
||||||
|
|
||||||
|
<!-- Color and icon examples -->
|
||||||
|
<div class="s-limit-icon-yellow">Yellow limit with icon</div>
|
||||||
|
<div class="s-limit-icon-red">Red limit with icon</div>
|
||||||
|
<div class="s-limit-red icon-alert-rect">Red Limit with a custom icon</div>
|
||||||
|
<div>Some text with an <span class="s-limit-icon-yellow">inline element</span> showing a yellow limit.</div>
|
||||||
|
|
||||||
|
<!-- Severity and direction examples -->
|
||||||
|
<div class="s-limit-yellow s-limit-lwr">Lower yellow limit</div>
|
||||||
|
<div class="s-limit-red s-limit-upr">Upper red limit</div>
|
||||||
|
|
||||||
|
<!-- Limits applied in a table -->
|
||||||
|
<table>
|
||||||
|
<tr class='header'><td>Name</td><td>Value 1</td><td>Value 2</td></tr>
|
||||||
|
<tr><td>ENG_PWR 4991</td><td>7.023</td><td class="s-limit-yellow s-limit-upr">70.23</td></tr>
|
||||||
|
<tr><td>ENG_PWR 4992</td><td>49.784</td><td class="s-limit-red s-limit-lwr">-121.22</td></tr>
|
||||||
|
<tr><td>ENG_PWR 4993</td><td class="s-limit-yellow icon-alert-triangle">0.451</td><td>1.007</td></tr>
|
||||||
|
</table>
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="l-section">
|
||||||
|
<h2>Status Bar Indicators</h2>
|
||||||
|
<div class="cols cols1-1">
|
||||||
|
<div class="col">
|
||||||
|
<p>Indicators are small iconic notification elements that appear in the Status Bar area of
|
||||||
|
the application at the window's bottom. Indicators should be used to articulate the state of a
|
||||||
|
system and optionally provide gestures related to that system. They use a combination of icon and
|
||||||
|
color to identify themselves and articulate a state respectively.</p>
|
||||||
|
<h3>Recommendations</h3>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Keep the icon consistent</strong>. The icon is the principal identifier of the system and is a valuable
|
||||||
|
recall aid for the user. Don't change the icon as a system's state changes, use color and
|
||||||
|
text for that purpose.</li>
|
||||||
|
<li><strong>Don't use the same icon more than once</strong>. Select meaningful and distinct icons so the user
|
||||||
|
will be able to quickly identify what they're looking for.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>States</h3>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Disabled</strong>: The system is not available to the user.</li>
|
||||||
|
<li><strong>Off / Available</strong>: The system is accessible to the user but is not currently
|
||||||
|
"On" or has not been configured. If the Indicator directly provides gestures
|
||||||
|
related to the system, such as opening a configuration dialog box, then use
|
||||||
|
"Available"; if the user must act elsewhere or the system isn't user-controllable,
|
||||||
|
use "Off".</li>
|
||||||
|
<li><strong>On</strong>: The system is enabled or configured; it is having an effect on the larger application.</li>
|
||||||
|
<li><strong>Alert / Error</strong>: There has been a problem with the system. Generally, "Alert"
|
||||||
|
should be used to call attention to an issue that isn't critical, while "Error"
|
||||||
|
should be used to call attention to a problem that the user should really be aware of or do
|
||||||
|
something about.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Structure</h3>
|
||||||
|
<p>Indicators consist of a <code>.ls-indicator</code>
|
||||||
|
wrapper element with <code>.icon-*</code> classes for the type of thing they represent and
|
||||||
|
<code>.s-status-*</code> classes to articulate the current state. Title attributes should be used
|
||||||
|
to provide more verbose information about the thing and/or its status.</p>
|
||||||
|
<p>The wrapper encloses a <code>.label</code> element that is displayed on hover. This element should
|
||||||
|
include a brief statement of the current status, and can also include clickable elements
|
||||||
|
as <code><a></code> tags. An optional <code>.count</code> element can be included to display
|
||||||
|
information such as a number of messages.</p>
|
||||||
|
<p>Icon classes are as defined on the
|
||||||
|
<a class="link" href="#/browse/styleguide:home/glyphs?tc.mode=local&tc.timeSystem=utc&tc.startDelta=1800000&tc.endDelta=0&view=styleguide.glyphs">
|
||||||
|
Glyphs page</a>. Status classes applicable to Indicators are as follows:</p>
|
||||||
|
<ul>
|
||||||
|
<li><code>s-status-disabled</code></li>
|
||||||
|
<li><code>s-status-off</code></li>
|
||||||
|
<li><code>s-status-available</code></li>
|
||||||
|
<li><code>s-status-on</code></li>
|
||||||
|
<li><code>s-status-alert</code></li>
|
||||||
|
<li><code>s-status-error</code></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<mct-example><div class="s-ue-bottom-bar status-holder s-status-bar">
|
||||||
|
<span class="ls-indicator icon-database s-status-disabled" title="The system is currently disabled.">
|
||||||
|
<span class="label">System not enabled.</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="s-ue-bottom-bar status-holder s-status-bar">
|
||||||
|
<span class="ls-indicator icon-database s-status-available" title="Configure data connection.">
|
||||||
|
<span class="label">Data connection available
|
||||||
|
<a class="icon-gear">Configure</a>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="s-ue-bottom-bar status-holder s-status-bar">
|
||||||
|
<span class="ls-indicator icon-database s-status-on" title="Data connected.">
|
||||||
|
<span class="label">Connected to Skynet
|
||||||
|
<a class="icon-gear">Change</a>
|
||||||
|
<a>Disconnect</a>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="s-ue-bottom-bar status-holder s-status-bar">
|
||||||
|
<span class="ls-indicator icon-database s-status-alert" title="System is self-aware.">
|
||||||
|
<span class="label">Skynet at Turing Level 5</span>
|
||||||
|
</span>
|
||||||
|
<span class="ls-indicator icon-bell s-status-error" title="You have alerts.">
|
||||||
|
<span class="label">
|
||||||
|
<a class="icon-alert-triangle">View Alerts</a>
|
||||||
|
</span>
|
||||||
|
<span class="count">495</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</mct-example>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
51
example/styleguide/src/ExampleStyleGuideModelProvider.js
Normal file
51
example/styleguide/src/ExampleStyleGuideModelProvider.js
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
* Administration. All rights reserved.
|
||||||
|
*
|
||||||
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
* Open MCT includes source code licensed under additional open source
|
||||||
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
* this source code distribution or the Licensing information page available
|
||||||
|
* at runtime from the About dialog for additional information.
|
||||||
|
*****************************************************************************/
|
||||||
|
/*global define*/
|
||||||
|
|
||||||
|
define(
|
||||||
|
[],
|
||||||
|
function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
function ExampleStyleGuideModelProvider($q) {
|
||||||
|
var pages = {};
|
||||||
|
|
||||||
|
// Add pages
|
||||||
|
pages['intro'] = { name: "Introduction", type: "styleguide.intro", location: "styleguide:home" };
|
||||||
|
pages['standards'] = { name: "Standards", type: "styleguide.standards", location: "styleguide:home" };
|
||||||
|
pages['colors'] = { name: "Colors", type: "styleguide.colors", location: "styleguide:home" };
|
||||||
|
pages['glyphs'] = { name: "Glyphs", type: "styleguide.glyphs", location: "styleguide:home" };
|
||||||
|
pages['status'] = { name: "Status Indication", type: "styleguide.status", location: "styleguide:home" };
|
||||||
|
pages['controls'] = { name: "Controls", type: "styleguide.controls", location: "styleguide:ui-elements" };
|
||||||
|
pages['input'] = { name: "Text Inputs", type: "styleguide.input", location: "styleguide:ui-elements" };
|
||||||
|
pages['menus'] = { name: "Menus", type: "styleguide.menus", location: "styleguide:ui-elements" };
|
||||||
|
|
||||||
|
return {
|
||||||
|
getModels: function () {
|
||||||
|
return $q.when(pages);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return ExampleStyleGuideModelProvider
|
||||||
|
}
|
||||||
|
);
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user