├── README.md ├── readme.md ├── csp ├── Bootstrap │ ├── js │ │ ├── auth.js.xml │ │ ├── glossary_admin.js.xml │ │ ├── glossary.js.xml │ │ └── ui-bootstrap-tpls-0.4.0.min.js.xml │ ├── css │ │ └── glossary.css.xml │ └── img │ │ └── intersystems-header.gif.xml ├── intersystems-header.gif.xml ├── about.csp.xml ├── term.csp.xml ├── rest1.csp.xml └── admin.csp.xml ├── sc-list.txt ├── Other └── Letter.cls.xml ├── Glossary.prj.xml ├── Word ├── Comment.cls.xml ├── Tests │ └── Utilities.cls.xml ├── Session.cls.xml ├── UserTerm.cls.xml ├── User.cls.xml ├── Translation.cls.xml └── Term.cls.xml └── REST ├── BrokerAdmin.cls.xml ├── Broker.cls.xml └── JSON.cls.xml /README.md: -------------------------------------------------------------------------------- 1 | glossary 2 | ======== 3 | 4 | Глоссарий терминов по технологиям InterSystems 5 | 6 | 7 | Установка 8 | ======== 9 | 10 | Создать новую область Glossary и базу данных glossary. 11 | 12 | Создать новые web-приложения /glossary и /glossary/admin для классов REST.Broker и REST.BrokerAdmin 13 | 14 | Глоссарий будет распологаться по адресу :/glossary/ 15 | 16 | Полезные ссылки https://github.com/MDevelopmentGroup/Recruting/wiki 17 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | glossary 2 | ======== 3 | 4 | Глоссарий терминов по технологиям InterSystems 5 | 6 | 7 | Установка 8 | ======== 9 | 10 | Создать новую область Glossary и базу данных glossary. 11 | 12 | Создать новые web-приложения /glossary и /glossary/admin для классов REST.Broker и REST.BrokerAdmin 13 | 14 | Глоссарий будет распологаться по адресу :/glossary/ 15 | 16 | Полезные ссылки https://github.com/MDevelopmentGroup/Recruting/wiki 17 | -------------------------------------------------------------------------------- /csp/Bootstrap/js/auth.js.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | 17 | -------------------------------------------------------------------------------- /sc-list.txt: -------------------------------------------------------------------------------- 1 | <<<<<<< HEAD 2 | Glossary.PRJ 3 | ======= 4 | /Bootstrap/css/bootstrap.css 5 | /Bootstrap/css/bootstrap.min.css 6 | /Bootstrap/css/glossary.css 7 | /Bootstrap/img/intersystems-header.gif 8 | /Bootstrap/js/auth.js 9 | /Bootstrap/js/glossary.js 10 | /Bootstrap/js/glossary_admin.js 11 | /about.csp 12 | /admin.CSP 13 | /intersystems-header.gif 14 | /menu.csp 15 | /menuTerm.csp 16 | /rest1.CSP 17 | /term.csp 18 | Other.Letter.CLS 19 | REST.Broker.CLS 20 | REST.BrokerAdmin.CLS 21 | REST.JSON.CLS 22 | Word.Comment.CLS 23 | Word.Session.CLS 24 | Word.Term.CLS 25 | Word.Tests.PKG 26 | Word.Translation.CLS 27 | Word.User.CLS 28 | Word.UserTerm.CLS 29 | >>>>>>> 56cd6220164b1c0beed1791b66e5411d984a6688 30 | -------------------------------------------------------------------------------- /Other/Letter.cls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %Persistent,%XML.Adaptor 5 | 63039,29150.143047 6 | 7 | 8 | %String 9 | 1 10 | 11 | 12 | 13 | Word.User 14 | one 15 | Letters 16 | 1 17 | 18 | 19 | 20 | %Date 21 | $PIECE($NOW(),",",1) 22 | 1 23 | 24 | 25 | 26 | %Time 27 | $PIECE($NOW(),",",2) 28 | 1 29 | 30 | 31 | 32 | %Library.CacheStorage 33 | ^Other.LetterD 34 | LetterDefaultData 35 | ^Other.LetterD 36 | ^Other.LetterI 37 | ^Other.LetterS 38 | 100000 39 | 40 | listnode 41 | 42 | 43 | %%CLASSNAME 44 | 45 | 46 | Text 47 | 48 | 49 | User 50 | 51 | 52 | CreationDate 53 | 54 | 55 | CreationTime 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Glossary.prj.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Word/Comment.cls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %Persistent,%Populate,%XML.Adaptor 5 | 63029,58990.641945 6 | 7 | 8 | %String 9 | 1 10 | 11 | 12 | 13 | Word.Term 14 | parent 15 | Comments 16 | 1 17 | 18 | 19 | 20 | Word.User 21 | one 22 | Comments 23 | 1 24 | 25 | 26 | 27 | %Date 28 | $PIECE($NOW(),",",1) 29 | 1 30 | 31 | 32 | 33 | %Time 34 | $PIECE($NOW(),",",2) 35 | 1 36 | 37 | 38 | 39 | %Library.CacheStorage 40 | {%%PARENT}("Comments") 41 | CommentDefaultData 42 | ^Word.UserC("Comments") 43 | ^Word.CommentI 44 | ^Word.CommentS 45 | 100000 46 | ======= 47 | 14 48 | >>>>>>> 56cd6220164b1c0beed1791b66e5411d984a6688 49 | 50 | 51 | %%CLASSNAME 52 | 53 | 54 | Text 55 | 56 | 57 | Term 58 | 59 | 60 | CreationDate 61 | 62 | 63 | CreationTime 64 | 65 | 66 | User 67 | 68 | 69 | ======= 70 | 71 | 100.0000% 72 | 73 | 74 | 100.0000% 75 | 76 | 77 | 7.1429% 78 | 79 | 80 | 7.6923% 81 | 82 | 83 | 7.1429% 84 | 85 | 86 | 7.6923% 87 | 88 | 89 | 7.1429% 90 | 91 | 92 | -4 93 | 94 | >>>>>>> 56cd6220164b1c0beed1791b66e5411d984a6688 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /csp/intersystems-header.gif.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | R0lGODlhGAFBAMQeAMjAyZGQtJaVtlthoOPX0/Dj2Kyov+rd1TM+kZ+cudXLzkBKlnd5qp2buaum 5 | vse/yLq0xE5Wm2ltpc3Fy4SFsNTLzdvR0Lmzw7KtwaSgu+LX08C5xvfp2iUyjP7v3QAAACH5BAEA 6 | AB4ALAAAAAAYAUEAAAX/oCeOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRK 7 | rVqv2Kx2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b73iSAQABXAEMCx0FeYVFHYgBVQoDiImGkEGO 8 | ilMGjo4DkZo9k5WXAwaEm6M5nVEAlwmkq6WPUY2IBqyzNp0EBAonfgoAoia3HgDCvr0eBCK8xyUE 9 | jgwkBbkKyiR+wLoA0yUKBQXCuSIEfiTH2SK7KAQJErK0Sp0JiOIkl/T0ivXxHgH1DNPwiNkUmBoB 10 | wZEqEQUSwMJHTxhDao5MOJKHTIKjBe3cIYIQDJGzEgzr3cPnZx8+diYx/5YQ1CETCQqORJkMWc8h 11 | Poj5RjDLKWKmI3YZjUzsCBAkzU4MS4bMBcsliX+DSLCU4KFAhKMkUd0cobUDxa7yYDqKkIBiUCJD 12 | u34cMbRnxHk8R5jMlBABIqoMEKkc54gjuL4erl6kACEbrLVEO6SAelAEY3OOEPg9iyTtpWxt9SFy 13 | KiKz3M0jLCEqMNPXCMEURvxD4EF0BwRAS8CiBBlRipm0PYjtQGnhN8qV83XtgDjzXKNeTRxnG69g 14 | LBP/9lokHhgRAtOyXdVWjGIm54WKCjQDrjH58A6/jYOGm7zEchGwONrtsFeno2PiN+bv0PjEbJzc 15 | nTBdBxFI5QhVYJGXhP9lnzDXnmYtIWcWhN8hospM/cFnoQfOsZZgCv9x9ZZ/l7AXYVfYKTgEg6l0 16 | xtN7Lj74WYSn5VPAfAiUI1qBeXWQmkDPgahdYkLet92JjvymIlrCRWYdIerR6OCEMLblGmdV3Tff 17 | N+MVmVtXKcyXk2uvGTPQkis2aeGBHkSJpUHCCOOWlM5FpeGGJEwnmHRGohDidnECoCQiglHiE3cs 18 | XYcmk+ZFtBBU8sDY5lbvwVKgTjhmQ6aPIq5HIm8ANsjcAHal5oFFA8BCiGu5LfoDi8bg6CZy9Mzp 19 | EoYl1HkpQvQoOWBsJPyZmKhEMdCIS1cZm5Ng6LkqiZrcbfqgpGOlmur/nBFAsFB9IwyY24DcEpDp 20 | p19iYq2pRAUAE2uTBjCdOEDSl6KzrTRqmwgDvuhpjFTig4CSI9xo3TSuoUvQWOQCiIJoAfwDTTwm 21 | ATUTYvTqACtCLOkrJb/K1fNvCnU69WEJPXKaHaidBuheLFrZRNqQCwFb8Q0XHxnpvpPKOGetKgwo 22 | zk46I8SsWcKCeYJJvcSyD2v/5Cbwa+WY4IAAVAvgQAUzo1DzzjdvnHO/BO43IV+eekaCAvMtYFrR 23 | I57shyAB5JWJVlh2haXUVVf9QNYSQdv3tDibTaEHwp5QsjKCq3Ym2/eaAMsxxzaiCN0m7CYzCVMf 24 | IMIEVGvO95RESjjj/5tx2Tq4CvFSkvgIC03DuMoGcrcPS7IAyW1VLN2OuQCee/CAABN8DrrR7HVN 25 | etDHobgCSy6tvh26r2t9L5lcNq7HTylkPoIFAuwt/NehFz+66CvTCJgKPbLr/J17RW/Cfkc6OO9U 26 | 2fM+QgXdi2DB1AJg0LsHFsAA1RwQPBE8oAFU24Dmfte7C9jPAwcQYNUa4Iatccx04iufS6ZDsY7d 27 | a32tSdKdymW9TjkFYRcswW7q10ABYA1/eWuAKLiXN/tJsGoX8N0DNdA5D3AAgTGsoN/IdzrQadAx 28 | elmBWNRXOhPESxzuy5WnBLMWWIytTiw0oAAawAEPIBBrHthA/0SQAf8BbEB//uNcBjz3gDMyUAT8 29 | 0xznciiCBlCwDRYEHwaNSILlxAtgz6CfHlMgthEqzINOmU5jCred+tXQAh7An/fgKIAC4I+OJCjj 30 | /7SouUva73caGIEdhWgv2A2SWk18D0sMRjLsDRIFH4piHz3ClQAEwHVDGkH6HEk1DEDSA5z7pRY1 31 | wDkwkqABGTjBGzNwAc7JUQCYHCUeh5jBIqZwfCLoke4IsJBdgbBkrBsS8YKVyyOWACodHIH2SvA7 32 | YerQAu0sAQespkzeHZADzvRhGYM4zVL+zXhExCaHRKgTCogpR3w8gWuqKM62hRNl3dmXARaiKBSs 33 | kwTBJAEoi2kCZNb/UwMN2Fs+q+LACZLSD+NMISqRt6/5OAMACWAWoQbVxBkVxZApO8GZPOgVddDj 34 | Y1ksgSR3Z0lomkCTJvidA5IJzAd6QIChlCYbAJPSUzq0Gba0pVI2VjKGUAA7gktHxvhDTogmJqu2 35 | JMB+LhcamgwgaiW46DFdKAIxOqCO+YNgGq3muQm4kWoFHCnnCijVNXSiqlGCHUMUAaM68SNqQDPL 36 | WHMJC6qkrCEj0wVDFsDWuDqVBDCcoChCWzXN8Q+HOrzr5uzHQ9V68Y5TfYRrwKqdmdDqEozFmZgI 37 | lQC4JsYsw1nAhJoSqkvwYX3nQQADJsMCuYKWf/4jQQAHWEAdJpAQZfFc7QEKkAEZihK2a8gqSht2 38 | S/dotZYJaFVWIQAB8QajYcBqrwECYADf6iSrUWvEOhaW3tgQQLzzTSsAyGtfY6B1bN9LsIIXzOAG 39 | O/jBEI6whCdM4Qpb+MIYzrCGN8zhDnt4wyEAADs= 40 | 41 | 42 | -------------------------------------------------------------------------------- /Word/Tests/Utilities.cls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %UnitTest.TestCase 5 | 63011,40987.477678 6 | 7 | 8 | 1 9 | 25 | 26 | 27 | 28 | 1 29 | 35 | 36 | 37 | 38 | 1 39 | 41 | 42 | 43 | 44 | 1 45 | file:%String 46 | %Status 47 | 71 | 72 | 73 | 74 | 1 75 | file:%String 76 | %Status 77 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /Word/Session.cls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %Persistent,%Populate,%XML.Adaptor 5 | 63028,46350.765767 6 | 7 | 8 | %String 9 | 1 10 | 11 | 12 | 13 | 14 | SID 15 | 1 16 | 17 | 18 | 19 | %Status 20 | 1 21 | length 27 | } 28 | set ..SID = temp 29 | Quit $$$OK 30 | ]]> 31 | 32 | 33 | 34 | 38 | 39 | 40 | 41 | 45 | 46 | 47 | 48 | Word.User 49 | parent 50 | Sessions 51 | 1 52 | 53 | 54 | 55 | %Date 56 | $PIECE($NOW(),",",1) 57 | 1 58 | 59 | 60 | 61 | %Time 62 | $PIECE($NOW(),",",2) 63 | 1 64 | 65 | 66 | 67 | 1 68 | SID:%String,Action:%String 69 | %Boolean 70 | Priveledge INTO :Priveledge From Word.Session WHERE SID=:SID) 74 | } catch ex { 75 | // If someone skrews with client-side js 76 | set Priveledge=0 77 | } 78 | //LoadTermsPageNoQuery 79 | //If (Action="LoadTermsPageNoQuery") { 80 | /// Quit 1 81 | //} 82 | 83 | /*If ((Action="LoadTermsPage") || (Action="LoadTermsPageNoQuery") || 84 | (Action="OnPage") || (Action="LoadTermPage") || 85 | (Action="GetAllTerms") || (Action="GetTerm") || 86 | (Action="GetTranslations") || (Action="AddUser") || 87 | (Action="LoginUser") || (Action="SendNewPassword") || 88 | (Action="StartSession") || (Action="GetComments") || 89 | (Action="GetAllUsers") || (Action="GetCommentsByUser") || 90 | (Action="GetTranslationsByUser")) { 91 | Quit 1 92 | } */ 93 | If (Action="AddTranslation") { 94 | Quit (Priveledge>0) 95 | } 96 | If (Action="AddLetter") { 97 | Quit (Priveledge>0) 98 | } 99 | ELSEIF (Action="AddUserTerm") { 100 | Quit (Priveledge>0) 101 | } 102 | ELSEIF (Action="AddTerm") { 103 | Quit (Priveledge>1) 104 | } 105 | ELSEIF (Action="DeleteTerm") { 106 | Quit (Priveledge>2) 107 | } 108 | ELSEIF (Action="UpdateTerm") { 109 | Quit (Priveledge>1) 110 | } 111 | ELSEIF (Action="DeleteTranslation") { 112 | Quit (Priveledge>1) 113 | } 114 | ELSEIF (Action="MakeTranslationDefault") { 115 | Quit (Priveledge>1) 116 | } 117 | ELSEIF (Action="AddComment") { 118 | Quit (Priveledge>0) 119 | } 120 | ELSE { 121 | Quit 0 122 | } 123 | ]]> 124 | 125 | 126 | 127 | %Library.CacheStorage 128 | ^Word.SessionD 129 | SessionDefaultData 130 | ^Word.SessionD 131 | ^Word.SessionI 132 | ^Word.SessionS 133 | 100000 134 | 135 | 136 | %%CLASSNAME 137 | 138 | 139 | SID 140 | 141 | 142 | CreationTime 143 | 144 | 145 | CreationDate 146 | 147 | 148 | 149 | 150 | 151 | -------------------------------------------------------------------------------- /Word/UserTerm.cls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | User-offered terms 6 | %Persistent,%Populate,%XML.Adaptor 7 | 63036,45269.483625 8 | 9 | 10 | 14 | 15 | 16 | 17 | 18 | Original EnglishName of Term 19 | %String 20 | 1 21 | 22 | 23 | 24 | 25 | 26 | bitmap 27 | EnglishName 28 | 29 | 30 | 31 | 32 | RussianName of Term 33 | Property OfficialTranslation As Word.Translation; 34 | Definition of Term in Russian 35 | %String 36 | 37 | 38 | 39 | 40 | 41 | Definition of Term in English 42 | %String 43 | 44 | 45 | 46 | 47 | 48 | HTTP link to documentation/wikipedia/whatever 49 | %String 50 | 51 | 52 | 53 | 54 | 55 | Example of how to use Term in english 56 | %String 57 | 58 | 59 | 60 | 61 | 62 | Official russian translation 63 | %String 64 | 65 | 66 | 67 | 68 | Users' rating of translation 69 | %Integer 70 | 71 | 72 | 73 | 74 | Got to use it right 75 | %String 76 | 77 | 78 | 79 | 80 | 84 | 85 | 86 | 87 | Word.User 88 | one 89 | Terms 90 | 1 91 | 92 | 93 | 94 | %Date 95 | $PIECE($NOW(),",",1) 96 | 1 97 | 98 | 99 | 100 | %Time 101 | $PIECE($NOW(),",",2) 102 | 1 103 | 104 | 105 | 106 | %Library.CacheStorage 107 | ^Word.UserTermD 108 | UserTermDefaultData 109 | ^Word.UserTermD 110 | ^Word.UserTermI 111 | ^Word.UserTermS 112 | 100000 113 | 114 | "UserTerm" 115 | 116 | User 117 | 118 | 119 | CreationDate 120 | 121 | 122 | CreationTime 123 | 124 | 125 | %%CLASSNAME 126 | 127 | 128 | EnglishName 129 | 130 | 131 | RussianDefinition 132 | 133 | 134 | EnglishDefinition 135 | 136 | 137 | FurtherRead 138 | 139 | 140 | EnglishNameContext 141 | 142 | 143 | RussianName 144 | 145 | 146 | RussianNameRating 147 | 148 | 149 | RussianNameContext 150 | 151 | 152 | 153 | 154 | 155 | -------------------------------------------------------------------------------- /REST/BrokerAdmin.cls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %CSP.REST 5 | 63035,61098.747218 6 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | ]]> 52 | 53 | 54 | 55 | 1 56 | %Status 57 | Работает?!> 59 | &html<

