http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/reset.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/reset.jade b/modules/web-console/frontend/views/reset.jade deleted file mode 100644 index 9098105..0000000 --- a/modules/web-console/frontend/views/reset.jade +++ /dev/null @@ -1,48 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You 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. - -header#header.header - table.container - tr - td.col-xs-3.col-sm-3.col-md-2 - ignite-header-logo - td - ignite-header-title - -.container.body-container - .main-content(ng-controller='resetPassword') - .row - .text-center(ng-if='!token') - p Further instructions for password reset have been sent to your e-mail address. - .text-center(ng-if='error') - p {{::error}} - div(ng-if='token && !error') - form.form-horizontal(name='resetForm' ng-init='reset_info.token = token') - .settings-row - label.col-sm-1 E-mail: - label {{::email}} - .settings-row - label.col-sm-1.required Password: - .col-sm-3 - input#user_password.form-control(ignite-on-enter-focus-move='user_confirm' type='password' ng-model='reset_info.password' placeholder='New password' required) - .settings-row - label.col-sm-1.required Confirm: - .col-sm-3 - input#user_confirm.form-control(type='password' ng-model='reset_info.confirm' ignite-match='reset_info.password' placeholder='Confirm new password' required ignite-on-enter='resetForm.$valid && resetPassword(user_info)') - .settings-row - button.btn.btn-primary(ng-disabled='resetForm.$invalid' ng-click='resetPassword(reset_info)') Reset Password - -include includes/footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/reset.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/reset.tpl.pug b/modules/web-console/frontend/views/reset.tpl.pug new file mode 100644 index 0000000..9098105 --- /dev/null +++ b/modules/web-console/frontend/views/reset.tpl.pug @@ -0,0 +1,48 @@ +//- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. + +header#header.header + table.container + tr + td.col-xs-3.col-sm-3.col-md-2 + ignite-header-logo + td + ignite-header-title + +.container.body-container + .main-content(ng-controller='resetPassword') + .row + .text-center(ng-if='!token') + p Further instructions for password reset have been sent to your e-mail address. + .text-center(ng-if='error') + p {{::error}} + div(ng-if='token && !error') + form.form-horizontal(name='resetForm' ng-init='reset_info.token = token') + .settings-row + label.col-sm-1 E-mail: + label {{::email}} + .settings-row + label.col-sm-1.required Password: + .col-sm-3 + input#user_password.form-control(ignite-on-enter-focus-move='user_confirm' type='password' ng-model='reset_info.password' placeholder='New password' required) + .settings-row + label.col-sm-1.required Confirm: + .col-sm-3 + input#user_confirm.form-control(type='password' ng-model='reset_info.confirm' ignite-match='reset_info.password' placeholder='Confirm new password' required ignite-on-enter='resetForm.$valid && resetPassword(user_info)') + .settings-row + button.btn.btn-primary(ng-disabled='resetForm.$invalid' ng-click='resetPassword(reset_info)') Reset Password + +include includes/footer http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/settings/admin.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/settings/admin.jade b/modules/web-console/frontend/views/settings/admin.jade deleted file mode 100644 index a09fda9..0000000 --- a/modules/web-console/frontend/views/settings/admin.jade +++ /dev/null @@ -1,25 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You 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. - -.admin-page.row - .docs-content.greedy - .docs-header - h1 Admin panel - hr - .docs-body - .row - .col-xs-12 - ignite-list-of-registered-users(data-options='ctrl.data') http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/settings/admin.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/settings/admin.tpl.pug b/modules/web-console/frontend/views/settings/admin.tpl.pug new file mode 100644 index 0000000..a09fda9 --- /dev/null +++ b/modules/web-console/frontend/views/settings/admin.tpl.pug @@ -0,0 +1,25 @@ +//- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. + +.admin-page.row + .docs-content.greedy + .docs-header + h1 Admin panel + hr + .docs-body + .row + .col-xs-12 + ignite-list-of-registered-users(data-options='ctrl.data') http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/settings/profile.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/settings/profile.jade b/modules/web-console/frontend/views/settings/profile.jade deleted file mode 100644 index 6f91f8f..0000000 --- a/modules/web-console/frontend/views/settings/profile.jade +++ /dev/null @@ -1,76 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You 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. - -mixin lbl(txt) - label.col-sm-2.required.labelFormField #{txt} - -.row(ng-controller='profileController') - .docs-content.greedy - .docs-header - h1 User profile - hr - .docs-body - form.form-horizontal(name='profileForm' novalidate) - .col-sm-10(style='padding: 0') - .details-row - +lbl('First name:') - .col-xs-5.col-sm-4 - input#profile-firstname.form-control(ignite-on-enter-focus-move='profile-lastname' type='text' ng-model='user.firstName' placeholder='Input first name' required ignite-auto-focus) - .details-row - +lbl('Last name:') - .col-xs-5.col-sm-4 - input#profile-lastname.form-control(ignite-on-enter-focus-move='profile-email' type='text' ng-model='user.lastName' placeholder='Input last name' required) - .details-row - +lbl('Email:') - .col-xs-5.col-sm-4 - input#profile-email.form-control(ignite-on-enter-focus-move='profile-company' type='email' ng-model='user.email' placeholder='Input email' required) - .details-row - +lbl('Company:') - .col-xs-5.col-sm-4 - input#profile-company.form-control(ignite-on-enter-focus-move='profile-country' type='text' ng-model='user.company' placeholder='Input company name' required) - .details-row - +lbl('Country:') - .col-xs-5.col-sm-4 - button#profile-country.select-toggle.form-control(bs-select bs-options='item.name as item.name for item in countries' type='text' ng-model='user.country' placeholder='Choose your country' ng-required='true') - .details-row - .advanced-options - i.fa( - ng-click='toggleToken()' - ng-class='expandedToken ? "fa-chevron-circle-down" : "fa-chevron-circle-right"') - a(ng-click='toggleToken()') {{expandedToken ? 'Cancel security token changing...' : 'Show security token...'}} - div(ng-if='expandedToken') - +lbl('Security token:') - label {{user.token || 'No security token. Regenerate please.'}} - i.tipLabel.fa.fa-refresh(ng-click='generateToken()' bs-tooltip='' data-title='Generate random security token') - i.tipLabel.fa.fa-clipboard(ignite-copy-to-clipboard='{{user.token}}' bs-tooltip='' data-title='Copy security token to clipboard') - i.tipLabel.icon-help(ng-if=lines bs-tooltip='' data-title='The security token is used for authorization of web agent') - .details-row - .advanced-options - i.fa( - ng-click='togglePassword()' - ng-class='expandedPassword ? "fa-chevron-circle-down" : "fa-chevron-circle-right"') - a(ng-click='togglePassword()') {{expandedPassword ? 'Cancel password changing...' : 'Change password...'}} - div(ng-if='expandedPassword') - .details-row - +lbl('New password:') - .col-xs-5.col-sm-4 - input#profile_password.form-control(ignite-on-enter-focus-move='profile_confirm' type='password' ng-model='user.password' placeholder='New password') - .details-row - +lbl('Confirm:') - .col-xs-5.col-sm-4 - input#profile_confirm.form-control(type='password' ng-model='user.confirm' ignite-match='user.password' placeholder='Confirm new password') - .col-xs-12.col-sm-12.details-row - a.btn.btn-primary(ng-disabled='!profileCouldBeSaved()' ng-click='profileCouldBeSaved() && saveUser()' bs-tooltip='' data-title='{{saveBtnTipText()}}' data-placement='bottom' data-trigger='hover') Save http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/settings/profile.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/settings/profile.tpl.pug b/modules/web-console/frontend/views/settings/profile.tpl.pug new file mode 100644 index 0000000..6f91f8f --- /dev/null +++ b/modules/web-console/frontend/views/settings/profile.tpl.pug @@ -0,0 +1,76 @@ +//- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. + +mixin lbl(txt) + label.col-sm-2.required.labelFormField #{txt} + +.row(ng-controller='profileController') + .docs-content.greedy + .docs-header + h1 User profile + hr + .docs-body + form.form-horizontal(name='profileForm' novalidate) + .col-sm-10(style='padding: 0') + .details-row + +lbl('First name:') + .col-xs-5.col-sm-4 + input#profile-firstname.form-control(ignite-on-enter-focus-move='profile-lastname' type='text' ng-model='user.firstName' placeholder='Input first name' required ignite-auto-focus) + .details-row + +lbl('Last name:') + .col-xs-5.col-sm-4 + input#profile-lastname.form-control(ignite-on-enter-focus-move='profile-email' type='text' ng-model='user.lastName' placeholder='Input last name' required) + .details-row + +lbl('Email:') + .col-xs-5.col-sm-4 + input#profile-email.form-control(ignite-on-enter-focus-move='profile-company' type='email' ng-model='user.email' placeholder='Input email' required) + .details-row + +lbl('Company:') + .col-xs-5.col-sm-4 + input#profile-company.form-control(ignite-on-enter-focus-move='profile-country' type='text' ng-model='user.company' placeholder='Input company name' required) + .details-row + +lbl('Country:') + .col-xs-5.col-sm-4 + button#profile-country.select-toggle.form-control(bs-select bs-options='item.name as item.name for item in countries' type='text' ng-model='user.country' placeholder='Choose your country' ng-required='true') + .details-row + .advanced-options + i.fa( + ng-click='toggleToken()' + ng-class='expandedToken ? "fa-chevron-circle-down" : "fa-chevron-circle-right"') + a(ng-click='toggleToken()') {{expandedToken ? 'Cancel security token changing...' : 'Show security token...'}} + div(ng-if='expandedToken') + +lbl('Security token:') + label {{user.token || 'No security token. Regenerate please.'}} + i.tipLabel.fa.fa-refresh(ng-click='generateToken()' bs-tooltip='' data-title='Generate random security token') + i.tipLabel.fa.fa-clipboard(ignite-copy-to-clipboard='{{user.token}}' bs-tooltip='' data-title='Copy security token to clipboard') + i.tipLabel.icon-help(ng-if=lines bs-tooltip='' data-title='The security token is used for authorization of web agent') + .details-row + .advanced-options + i.fa( + ng-click='togglePassword()' + ng-class='expandedPassword ? "fa-chevron-circle-down" : "fa-chevron-circle-right"') + a(ng-click='togglePassword()') {{expandedPassword ? 'Cancel password changing...' : 'Change password...'}} + div(ng-if='expandedPassword') + .details-row + +lbl('New password:') + .col-xs-5.col-sm-4 + input#profile_password.form-control(ignite-on-enter-focus-move='profile_confirm' type='password' ng-model='user.password' placeholder='New password') + .details-row + +lbl('Confirm:') + .col-xs-5.col-sm-4 + input#profile_confirm.form-control(type='password' ng-model='user.confirm' ignite-match='user.password' placeholder='Confirm new password') + .col-xs-12.col-sm-12.details-row + a.btn.btn-primary(ng-disabled='!profileCouldBeSaved()' ng-click='profileCouldBeSaved() && saveUser()' bs-tooltip='' data-title='{{saveBtnTipText()}}' data-placement='bottom' data-trigger='hover') Save http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/signin.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/signin.jade b/modules/web-console/frontend/views/signin.jade deleted file mode 100644 index a6c64a8..0000000 --- a/modules/web-console/frontend/views/signin.jade +++ /dev/null @@ -1,163 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You 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. - -mixin lblRequired(txt) - label.col-xs-3.col-md-3.required #{txt} - -header#header.header - table.container - tr - td.col-xs-3.col-sm-3.col-md-2 - ignite-header-logo - td - ignite-header-title - -.container.body-container - .main-content(ng-controller='auth') - .row.home - .signin-greedy - .col-xs-12.col-md-6 - form(name='form' novalidate) - .modal-body.row(style='padding: 0 0 10px 0; margin: 0') - .settings-row(ng-if='action == "signup"') - h3.login-header Sign Up - .settings-row(ng-if='action == "signin"') - h3.login-header Sign In - .settings-row(ng-if='action == "password/forgot"') - h3.login-header Forgot password? - .settings-row - p.col-xs-12.col-md-11(ng-show='action == "password/forgot"') - | That's ok! Simply enter your email below and a reset password link will be sent to you via email. You can then follow that link and select a new password. - .settings-row(ng-show='action == "signin"') - +lblRequired('Email:') - .col-xs-9.col-md-8 - input#signin_email.form-control(ignite-on-enter-focus-move='user_password' type='email' ng-model='ui.email' placeholder='Input email' required) - .settings-row(ng-show='action == "signup"') - +lblRequired('Email:') - .col-xs-9.col-md-8 - input#signup_email.form-control(ignite-on-enter-focus-move='user_password' type='email' ng-model='ui.email' placeholder='Input email' required) - .settings-row(ng-show='action != "password/forgot"') - +lblRequired('Password:') - .col-xs-9.col-md-8 - input#user_password.form-control(ignite-on-enter-focus-move='user_confirm' type='password' ng-model='ui.password' placeholder='Password' ng-required='action != "password/forgot"' ignite-on-enter='action == "signin" && form.$valid && auth(action, ui)') - .settings-row(ng-if='action == "signup"') - +lblRequired('Confirm:') - .col-xs-9.col-md-8 - input#user_confirm.form-control(ignite-on-enter-focus-move='first_name' type='password' ng-model='ui_exclude.confirm' ignite-match='ui.password' placeholder='Confirm password' ng-required='action == "signup"') - .settings-row(ng-show='action == "signup"') - +lblRequired('First Name:') - .col-xs-9.col-md-8 - input#first_name.form-control(ignite-on-enter-focus-move='last_name' type='text' ng-model='ui.firstName' placeholder='Input first name' ng-required='action=="signup"') - .settings-row(ng-show='action == "signup"') - +lblRequired('Last Name:') - .col-xs-9.col-md-8 - input#last_name.form-control(ignite-on-enter-focus-move='company' type='text' ng-model='ui.lastName' placeholder='Input last name' ng-required='action=="signup"') - .settings-row(ng-show='action == "password/forgot"') - +lblRequired('Email:') - .col-xs-9.col-md-8 - input#forgot_email.form-control(ignite-on-enter='form.$valid && forgotPassword(ui)' type='email' ng-model='ui.email' placeholder='Input email' required) - .settings-row(ng-show='action == "signup"') - +lblRequired('Company:') - .col-xs-9.col-md-8 - input#company.form-control(ignite-on-enter-focus-move='country' type='text' ng-model='ui.company' placeholder='Input company name' ng-required='action=="signup"') - .settings-row(ng-show='action == "signup"') - +lblRequired('Country:') - .col-xs-9.col-md-8 - button#country.select-toggle.form-control(ignite-on-enter-focus-move='signup' bs-select bs-options='item.name as item.name for item in countries' type='text' ng-model='ui.country' placeholder='Choose your country' ng-required='action=="signup"') - .settings-row(ignite-terms) - .col-md-offset-3(ng-if='action == "signup" && terms.termsState') - label - input(type='checkbox' ng-model='ui_exclude.agree', ng-required='true') - | I agree to the #[a(ui-sref='{{::terms.termsState}}' target='_blank') terms and conditions] - .col-xs-12.col-md-11 - .login-footer(ng-show='action == "signup"') - a.labelField(ng-click='action = "password/forgot"' ignite-on-click-focus='signin_email') Forgot password? - a.labelLogin(ng-click='action = "signin"' ignite-on-click-focus='signin_email') Sign In - button#signup.btn.btn-primary(ng-click='auth(action, ui)' ng-disabled='form.$invalid') Sign Up - .col-xs-12.col-md-11 - .login-footer(ng-show='action == "password/forgot"') - a.labelField(ng-click='action = "signin"' ignite-on-click-focus='signin_email') Sign In - button#forgot.btn.btn-primary(ng-click='forgotPassword(ui)' ng-disabled='form.$invalid') Send it to me - .col-xs-12.col-md-11 - .login-footer(ng-show='action == "signin"') - a.labelField(ng-click='action = "password/forgot"' ignite-on-click-focus='signin_email') Forgot password? - a.labelLogin(ng-click='action = "signup"' ignite-on-click-focus='first_name') Sign Up - button#login.btn.btn-primary(ng-click='auth(action, ui)' ng-disabled='form.$invalid') Sign In - - .col-xs-12.col-md-11.home-panel - ignite-features - .col-xs-12.col-md-6 - #carousel.carousel.slide - // Indicators - ol.carousel-indicators - li.active(data-target='#carousel', data-slide-to='0') - li(data-target='#carousel', data-slide-to='1') - li(data-target='#carousel', data-slide-to='2') - li(data-target='#carousel', data-slide-to='3') - li(data-target='#carousel', data-slide-to='4') - li(data-target='#carousel', data-slide-to='5') - li(data-target='#carousel', data-slide-to='6') - // Wrapper for slides - .carousel-inner(role='listbox') - .item.active - img(src='/images/cluster.png', alt='Clusters screen') - .carousel-caption - h3 Clusters screen - p Configure clusters, link clusters to caches - .item - img(src='/images/cache.png', alt='Caches screen') - .carousel-caption - h3 Caches screen - p Configure caches, link domain models to caches, link caches to clusters - .item - img(src='/images/domains.png', alt='Domain model screen') - .carousel-caption - h3 Domain model screen - p Manually enter domain model or import from database - .item - img(src='/images/summary.png', alt='Summary screen') - .carousel-caption - h3 Summary screen - p Preview XML config, JAVA code,Docker file and download project - .item - img(src='/images/query-table.png', alt='Query') - .carousel-caption - h3 Query - p Explain SQL, execute, scan queries - .item - img(src='/images/query-metadata.png', alt='Cache metadata') - .carousel-caption - h3 Cache metadata - p View cache type metadata - .item - img(src='/images/query-chart.png', alt='Query chart') - .carousel-caption - h3 Query chart - p View data in tabular form and as charts - // Controls - a.left.carousel-control(href='#carousel', ng-click='$event.preventDefault()', role='button', data-slide='prev') - span.fa.fa-chevron-left(aria-hidden='true') - span.sr-only Previous - a.right.carousel-control(href='#carousel', ng-click='$event.preventDefault()', role='button', data-slide='next') - span.fa.fa-chevron-right(aria-hidden='true') - span.sr-only Next - -include includes/footer - -script. - $('.carousel').carousel() - - http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/signin.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/signin.tpl.pug b/modules/web-console/frontend/views/signin.tpl.pug new file mode 100644 index 0000000..a6c64a8 --- /dev/null +++ b/modules/web-console/frontend/views/signin.tpl.pug @@ -0,0 +1,163 @@ +//- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. + +mixin lblRequired(txt) + label.col-xs-3.col-md-3.required #{txt} + +header#header.header + table.container + tr + td.col-xs-3.col-sm-3.col-md-2 + ignite-header-logo + td + ignite-header-title + +.container.body-container + .main-content(ng-controller='auth') + .row.home + .signin-greedy + .col-xs-12.col-md-6 + form(name='form' novalidate) + .modal-body.row(style='padding: 0 0 10px 0; margin: 0') + .settings-row(ng-if='action == "signup"') + h3.login-header Sign Up + .settings-row(ng-if='action == "signin"') + h3.login-header Sign In + .settings-row(ng-if='action == "password/forgot"') + h3.login-header Forgot password? + .settings-row + p.col-xs-12.col-md-11(ng-show='action == "password/forgot"') + | That's ok! Simply enter your email below and a reset password link will be sent to you via email. You can then follow that link and select a new password. + .settings-row(ng-show='action == "signin"') + +lblRequired('Email:') + .col-xs-9.col-md-8 + input#signin_email.form-control(ignite-on-enter-focus-move='user_password' type='email' ng-model='ui.email' placeholder='Input email' required) + .settings-row(ng-show='action == "signup"') + +lblRequired('Email:') + .col-xs-9.col-md-8 + input#signup_email.form-control(ignite-on-enter-focus-move='user_password' type='email' ng-model='ui.email' placeholder='Input email' required) + .settings-row(ng-show='action != "password/forgot"') + +lblRequired('Password:') + .col-xs-9.col-md-8 + input#user_password.form-control(ignite-on-enter-focus-move='user_confirm' type='password' ng-model='ui.password' placeholder='Password' ng-required='action != "password/forgot"' ignite-on-enter='action == "signin" && form.$valid && auth(action, ui)') + .settings-row(ng-if='action == "signup"') + +lblRequired('Confirm:') + .col-xs-9.col-md-8 + input#user_confirm.form-control(ignite-on-enter-focus-move='first_name' type='password' ng-model='ui_exclude.confirm' ignite-match='ui.password' placeholder='Confirm password' ng-required='action == "signup"') + .settings-row(ng-show='action == "signup"') + +lblRequired('First Name:') + .col-xs-9.col-md-8 + input#first_name.form-control(ignite-on-enter-focus-move='last_name' type='text' ng-model='ui.firstName' placeholder='Input first name' ng-required='action=="signup"') + .settings-row(ng-show='action == "signup"') + +lblRequired('Last Name:') + .col-xs-9.col-md-8 + input#last_name.form-control(ignite-on-enter-focus-move='company' type='text' ng-model='ui.lastName' placeholder='Input last name' ng-required='action=="signup"') + .settings-row(ng-show='action == "password/forgot"') + +lblRequired('Email:') + .col-xs-9.col-md-8 + input#forgot_email.form-control(ignite-on-enter='form.$valid && forgotPassword(ui)' type='email' ng-model='ui.email' placeholder='Input email' required) + .settings-row(ng-show='action == "signup"') + +lblRequired('Company:') + .col-xs-9.col-md-8 + input#company.form-control(ignite-on-enter-focus-move='country' type='text' ng-model='ui.company' placeholder='Input company name' ng-required='action=="signup"') + .settings-row(ng-show='action == "signup"') + +lblRequired('Country:') + .col-xs-9.col-md-8 + button#country.select-toggle.form-control(ignite-on-enter-focus-move='signup' bs-select bs-options='item.name as item.name for item in countries' type='text' ng-model='ui.country' placeholder='Choose your country' ng-required='action=="signup"') + .settings-row(ignite-terms) + .col-md-offset-3(ng-if='action == "signup" && terms.termsState') + label + input(type='checkbox' ng-model='ui_exclude.agree', ng-required='true') + | I agree to the #[a(ui-sref='{{::terms.termsState}}' target='_blank') terms and conditions] + .col-xs-12.col-md-11 + .login-footer(ng-show='action == "signup"') + a.labelField(ng-click='action = "password/forgot"' ignite-on-click-focus='signin_email') Forgot password? + a.labelLogin(ng-click='action = "signin"' ignite-on-click-focus='signin_email') Sign In + button#signup.btn.btn-primary(ng-click='auth(action, ui)' ng-disabled='form.$invalid') Sign Up + .col-xs-12.col-md-11 + .login-footer(ng-show='action == "password/forgot"') + a.labelField(ng-click='action = "signin"' ignite-on-click-focus='signin_email') Sign In + button#forgot.btn.btn-primary(ng-click='forgotPassword(ui)' ng-disabled='form.$invalid') Send it to me + .col-xs-12.col-md-11 + .login-footer(ng-show='action == "signin"') + a.labelField(ng-click='action = "password/forgot"' ignite-on-click-focus='signin_email') Forgot password? + a.labelLogin(ng-click='action = "signup"' ignite-on-click-focus='first_name') Sign Up + button#login.btn.btn-primary(ng-click='auth(action, ui)' ng-disabled='form.$invalid') Sign In + + .col-xs-12.col-md-11.home-panel + ignite-features + .col-xs-12.col-md-6 + #carousel.carousel.slide + // Indicators + ol.carousel-indicators + li.active(data-target='#carousel', data-slide-to='0') + li(data-target='#carousel', data-slide-to='1') + li(data-target='#carousel', data-slide-to='2') + li(data-target='#carousel', data-slide-to='3') + li(data-target='#carousel', data-slide-to='4') + li(data-target='#carousel', data-slide-to='5') + li(data-target='#carousel', data-slide-to='6') + // Wrapper for slides + .carousel-inner(role='listbox') + .item.active + img(src='/images/cluster.png', alt='Clusters screen') + .carousel-caption + h3 Clusters screen + p Configure clusters, link clusters to caches + .item + img(src='/images/cache.png', alt='Caches screen') + .carousel-caption + h3 Caches screen + p Configure caches, link domain models to caches, link caches to clusters + .item + img(src='/images/domains.png', alt='Domain model screen') + .carousel-caption + h3 Domain model screen + p Manually enter domain model or import from database + .item + img(src='/images/summary.png', alt='Summary screen') + .carousel-caption + h3 Summary screen + p Preview XML config, JAVA code,Docker file and download project + .item + img(src='/images/query-table.png', alt='Query') + .carousel-caption + h3 Query + p Explain SQL, execute, scan queries + .item + img(src='/images/query-metadata.png', alt='Cache metadata') + .carousel-caption + h3 Cache metadata + p View cache type metadata + .item + img(src='/images/query-chart.png', alt='Query chart') + .carousel-caption + h3 Query chart + p View data in tabular form and as charts + // Controls + a.left.carousel-control(href='#carousel', ng-click='$event.preventDefault()', role='button', data-slide='prev') + span.fa.fa-chevron-left(aria-hidden='true') + span.sr-only Previous + a.right.carousel-control(href='#carousel', ng-click='$event.preventDefault()', role='button', data-slide='next') + span.fa.fa-chevron-right(aria-hidden='true') + span.sr-only Next + +include includes/footer + +script. + $('.carousel').carousel() + + http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/cache-metadata.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/sql/cache-metadata.jade b/modules/web-console/frontend/views/sql/cache-metadata.jade deleted file mode 100644 index 385960a..0000000 --- a/modules/web-console/frontend/views/sql/cache-metadata.jade +++ /dev/null @@ -1,40 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You 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. -.popover.cache-metadata(tabindex='-1' ignite-loading='loadingCacheMetadata' ignite-loading-text='Loading metadata...' ng-init='importMetadata()') - h3.popover-title - label.labelField Metadata for caches: - button.close(id='cache-metadata-close' ng-click='$hide()') × - .input-tip - input.form-control(type='text' ng-model='metaFilter' placeholder='Filter metadata...') - .popover-content(ng-if='metadata && metadata.length > 0') - treecontrol.tree-classic(tree-model='metadata' options='metaOptions' filter-expression='metaFilter') - span(ng-switch='node.type') - span(ng-switch-when='type' ng-dblclick='dblclickMetadata(paragraph, node)') - i.fa.fa-table - label.clickable(ng-bind='node.displayName') - span(ng-switch-when='plain') - label {{node.name}} - span(ng-switch-when='field' ng-dblclick='dblclickMetadata(paragraph, node)') - i.fa(ng-class='node.system ? "fa-file-text-o" : "fa-file-o"') - label.clickable {{node.name}} [{{node.clazz}}] - label(ng-switch-when='indexes') {{node.name}} - label(ng-switch-when='index') {{node.name}} - span(ng-switch-when='index-field' ng-dblclick='dblclickMetadata(paragraph, node)') - i.fa(ng-class='node.order ? "fa-sort-amount-desc" : "fa-sort-amount-asc"') - label.clickable {{node.name}} - .popover-content(ng-if='!metadata || metadata.length == 0') - label.content-empty No types found - h3.popover-footer Double click to paste into editor http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/cache-metadata.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/sql/cache-metadata.tpl.pug b/modules/web-console/frontend/views/sql/cache-metadata.tpl.pug new file mode 100644 index 0000000..385960a --- /dev/null +++ b/modules/web-console/frontend/views/sql/cache-metadata.tpl.pug @@ -0,0 +1,40 @@ +//- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. +.popover.cache-metadata(tabindex='-1' ignite-loading='loadingCacheMetadata' ignite-loading-text='Loading metadata...' ng-init='importMetadata()') + h3.popover-title + label.labelField Metadata for caches: + button.close(id='cache-metadata-close' ng-click='$hide()') × + .input-tip + input.form-control(type='text' ng-model='metaFilter' placeholder='Filter metadata...') + .popover-content(ng-if='metadata && metadata.length > 0') + treecontrol.tree-classic(tree-model='metadata' options='metaOptions' filter-expression='metaFilter') + span(ng-switch='node.type') + span(ng-switch-when='type' ng-dblclick='dblclickMetadata(paragraph, node)') + i.fa.fa-table + label.clickable(ng-bind='node.displayName') + span(ng-switch-when='plain') + label {{node.name}} + span(ng-switch-when='field' ng-dblclick='dblclickMetadata(paragraph, node)') + i.fa(ng-class='node.system ? "fa-file-text-o" : "fa-file-o"') + label.clickable {{node.name}} [{{node.clazz}}] + label(ng-switch-when='indexes') {{node.name}} + label(ng-switch-when='index') {{node.name}} + span(ng-switch-when='index-field' ng-dblclick='dblclickMetadata(paragraph, node)') + i.fa(ng-class='node.order ? "fa-sort-amount-desc" : "fa-sort-amount-asc"') + label.clickable {{node.name}} + .popover-content(ng-if='!metadata || metadata.length == 0') + label.content-empty No types found + h3.popover-footer Double click to paste into editor http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/chart-settings.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/sql/chart-settings.jade b/modules/web-console/frontend/views/sql/chart-settings.jade deleted file mode 100644 index 5a1ceed..0000000 --- a/modules/web-console/frontend/views/sql/chart-settings.jade +++ /dev/null @@ -1,40 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You 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. - -.popover.settings(tabindex='-1' style='width: 300px') - .arrow - h3.popover-title(style='color: black') Chart settings - button.close(id='chart-settings-close' ng-click='$hide()') × - .popover-content - form.form-horizontal.chart-settings(name='chartSettingsForm' novalidate) - .form-group.chart-settings - -var btnClass = 'col.value < 0 ? "btn-success" : "btn-default"' - - label All columns (drag columns to axis) - ul.chart-settings-columns-list(dnd-list='paragraph.chartColumns' dnd-allowed-types='[]') - li(ng-repeat='col in paragraph.chartColumns track by $index') - .btn.btn-default.btn-chart-column-movable(ng-class=btnClass dnd-draggable='col' dnd-effect-allowed='copy') {{col.label}} - label X axis (accept only one column) - ul.chart-settings-columns-list(dnd-list='paragraph.chartKeyCols' dnd-drop='chartAcceptKeyColumn(paragraph, item)') - li(ng-repeat='col in paragraph.chartKeyCols track by $index') - .btn.btn-default.btn-chart-column(ng-class=btnClass) {{col.label}} - i.fa.fa-close(ng-click='chartRemoveKeyColumn(paragraph, $index)') - label Y axis (accept only numeric columns) - ul.chart-settings-columns-list(dnd-list='paragraph.chartValCols' dnd-drop='chartAcceptValColumn(paragraph, item)') - li(ng-repeat='col in paragraph.chartValCols track by $index') - .btn.btn-default.btn-chart-column(ng-style='chartColor($index)') {{col.label}} - button.btn-chart-column-agg-fx.select-toggle(ng-change='applyChartSettings(paragraph)' ng-show='paragraphTimeSpanVisible(paragraph)' ng-style='chartColor($index)' ng-model='col.aggFx' placeholder='...' bs-select bs-options='item for item in aggregateFxs' data-container='false' tabindex='-1') - i.fa.fa-close(ng-click='chartRemoveValColumn(paragraph, $index)') http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/chart-settings.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/sql/chart-settings.tpl.pug b/modules/web-console/frontend/views/sql/chart-settings.tpl.pug new file mode 100644 index 0000000..5a1ceed --- /dev/null +++ b/modules/web-console/frontend/views/sql/chart-settings.tpl.pug @@ -0,0 +1,40 @@ +//- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. + +.popover.settings(tabindex='-1' style='width: 300px') + .arrow + h3.popover-title(style='color: black') Chart settings + button.close(id='chart-settings-close' ng-click='$hide()') × + .popover-content + form.form-horizontal.chart-settings(name='chartSettingsForm' novalidate) + .form-group.chart-settings + -var btnClass = 'col.value < 0 ? "btn-success" : "btn-default"' + + label All columns (drag columns to axis) + ul.chart-settings-columns-list(dnd-list='paragraph.chartColumns' dnd-allowed-types='[]') + li(ng-repeat='col in paragraph.chartColumns track by $index') + .btn.btn-default.btn-chart-column-movable(ng-class=btnClass dnd-draggable='col' dnd-effect-allowed='copy') {{col.label}} + label X axis (accept only one column) + ul.chart-settings-columns-list(dnd-list='paragraph.chartKeyCols' dnd-drop='chartAcceptKeyColumn(paragraph, item)') + li(ng-repeat='col in paragraph.chartKeyCols track by $index') + .btn.btn-default.btn-chart-column(ng-class=btnClass) {{col.label}} + i.fa.fa-close(ng-click='chartRemoveKeyColumn(paragraph, $index)') + label Y axis (accept only numeric columns) + ul.chart-settings-columns-list(dnd-list='paragraph.chartValCols' dnd-drop='chartAcceptValColumn(paragraph, item)') + li(ng-repeat='col in paragraph.chartValCols track by $index') + .btn.btn-default.btn-chart-column(ng-style='chartColor($index)') {{col.label}} + button.btn-chart-column-agg-fx.select-toggle(ng-change='applyChartSettings(paragraph)' ng-show='paragraphTimeSpanVisible(paragraph)' ng-style='chartColor($index)' ng-model='col.aggFx' placeholder='...' bs-select bs-options='item for item in aggregateFxs' data-container='false' tabindex='-1') + i.fa.fa-close(ng-click='chartRemoveValColumn(paragraph, $index)') http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/notebook-new.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/sql/notebook-new.jade b/modules/web-console/frontend/views/sql/notebook-new.jade deleted file mode 100644 index 9585e92..0000000 --- a/modules/web-console/frontend/views/sql/notebook-new.jade +++ /dev/null @@ -1,33 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You 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. - -.modal(tabindex='-1' role='dialog') - .modal-dialog - .modal-content - .modal-header - button.close(ng-click='$hide()') × - h4.modal-title - i.fa.fa-file-o - | New query notebook - form.form-horizontal.modal-body.row(name='ui.inputForm' novalidate) - div - .col-sm-2 - label.required.labelFormField Name: - .col-sm-10 - input.form-control(id='create-notebook' type='text' ng-model='name' required ignite-on-enter='ui.inputForm.$valid && create(name)' ignite-auto-focus) - .modal-footer - button.btn.btn-default(id='copy-btn-cancel' ng-click='$hide()') Cancel - button.btn.btn-primary(id='copy-btn-confirm' ng-disabled='ui.inputForm.$invalid' ng-click='create(name)') Create http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/notebook-new.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/sql/notebook-new.tpl.pug b/modules/web-console/frontend/views/sql/notebook-new.tpl.pug new file mode 100644 index 0000000..9585e92 --- /dev/null +++ b/modules/web-console/frontend/views/sql/notebook-new.tpl.pug @@ -0,0 +1,33 @@ +//- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. + +.modal(tabindex='-1' role='dialog') + .modal-dialog + .modal-content + .modal-header + button.close(ng-click='$hide()') × + h4.modal-title + i.fa.fa-file-o + | New query notebook + form.form-horizontal.modal-body.row(name='ui.inputForm' novalidate) + div + .col-sm-2 + label.required.labelFormField Name: + .col-sm-10 + input.form-control(id='create-notebook' type='text' ng-model='name' required ignite-on-enter='ui.inputForm.$valid && create(name)' ignite-auto-focus) + .modal-footer + button.btn.btn-default(id='copy-btn-cancel' ng-click='$hide()') Cancel + button.btn.btn-primary(id='copy-btn-confirm' ng-disabled='ui.inputForm.$invalid' ng-click='create(name)') Create http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/paragraph-rate.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/sql/paragraph-rate.jade b/modules/web-console/frontend/views/sql/paragraph-rate.jade deleted file mode 100644 index 03c6497..0000000 --- a/modules/web-console/frontend/views/sql/paragraph-rate.jade +++ /dev/null @@ -1,31 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You 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. - -.popover.settings(tabindex='-1' style='width: 200px') - .arrow - h3.popover-title(style='color: black') Refresh rate - button.close(id='paragraph-rate-close' ng-click='$hide()') × - .popover-content - form(name='popoverForm' novalidate) - .form-group(style='padding: 5px') - .col-sm-4 - input.form-control(id='paragraph-rate' ng-init='value = paragraph.rate.value' ng-model='value' type='number' min='1' required ignite-auto-focus) - .col-sm-8(style='padding-left: 5px') - button.form-control.select-toggle(id='paragraph-unit' ng-init='unit = paragraph.rate.unit' ng-model='unit' required placeholder='Time unit' bs-select bs-options='item.value as item.label for item in timeUnit' data-container='false' tabindex='0') - .form-actions(style='margin-top: 30px; padding: 5px') - button.btn.btn-primary(id='paragraph-rate-start' ng-disabled='popoverForm.$invalid' ng-click='startRefresh(paragraph, value, unit); $hide()') Start - button.btn.btn-primary.btn-default(id='paragraph-rate-stop' ng-click='stopRefresh(paragraph); $hide()' ng-disabled='!paragraph.rate.installed') Stop - http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/paragraph-rate.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/sql/paragraph-rate.tpl.pug b/modules/web-console/frontend/views/sql/paragraph-rate.tpl.pug new file mode 100644 index 0000000..03c6497 --- /dev/null +++ b/modules/web-console/frontend/views/sql/paragraph-rate.tpl.pug @@ -0,0 +1,31 @@ +//- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. + +.popover.settings(tabindex='-1' style='width: 200px') + .arrow + h3.popover-title(style='color: black') Refresh rate + button.close(id='paragraph-rate-close' ng-click='$hide()') × + .popover-content + form(name='popoverForm' novalidate) + .form-group(style='padding: 5px') + .col-sm-4 + input.form-control(id='paragraph-rate' ng-init='value = paragraph.rate.value' ng-model='value' type='number' min='1' required ignite-auto-focus) + .col-sm-8(style='padding-left: 5px') + button.form-control.select-toggle(id='paragraph-unit' ng-init='unit = paragraph.rate.unit' ng-model='unit' required placeholder='Time unit' bs-select bs-options='item.value as item.label for item in timeUnit' data-container='false' tabindex='0') + .form-actions(style='margin-top: 30px; padding: 5px') + button.btn.btn-primary(id='paragraph-rate-start' ng-disabled='popoverForm.$invalid' ng-click='startRefresh(paragraph, value, unit); $hide()') Start + button.btn.btn-primary.btn-default(id='paragraph-rate-stop' ng-click='stopRefresh(paragraph); $hide()' ng-disabled='!paragraph.rate.installed') Stop + http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/sql.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/sql/sql.jade b/modules/web-console/frontend/views/sql/sql.jade deleted file mode 100644 index 61d5b30..0000000 --- a/modules/web-console/frontend/views/sql/sql.jade +++ /dev/null @@ -1,278 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You 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. - -include /app/helpers/jade/mixins.jade -include /app/components/ui-grid-settings/ui-grid-settings.jade - -mixin btn-toolbar(btn, click, tip, focusId) - i.btn.btn-default.fa(class=btn ng-click=click bs-tooltip='' data-title=tip ignite-on-click-focus=focusId data-trigger='hover' data-placement='bottom') - -mixin btn-toolbar-data(btn, kind, tip) - i.btn.btn-default.fa(class=btn ng-click='setResult(paragraph, "#{kind}")' ng-class='{active: resultEq(paragraph, "#{kind}")}' bs-tooltip='' data-title=tip data-trigger='hover' data-placement='bottom') - -mixin result-toolbar - .btn-group(ng-model='paragraph.result' ng-click='$event.stopPropagation()' style='left: 50%; margin: 0 0 0 -70px;display: block;') - +btn-toolbar-data('fa-table', 'table', 'Show data in tabular form') - +btn-toolbar-data('fa-bar-chart', 'bar', 'Show bar chart<br/>By default first column - X values, second column - Y values<br/>In case of one column it will be treated as Y values') - +btn-toolbar-data('fa-pie-chart', 'pie', 'Show pie chart<br/>By default first column - pie labels, second column - pie values<br/>In case of one column it will be treated as pie values') - +btn-toolbar-data('fa-line-chart', 'line', 'Show line chart<br/>By default first column - X values, second column - Y values<br/>In case of one column it will be treated as Y values') - +btn-toolbar-data('fa-area-chart', 'area', 'Show area chart<br/>By default first column - X values, second column - Y values<br/>In case of one column it will be treated as Y values') - -mixin chart-settings - .total.row - .col-xs-4 - .chart-settings-link(ng-show='paragraph.chart && paragraph.chartColumns.length > 0') - a(title='Click to show chart settings dialog' ng-click='$event.stopPropagation()' bs-popover data-template-url='/sql/chart-settings.html' data-placement='bottom' data-auto-close='1' data-trigger='click') - i.fa.fa-bars - | Chart settings - div(ng-show='paragraphTimeSpanVisible(paragraph)') - label Show - button.select-manual-caret.btn.btn-default(ng-model='paragraph.timeLineSpan' ng-change='applyChartSettings(paragraph)' bs-options='item for item in timeLineSpans' bs-select data-caret-html='<span class="caret"></span>') - label min - .col-xs-4 - +result-toolbar - -mixin notebook-rename - .docs-header.notebook-header - h1.col-sm-6(ng-hide='notebook.edit') - label(style='max-width: calc(100% - 60px)') {{notebook.name}} - .btn-group(ng-if='!demo') - +btn-toolbar('fa-pencil', 'notebook.edit = true;notebook.editName = notebook.name', 'Rename notebook') - +btn-toolbar('fa-trash', 'removeNotebook(notebook)', 'Remove notebook') - h1.col-sm-6(ng-show='notebook.edit') - i.btn.fa.fa-floppy-o(ng-show='notebook.editName' ng-click='renameNotebook(notebook.editName)' bs-tooltip data-title='Save notebook name' data-trigger='hover') - .input-tip - input.form-control(ng-model='notebook.editName' required ignite-on-enter='renameNotebook(notebook.editName)' ignite-on-escape='notebook.edit = false;') - h1.pull-right - a.dropdown-toggle(style='margin-right: 20px' data-toggle='dropdown' bs-dropdown='scrollParagraphs' data-placement='bottom-right') Scroll to query - span.caret - button.btn.btn-default(style='margin-top: 2px' ng-click='addQuery()' ignite-on-click-focus=focusId) - i.fa.fa-fw.fa-plus - | Add query - - button.btn.btn-default(style='margin-top: 2px' ng-click='addScan()' ignite-on-click-focus=focusId) - i.fa.fa-fw.fa-plus - | Add scan - -mixin notebook-error - h2 Failed to load notebook - label.col-sm-12 Notebook not accessible any more. Go back to configuration or open to another notebook. - button.h3.btn.btn-primary(ui-sref='base.configuration.clusters') Back to configuration - -mixin paragraph-rename - .col-sm-6(ng-hide='paragraph.edit') - i.fa(ng-class='paragraphExpanded(paragraph) ? "fa-chevron-circle-down" : "fa-chevron-circle-right"') - label {{paragraph.name}} - - .btn-group(ng-hide='notebook.paragraphs.length > 1') - +btn-toolbar('fa-pencil', 'paragraph.edit = true; paragraph.editName = paragraph.name; $event.stopPropagation();', 'Rename query', 'paragraph-name-{{paragraph.id}}') - - .btn-group(ng-show='notebook.paragraphs.length > 1' ng-click='$event.stopPropagation();') - +btn-toolbar('fa-pencil', 'paragraph.edit = true; paragraph.editName = paragraph.name;', 'Rename query', 'paragraph-name-{{paragraph.id}}') - +btn-toolbar('fa-remove', 'removeParagraph(paragraph)', 'Remove query') - - .col-sm-6(ng-show='paragraph.edit') - i.tipLabel.fa(style='float: left;' ng-class='paragraphExpanded(paragraph) ? "fa-chevron-circle-down" : "fa-chevron-circle-right"') - i.tipLabel.fa.fa-floppy-o(style='float: right;' ng-show='paragraph.editName' ng-click='renameParagraph(paragraph, paragraph.editName); $event.stopPropagation();' bs-tooltip data-title='Save query name' data-trigger='hover') - .input-tip - input.form-control(id='paragraph-name-{{paragraph.id}}' ng-model='paragraph.editName' required ng-click='$event.stopPropagation();' ignite-on-enter='renameParagraph(paragraph, paragraph.editName)' ignite-on-escape='paragraph.edit = false') - -mixin query-settings - label.tipLabel(bs-tooltip data-placement='bottom' data-title='Configure periodical execution of last successfully executed query') Refresh rate: - button.btn.btn-default.fa.fa-clock-o.tipLabel(ng-class='{"btn-info": paragraph.rate && paragraph.rate.installed}' bs-popover data-template-url='/sql/paragraph-rate.html' data-placement='left' data-auto-close='1' data-trigger='click') {{rateAsString(paragraph)}} - - label.tipLabel(bs-tooltip data-placement='bottom' data-title='Max number of rows to show in query result as one page') Page size: - button.btn.btn-default.select-toggle.tipLabel(ng-model='paragraph.pageSize' bs-select bs-options='item for item in pageSizes') - - label.tipLabel(bs-tooltip data-placement='bottom' data-title='Limit query max results to specified number of pages') Max pages: - button.btn.btn-default.select-toggle.tipLabel(ng-model='paragraph.maxPages' bs-select bs-options='item.value as item.label for item in maxPages') - - label.tipLabel(ng-if='nonCollocatedJoinsAvailable(paragraph)' bs-tooltip data-placement='bottom' data-title='Non-collocated joins is a special mode that allow to join data across cluster without collocation.<br/>\ - Nested joins are not supported for now.<br/>\ - <b>NOTE</b>: In some cases it may consume more heap memory or may take a long time than collocated joins.' data-trigger='hover') - input(type='checkbox' ng-model='paragraph.nonCollocatedJoins') - span Allow non-collocated joins - -mixin query-actions - button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, true)' ng-click='execute(paragraph)') Execute - button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, true)' ng-click='execute(paragraph, true)') Execute on selected node - - a.btn.btn-default(ng-disabled='!actionAvailable(paragraph, true)' ng-click='explain(paragraph)' data-placement='bottom' bs-tooltip='' data-title='{{actionTooltip(paragraph, "explain", true)}}') Explain - -mixin table-result-heading-query - .total.row - .col-xs-4 - +ui-grid-settings - label Page: #[b {{paragraph.page}}] - label.margin-left-dflt Results so far: #[b {{paragraph.rows.length + paragraph.total}}] - label.margin-left-dflt Duration: #[b {{paragraph.duration | duration}}] - .col-xs-4 - div(ng-if='paragraph.qryType === "query"') - +result-toolbar - .col-xs-4 - .pull-right - .btn-group(ng-disabled='paragraph.loading') - button.btn.btn-primary(ng-click='exportCsv(paragraph)' bs-tooltip data-title='{{actionTooltip(paragraph, "export", false)}}') Export - button.btn.btn-primary.dropdown-toggle(id='export-item-dropdown' data-toggle='dropdown' data-container='body' bs-dropdown='exportDropdown' data-placement='bottom-right') - span.caret - -mixin table-result-heading-scan - .total.row - .col-xs-4 - +ui-grid-settings - label Page: #[b {{paragraph.page}}] - label.margin-left-dflt Results so far: #[b {{paragraph.rows.length + paragraph.total}}] - label.margin-left-dflt Duration: #[b {{paragraph.duration | duration}}] - .col-xs-4 - div(ng-if='paragraph.qryType === "query"') - +result-toolbar - .col-xs-4 - .pull-right - .btn-group(ng-disabled='paragraph.loading') - button.btn.btn-primary(ng-click='exportCsv(paragraph)' bs-tooltip data-title='{{actionTooltip(paragraph, "export", false)}}') Export - button.btn.btn-primary.dropdown-toggle(id='export-item-dropdown' data-toggle='dropdown' data-container='body' bs-dropdown='exportDropdown' data-placement='bottom-right') - span.caret - -mixin table-result-body - .grid(ui-grid='paragraph.gridOptions' ui-grid-resize-columns ui-grid-exporter) - -mixin chart-result - div(ng-hide='paragraph.scanExplain()') - +chart-settings - .empty(ng-show='paragraph.chartColumns.length > 0 && !paragraph.chartColumnsConfigured()') Cannot display chart. Please configure axis using #[b Chart settings] - .empty(ng-show='paragraph.chartColumns.length == 0') Cannot display chart. Result set must contain Java build-in type columns. Please change query and execute it again. - div(ng-show='paragraph.chartColumnsConfigured()') - div(ng-show='paragraph.timeLineSupported() || !paragraph.chartTimeLineEnabled()') - div(ng-repeat='chart in paragraph.charts') - nvd3(options='chart.options' data='chart.data' api='chart.api') - .empty(ng-show='!paragraph.timeLineSupported() && paragraph.chartTimeLineEnabled()') Pie chart does not support 'TIME_LINE' column for X-axis. Please use another column for X-axis or switch to another chart. - .empty(ng-show='paragraph.scanExplain()') - .row - .col-xs-4.col-xs-offset-4 - +result-toolbar - label.margin-top-dflt Charts do not support #[b Explain] and #[b Scan] query - -mixin paragraph-scan - .panel-heading(bs-collapse-toggle) - .row - +paragraph-rename - .panel-collapse(role='tabpanel' bs-collapse-target) - .col-sm-12.sql-controls - .col-sm-3 - +dropdown-required('Cache:', 'paragraph.cacheName', '"cache"', 'true', 'false', 'Choose cache', 'caches') - .col-sm-3 - +text-enabled('Filter:', 'paragraph.filter', '"filter"', true, false, 'Enter filter') - label.btn.btn-default.ignite-form-field__btn(ng-click='paragraph.caseSensitive = !paragraph.caseSensitive') - input(type='checkbox' ng-model='paragraph.caseSensitive') - span(bs-tooltip data-title='Select this checkbox for case sensitive search') Cs - label.tipLabel(bs-tooltip data-placement='bottom' data-title='Max number of rows to show in query result as one page') Page size: - button.btn.btn-default.select-toggle.tipLabel(ng-model='paragraph.pageSize' bs-select bs-options='item for item in pageSizes') - - .col-sm-12.sql-controls - button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, false)' ng-click='scan(paragraph)') - | Scan - button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, false)' ng-click='scan(paragraph, true)') - | Scan on selected node - - .col-sm-12.sql-result(ng-if='paragraph.queryExecuted()' ng-switch='paragraph.resultType()') - .error(ng-switch-when='error') Error: {{paragraph.errMsg}} - .empty(ng-switch-when='empty') Result set is empty - .table(ng-switch-when='table') - +table-result-heading-scan - +table-result-body - .footer.clearfix() - .pull-left - | Showing results for scan of #[b {{ paragraph.queryArgs.cacheName | defaultName }}] - span(ng-if='paragraph.queryArgs.filter') with filter: #[b {{ paragraph.queryArgs.filter }}] - span(ng-if='paragraph.queryArgs.localNid') on node: #[b {{ paragraph.queryArgs.localNid | limitTo:8 }}] - - -var nextVisibleCondition = 'paragraph.resultType() != "error" && paragraph.queryId && paragraph.nonRefresh() && (paragraph.table() || paragraph.chart() && !paragraph.scanExplain())' - - .pull-right(ng-show='#{nextVisibleCondition}' ng-class='{disabled: paragraph.loading}' ng-click='!paragraph.loading && nextPage(paragraph)') - i.fa.fa-chevron-circle-right - a Next - -mixin paragraph-query - .row.panel-heading(bs-collapse-toggle) - +paragraph-rename - .panel-collapse(role='tabpanel' bs-collapse-target) - .col-sm-12 - .col-xs-8.col-sm-9(style='border-right: 1px solid #eee') - .sql-editor(ignite-ace='{onLoad: aceInit(paragraph), theme: "chrome", mode: "sql", require: ["ace/ext/language_tools"],' + - 'advanced: {enableSnippets: false, enableBasicAutocompletion: true, enableLiveAutocompletion: true}}' - ng-model='paragraph.query') - .col-xs-4.col-sm-3 - div(ng-show='caches.length > 0' style='padding: 5px 10px' st-table='displayedCaches' st-safe-src='caches') - lable.labelField.labelFormField Caches: - i.fa.fa-database.tipField(title='Click to show cache types metadata dialog' bs-popover data-template-url='/sql/cache-metadata.html' data-placement='bottom' data-trigger='click' data-container='#{{ paragraph.id }}') - .input-tip - input.form-control(type='text' st-search='label' placeholder='Filter caches...') - table.links - tbody.scrollable-y(style='max-height: 15em; display: block;') - tr(ng-repeat='cache in displayedCaches track by cache.name') - td(style='width: 100%') - input.labelField(id='cache_{{ [paragraph.id, $index].join("_") }}' type='radio' value='{{cache.name}}' ng-model='paragraph.cacheName') - label(for='cache_{{ [paragraph.id, $index].join("_") }} ' ng-bind-html='cache.label') - .empty-caches(ng-show='displayedCaches.length == 0 && caches.length != 0') - label Wrong caches filter - .empty-caches(ng-show='caches.length == 0') - label No caches - .col-sm-12.sql-controls - +query-actions - - .pull-right - +query-settings - .col-sm-12.sql-result(ng-if='paragraph.queryExecuted()' ng-switch='paragraph.resultType()') - .error(ng-switch-when='error') Error: {{paragraph.errMsg}} - .empty(ng-switch-when='empty') Result set is empty - .table(ng-switch-when='table') - +table-result-heading-query - +table-result-body - .chart(ng-switch-when='chart') - +chart-result - .footer.clearfix - a.pull-left(ng-click='showResultQuery(paragraph)') Show query - - -var nextVisibleCondition = 'paragraph.resultType() != "error" && paragraph.queryId && paragraph.nonRefresh() && (paragraph.table() || paragraph.chart() && !paragraph.scanExplain())' - - .pull-right(ng-show='#{nextVisibleCondition}' ng-class='{disabled: paragraph.loading}' ng-click='!paragraph.loading && nextPage(paragraph)') - i.fa.fa-chevron-circle-right - a Next - -.row(ng-controller='sqlController') - .docs-content - .row(ng-if='notebook' bs-affix style='margin-bottom: 20px;') - +notebook-rename - - ignite-information(data-title='With query notebook you can' style='margin-top: 0; margin-bottom: 30px') - ul - li Create any number of queries - li Execute and explain SQL queries - li Execute scan queries - li View data in tabular form and as charts - - div(ng-if='notebookLoadFailed' style='text-align: center') - +notebook-error - - div(ng-if='notebook' ignite-loading='sqlLoading' ignite-loading-text='{{ loadingText }}' ignite-loading-position='top') - .docs-body.paragraphs - .panel-group(bs-collapse ng-model='notebook.expandedParagraphs' data-allow-multiple='true' data-start-collapsed='false') - - .panel-paragraph(ng-repeat='paragraph in notebook.paragraphs' id='{{paragraph.id}}' ng-form='form_{{paragraph.id}}') - .panel.panel-default(ng-if='paragraph.qryType === "scan"') - +paragraph-scan - .panel.panel-default(ng-if='paragraph.qryType === "query"') - +paragraph-query