Работает!!!

> 60 | quit $$$OK 61 | ]]>
62 |
63 | 64 | 65 | 66 | Serves client csp.rest1 page 67 | 1 68 | query:%String 69 | %Status 70 | 75 | 76 | 77 | 78 | 1 79 | id:%String 80 | %Status 81 | 86 | 87 | 88 | 89 | 90 | 404 page 91 | 1 92 | %Status 93 | Не Работает?!> 95 | quit $$$OK 96 | ]]> 97 | 98 |
99 |
100 | -------------------------------------------------------------------------------- /csp/about.csp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | InterSystems Glossary 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
25 | 43 | 44 |
45 | {{alert.msg}} 46 |
47 | 48 | 49 |
50 |
51 |

О проекте

52 | 53 |
54 |
55 | Глоссарий технологий InterSystems ставит целью предоставить достоверную информацию о терминах, 56 | использующищихся в стеке технологий InterSystems. 57 | Для каждого термина представлены английское и русское определения, описания и контексты использования. 58 | Ссылки на ресурсы, предоставляющие более подробную информацию.
59 | Зарегистрированные пользователи имеют возможность обсуждать термины, предложенные варианты перевода, а 60 | также предлагать свои собственные варианты. 61 |
62 |
63 |
64 | 65 |
66 |

Написать администрации

67 |
    68 |
    70 |
    71 |
    72 | 73 |
    74 |
75 | 76 |
77 | 78 | 79 |
80 | 81 | 82 | 83 | ]]>
84 |
85 | -------------------------------------------------------------------------------- /csp/Bootstrap/css/glossary.css.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | img { 221 | vertical-align: baseline !important; 222 | }]]> 223 | 224 | -------------------------------------------------------------------------------- /Word/User.cls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | UserTable 5 | %Persistent,%Populate,%XML.Adaptor 6 | 63020,38756.679731 7 | 8 | 9 | 10 | User name 11 | %String 12 | 1 13 | 14 | 15 | 16 | 17 | 1 18 | Login 19 | 1 20 | 21 | 22 | 23 | encrypted password]]> 25 | %String 26 | 1 27 | 28 | 29 | 30 | database]]> 32 | %String 33 | 1 34 | 35 | 36 | 37 | 38 | encrypted password) transformation via MD5 hash]]> 40 | Arg:%String 41 | %Status 42 | 47 | 48 | 49 | 50 | %String 51 | 55 | 56 | 57 | 58 | 59 | User priveledge level. 0 - read-only, 1 - user, 2- moderator 3 - administrator. 60 | %Integer 61 | 1 62 | 1 63 | 64 | 65 | 66 | 67 | 68 | 69 | User Email 70 | %String 71 | 72 | 73 | 74 | Word.Session 75 | children 76 | User 77 | 1 78 | 79 | 80 | 81 | Word.Translation 82 | many 83 | User 84 | 1 85 | 86 | 87 | 88 | Word.Comment 89 | many 90 | User 91 | 1 92 | 93 | 94 | 95 | Other.Letter 96 | many 97 | User 98 | 1 99 | 100 | 101 | 102 | Word.UserTerm 103 | many 104 | User 105 | 1 106 | 107 | 108 | 109 | %Date 110 | $PIECE($NOW(),",",1) 111 | 1 112 | 113 | 114 | 115 | %Time 116 | $PIECE($NOW(),",",2) 117 | 1 118 | 119 | 120 | 121 | %Library.ArrayOfDataTypes 122 | 128 | 129 | 130 | 131 | %Library.CacheStorage 132 | ^Word.UserD 133 | UserDefaultData 134 | ^Word.UserD 135 | ^Word.UserI 136 | ^Word.UserS 137 | 23 138 | 139 | 140 | %%CLASSNAME 141 | 142 | 143 | Name 144 | 145 | 146 | Password 147 | 148 | 149 | Priveledge 150 | 151 | 152 | Email 153 | 154 | 155 | CreationDate 156 | 157 | 158 | CreationTime 159 | 160 | 161 | 162 | 100.0000% 163 | 164 | 165 | 13.0435% 166 | .869565:63029 167 | 168 | 169 | 4.7619% 170 | 171 | 172 | 4.7619% 173 | 174 | 175 | 4.3478% 176 | 177 | 178 | 4.3478% 179 | .913043:1 180 | 181 | 182 | -4 183 | 184 | 185 | 186 | 187 | -------------------------------------------------------------------------------- /Word/Translation.cls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Class describes one translation 6 | %Persistent,%Populate,%XML.Adaptor 7 | 63014,62792.482687 8 | 9 | 10 | 11 | Translation itself 12 | %String 13 | 1 14 | 15 | 16 | 17 | 18 | Users' rating of translation 19 | %Integer 20 | 21 | 22 | 23 | 24 | Got to use it right 25 | %String 26 | 27 | 28 | 29 | 30 | 34 | 35 | 36 | 37 | %Integer 38 | 39 | 40 | 41 | TermId 42 | 43 | 44 | 45 | Word.User 46 | one 47 | Translations 48 | 1 49 | 50 | 51 | 52 | %Date 53 | $PIECE($NOW(),",",1) 54 | 1 55 | 56 | 57 | 58 | %Time 59 | $PIECE($NOW(),",",2) 60 | 1 61 | 62 | 63 | 64 | 1 65 | %Status 66 | 96 | 97 | 98 | 99 | Глобаль03Подиндекс011Ключ011 100 | ]]> 101 | 102 | 103 | 104 | %Library.CacheSerialState 105 | ^Word.TranslationD 106 | TranslationDefaultData 107 | ^Word.TranslationD 108 | ^Word.TranslationI 109 | TranslationState 110 | ^Word.TranslationS 111 | 100 112 | 113 | "1" 114 | 115 | %%CLASSNAME 116 | 117 | 118 | TranslationName 119 | 120 | 121 | TranslationRating 122 | 123 | 124 | TranslationContext 125 | 126 | 127 | TermId 128 | 129 | 130 | User 131 | 132 | 133 | CreationDate 134 | 135 | 136 | CreationTime 137 | 138 | 139 | 140 | 141 | Name 142 | 143 | 144 | Rating 145 | 146 | 147 | Context 148 | 149 | 150 | Term 151 | 152 | 153 | 154 | 100.0000% 155 | 156 | 157 | 1.0000% 158 | 159 | 160 | 1.0000% 161 | 162 | 163 | 1.0000% 164 | 165 | 166 | 1.6667% 167 | 168 | 169 | 1.0000% 170 | 171 | 172 | 1.0000% 173 | 174 | 175 | 1.0000% 176 | 177 | 178 | 10.0000% 179 | 180 | 181 | -4 182 | 183 | 184 | -4 185 | 186 | 187 | 188 | 189 | -------------------------------------------------------------------------------- /csp/term.csp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | InterSystems Glossary 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
24 | 48 | 49 |
50 | {{alert.msg}} 51 | 101 |
102 |


Комментарии:

103 |
    104 | 105 |
    107 |
    108 |
    109 | 110 |
    111 |
112 |
    Для добавления комментариев необходимо зарегистрироваться или войти. 113 |
114 |
    Вы в рид-онли.
115 |
    116 | 117 |
  • 119 | {{comment.Login}} писал {{comment.CreationDate}} в {{comment.CreationTime}}
    120 | {{comment.Text}}
    121 |
  • 122 |
123 | 124 | 125 |
126 | 127 |
128 | 129 | 132 | 133 | 134 | 135 | 136 | 137 | ]]>
138 |
139 | -------------------------------------------------------------------------------- /csp/rest1.csp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 13 | 14 | InterSystems Glossary 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 34 | 35 | 36 | 37 |
39 | 76 | 77 | 78 | 79 | 80 | 81 | 82 |
83 |
84 |
86 |
87 |

88 | 89 | 90 | 91 |
92 | {{alert.msg}} 93 |
94 | 95 | 96 |
    97 | 98 |

    99 | 100 |
    102 |
    103 |
    104 |
    106 |
    108 |
    110 |
    112 |
    116 |
    117 |
118 | 119 | 120 | 121 | 140 |
141 | 142 | 143 | 144 | ]]>
145 |
146 | -------------------------------------------------------------------------------- /csp/Bootstrap/js/glossary_admin.js.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | =0 && scale<=3) {$http.delete("/glossary/admin/json/user/" + userid+"/"+scale) 215 | .success(function (data) { 216 | $scope.alertzone = "Удаление пользователя!!!"; 217 | }).error(function (data, status) { 218 | $scope.alertzone = "[" + status + "] Ошибка удаления пользователя :( [" + data + "]"; 219 | }); 220 | } 221 | } 222 | 223 | $scope.deleteCommentUser = function (commentid, index) { 224 | // alert($scope.terms.indexOf(termid)); 225 | $http.delete("/glossary/admin/json/comment/" + commentid) 226 | .success(function (data) { 227 | $scope.getCommentsByUser(index); 228 | $scope.alertzone = "Удаление комментария!!!"; 229 | }).error(function (data, status) { 230 | $scope.alertzone = "[" + status + "] Ошибка удаления комментария :( [" + data + "]"; 231 | }); 232 | } 233 | 234 | };]]> 235 | 236 | -------------------------------------------------------------------------------- /REST/Broker.cls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | http://localhost:57772/rest/test]]> 17 | %CSP.REST 18 | 62999,56505.766013 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | ]]> 58 | 59 | 60 | 61 | 1 62 | %Status 63 | Работает?!> 65 | &html<

Работает!!!

> 66 | zw %request 67 | quit $$$OK 68 | ]]>
69 |
70 | 71 | 72 | 1 73 | termid 74 | %Status 75 | 93 | 94 | 95 | 96 | 1 97 | %Status 98 | 124 | 125 | 126 | 127 | 128 | Serves client csp.rest1 page 129 | 1 130 | query:%String 131 | %Status 132 | 141 | 142 | 143 | 144 | 145 | Serves client csp.rest1 page without query 146 | 1 147 | %Status 148 | 154 | 155 | 156 | 157 | 1 158 | id:%String 159 | %Status 160 | 167 | 168 | 169 | 170 | 171 | 404 page 172 | 1 173 | %Status 174 | Не Работает?!> 177 | quit $$$OK 178 | ]]> 179 | 180 | 181 | 182 | 183 | Dispatch a REST request according to URL and Method 184 | 1 185 | pUrl:%String,pMethod:%String 186 | %Status 187 | 288 | 289 |
290 |
291 | -------------------------------------------------------------------------------- /Word/Term.cls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Class describing terms and their definitions. 6 | Term 7 | %Persistent,%Populate,%XML.Adaptor 8 | 63011,38444.690451 9 | 10 | 11 | 12 | Original EnglishName of Term 13 | %String 14 | 1 15 | 16 | 17 | 18 | 19 | 20 | bitmap 21 | EnglishName 22 | 23 | 24 | 25 | 29 | 30 | 31 | 32 | 33 | RussianName of Term 34 | Property OfficialTranslation As Word.Translation; 35 | Definition of Term in Russian 36 | %String 37 | 38 | 39 | 40 | 41 | 42 | Definition of Term in English 43 | %String 44 | 45 | 46 | 47 | 48 | 49 | HTTP link to documentation/wikipedia/whatever 50 | %String 51 | 52 | 53 | 54 | 55 | 56 | Example of how to use Term in english 57 | %String 58 | 59 | 60 | 61 | 62 | 63 | Official russian translation 64 | %String 65 | 66 | 67 | 68 | 69 | Users' rating of translation 70 | %Integer 71 | 72 | 73 | 74 | 75 | Got to use it right 76 | %String 77 | 78 | 79 | 80 | 81 | 85 | 86 | 87 | 88 | Word.Comment 89 | children 90 | Term 91 | 1 92 | 93 | 94 | 95 | 1 96 | %Status 97 | 127 | 128 | 129 | 130 | CSP GatewayСлой абстрагирования между Web-сервером и Web-приложениями Caché Server Pages.Provides the communications layer between the hosting web server and Caché when you call a Caché Server Page.http://docs.intersystems.com/cache20131/csp/docbook/DocBook.UI.Page.cls?KEY=GCGI_introCSP шлюз0DebuggingПроцесс нахождения и исправления багов (ошибок) в компьютерной программе.Methodical process of finding and reducing the number of bugs, or defects, in a computer program.http://docs.intersystems.com/cache20131/csp/docbook/DocBook.UI.Page.cls?KEY=ITECHREF_debuggingОтладка0GlobalМногомерная структура данных. В базах данных Caché реализованы с помощью B-деревьев.A multidimensional storage structure. Globals are implemented using balanced-tree technology within a Caché database.http://docs.intersystems.com/cache20131/csp/docbook/DocBook.UI.Page.cls?KEY=GGBL_prefaceГлобал0GlobalsПарадигма программирования, в которой основными концепциями являются понятия объектов и классов, а также методов - действий, которые можно выполнять над объектом и которые сам объект может выполнять.A multidimensional storage structure. Globals are implemented using balanced-tree technology within a Caché database.http://docs.intersystems.com/cache20131/csp/docbook/DocBook.UI.Page.cls?KEY=GGBL_prefaceГлобалы0OOPДействие по записи новых данных вместо уже существующих, удаляя старые данныеA programming paradigm that represents concepts as "objects" that have data fields (attributes that describe the object) and associated procedures known as methods.http://en.wikipedia.org/wiki/Object-oriented_programmingООП0OverwriteЭкземпляры хранимого класса могут быть сохранены в базе данных. Все хранимые классы наследуются от класса %Persistent для обеспечения методов хранения/чтения данныхTo record (new data) on top of already stored data, thus destroying the old data.Перезапись0Persistent classWeb-портал администрирования сервера Cach?.Objects of a persistent class can be stored in the database. Persistent classes inherit the persistent interface from the %Persistent class to manage data storage and retrieval.Хранимый класс0PortalДля Cach?: программа на языке Caché ObjectScript или Basic, хранится в базе данных.Web based system administration and management tool for Caché.http://docs.intersystems.com/cache20131/csp/docbook/DocBook.UI.Page.cls?KEY=TVQS_SysMgmtPortalПортал0RoutineНабор комманд на языке Caché ObjectScript или Basic, хранится в базе данных.In Cach?: a Caché ObjectScript or Basic program. Routines are stored in a Caché database.http://docs.intersystems.com/cache20131/csp/docbook/DocBook.UI.Page.cls?KEY=GSTD_RoutinesПрограмма0StudioПриложение windows, интегрированная среда разработки приложений и баз данных Cach?.Windows application that helps you develop applications rapidly, in a single, integrated environmenthttp://docs.intersystems.com/cache20131/csp/docbook/DocBook.UI.Page.cls?KEY=GSTD_IntroСтудия0SubscriptВсе идентификаторы области за исключением первого (имя глобала)All other identifiers in the namespace excluding the root identifier (global name)http://docs.intersystems.com/cache20131/csp/docbook/DocBook.UI.Page.cls?KEY=BXJV_globals#BXJV_C100389Индекс0 131 | ]]> 132 | 133 | 134 | 135 | %Library.CacheStorage 136 | ^Word.TermD 137 | TermDefaultData 138 | ^Word.TermD 139 | ^Word.TermI 140 | ^Word.TermS 141 | 103 142 | 143 | 144 | %%CLASSNAME 145 | 146 | 147 | EnglishName 148 | 149 | 150 | Name 151 | 152 | 153 | Language 154 | 155 | 156 | Definition 157 | 158 | 159 | FurtherRead 160 | 161 | 162 | Official 163 | 164 | 165 | Rating 166 | 167 | 168 | LanguageT 169 | 170 | 171 | LanguageTr 172 | 173 | 174 | Cotext 175 | 176 | 177 | Context 178 | 179 | 180 | RussianName 181 | 182 | 183 | RussianDefinition 184 | 185 | 186 | EnglishDefinition 187 | 188 | 189 | Translations 190 | 191 | 192 | Translationss 193 | 194 | 195 | OfficialTranslation 196 | 197 | 198 | RussianNameRating 199 | 200 | 201 | RussianNameContext 202 | 203 | 204 | EnglishNameContext 205 | 206 | 207 | 208 | 100.0000% 209 | 210 | 211 | 1.0000% 212 | 213 | 214 | 0.5000% 215 | 216 | 217 | 0.9709% 218 | 219 | 220 | 0.9709% 221 | 222 | 223 | 0.9901% 224 | 225 | 226 | 0.9709% 227 | 228 | 229 | 49.9998% 230 | 231 | 232 | 50.0000% 233 | 234 | 235 | 0.5000% 236 | 237 | 238 | 1.0000% 239 | 240 | 241 | 0.7246% 242 | .5: 243 | 244 | 245 | 1.0000% 246 | 247 | 248 | 0.9709% 249 | 250 | 251 | 0.9709% 252 | 253 | 254 | 0.9901% 255 | 256 | 257 | 0.9901% 258 | 259 | 260 | 1.0526% 261 | 262 | 263 | -4 264 | 265 | 266 | -4 267 | 268 | 269 | -8 270 | 271 | 272 | -8 273 | 274 | 275 | -4 276 | 277 | 278 | 279 | 280 | -------------------------------------------------------------------------------- /csp/admin.csp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 13 | 14 | InterSystems Glossary - Admin 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |

{{alertzone}}

28 | 29 |
31 | 41 | 42 | 43 | 44 |
    45 | 46 |

    47 | 48 |
    50 |
    51 |
    52 |
    54 |
    56 |
    58 |
    60 |
    64 |
    65 |
66 | 67 |
    68 |
  • 70 | 71 | 72 | {{term.EnglishName}} - 73 | {{term.RussianName}}
    74 | 75 |

    {{term.EnglishDefinition}}

    76 | 77 |

    {{term.RussianDefinition}}

    78 | 79 | 80 | 84 | 85 | 86 | 108 | 109 | 110 | 126 | 138 | 139 |
    87 | Термин: 88 |
    89 |
    90 |
    91 |
    94 |
    97 |
    99 |
    101 | 102 |
    103 | 104 | 105 |
    106 | 107 |
    111 | Альтернативные варианты перевода: 112 |
  • 113 | {{translation.TranslationName}}
    114 | Контекст: {{translation.TranslationContext}}
    115 | Рейтинг: {{translation.TranslationRating}}
    116 | 120 | 124 |
  • 125 |
    127 | Комментарии: 128 |
  • 129 | {{comment.Login}} писал {{comment.CreationDate}} в {{comment.CreationTime}} 130 |
    131 | {{comment.Text}}
    132 | 135 |
  • 136 | 137 |
    140 |
141 |
142 |
143 | 144 |
    145 |
  • 147 | {{user.Login}}
    148 | 152 | 153 | 154 | 165 | 175 | 188 | 189 |
    155 | Пользователь: 156 |
    157 |
    158 |
    159 |
    161 | 162 |
    163 | 164 |
    166 | Комментарии: 167 |
  • 168 | {{comment.CreationDate}} {{comment.CreationTime}}
    169 | {{comment.Text}}
    170 | 173 |
  • 174 |
    176 | Предложенные варианты перевода: 177 |
  • 178 | {{translation.EnglishName}} - {{translation.TranslationName}}
    179 | Контекст: {{translation.TranslationContext}}
    180 | Рейтинг: {{translation.TranslationRating}}
    181 | 185 |
  • 186 | 187 |
    190 |
191 | 192 |
193 | 194 | 195 |
    196 |
  • 197 | {{term.EnglishName}} - {{term.RussianName}}
    198 | 201 | 202 |
    204 |
    205 |
    206 |
    207 |
    210 |
    213 |
    215 |
    217 | 218 |
    219 | 220 |
    221 |
  • 222 |
223 |
224 | 225 |
    226 |
  • 227 | {{letter.Login}} писал {{letter.CreationDate}} в {{letter.CreationTime}}
    228 | {{letter.Text}}
    229 | 232 |
  • 233 |
234 |
235 | 236 | В разработке. 237 | 238 |
239 | 240 | 241 | 242 | 243 | ]]>
244 |
245 | -------------------------------------------------------------------------------- /csp/Bootstrap/js/glossary.js.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | '+ 266 | '

Регистрация

'+ 267 | ''+ 268 | ''; 280 | 281 | 282 | $scope.opts = { 283 | backdrop: true, 284 | keyboard: true, 285 | backdropClick: true, 286 | template: t, // OR: templateUrl: 'path/to/view.html', 287 | controller: 'RegistrationDialogController' 288 | }; 289 | 290 | $scope.openDialog = function(){ 291 | var d = $dialog.dialog($scope.opts); 292 | d.open().then(function(user){ 293 | if(user) 294 | { 295 | $scope.doRegister(user); 296 | } 297 | }); 298 | }; 299 | 300 | $scope.readCookie = function (name) { 301 | var nameEQ = name + "="; 302 | var ca = document.cookie.split(';'); 303 | for(var i=0;i < ca.length;i++) { 304 | var c = ca[i]; 305 | while (c.charAt(0)==' ') c = c.substring(1,c.length); 306 | if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 307 | } 308 | return null; 309 | }; 310 | 311 | // Add one UserTerm 312 | $scope.addTerm = function (term) { 313 | $http.post("/glossary/json/term", term) 314 | .success(function (data) { 315 | $scope.getTerms(); 316 | $scope.alerts.push({ type: "success", msg: "Успешно предложили термин."}); 317 | }).error(function (data, status) { 318 | $scope.alerts.push({ type: "error", msg: "Ошибка добавления термина."}); 319 | }); 320 | }; 321 | 322 | 323 | } 324 | 325 | // the dialog is injected in the specified controller 326 | function RegistrationDialogController($scope, dialog, $http){ 327 | $scope.close = function(user){ 328 | dialog.close(user); 329 | }; 330 | 331 | $scope.resetPassword = function(){ 332 | var email=prompt('Введите ваш email \n На него будет отправлен новый пароль ',null) 333 | if (email) { 334 | $http.post("/glossary/json/user/"+email) 335 | .success(function (data) { 336 | $rootScope.alerts.push({ type: "success", msg: "Успешно изменили пароль."}); 337 | }).error(function (data, status) { 338 | $rootScope.alerts.push({ type: "error", msg: "Ошибка изменения пароля."}); 339 | }); 340 | }; 341 | dialog.close(); 342 | }; 343 | 344 | 345 | 346 | } 347 | 348 | 349 | 350 | ]]>
351 |
352 | -------------------------------------------------------------------------------- /csp/Bootstrap/img/intersystems-header.gif.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | R0lGODlhEgJMAPcAADQyZJSWsGhgfOPPwEhhoFFCZHeZxPzt1DRGjFx8rKmyxK/O5F5UdJR6fJS1 5 | 3NHq84R6nMS0sCwmhE5upNTU5oFgcUBTjN33/JSmxPzizDlDf7mXlDk3aVx7tMPD1LzO3GlFZJ/D 6 | 4XxehDQ4d8Te7O3t8rGjsXRwtDZanFxWfISFt2Bgn3BwobS0xtzh5GuLu5aYxExKnIqp1Fo4ZDo3 7 | hqyKjPn48mxsjMzO5OLCtI1udOjWxD1LjM/s/HxSZMuppMPE3WxmnNzh9FJLalRTjEBMf21MZJKR 8 | tEpglPz75Hx6nNG7sYtpdN7e3Eg+Zru9zEE9lPT4/KSitLS03NLDyNzV1G9wrI6hyaio1Ix6jMCg 9 | nnx9tsmsrWxUdOjq5FNwrPPx/FVUnvDl5G6OxImOpXxwiD8+iE1MkXODrOfRzDpCdIGeyqq71LTY 10 | 9N/y9Juuy0o5ZafJ7L3h/Iuu28jZ6WlorCwmfExqpJy95Pnm0/Py82xVfHZ2ouTm6XtaZZCRxGBf 11 | k5yLn3yWvHRulGSEwLqss5iCkISDqcq6vKaFhMDW3FkyZJ+lvM3G1I9zhG6Etpm11MS2vF9NdLu8 12 | 1KGh1Nza9IyKxDQyhDQyeZuavLy93KzS9HRhfKyapFxGdPXZyHx7rINofMSuvLza9KyqvGR2pKzK 13 | 5HySvOzKvJV2fIBqhGRirE5OdICf1LS11Njy/Ozm3Pzy5Pzy3Mzm9FxahFFOnVg+Z7CSlMnK3lVa 14 | k9rKyuLa2WlmjKiSoPPRw0dFkOPr8NW0rV1xoaipx0VEhM3O3K/C3HaLuE9OfOK9tMm+xqKhx6iF 15 | jNra5zc+eXh2uIyKufz+86yu2FxaoeT+/MTK1ODm9Pz+/HV2rHZadFh2rKyuzMrm/KCqvN7t/O3h 16 | 3Pbs5EZEdIxylNTW3Ki01F1ehExEbHuZzPfr3KG1zK/Q7Jx6hD1UlLuanFxEbMXg9ExThOHh7JmZ 17 | zISp3KqMlGRslNzEvI5wfOrXzD5MlHdVbGtopFhVlGhMbI2OvHJ7pCH5BAEAANcALAAAAAASAkwA 18 | Bwj/AK8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuX 19 | 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 195 | Ow== 196 | 197 | 198 | -------------------------------------------------------------------------------- /REST/JSON.cls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ******************************************************* 6 | использованы материалы с мероприятия 7 | some part of this source code getting from 8 | InterSystems Global Summit 2013 9 | "Building Mobile Applications with RESTful Interfaces" 10 | by Chris Carmichael and Oliver Caudron 11 | ******************************************************* 12 | JSON Test class 13 | Также использован код из проекта 14 | https://github.com/MDevelopmentGroup/Recruting 15 | %occErrors 16 | %Base 17 | 63000,44444.255278 18 | 19 | 20 | 21 | Get a list of all terms in JSON format 22 | 1 23 | %Status 24 | entering CATCH block> 38 | set st=ex.AsStatus() 39 | } 40 | quit st 41 | ]]> 42 | 43 | 44 | 45 | 46 | Get all user-added terms 47 | 1 48 | %Status 49 | 59 | 60 | 61 | 62 | 63 | Get a list of all Users 64 | 1 65 | %Status 66 | 76 | 77 | 78 | 79 | 80 | Get one term translations in JSON format 81 | 1 82 | termid:%String 83 | %Status 84 | 89 | 90 | 91 | 92 | 93 | Get all comments on one term 94 | 1 95 | termid:%String 96 | %Status 97 | Login As Login,Text, CONVERT(VARCHAR(20),CreationDate,103) AS CreationDate, CreationTime FROM Word.Comment WHERE Term="_termid_" ORDER BY CreationDate DESC, CreationTime DESC") 101 | quit $$$OK 102 | ]]> 103 | 104 | 105 | 106 | 1 107 | %Status 108 | Login As Login, Text, CONVERT(VARCHAR(20),CreationDate,103) AS CreationDate, CreationTime FROM Other.Letter ORDER BY CreationDate DESC, CreationTime DESC") 110 | quit $$$OK 111 | ]]> 112 | 113 | 114 | 115 | 116 | Get all comments by one user 117 | 1 118 | userid:%String 119 | %Status 120 | Login='"_usr_"' ORDER BY CreationDate DESC, CreationTime DESC") 123 | quit $$$OK 124 | ]]> 125 | 126 | 127 | 128 | 129 | Get all translations by one user 130 | 1 131 | userid:%String 132 | %Status 133 | Login='"_usr_"' ORDER BY CreationDate DESC,CreationTime DESC") 136 | quit $$$OK 137 | ]]> 138 | 139 | 140 | 141 | 142 | Get one term 143 | 1 144 | termid:%String 145 | %Status 146 | 151 | 152 | 153 | 154 | 155 | Add one term 156 | 1 157 | %Status 158 | Object 162 | set obj=##class(Word.Term).%New() 163 | $$$THROWONERROR(st,##class(%ZEN.Auxiliary.jsonProvider).%ConvertJSONToObject(%request.Content,"Word.Term",.obj,1)) 164 | // Solves problems with encoding 165 | set obj.RussianName=$ZCONVERT(obj.RussianName,"I","UTF8") 166 | set obj.EnglishName=$ZCONVERT(obj.EnglishName,"I","UTF8") 167 | set obj.RussianDefinition=$ZCONVERT(obj.RussianDefinition,"I","UTF8") 168 | set obj.EnglishDefinition=$ZCONVERT(obj.EnglishDefinition,"I","UTF8") 169 | set obj.RussianNameContext=$ZCONVERT(obj.RussianNameContext,"I","UTF8") 170 | set obj.EnglishNameContext=$ZCONVERT(obj.EnglishNameContext,"I","UTF8") 171 | set obj.FurtherRead=$ZCONVERT(obj.FurtherRead,"I","UTF8") 172 | 173 | $$$THROWONERROR(st,obj.%Save()) 174 | } catch ex{ 175 | set st=ex.AsStatus() 176 | } 177 | quit st 178 | ]]> 179 | 180 | 181 | 182 | 1 183 | %Status 184 | 208 | 209 | 210 | 211 | 212 | Make user-offered term official 213 | 1 214 | termid:%String 215 | %Status 216 | 235 | 236 | 237 | 238 | 239 | Add one translation 240 | 1 241 | %Status 242 | Login INTO :Id From Word.Session WHERE SID=:%request.Cookies("SID",1)) 249 | set user=##class(Word.User).%OpenId(Id) 250 | //JSON -> Object 251 | $$$THROWONERROR(st,##class(%ZEN.Auxiliary.jsonProvider).%ConvertJSONToObject(%request.Content,"Word.Translation",.obj,1)) 252 | set obj.TranslationName=$ZCONVERT(obj.TranslationName,"I","UTF8") 253 | set obj.TranslationContext=$ZCONVERT(obj.TranslationContext,"I","UTF8") 254 | set obj.User=user 255 | $$$THROWONERROR(st,obj.%Save()) 256 | } catch ex{ 257 | set st=ex.AsStatus() 258 | } 259 | } 260 | quit st 261 | ]]> 262 | 263 | 264 | 265 | 266 | Add one comment 267 | 1 268 | termid 269 | %Status 270 | Login INTO :Id From Word.Session WHERE SID=:%request.Cookies("SID",1)) 276 | set user=##class(Word.User).%OpenId(Id) 277 | set term=##class(Word.Term).%OpenId(termid) 278 | $$$THROWONERROR(st,##class(%ZEN.Auxiliary.jsonProvider).%ConvertJSONToObject(%request.Content,"Word.Comment",.obj,1)) 279 | set obj.Text=$ZCONVERT(obj.Text,"I","UTF8") 280 | set obj.User=user 281 | set obj.Term=term 282 | $$$THROWONERROR(st,obj.%Save()) 283 | } catch ex{ 284 | set st=ex.AsStatus() 285 | } 286 | } 287 | quit st 288 | ]]> 289 | 290 | 291 | 292 | 293 | Add one letter 294 | 1 295 | %Status 296 | Login INTO :Id From Word.Session WHERE SID=:%request.Cookies("SID",1)) 302 | set user=##class(Word.User).%OpenId(Id) 303 | $$$THROWONERROR(st,##class(%ZEN.Auxiliary.jsonProvider).%ConvertJSONToObject(%request.Content,"Other.Letter",.obj,1)) 304 | set obj.Text=$ZCONVERT(obj.Text,"I","UTF8") 305 | set obj.User=user 306 | $$$THROWONERROR(st,obj.%Save()) 307 | } catch ex{ 308 | set st=ex.AsStatus() 309 | } 310 | } 311 | quit st 312 | ]]> 313 | 314 | 315 | 316 | 317 | Add one user 318 | 1 319 | %Status 320 | 334 | 335 | 336 | 337 | 1 338 | %Status 339 | > 351 | w "network: ",obj.network &html<
> 352 | w "first_name: ",obj."first_name" &html<
> 353 | w "last_name: ",obj."last_name" &html<
> 354 | w "identity: ",obj.identity &html<
> 355 | w "profile: ",obj.profile &html<
> 356 | w "email: ",obj.email &html<
> 357 | w "error: ",obj.error &html<
> 358 | zw obj*/ 359 | If obj.error="" { 360 | Set lgn=obj."last_name"_" "_obj."first_name" 361 | If '(##class(Word.User).%ExistsId(lgn)) { 362 | Set usr=##class(Word.User).%New() 363 | Set usr.Login=lgn 364 | Set usr.Priveledge=1 365 | Set usr.Password="oAuth User" 366 | Set usr.Email=obj.email 367 | $$$THROWONERROR(st,usr.%Save()) 368 | } 369 | Set Session=##class(Word.Session).%New() 370 | Set Usr=##class(Word.User).%OpenId(lgn) 371 | Set Session.User=Usr 372 | Do Session.SIDGenerate() 373 | $$$THROWONERROR(st,Session.%Save()) 374 | Do %response.SetCookie("SID",Session.SID,,"/") 375 | Do %response.SetCookie("LoginState","1",,"/") 376 | Do %response.SetCookie("Login",lgn,,"/") 377 | Do %response.SetCookie("Priveledge","1",,"/") 378 | } 379 | 380 | } Catch ex{ 381 | Set st=ex.AsStatus() 382 | } 383 | &html<> 384 | Quit st 385 | ]]>
386 |
387 | 388 | 389 | 1 390 | login,password 391 | %Status 392 | 414 | 415 | 416 | 417 | 418 | Create new session 419 | 1 420 | login,password 421 | %Status 422 | 451 | 452 | 453 | 454 | 455 | Update term with new values 456 | 1 457 | termid:%String 458 | %Status 459 | Name #(obj.EnglishName)#> 474 | &html<

ID #(termid)#

> 475 | $$$THROWONERROR(st,term.%Save()) 476 | 477 | } catch ex{ 478 | &html<

entering CATCH block

> 479 | set st=ex.AsStatus() 480 | } 481 | quit st 482 | ]]>
483 |
484 | 485 | 486 | 487 | Update one user. 488 | 1 489 | userid:%String 490 | %Status 491 | encoded url -> utf8 497 | set user=##class(Word.User).%OpenId($ZCONVERT($ZCONVERT(userid ,"I","URL") ,"I","UTF8")) 498 | set user.Email = $ZCONVERT(obj.Email ,"I","UTF8") 499 | set user.Login = $ZCONVERT(obj.Login ,"I","UTF8") 500 | set user.Priveledge = $ZCONVERT(obj.Priveledge ,"I","UTF8") 501 | $$$THROWONERROR(st,user.%Save()) 502 | } catch ex{ 503 | set st=ex.AsStatus() 504 | } 505 | quit st 506 | ]]> 507 | 508 | 509 | 510 | 511 | Delete one term 512 | 1 513 | termid:%String 514 | %Status 515 | 525 | 526 | 527 | 528 | 529 | Delete user-offered term 530 | 1 531 | termid:%String 532 | %Status 533 | 542 | 543 | 544 | 545 | 546 | Delete user. Scale - 0 only user, 1 - user and his comments, 2 - user and his translations 547 | 3 - user and his comments and translations. (User sessions deleted regardless of scale) 548 | 1 549 | userid:%String,scale:%Integer 550 | %Status 551 | Login=:usr) 560 | $$$THROWONERROR(st,##class(Word.User).%DeleteId(usr)) 561 | } 562 | ELSEIF (scale=2) { 563 | 564 | &SQL(DELETE FROM Word.Translation WHERE "User"->Login=:usr) 565 | $$$THROWONERROR(st,##class(Word.User).%DeleteId(usr)) 566 | } 567 | ELSEIF (scale=3) { 568 | 569 | &SQL(DELETE FROM Word.Comment WHERE "User"->Login=:usr) 570 | &SQL(DELETE FROM Word.Translation WHERE "User"->Login=:usr) 571 | $$$THROWONERROR(st,##class(Word.User).%DeleteId(usr)) 572 | } 573 | } catch ex{ 574 | set st=ex.AsStatus() 575 | } 576 | quit st 577 | ]]> 578 | 579 | 580 | 581 | 582 | Delete one translation 583 | 1 584 | translationid:%String 585 | %Status 586 | 595 | 596 | 597 | 598 | 599 | Delete one comment 600 | 1 601 | commentid:%String 602 | %Status 603 | Plaintext (%7C = |) 607 | $$$THROWONERROR(st,##class(Word.Comment).%DeleteId($ZCONVERT($ZCONVERT(commentid ,"I","URL") ,"I","UTF8"))) 608 | } catch ex{ 609 | set st=ex.AsStatus() 610 | } 611 | quit st 612 | ]]> 613 | 614 | 615 | 616 | 617 | Make new translation default. 618 | 1 619 | translationid:%String 620 | %Status 621 | Name #(translation.TranslationName)#> 645 | &html<

ID #(translationid)#

> 646 | $$$THROWONERROR(st,term.%Save()) 647 | $$$THROWONERROR(st,translation.%Save()) 648 | 649 | } catch ex{ 650 | &html<

entering CATCH block

> 651 | set st=ex.AsStatus() 652 | } 653 | quit st 654 | ]]>
655 |
656 | 657 | 658 | 1 659 | email:%String 660 | %Status 661 | 15 696 | } 697 | set user.PasswordSetter=pass 698 | do user.%Save() 699 | do m.TextData.WriteLine("Новый пароль: "_pass) 700 | do m.TextData.WriteLine("") 701 | do m.TextData.WriteLine("С наилучшими пожеланиями, команда ISC Glossary.") 702 | 703 | set status=s.Send(m) 704 | } catch ex{ 705 | set st=ex.AsStatus() 706 | } 707 | } else { 708 | set st=$$$ERROR($$$GeneralError,"E-mail не найден в базе.") 709 | } 710 | quit st 711 | ]]> 712 | 713 |
714 |
715 | -------------------------------------------------------------------------------- /csp/Bootstrap/js/ui-bootstrap-tpls-0.4.0.min.js.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | =0&&(o=t(n,r))}var o,i,r=this,l=r.slides=[],s=-1;r.currentSlide=null,r.select=function(o,i){function c(){r.currentSlide&&angular.isString(i)&&!e.noTransition&&o.$element?(o.$element.addClass(i),o.$element[0].offsetWidth=o.$element[0].offsetWidth,angular.forEach(l,function(e){angular.extend(e,{direction:"",entering:!1,leaving:!1,active:!1})}),angular.extend(o,{direction:i,active:!0,entering:!0}),angular.extend(r.currentSlide||{},{direction:i,leaving:!0}),e.$currentTransition=n(o.$element,{}),function(t,n){e.$currentTransition.then(function(){u(t,n)},function(){u(t,n)})}(o,r.currentSlide)):u(o,r.currentSlide),r.currentSlide=o,s=p,a()}function u(t,n){angular.extend(t,{direction:"",active:!0,leaving:!1,entering:!1}),angular.extend(n||{},{direction:"",active:!1,leaving:!1,entering:!1}),e.$currentTransition=null}var p=l.indexOf(o);void 0===i&&(i=p>s?"next":"prev"),o&&o!==r.currentSlide&&(e.$currentTransition?(e.$currentTransition.cancel(),t(c)):c())},r.indexOfSlide=function(e){return l.indexOf(e)},e.next=function(){var t=(s+1)%l.length;return e.$currentTransition?void 0:r.select(l[t],"next")},e.prev=function(){var t=0>s-1?l.length-1:s-1;return e.$currentTransition?void 0:r.select(l[t],"prev")},e.select=function(e){r.select(e)},e.isActive=function(e){return r.currentSlide===e},e.slides=function(){return l},e.$watch("interval",a),e.play=function(){i||(i=!0,a())},e.pause=function(){e.noPause||(i=!1,o&&t.cancel(o))},r.addSlide=function(t,n){t.$element=n,l.push(t),1===l.length||t.active?(r.select(l[l.length-1]),1==l.length&&e.play()):t.active=!1},r.removeSlide=function(e){var t=l.indexOf(e);l.splice(t,1),l.length>0&&e.active?t>=l.length?r.select(l[t-1]):r.select(l[t]):s>t&&s--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",["$parse",function(e){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{},link:function(t,n,a,o){if(a.active){var i=e(a.active),r=i.assign,l=t.active=i(t.$parent);t.$watch(function(){var e=i(t.$parent);return e!==t.active&&(e!==l?l=t.active=e:r(t.$parent,e=l=t.active)),e})}o.addSlide(t,n),t.$on("$destroy",function(){o.removeSlide(t)}),t.$watch("active",function(e){e&&o.select(t)})}}}]),angular.module("ui.bootstrap.datepicker",[]).constant("datepickerConfig",{dayFormat:"dd",monthFormat:"MMMM",yearFormat:"yyyy",dayHeaderFormat:"EEE",dayTitleFormat:"MMMM yyyy",monthTitleFormat:"yyyy",showWeeks:!0,startingDay:0,yearRange:20}).directive("datepicker",["dateFilter","$parse","datepickerConfig",function(e,t,n){return{restrict:"EA",replace:!0,scope:{model:"=ngModel",dateDisabled:"&"},templateUrl:"template/datepicker/datepicker.html",link:function(a,o,r){function l(e,t,n){a.rows=e,a.labels=t,a.title=n}function s(){a.showWeekNumbers="day"===a.mode&&p}function c(e,t){return"year"===a.mode?t.getFullYear()-e.getFullYear():"month"===a.mode?new Date(t.getFullYear(),t.getMonth())-new Date(e.getFullYear(),e.getMonth()):"day"===a.mode?new Date(t.getFullYear(),t.getMonth(),t.getDate())-new Date(e.getFullYear(),e.getMonth(),e.getDate()):void 0}function u(e){return d&&c(e,d)>0||m&&0>c(e,m)||a.dateDisabled&&a.dateDisabled({date:e,mode:a.mode})}a.mode="day";var p,d,m,g=new Date,f={};f.day=angular.isDefined(r.dayFormat)?a.$eval(r.dayFormat):n.dayFormat,f.month=angular.isDefined(r.monthFormat)?a.$eval(r.monthFormat):n.monthFormat,f.year=angular.isDefined(r.yearFormat)?a.$eval(r.yearFormat):n.yearFormat,f.dayHeader=angular.isDefined(r.dayHeaderFormat)?a.$eval(r.dayHeaderFormat):n.dayHeaderFormat,f.dayTitle=angular.isDefined(r.dayTitleFormat)?a.$eval(r.dayTitleFormat):n.dayTitleFormat,f.monthTitle=angular.isDefined(r.monthTitleFormat)?a.$eval(r.monthTitleFormat):n.monthTitleFormat;var h=angular.isDefined(r.startingDay)?a.$eval(r.startingDay):n.startingDay,v=angular.isDefined(r.yearRange)?a.$eval(r.yearRange):n.yearRange;r.showWeeks?a.$parent.$watch(t(r.showWeeks),function(e){p=!!e,s()}):(p=n.showWeeks,s()),r.min&&a.$parent.$watch(t(r.min),function(e){d=new Date(e),w()}),r.max&&a.$parent.$watch(t(r.max),function(e){m=new Date(e),w()});var b=function(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n},$=function(e,t){return new Date(e,t+1,0).getDate()},y={day:function(){function t(t,a,i){for(var r=0;a>r;r++)n.push({date:new Date(t),isCurrent:i,isSelected:k(t),label:e(t,f.day),disabled:u(t)}),t.setDate(t.getDate()+1);o=t}var n=[],a=[],o=null,r=new Date(g);r.setDate(1);var s=h-r.getDay(),c=s>0?7-s:-s;for(c>0&&(r.setDate(-c+1),t(r,c,!1)),t(o||r,$(g.getFullYear(),g.getMonth()),!0),t(o,(7-n.length%7)%7,!1),i=0;7>i;i++)a.push(e(n[i].date,f.dayHeader));l(b(n,7),a,e(g,f.dayTitle))},month:function(){for(var t=[],n=0,a=g.getFullYear();12>n;){var o=new Date(a,n++,1);t.push({date:o,isCurrent:!0,isSelected:k(o),label:e(o,f.month),disabled:u(o)})}l(b(t,3),[],e(g,f.monthTitle))},year:function(){for(var t=[],n=parseInt((g.getFullYear()-1)/v,10)*v+1,a=0;v>a;a++){var o=new Date(n+a,0,1);t.push({date:o,isCurrent:!0,isSelected:k(o),label:e(o,f.year),disabled:u(o)})}var i=t[0].label+" - "+t[t.length-1].label;l(b(t,5),[],i)}},w=function(){y[a.mode]()},k=function(e){if(a.model&&a.model.getFullYear()===e.getFullYear()){if("year"===a.mode)return!0;if(a.model.getMonth()===e.getMonth())return"month"===a.mode||"day"===a.mode&&a.model.getDate()===e.getDate()}return!1};a.$watch("model",function(e,t){angular.isDate(e)&&(g=angular.copy(e)),angular.equals(e,t)||w()}),a.$watch("mode",function(){s(),w()}),a.select=function(e){g=new Date(e),"year"===a.mode?(a.mode="month",g.setFullYear(e.getFullYear())):"month"===a.mode?(a.mode="day",g.setMonth(e.getMonth())):"day"===a.mode&&(a.model=new Date(g))},a.move=function(e){"day"===a.mode?g.setMonth(g.getMonth()+e):"month"===a.mode?g.setFullYear(g.getFullYear()+e):"year"===a.mode&&g.setFullYear(g.getFullYear()+e*v),w()},a.toggleMode=function(){a.mode="day"===a.mode?"month":"month"===a.mode?"year":"day"},a.getWeekNumber=function(e){if("day"===a.mode&&a.showWeekNumbers&&7===e.length){var t=h>4?11-h:4-h,n=new Date(e[t].date);return n.setHours(0,0,0),Math.ceil(((n-new Date(n.getFullYear(),0,1))/864e5+1)/7)}}}}}]);var dialogModule=angular.module("ui.bootstrap.dialog",["ui.bootstrap.transition"]);dialogModule.controller("MessageBoxController",["$scope","dialog","model",function(e,t,n){e.title=n.title,e.message=n.message,e.buttons=n.buttons,e.close=function(e){t.close(e)}}]),dialogModule.provider("$dialog",function(){var e={backdrop:!0,dialogClass:"modal",backdropClass:"modal-backdrop",transitionClass:"fade",triggerClass:"in",resolve:{},backdropFade:!1,dialogFade:!1,keyboard:!0,backdropClick:!0},t={},n={value:0};this.options=function(e){t=e},this.$get=["$http","$document","$compile","$rootScope","$controller","$templateCache","$q","$transition","$injector",function(a,o,i,r,l,s,c,u,p){function d(e){var t=angular.element("
");return t.addClass(e),t}function m(n){var a=this,o=this.options=angular.extend({},e,t,n);this._open=!1,this.backdropEl=d(o.backdropClass),o.backdropFade&&(this.backdropEl.addClass(o.transitionClass),this.backdropEl.removeClass(o.triggerClass)),this.modalEl=d(o.dialogClass),o.dialogFade&&(this.modalEl.addClass(o.transitionClass),this.modalEl.removeClass(o.triggerClass)),this.handledEscapeKey=function(e){27===e.which&&(a.close(),e.preventDefault(),a.$scope.$apply())},this.handleBackDropClick=function(e){a.close(),e.preventDefault(),a.$scope.$apply()},this.handleLocationChange=function(){a.close()}}var g=o.find("body");return m.prototype.isOpen=function(){return this._open},m.prototype.open=function(e,t){var n=this,a=this.options;if(e&&(a.templateUrl=e),t&&(a.controller=t),!a.template&&!a.templateUrl)throw Error("Dialog.open expected template or templateUrl, neither found. Use options or open method to specify them.");return this._loadResolves().then(function(e){var t=e.$scope=n.$scope=e.$scope?e.$scope:r.$new();if(n.modalEl.html(e.$template),n.options.controller){var a=l(n.options.controller,e);n.modalEl.children().data("ngControllerController",a)}i(n.modalEl)(t),n._addElementsToDom(),setTimeout(function(){n.options.dialogFade&&n.modalEl.addClass(n.options.triggerClass),n.options.backdropFade&&n.backdropEl.addClass(n.options.triggerClass)}),n._bindEvents()}),this.deferred=c.defer(),this.deferred.promise},m.prototype.close=function(e){function t(e){e.removeClass(a.options.triggerClass)}function n(){a._open&&a._onCloseComplete(e)}var a=this,o=this._getFadingElements();if(o.length>0)for(var i=o.length-1;i>=0;i--)u(o[i],t).then(n);else this._onCloseComplete(e)},m.prototype._getFadingElements=function(){var e=[];return this.options.dialogFade&&e.push(this.modalEl),this.options.backdropFade&&e.push(this.backdropEl),e},m.prototype._bindEvents=function(){this.options.keyboard&&g.bind("keydown",this.handledEscapeKey),this.options.backdrop&&this.options.backdropClick&&this.backdropEl.bind("click",this.handleBackDropClick)},m.prototype._unbindEvents=function(){this.options.keyboard&&g.unbind("keydown",this.handledEscapeKey),this.options.backdrop&&this.options.backdropClick&&this.backdropEl.unbind("click",this.handleBackDropClick)},m.prototype._onCloseComplete=function(e){this._removeElementsFromDom(),this._unbindEvents(),this.deferred.resolve(e)},m.prototype._addElementsToDom=function(){g.append(this.modalEl),this.options.backdrop&&(0===n.value&&g.append(this.backdropEl),n.value++),this._open=!0},m.prototype._removeElementsFromDom=function(){this.modalEl.remove(),this.options.backdrop&&(n.value--,0===n.value&&this.backdropEl.remove()),this._open=!1},m.prototype._loadResolves=function(){var e,t=[],n=[],o=this;return this.options.template?e=c.when(this.options.template):this.options.templateUrl&&(e=a.get(this.options.templateUrl,{cache:s}).then(function(e){return e.data})),angular.forEach(this.options.resolve||[],function(e,a){n.push(a),t.push(angular.isString(e)?p.get(e):p.invoke(e))}),n.push("$template"),t.push(e),c.all(t).then(function(e){var t={};return angular.forEach(e,function(e,a){t[n[a]]=e}),t.dialog=o,t})},{dialog:function(e){return new m(e)},messageBox:function(e,t,n){return new m({templateUrl:"template/dialog/message.html",controller:"MessageBoxController",resolve:{model:function(){return{title:e,message:t,buttons:n}}}})}}}]}),angular.module("ui.bootstrap.dropdownToggle",[]).directive("dropdownToggle",["$document","$location",function(e){var t=null,n=angular.noop;return{restrict:"CA",link:function(a,o){a.$watch("$location.path",function(){n()}),o.parent().bind("click",function(){n()}),o.bind("click",function(a){var i=o===t;a.preventDefault(),a.stopPropagation(),t&&n(),i||(o.parent().addClass("open"),t=o,n=function(a){a&&(a.preventDefault(),a.stopPropagation()),e.unbind("click",n),o.parent().removeClass("open"),n=angular.noop,t=null},e.bind("click",n))})}}}]),angular.module("ui.bootstrap.modal",["ui.bootstrap.dialog"]).directive("modal",["$parse","$dialog",function(e,t){return{restrict:"EA",terminal:!0,link:function(n,a,o){var i,r=angular.extend({},n.$eval(o.uiOptions||o.bsOptions||o.options)),l=o.modal||o.show;r=angular.extend(r,{template:a.html(),resolve:{$scope:function(){return n}}});var s=t.dialog(r);a.remove(),i=o.close?function(){e(o.close)(n)}:function(){angular.isFunction(e(l).assign)&&e(l).assign(n,!1)},n.$watch(l,function(e){e?s.open().then(function(){i()}):s.isOpen()&&s.close()})}}}]),angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope",function(e){e.noPrevious=function(){return 1===e.currentPage},e.noNext=function(){return e.currentPage===e.numPages},e.isActive=function(t){return e.currentPage===t},e.selectPage=function(t){!e.isActive(t)&&t>0&&e.numPages>=t&&(e.currentPage=t,e.onSelectPage({page:t}))}}]).constant("paginationConfig",{boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["paginationConfig",function(e){return{restrict:"EA",scope:{numPages:"=",currentPage:"=",maxSize:"=",onSelectPage:"&"},controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(t,n,a){function o(e,t,n,a){return{number:e,text:t,active:n,disabled:a}}var i=angular.isDefined(a.boundaryLinks)?t.$eval(a.boundaryLinks):e.boundaryLinks,r=angular.isDefined(a.directionLinks)?t.$eval(a.directionLinks):e.directionLinks,l=angular.isDefined(a.firstText)?t.$parent.$eval(a.firstText):e.firstText,s=angular.isDefined(a.previousText)?t.$parent.$eval(a.previousText):e.previousText,c=angular.isDefined(a.nextText)?t.$parent.$eval(a.nextText):e.nextText,u=angular.isDefined(a.lastText)?t.$parent.$eval(a.lastText):e.lastText,p=angular.isDefined(a.rotate)?t.$eval(a.rotate):e.rotate;t.$watch("numPages + currentPage + maxSize",function(){t.pages=[];var e=1,n=t.numPages,a=angular.isDefined(t.maxSize)&&t.maxSizet.numPages&&(n=t.numPages,e=n-t.maxSize+1)):(e=(Math.ceil(t.currentPage/t.maxSize)-1)*t.maxSize+1,n=Math.min(e+t.maxSize-1,t.numPages)));for(var d=e;n>=d;d++){var m=o(d,d,t.isActive(d),!1);t.pages.push(m)}if(a&&!p){if(e>1){var g=o(e-1,"...",!1,!1);t.pages.unshift(g)}if(t.numPages>n){var f=o(n+1,"...",!1,!1);t.pages.push(f)}}if(r){var h=o(t.currentPage-1,s,!1,t.noPrevious());t.pages.unshift(h);var v=o(t.currentPage+1,c,!1,t.noNext());t.pages.push(v)}if(i){var b=o(1,l,!1,t.noPrevious());t.pages.unshift(b);var $=o(t.numPages,u,!1,t.noNext());t.pages.push($)}t.currentPage>t.numPages&&t.selectPage(t.numPages)})}}}]).constant("pagerConfig",{previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(e){return{restrict:"EA",scope:{numPages:"=",currentPage:"=",onSelectPage:"&"},controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(t,n,a){function o(e,t,n,a,o){return{number:e,text:t,disabled:n,previous:l&&a,next:l&&o}}var i=angular.isDefined(a.previousText)?t.$parent.$eval(a.previousText):e.previousText,r=angular.isDefined(a.nextText)?t.$parent.$eval(a.nextText):e.nextText,l=angular.isDefined(a.align)?t.$parent.$eval(a.align):e.align;t.$watch("numPages + currentPage",function(){t.pages=[];var e=o(t.currentPage-1,i,t.noPrevious(),!0,!1);t.pages.unshift(e);var n=o(t.currentPage+1,r,t.noNext(),!1,!0);t.pages.push(n),t.currentPage>t.numPages&&t.selectPage(t.numPages)})}}}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(e,t){function n(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]}function a(e){return"static"===(n(e,"position")||"static")}var o,i;e.bind("mousemove",function(e){o=e.pageX,i=e.pageY});var r=function(t){for(var n=e[0],o=t.offsetParent||n;o&&o!==n&&a(o);)o=o.offsetParent;return o||n};return{position:function(t){var n=this.offset(t),a={top:0,left:0},o=r(t[0]);return o!=e[0]&&(a=this.offset(angular.element(o)),a.top+=o.clientTop,a.left+=o.clientLeft),{width:t.prop("offsetWidth"),height:t.prop("offsetHeight"),top:n.top-a.top,left:n.left-a.left}},offset:function(n){var a=n[0].getBoundingClientRect();return{width:n.prop("offsetWidth"),height:n.prop("offsetHeight"),top:a.top+(t.pageYOffset||e[0].body.scrollTop),left:a.left+(t.pageXOffset||e[0].body.scrollLeft)}},mouse:function(){return{x:o,y:i}}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position"]).provider("$tooltip",function(){function e(e){var t=/[A-Z]/g,n="-";return e.replace(t,function(e,t){return(t?n:"")+e.toLowerCase()})}var t={placement:"top",animation:!0,popupDelay:0},n={mouseenter:"mouseleave",click:"click",focus:"blur"},a={};this.options=function(e){angular.extend(a,e)},this.setTriggers=function(e){angular.extend(n,e)},this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function(o,i,r,l,s,c,u){return function(o,p,d){function m(e){var t,a;return t=e||g.trigger||d,a=angular.isDefined(g.trigger)?n[g.trigger]||t:n[t]||t,{show:t,hide:a}}var g=angular.extend({},t,a),f=e(o),h=m(void 0),v=u.startSymbol(),b=u.endSymbol(),$="<"+f+"-popup "+'title="'+v+"tt_title"+b+'" '+'content="'+v+"tt_content"+b+'" '+'placement="'+v+"tt_placement"+b+'" '+'animation="tt_animation()" '+'is-open="tt_isOpen"'+">"+"";return{restrict:"EA",scope:!0,link:function(e,t,n){function a(){e.tt_isOpen?d():u()}function u(){e.tt_popupDelay?y=r(f,e.tt_popupDelay):e.$apply(f)}function d(){e.$apply(function(){v()})}function f(){var n,a,o,i;if(e.tt_content){switch(b&&r.cancel(b),k.css({top:0,left:0,display:"block"}),x?(w=w||s.find("body"),w.append(k)):t.after(k),n=g.appendToBody?c.offset(t):c.position(t),a=k.prop("offsetWidth"),o=k.prop("offsetHeight"),e.tt_placement){case"mouse":var l=c.mouse();i={top:l.y,left:l.x};break;case"right":i={top:n.top+n.height/2-o/2,left:n.left+n.width};break;case"bottom":i={top:n.top+n.height,left:n.left+n.width/2-a/2};break;case"left":i={top:n.top+n.height/2-o/2,left:n.left-a};break;default:i={top:n.top-o,left:n.left+n.width/2-a/2}}i.top+="px",i.left+="px",k.css(i),e.tt_isOpen=!0}}function v(){e.tt_isOpen=!1,r.cancel(y),angular.isDefined(e.tt_animation)&&e.tt_animation()?b=r(function(){k.remove()},500):k.remove()}var b,y,w,k=i($)(e),x=angular.isDefined(g.appendToBody)?g.appendToBody:!1;e.tt_isOpen=!1,n.$observe(o,function(t){e.tt_content=t}),n.$observe(p+"Title",function(t){e.tt_title=t}),n.$observe(p+"Placement",function(t){e.tt_placement=angular.isDefined(t)?t:g.placement}),n.$observe(p+"Animation",function(t){e.tt_animation=angular.isDefined(t)?l(t):function(){return g.animation}}),n.$observe(p+"PopupDelay",function(t){var n=parseInt(t,10);e.tt_popupDelay=isNaN(n)?g.popupDelay:n}),n.$observe(p+"Trigger",function(e){t.unbind(h.show),t.unbind(h.hide),h=m(e),h.show===h.hide?t.bind(h.show,a):(t.bind(h.show,u),t.bind(h.hide,d))}),n.$observe(p+"AppendToBody",function(t){x=angular.isDefined(t)?l(t)(e):x}),x&&e.$on("$locationChangeSuccess",function(){e.tt_isOpen&&v()}),e.$on("$destroy",function(){e.tt_isOpen?v():k.remove()})}}}}]}).directive("tooltipPopup",function(){return{restrict:"E",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(e){return e("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"E",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(e){return e("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$compile","$timeout","$parse","$window","$tooltip",function(e,t,n,a,o){return o("popover","popover","click")}]),angular.module("ui.bootstrap.progressbar",["ui.bootstrap.transition"]).constant("progressConfig",{animate:!0,autoType:!1,stackedTypes:["success","info","warning","danger"]}).controller("ProgressBarController",["$scope","$attrs","progressConfig",function(e,t,n){function a(e){return r[e]}var o=angular.isDefined(t.animate)?e.$eval(t.animate):n.animate,i=angular.isDefined(t.autoType)?e.$eval(t.autoType):n.autoType,r=angular.isDefined(t.stackedTypes)?e.$eval("["+t.stackedTypes+"]"):n.stackedTypes;this.makeBar=function(e,t,n){var r=angular.isObject(e)?e.value:e||0,l=angular.isObject(t)?t.value:t||0,s=angular.isObject(e)&&angular.isDefined(e.type)?e.type:i?a(n||0):null;return{from:l,to:r,type:s,animate:o}},this.addBar=function(t){e.bars.push(t),e.totalPercent+=t.to},this.clearBars=function(){e.bars=[],e.totalPercent=0},this.clearBars()}]).directive("progress",function(){return{restrict:"EA",replace:!0,controller:"ProgressBarController",scope:{value:"=percent",onFull:"&",onEmpty:"&"},templateUrl:"template/progressbar/progress.html",link:function(e,t,n,a){e.$watch("value",function(e,t){if(a.clearBars(),angular.isArray(e))for(var n=0,o=e.length;o>n;n++)a.addBar(a.makeBar(e[n],t[n],n));else a.addBar(a.makeBar(e,t))},!0),e.$watch("totalPercent",function(t){t>=100?e.onFull():0>=t&&e.onEmpty()},!0)}}}).directive("progressbar",["$transition",function(e){return{restrict:"EA",replace:!0,scope:{width:"=",old:"=",type:"=",animate:"="},templateUrl:"template/progressbar/bar.html",link:function(t,n){t.$watch("width",function(a){t.animate?(n.css("width",t.old+"%"),e(n,{width:a+"%"})):n.css("width",a+"%")})}}}]),angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5}).directive("rating",["ratingConfig","$parse",function(e,t){return{restrict:"EA",scope:{value:"="},templateUrl:"template/rating/rating.html",replace:!0,link:function(n,a,o){var i=angular.isDefined(o.max)?n.$eval(o.max):e.max;n.range=[];for(var r=1;i>=r;r++)n.range.push(r);n.rate=function(e){n.readonly||(n.value=e)},n.enter=function(e){n.readonly||(n.val=e)},n.reset=function(){n.val=angular.copy(n.value)},n.reset(),n.$watch("value",function(e){n.val=e}),n.readonly=!1,o.readonly&&n.$parent.$watch(t(o.readonly),function(e){n.readonly=!!e})}}}]),angular.module("ui.bootstrap.tabs",[]).directive("tabs",function(){return function(){throw Error("The `tabs` directive is deprecated, please migrate to `tabset`. Instructions can be found at http://github.com/angular-ui/bootstrap/tree/master/CHANGELOG.md")}}).controller("TabsetController",["$scope","$element",function(e){var t=this,n=t.tabs=e.tabs=[];t.select=function(e){angular.forEach(n,function(e){e.active=!1}),e.active=!0},t.addTab=function(e){n.push(e),1==n.length&&t.select(e)},t.removeTab=function(e){var a=n.indexOf(e);if(e.active&&n.length>1){var o=a==n.length-1?a-1:a+1;t.select(n[o])}n.splice(a,1)}}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,scope:{},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(e,t,n){e.vertical=angular.isDefined(n.vertical)?e.$eval(n.vertical):!1,e.type=angular.isDefined(n.type)?e.$parent.$eval(n.type):"tabs"}}}).directive("tab",["$parse","$http","$templateCache","$compile",function(e){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{heading:"@",onSelect:"&select"},controller:function(){},compile:function(t,n,a){return function(t,n,o,i){var r,l;t.active=!1,o.active?(r=e(o.active),l=r.assign,t.$parent.$watch(r,function(e){e&&t.disabled?l(t.$parent,!1):t.active=!!e})):l=r=angular.noop,t.$watch("active",function(e){l(t.$parent,e),e&&(i.select(t),t.onSelect())}),t.disabled=!1,o.disabled&&t.$parent.$watch(e(o.disabled),function(e){t.disabled=!!e}),t.select=function(){t.disabled||(t.active=!0)},i.addTab(t),t.$on("$destroy",function(){i.removeTab(t)}),t.active&&l(t.$parent,!0),a(t.$parent,function(e){var n,a=[];angular.forEach(e,function(e){e.tagName&&(e.hasAttribute("tab-heading")||e.hasAttribute("data-tab-heading")||"tab-heading"==e.tagName.toLowerCase()||"data-tab-heading"==e.tagName.toLowerCase())?n=e:a.push(e)}),n&&(t.headingElement=angular.element(n)),t.contentElement=angular.element(a)})}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(e,t){e.$watch("headingElement",function(e){e&&(t.html(""),t.append(e))})}}}]).directive("tabContentTransclude",["$parse",function(e){return{restrict:"A",require:"^tabset",link:function(t,n,a){t.$watch(e(a.tabContentTransclude),function(e){n.html(""),e&&n.append(e.contentElement)})}}}]),angular.module("ui.bootstrap.timepicker",[]).filter("pad",function(){return function(e){return angular.isDefined(e)&&2>(""+e).length&&(e="0"+e),e}}).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:["AM","PM"],readonlyInput:!1,mousewheel:!0}).directive("timepicker",["padFilter","$parse","timepickerConfig",function(e,t,n){return{restrict:"EA",require:"ngModel",replace:!0,templateUrl:"template/timepicker/timepicker.html",scope:{model:"=ngModel"},link:function(a,o,i){function r(){var e=parseInt(a.hours,10),t=a.showMeridian?e>0&&13>e:e>=0&&24>e;return t?(a.showMeridian&&(12===e&&(e=0),a.meridian===u[1]&&(e+=12)),e):void 0}function l(){var t=c.getHours();a.showMeridian&&(t=0===t||12===t?12:t%12),a.hours="h"===b?t:e(t),a.validHours=!0;var n=c.getMinutes();a.minutes="m"===b?n:e(n),a.validMinutes=!0,a.meridian=a.showMeridian?12>c.getHours()?u[0]:u[1]:"",b=!1}function s(e){var t=new Date(c.getTime()+6e4*e);t.getDate()!==c.getDate()&&t.setDate(t.getDate()-1),c.setTime(t.getTime()),a.model=new Date(c)}var c=new Date,u=n.meridians,p=n.hourStep;i.hourStep&&a.$parent.$watch(t(i.hourStep),function(e){p=parseInt(e,10)});var d=n.minuteStep;i.minuteStep&&a.$parent.$watch(t(i.minuteStep),function(e){d=parseInt(e,10)}),a.showMeridian=n.showMeridian,i.showMeridian&&a.$parent.$watch(t(i.showMeridian),function(e){if(a.showMeridian=!!e,a.model)l();else{var t=new Date(c),n=r();angular.isDefined(n)&&t.setHours(n),a.model=new Date(t)}});var m=o.find("input"),g=m.eq(0),f=m.eq(1),h=angular.isDefined(i.mousewheel)?a.$eval(i.mousewheel):n.mousewheel;if(h){var v=function(e){return e.originalEvent&&(e=e.originalEvent),e.detail||e.wheelDelta>0};g.bind("mousewheel",function(e){a.$apply(v(e)?a.incrementHours():a.decrementHours()),e.preventDefault()}),f.bind("mousewheel",function(e){a.$apply(v(e)?a.incrementMinutes():a.decrementMinutes()),e.preventDefault()})}var b=!1;a.readonlyInput=angular.isDefined(i.readonlyInput)?a.$eval(i.readonlyInput):n.readonlyInput,a.readonlyInput?(a.updateHours=angular.noop,a.updateMinutes=angular.noop):(a.updateHours=function(){var e=r();angular.isDefined(e)?(b="h",null===a.model&&(a.model=new Date(c)),a.model.setHours(e)):(a.model=null,a.validHours=!1)},g.bind("blur",function(){a.validHours&&10>a.hours&&a.$apply(function(){a.hours=e(a.hours) 5 | })}),a.updateMinutes=function(){var e=parseInt(a.minutes,10);e>=0&&60>e?(b="m",null===a.model&&(a.model=new Date(c)),a.model.setMinutes(e)):(a.model=null,a.validMinutes=!1)},f.bind("blur",function(){a.validMinutes&&10>a.minutes&&a.$apply(function(){a.minutes=e(a.minutes)})})),a.$watch(function(){return+a.model},function(e){!isNaN(e)&&e>0&&(c=new Date(e),l())}),a.incrementHours=function(){s(60*p)},a.decrementHours=function(){s(60*-p)},a.incrementMinutes=function(){s(d)},a.decrementMinutes=function(){s(-d)},a.toggleMeridian=function(){s(720*(12>c.getHours()?1:-1))}}}}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position"]).factory("typeaheadParser",["$parse",function(e){var t=/^\s*(.*?)(?:\s+as\s+(.*?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+(.*)$/;return{parse:function(n){var a=n.match(t);if(!a)throw Error("Expected typeahead specification in form of '_modelValue_ (as _label_)? for _item_ in _collection_' but got '"+n+"'.");return{itemName:a[3],source:e(a[4]),viewMapper:e(a[2]||a[1]),modelMapper:e(a[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(e,t,n,a,o,i,r){var l=[9,13,27,38,40];return{require:"ngModel",link:function(s,c,u,p){var d,m=s.$eval(u.typeaheadMinLength)||1,g=s.$eval(u.typeaheadWaitMs)||0,f=r.parse(u.typeahead),h=s.$eval(u.typeaheadEditable)!==!1,v=t(u.typeaheadLoading).assign||angular.noop,b=t(u.typeaheadOnSelect),$=angular.element("");$.attr({matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"});var y=s.$new();s.$on("$destroy",function(){y.$destroy()});var w=function(){y.matches=[],y.activeIdx=-1},k=function(e){var t={$viewValue:e};v(s,!0),n.when(f.source(y,t)).then(function(n){if(e===p.$viewValue){if(n.length>0){y.activeIdx=0,y.matches.length=0;for(var a=0;n.length>a;a++)t[f.itemName]=n[a],y.matches.push({label:f.viewMapper(y,t),model:n[a]});y.query=e,y.position=i.position(c),y.position.top=y.position.top+c.prop("offsetHeight")}else w();v(s,!1)}},function(){w(),v(s,!1)})};w(),y.query=void 0,p.$parsers.push(function(e){var t;return w(),d?e:(e&&e.length>=m&&(g>0?(t&&a.cancel(t),t=a(function(){k(e)},g)):k(e)),h?e:void 0)}),p.$render=function(){var e={};e[f.itemName]=d||p.$viewValue,c.val(f.viewMapper(y,e)||p.$viewValue),d=void 0},y.select=function(e){var t,n,a={};a[f.itemName]=n=d=y.matches[e].model,t=f.modelMapper(y,a),p.$setViewValue(t),p.$render(),b(y,{$item:n,$model:t,$label:f.viewMapper(y,a)}),c[0].focus()},c.bind("keydown",function(e){0!==y.matches.length&&-1!==l.indexOf(e.which)&&(e.preventDefault(),40===e.which?(y.activeIdx=(y.activeIdx+1)%y.matches.length,y.$digest()):38===e.which?(y.activeIdx=(y.activeIdx?y.activeIdx:y.matches.length)-1,y.$digest()):13===e.which||9===e.which?y.$apply(function(){y.select(y.activeIdx)}):27===e.which&&(e.stopPropagation(),w(),y.$digest()))}),o.bind("click",function(){w(),y.$digest()}),c.after(e($)(y))}}}]).directive("typeaheadPopup",function(){return{restrict:"E",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead.html",link:function(e){e.isOpen=function(){return e.matches.length>0},e.isActive=function(t){return e.active==t},e.selectActive=function(t){e.active=t},e.selectMatch=function(t){e.select({activeIdx:t})}}}}).filter("typeaheadHighlight",function(){function e(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,n){return n?t.replace(RegExp(e(n),"gi"),"$&"):n}}),angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function(e){e.put("template/accordion/accordion-group.html",'
\n \n
\n
\n
')}]),angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(e){e.put("template/accordion/accordion.html",'
')}]),angular.module("template/alert/alert.html",[]).run(["$templateCache",function(e){e.put("template/alert/alert.html","
\n \n
\n
\n")}]),angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function(e){e.put("template/carousel/carousel.html",'\n')}]),angular.module("template/carousel/slide.html",[]).run(["$templateCache",function(e){e.put("template/carousel/slide.html","
\n")}]),angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(e){e.put("template/datepicker/datepicker.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
#{{label}}
{{ getWeekNumber(row) }}\n \n
\n')}]),angular.module("template/dialog/message.html",[]).run(["$templateCache",function(e){e.put("template/dialog/message.html",'\n\n\n')}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(e){e.put("template/modal/backdrop.html",'')}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function(e){e.put("template/modal/window.html",'')}]),angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(e){e.put("template/pagination/pager.html",'
\n \n
\n')}]),angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(e){e.put("template/pagination/pagination.html",'\n')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-html-unsafe-popup.html",'
\n
\n
\n
\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-popup.html",'
\n
\n
\n
\n')}]),angular.module("template/popover/popover.html",[]).run(["$templateCache",function(e){e.put("template/popover/popover.html",'
\n
\n\n
\n

\n
\n
\n
\n')}]),angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(e){e.put("template/progressbar/bar.html",'
')}]),angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(e){e.put("template/progressbar/progress.html",'
')}]),angular.module("template/rating/rating.html",[]).run(["$templateCache",function(e){e.put("template/rating/rating.html",'\n \n\n')}]),angular.module("template/tabs/pane.html",[]).run(["$templateCache",function(e){e.put("template/tabs/pane.html",'
\n')}]),angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(e){e.put("template/tabs/tab.html",'
  • \n {{heading}}\n
  • \n')}]),angular.module("template/tabs/tabs.html",[]).run(["$templateCache",function(e){e.put("template/tabs/tabs.html",'
    \n \n
    \n
    \n')}]),angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(e){e.put("template/tabs/tabset.html",'\n
    \n \n
    \n
    \n
    \n
    \n
    \n')}]),angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(e){e.put("template/timepicker/timepicker.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
     
    :
     
    ')}]),angular.module("template/typeahead/typeahead.html",[]).run(["$templateCache",function(e){e.put("template/typeahead/typeahead.html",'')}]);]]> 6 | 7 | --------------------------------------------------------------------------------