├── .gitignore ├── .vscode └── settings.json ├── LICENSE ├── Makefile ├── README.md └── src ├── accountapi ├── .vscode │ ├── launch.json │ └── tasks.json ├── DotNetLive.Account.Entities │ ├── DotNetLive.Account.Entities.csproj │ ├── Permission.cs │ ├── SysRole.cs │ ├── SysUser.cs │ └── UserDevice.cs ├── DotNetLive.Account.Services │ ├── AccountService.cs │ ├── DependencyRegister │ │ └── ServiceDependencyRegister.cs │ ├── DotNetLive.Account.Services.csproj │ ├── UserCommandService.cs │ ├── UserDeviceCommandService.cs │ ├── UserDeviceQueryService.cs │ └── UserQueryService.cs ├── DotNetLive.AccountApi.IntegrationTests │ ├── DotNetLive.AccountApi.IntegrationTests.csproj │ └── UnitTest1.cs ├── DotNetLive.AccountApi.UnitTests │ ├── DotNetLive.AccountApi.UnitTests.csproj │ └── UnitTest1.cs ├── DotNetLive.AccountApi.sln └── DotNetLive.AccountApi │ ├── AuthorizationPolicy │ ├── EnterBuildingRequirement.cs │ ├── MinimumAgeHandler.cs │ └── MinimumAgeRequirement.cs │ ├── Controllers │ ├── AccountController.cs │ ├── HomeController.cs │ └── UserController.cs │ ├── CustomBearerEvents.cs │ ├── DnlJwtSecurityValidater.cs │ ├── DotNetLive.AccountApi.csproj │ ├── Models │ ├── AccountModels │ │ └── LoginResult.cs │ ├── ErrorResponse.cs │ ├── Mapping.cs │ └── UserModels │ │ └── UserCreateModel.cs │ ├── MyTokenHandler.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── README.MD │ ├── Startup.Auth.cs │ ├── Startup.Swagger.cs │ ├── Startup.cs │ ├── SwaggerFilter │ ├── AuthResponsesOperationFilter.cs │ ├── SecurityRequirementsOperationFilter.cs │ └── TagDescriptionsDocumentFilter.cs │ ├── TokenProviderOptions.cs │ ├── Views │ ├── Home │ │ ├── About.cshtml │ │ ├── Contact.cshtml │ │ └── Index.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ └── _Layout.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml │ ├── appsettings.Development.json │ ├── appsettings.Production.json │ ├── appsettings.json │ └── wwwroot │ └── swagger.css ├── accountweb-usercenter-vue ├── .babelrc ├── .editorconfig ├── .gitignore ├── README.MD ├── build │ ├── build.js │ ├── check-versions.js │ ├── dev-client.js │ ├── dev-server.js │ ├── utils.js │ ├── vue-loader.conf.js │ ├── webpack.base.conf.js │ ├── webpack.dev.conf.js │ └── webpack.prod.conf.js ├── config │ ├── dev.env.js │ ├── index.js │ └── prod.env.js ├── index.html ├── package.json ├── src │ ├── App.vue │ ├── assets │ │ ├── content │ │ │ ├── animate.css │ │ │ ├── bootstrap.min.css │ │ │ ├── font-awesome.min.css │ │ │ ├── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ └── style.css │ │ └── images │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ ├── a1.jpg │ │ │ ├── a2.jpg │ │ │ ├── a3.jpg │ │ │ ├── a4.jpg │ │ │ ├── a5.jpg │ │ │ ├── a6.jpg │ │ │ ├── a7.jpg │ │ │ ├── a8.jpg │ │ │ ├── angular_logo.png │ │ │ ├── avatar1.jpg │ │ │ ├── avatar2.jpg │ │ │ ├── avatar3.jpg │ │ │ ├── avatar4.jpg │ │ │ ├── avatar5.jpg │ │ │ ├── avatar6.jpg │ │ │ ├── avatar7.jpg │ │ │ ├── avatar8.jpg │ │ │ ├── avatar9.jpg │ │ │ ├── avatar_all.png │ │ │ ├── congruent_pentagon.png │ │ │ ├── dashboard.png │ │ │ ├── dashboard4_1.jpg │ │ │ ├── dashboard4_2.jpg │ │ │ ├── email_1.jpg │ │ │ ├── email_2.jpg │ │ │ ├── email_3.jpg │ │ │ ├── full_height.jpg │ │ │ ├── header-profile-skin-1.png │ │ │ ├── header-profile-skin-2.png │ │ │ ├── header-profile-skin-3.png │ │ │ ├── header-profile.png │ │ │ ├── header_one.jpg │ │ │ ├── header_two.jpg │ │ │ ├── headphones.jpg │ │ │ ├── html_logo.png │ │ │ ├── iphone.jpg │ │ │ ├── laptop.png │ │ │ ├── meteor_logo.png │ │ │ ├── mvc_logo.png │ │ │ ├── off_canvas.jpg │ │ │ ├── otis_redding.png │ │ │ ├── p1.jpg │ │ │ ├── p2.jpg │ │ │ ├── p3.jpg │ │ │ ├── p4.jpg │ │ │ ├── p5.jpg │ │ │ ├── p6.jpg │ │ │ ├── p7.jpg │ │ │ ├── p8.jpg │ │ │ ├── p_big1.jpg │ │ │ ├── p_big2.jpg │ │ │ ├── p_big3.jpg │ │ │ ├── perspective.png │ │ │ ├── profile.jpg │ │ │ ├── profile_big.jpg │ │ │ ├── profile_small.jpg │ │ │ ├── rails_logo.png │ │ │ ├── shattered.png │ │ │ ├── starter_logo.jpg │ │ │ ├── triangular.png │ │ │ ├── word_map.png │ │ │ └── zender_logo.png │ ├── components │ │ ├── Footer.vue │ │ ├── Hello.vue │ │ ├── Index.vue │ │ ├── Menus.vue │ │ └── Profile.vue │ ├── main.js │ ├── routers.js │ └── view │ │ ├── Home.vue │ │ └── Login.vue └── static │ └── .gitkeep ├── accountweb ├── DotNetLive.AccountWeb.sln ├── DotNetLive.AccountWeb │ ├── .bowerrc │ ├── ApiClients │ │ ├── AccountApiClient.cs │ │ └── ApiHostSettings.cs │ ├── Configurations │ │ └── AppSettings.cs │ ├── Controllers │ │ ├── AccountController.cs │ │ ├── CacheController.cs │ │ ├── HomeController.cs │ │ └── ManageController.cs │ ├── DependencyRegister │ │ └── ServiceDependencyRegister.cs │ ├── DotNetLive.AccountWeb.csproj │ ├── Entities │ │ └── Account.cs │ ├── Models │ │ ├── AccountModels │ │ │ └── LoginResult.cs │ │ ├── AccountViewModels │ │ │ ├── ExternalLoginConfirmationViewModel.cs │ │ │ ├── ForgotPasswordViewModel.cs │ │ │ ├── LoginViewModel.cs │ │ │ ├── RegisterViewModel.cs │ │ │ ├── ResetPasswordViewModel.cs │ │ │ ├── SendCodeViewModel.cs │ │ │ └── VerifyCodeViewModel.cs │ │ ├── ErrorResponse.cs │ │ └── ManageViewModels │ │ │ ├── AddPhoneNumberViewModel.cs │ │ │ ├── ChangePasswordViewModel.cs │ │ │ ├── ConfigureTwoFactorViewModel.cs │ │ │ ├── FactorViewModel.cs │ │ │ ├── IndexViewModel.cs │ │ │ ├── ManageLoginsViewModel.cs │ │ │ ├── RemoveLoginViewModel.cs │ │ │ ├── SetPasswordViewModel.cs │ │ │ └── VerifyPhoneNumberViewModel.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Services │ │ ├── IEmailSender.cs │ │ ├── ISmsSender.cs │ │ └── MessageServices.cs │ ├── Startup.cs │ ├── UserIdentity │ │ ├── IAuthenticationCommandAppService.cs │ │ ├── IAuthenticationQueryAppService.cs │ │ ├── UserIdentityModelsMaping.cs │ │ └── UserStore.cs │ ├── Views │ │ ├── Account │ │ │ ├── AccessDenied.cshtml │ │ │ ├── ConfirmEmail.cshtml │ │ │ ├── ExternalLoginConfirmation.cshtml │ │ │ ├── ExternalLoginFailure.cshtml │ │ │ ├── ForgotPassword.cshtml │ │ │ ├── ForgotPasswordConfirmation.cshtml │ │ │ ├── Lockout.cshtml │ │ │ ├── Login.cshtml │ │ │ ├── Register.cshtml │ │ │ ├── ResetPassword.cshtml │ │ │ ├── ResetPasswordConfirmation.cshtml │ │ │ ├── SendCode.cshtml │ │ │ └── VerifyCode.cshtml │ │ ├── Home │ │ │ ├── About.cshtml │ │ │ ├── Contact.cshtml │ │ │ └── Index.cshtml │ │ ├── Manage │ │ │ ├── AddPhoneNumber.cshtml │ │ │ ├── ChangePassword.cshtml │ │ │ ├── Index.cshtml │ │ │ ├── ManageLogins.cshtml │ │ │ ├── SetPassword.cshtml │ │ │ └── VerifyPhoneNumber.cshtml │ │ ├── Shared │ │ │ ├── Error.cshtml │ │ │ ├── _Footer.cshtml │ │ │ ├── _Header.cshtml │ │ │ ├── _Layout.cshtml │ │ │ ├── _LoginPartial.cshtml │ │ │ └── _ValidationScriptsPartial.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ ├── appsettings.Development.json │ ├── appsettings.Production.json │ ├── appsettings.json │ ├── bower.json │ ├── gulpfile.js │ ├── nlog.config │ ├── package.json │ ├── runtimeconfig.template.json │ ├── web.config │ └── wwwroot │ │ ├── default │ │ ├── css │ │ │ └── site.css │ │ └── js │ │ │ └── site.js │ │ ├── favicon.ico │ │ ├── images │ │ ├── banner1.svg │ │ ├── banner2.svg │ │ ├── banner3.svg │ │ └── banner4.svg │ │ ├── swagger.css │ │ └── usercenter │ │ └── README.MD └── ng2centric │ ├── .editorconfig │ ├── .vscode │ └── extensions.json │ ├── README.md │ ├── angular-cli.json │ ├── e2e │ ├── app.e2e-spec.ts │ ├── app.po.ts │ └── tsconfig.json │ ├── karma.conf.js │ ├── modernizr-config.json │ ├── package.json │ ├── protractor.conf.js │ ├── src │ ├── app │ │ ├── app.component.html │ │ ├── app.component.scss │ │ ├── app.component.spec.ts │ │ ├── app.component.ts │ │ ├── app.module.ts │ │ ├── core │ │ │ ├── colors │ │ │ │ ├── colors.service.spec.ts │ │ │ │ └── colors.service.ts │ │ │ ├── core.module.ts │ │ │ ├── menu │ │ │ │ └── menu.service.ts │ │ │ ├── module-import-guard.ts │ │ │ ├── pagetitle │ │ │ │ └── pagetitle.service.ts │ │ │ ├── preloader │ │ │ │ ├── preloader.component.html │ │ │ │ ├── preloader.scss │ │ │ │ └── preloader.ts │ │ │ └── translator │ │ │ │ ├── translator.service.spec.ts │ │ │ │ └── translator.service.ts │ │ ├── index.ts │ │ ├── layout │ │ │ ├── header │ │ │ │ ├── header.component.html │ │ │ │ ├── header.component.scss │ │ │ │ ├── header.component.spec.ts │ │ │ │ ├── header.component.ts │ │ │ │ ├── header.menu-links.scss │ │ │ │ └── search │ │ │ │ │ ├── search.component.html │ │ │ │ │ ├── search.component.scss │ │ │ │ │ ├── search.component.spec.ts │ │ │ │ │ └── search.component.ts │ │ │ ├── layout-variants.scss │ │ │ ├── layout.component.html │ │ │ ├── layout.component.scss │ │ │ ├── layout.component.spec.ts │ │ │ ├── layout.component.ts │ │ │ ├── layout.module.ts │ │ │ └── sidebar │ │ │ │ ├── sidebar.component.html │ │ │ │ ├── sidebar.component.scss │ │ │ │ ├── sidebar.component.spec.ts │ │ │ │ └── sidebar.component.ts │ │ ├── routes │ │ │ ├── cards │ │ │ │ ├── cards.component.html │ │ │ │ ├── cards.component.scss │ │ │ │ ├── cards.component.ts │ │ │ │ └── index.ts │ │ │ ├── charts │ │ │ │ ├── flot │ │ │ │ │ ├── flot.component.html │ │ │ │ │ ├── flot.component.scss │ │ │ │ │ └── flot.component.ts │ │ │ │ ├── index.ts │ │ │ │ └── radial │ │ │ │ │ ├── radial.component.html │ │ │ │ │ ├── radial.component.scss │ │ │ │ │ └── radial.component.ts │ │ │ ├── dashboard │ │ │ │ ├── dashboard.component.html │ │ │ │ ├── dashboard.component.scss │ │ │ │ ├── dashboard.component.ts │ │ │ │ └── index.ts │ │ │ ├── elements │ │ │ │ ├── bootstrapui │ │ │ │ │ ├── bootstrapui.component.html │ │ │ │ │ ├── bootstrapui.component.scss │ │ │ │ │ └── bootstrapui.component.ts │ │ │ │ ├── buttons │ │ │ │ │ ├── buttons.component.html │ │ │ │ │ ├── buttons.component.scss │ │ │ │ │ └── buttons.component.ts │ │ │ │ ├── colors │ │ │ │ │ ├── colors.component.html │ │ │ │ │ ├── colors.component.scss │ │ │ │ │ └── colors.component.ts │ │ │ │ ├── grid │ │ │ │ │ ├── grid.component.html │ │ │ │ │ ├── grid.component.scss │ │ │ │ │ └── grid.component.ts │ │ │ │ ├── icons │ │ │ │ │ ├── icons.component.html │ │ │ │ │ ├── icons.component.scss │ │ │ │ │ └── icons.component.ts │ │ │ │ ├── index.ts │ │ │ │ ├── lists │ │ │ │ │ ├── lists.component.html │ │ │ │ │ ├── lists.component.scss │ │ │ │ │ └── lists.component.ts │ │ │ │ ├── navtree │ │ │ │ │ ├── navtree.component.html │ │ │ │ │ ├── navtree.component.scss │ │ │ │ │ └── navtree.component.ts │ │ │ │ ├── nestable │ │ │ │ │ ├── nestable.component.html │ │ │ │ │ ├── nestable.component.scss │ │ │ │ │ └── nestable.component.ts │ │ │ │ ├── spinners │ │ │ │ │ ├── spinners.component.html │ │ │ │ │ ├── spinners.component.scss │ │ │ │ │ └── spinners.component.ts │ │ │ │ ├── sweetalert │ │ │ │ │ ├── sweetalert.component.html │ │ │ │ │ ├── sweetalert.component.scss │ │ │ │ │ └── sweetalert.component.ts │ │ │ │ ├── typography │ │ │ │ │ ├── typography.component.html │ │ │ │ │ ├── typography.component.scss │ │ │ │ │ └── typography.component.ts │ │ │ │ ├── utilities │ │ │ │ │ ├── utilities.component.html │ │ │ │ │ ├── utilities.component.scss │ │ │ │ │ └── utilities.component.ts │ │ │ │ └── whiteframes │ │ │ │ │ ├── whiteframes.component.html │ │ │ │ │ ├── whiteframes.component.scss │ │ │ │ │ └── whiteframes.component.ts │ │ │ ├── forms │ │ │ │ ├── advanced │ │ │ │ │ ├── advanced.component.html │ │ │ │ │ ├── advanced.component.scss │ │ │ │ │ └── advanced.component.ts │ │ │ │ ├── classic │ │ │ │ │ ├── classic.component.html │ │ │ │ │ ├── classic.component.scss │ │ │ │ │ └── classic.component.ts │ │ │ │ ├── editors │ │ │ │ │ ├── editors.component.html │ │ │ │ │ ├── editors.component.scss │ │ │ │ │ └── editors.component.ts │ │ │ │ ├── index.ts │ │ │ │ ├── material │ │ │ │ │ ├── material.component.html │ │ │ │ │ ├── material.component.scss │ │ │ │ │ └── material.component.ts │ │ │ │ ├── upload │ │ │ │ │ ├── upload.component.html │ │ │ │ │ ├── upload.component.scss │ │ │ │ │ └── upload.component.ts │ │ │ │ └── validation │ │ │ │ │ ├── validation.component.html │ │ │ │ │ ├── validation.component.scss │ │ │ │ │ └── validation.component.ts │ │ │ ├── layouts │ │ │ │ ├── boxed │ │ │ │ │ ├── boxed.component.html │ │ │ │ │ ├── boxed.component.scss │ │ │ │ │ └── boxed.component.ts │ │ │ │ ├── columns │ │ │ │ │ ├── columns.component.html │ │ │ │ │ ├── columns.component.scss │ │ │ │ │ └── columns.component.ts │ │ │ │ ├── containers │ │ │ │ │ ├── containers.component.html │ │ │ │ │ ├── containers.component.scss │ │ │ │ │ └── containers.component.ts │ │ │ │ ├── index.ts │ │ │ │ ├── overlap │ │ │ │ │ ├── overlap.component.html │ │ │ │ │ ├── overlap.component.scss │ │ │ │ │ └── overlap.component.ts │ │ │ │ └── tabs │ │ │ │ │ ├── tabhome │ │ │ │ │ ├── tabhome.component.html │ │ │ │ │ ├── tabhome.component.scss │ │ │ │ │ └── tabhome.component.ts │ │ │ │ │ ├── tabmessage │ │ │ │ │ ├── tabmessage.component.html │ │ │ │ │ ├── tabmessage.component.scss │ │ │ │ │ └── tabmessage.component.ts │ │ │ │ │ ├── tabprofile │ │ │ │ │ ├── tabprofile.component.html │ │ │ │ │ ├── tabprofile.component.scss │ │ │ │ │ └── tabprofile.component.ts │ │ │ │ │ ├── tabs.component.html │ │ │ │ │ ├── tabs.component.scss │ │ │ │ │ └── tabs.component.ts │ │ │ ├── maps │ │ │ │ ├── google │ │ │ │ │ ├── google.component.html │ │ │ │ │ ├── google.component.scss │ │ │ │ │ └── google.component.ts │ │ │ │ ├── googlefull │ │ │ │ │ ├── googlefull.component.html │ │ │ │ │ ├── googlefull.component.scss │ │ │ │ │ └── googlefull.component.ts │ │ │ │ ├── index.ts │ │ │ │ └── vector │ │ │ │ │ ├── vector.component.html │ │ │ │ │ ├── vector.component.scss │ │ │ │ │ └── vector.component.ts │ │ │ ├── menu.ts │ │ │ ├── pages │ │ │ │ ├── article │ │ │ │ │ ├── article.component.html │ │ │ │ │ ├── article.component.scss │ │ │ │ │ └── article.component.ts │ │ │ │ ├── blog │ │ │ │ │ ├── blog.component.html │ │ │ │ │ ├── blog.component.scss │ │ │ │ │ └── blog.component.ts │ │ │ │ ├── contacts │ │ │ │ │ ├── contacts.component.html │ │ │ │ │ ├── contacts.component.scss │ │ │ │ │ └── contacts.component.ts │ │ │ │ ├── faq │ │ │ │ │ ├── faq.component.html │ │ │ │ │ ├── faq.component.scss │ │ │ │ │ └── faq.component.ts │ │ │ │ ├── gallery │ │ │ │ │ ├── gallery.component.html │ │ │ │ │ ├── gallery.component.scss │ │ │ │ │ └── gallery.component.ts │ │ │ │ ├── index.ts │ │ │ │ ├── invoice │ │ │ │ │ ├── invoice.component.html │ │ │ │ │ ├── invoice.component.scss │ │ │ │ │ └── invoice.component.ts │ │ │ │ ├── messages │ │ │ │ │ ├── messagenew │ │ │ │ │ │ ├── messagenew.component.html │ │ │ │ │ │ ├── messagenew.component.scss │ │ │ │ │ │ └── messagenew.component.ts │ │ │ │ │ ├── messages.component.html │ │ │ │ │ ├── messages.component.scss │ │ │ │ │ ├── messages.component.ts │ │ │ │ │ └── messageview │ │ │ │ │ │ ├── messageview.component.html │ │ │ │ │ │ ├── messageview.component.scss │ │ │ │ │ │ └── messageview.component.ts │ │ │ │ ├── pricing │ │ │ │ │ ├── pricing.component.html │ │ │ │ │ ├── pricing.component.scss │ │ │ │ │ └── pricing.component.ts │ │ │ │ ├── profile │ │ │ │ │ ├── profile.component.html │ │ │ │ │ ├── profile.component.scss │ │ │ │ │ └── profile.component.ts │ │ │ │ ├── projects │ │ │ │ │ ├── projects.component.html │ │ │ │ │ ├── projects.component.scss │ │ │ │ │ └── projects.component.ts │ │ │ │ ├── search │ │ │ │ │ ├── search.component.html │ │ │ │ │ ├── search.component.scss │ │ │ │ │ └── search.component.ts │ │ │ │ ├── timeline │ │ │ │ │ ├── timeline.component.html │ │ │ │ │ ├── timeline.component.scss │ │ │ │ │ └── timeline.component.ts │ │ │ │ └── wall │ │ │ │ │ ├── wall.component.html │ │ │ │ │ ├── wall.component.scss │ │ │ │ │ └── wall.component.ts │ │ │ ├── routes.module.ts │ │ │ ├── routes.ts │ │ │ ├── tables │ │ │ │ ├── classic │ │ │ │ │ ├── classic.component.html │ │ │ │ │ ├── classic.component.scss │ │ │ │ │ └── classic.component.ts │ │ │ │ ├── datatables │ │ │ │ │ ├── datatables.component.html │ │ │ │ │ ├── datatables.component.scss │ │ │ │ │ └── datatables.component.ts │ │ │ │ └── index.ts │ │ │ └── user │ │ │ │ ├── index.ts │ │ │ │ ├── lock │ │ │ │ ├── lock.component.html │ │ │ │ ├── lock.component.scss │ │ │ │ └── lock.component.ts │ │ │ │ ├── login │ │ │ │ ├── login.component.html │ │ │ │ ├── login.component.scss │ │ │ │ └── login.component.ts │ │ │ │ ├── recover │ │ │ │ ├── recover.component.html │ │ │ │ ├── recover.component.scss │ │ │ │ └── recover.component.ts │ │ │ │ └── signup │ │ │ │ ├── signup.component.html │ │ │ │ ├── signup.component.scss │ │ │ │ └── signup.component.ts │ │ └── shared │ │ │ ├── directives │ │ │ ├── easypiechart │ │ │ │ └── easypiechart.directive.ts │ │ │ ├── flot │ │ │ │ └── flot.directive.ts │ │ │ ├── index.ts │ │ │ ├── knob │ │ │ │ └── knob.directive.ts │ │ │ ├── ripple │ │ │ │ ├── ripple.directive.ts │ │ │ │ └── ripple.ts │ │ │ ├── sparkline │ │ │ │ └── sparkline.directive.ts │ │ │ ├── svgreplace │ │ │ │ └── svgreplace.directive.ts │ │ │ └── vectormap │ │ │ │ └── vectormap.directive.ts │ │ │ ├── settings │ │ │ ├── settings.component.html │ │ │ ├── settings.component.scss │ │ │ ├── settings.component.ts │ │ │ └── settings.service.ts │ │ │ ├── shared.module.ts │ │ │ └── styles │ │ │ ├── bootstrap │ │ │ ├── mixins.scss │ │ │ ├── mixins │ │ │ │ ├── _alerts.scss │ │ │ │ ├── _background-variant.scss │ │ │ │ ├── _border-radius.scss │ │ │ │ ├── _buttons.scss │ │ │ │ ├── _center-block.scss │ │ │ │ ├── _clearfix.scss │ │ │ │ ├── _forms.scss │ │ │ │ ├── _gradients.scss │ │ │ │ ├── _grid-framework.scss │ │ │ │ ├── _grid.scss │ │ │ │ ├── _hide-text.scss │ │ │ │ ├── _image.scss │ │ │ │ ├── _labels.scss │ │ │ │ ├── _list-group.scss │ │ │ │ ├── _nav-divider.scss │ │ │ │ ├── _nav-vertical-align.scss │ │ │ │ ├── _opacity.scss │ │ │ │ ├── _pagination.scss │ │ │ │ ├── _panels.scss │ │ │ │ ├── _progress-bar.scss │ │ │ │ ├── _reset-filter.scss │ │ │ │ ├── _reset-text.scss │ │ │ │ ├── _resize.scss │ │ │ │ ├── _responsive-visibility.scss │ │ │ │ ├── _size.scss │ │ │ │ ├── _tab-focus.scss │ │ │ │ ├── _table-row.scss │ │ │ │ ├── _text-emphasis.scss │ │ │ │ ├── _text-overflow.scss │ │ │ │ └── _vendor-prefixes.scss │ │ │ └── reset.scss │ │ │ ├── bootstrapui │ │ │ ├── datepicker.scss │ │ │ └── typeahead.scss │ │ │ ├── cards │ │ │ └── cards.scss │ │ │ ├── colors │ │ │ └── colors.scss │ │ │ ├── common │ │ │ ├── animate.scss │ │ │ ├── buttons-extra.scss │ │ │ ├── containers.scss │ │ │ ├── dropdown-extra.scss │ │ │ ├── file-upload.scss │ │ │ ├── grid-extra.scss │ │ │ ├── material-colors.scss │ │ │ ├── mixins.scss │ │ │ ├── modal.scss │ │ │ ├── spinner.scss │ │ │ ├── themes.scss │ │ │ ├── typography.scss │ │ │ ├── ui.checkbox-radio.scss │ │ │ ├── ui.note-area.scss │ │ │ ├── ui.switch.scss │ │ │ └── variables.scss │ │ │ ├── floatbutton │ │ │ └── floatbutton.scss │ │ │ ├── material │ │ │ ├── list.scss │ │ │ └── material.scss │ │ │ ├── ripple │ │ │ └── ripple.scss │ │ │ ├── settings │ │ │ └── settings.scss │ │ │ ├── styles.scss │ │ │ └── utils │ │ │ └── utils.scss │ ├── assets │ │ ├── .gitkeep │ │ ├── chart │ │ │ ├── area.json │ │ │ ├── bar.json │ │ │ ├── barstacked.json │ │ │ ├── line.json │ │ │ └── spline.json │ │ ├── datatable.json │ │ ├── i18n │ │ │ ├── en.json │ │ │ └── es_AR.json │ │ └── img │ │ │ ├── icons │ │ │ ├── aperture.svg │ │ │ ├── clipboard.svg │ │ │ ├── connection-bars.svg │ │ │ ├── grid.svg │ │ │ ├── ios-browsers.svg │ │ │ ├── levels.svg │ │ │ ├── log-out.svg │ │ │ ├── navicon.svg │ │ │ ├── person-stalker.svg │ │ │ ├── planet.svg │ │ │ └── radio-waves.svg │ │ │ ├── logo.png │ │ │ ├── logo.svg │ │ │ ├── pic1.jpg │ │ │ ├── pic2.jpg │ │ │ ├── pic3.jpg │ │ │ ├── pic4.jpg │ │ │ ├── pic5.jpg │ │ │ ├── pic6.jpg │ │ │ ├── preloader │ │ │ ├── preloader.empty.png │ │ │ └── preloader.full.png │ │ │ └── user │ │ │ ├── 01.jpg │ │ │ ├── 02.jpg │ │ │ ├── 03.jpg │ │ │ ├── 04.jpg │ │ │ ├── 05.jpg │ │ │ ├── 06.jpg │ │ │ └── 07.jpg │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── index.html │ ├── main.ts │ ├── modernizr.js │ ├── polyfills.ts │ ├── styles.scss │ ├── test.ts │ ├── tsconfig.json │ ├── typings.d.ts │ └── vendor.ts │ └── tslint.json └── authcenter └── README.MD /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | "files.exclude": { 4 | "**/.git": true, 5 | "**/.svn": true, 6 | "**/.hg": true, 7 | "**/.DS_Store": true, 8 | "**/.vs":true 9 | } 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dotnetlive-account 2 | dotnet live system account management and unify login system 3 | -------------------------------------------------------------------------------- /src/accountapi/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 3 | // for the documentation about the tasks.json format 4 | "version": "0.1.0", 5 | "command": "dotnet", 6 | "isShellCommand": true, 7 | "args": [], 8 | "tasks": [ 9 | { 10 | "taskName": "build", 11 | "args": [ ], 12 | "isBuildCommand": true, 13 | "showOutput": "silent", 14 | "problemMatcher": "$msCompile" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.Account.Entities/DotNetLive.Account.Entities.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp1.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.Account.Entities/Permission.cs: -------------------------------------------------------------------------------- 1 | using DotNetLive.Framework.Entities; 2 | using System.ComponentModel.DataAnnotations.Schema; 3 | 4 | namespace DotNetLive.Account.Entities 5 | { 6 | /// 7 | /// 权限 8 | /// 9 | [Table("auth.permission")] 10 | public class Permission : BaseEntity 11 | { 12 | [Column("name")] 13 | public string Name { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.Account.Entities/SysRole.cs: -------------------------------------------------------------------------------- 1 | using DotNetLive.Framework.Entities; 2 | using System.ComponentModel.DataAnnotations.Schema; 3 | 4 | namespace DotNetLive.Account.Entities 5 | { 6 | /// 7 | /// 角色 8 | /// 9 | [Table("auth.sysrole")] 10 | public class SysRole : BaseEntity 11 | { 12 | [Column("name")] 13 | public string Name { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.Account.Entities/UserDevice.cs: -------------------------------------------------------------------------------- 1 | using DotNetLive.Framework.Entities; 2 | using System; 3 | using System.ComponentModel.DataAnnotations.Schema; 4 | 5 | namespace DotNetLive.Account.Entities 6 | { 7 | /// 8 | /// 用户登陆终端 9 | /// 10 | [Table("auth.user_device")] 11 | public class UserDevice : BaseEntity 12 | { 13 | [Column("user_sysid")] 14 | public Guid UserSysId { get; set; } 15 | 16 | /// 17 | /// 生成的token 18 | /// 19 | [Column("token")] 20 | public string Token { get; set; } 21 | 22 | /// 23 | /// token过期时间 24 | /// 25 | [Column("expire_time")] 26 | public DateTime ExpireTime { get; set; } 27 | 28 | [Column("issue_time")] 29 | public DateTime IssueTime { get; set; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.Account.Services/AccountService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace DotNetLive.Account.Services 4 | { 5 | public class AccountService 6 | { 7 | public UserQueryService UserQueryService { get; private set; } 8 | 9 | public AccountService(UserQueryService userQuerySerivce) 10 | { 11 | this.UserQueryService = userQuerySerivce; 12 | } 13 | 14 | public bool Login(string username, string passwordHash) 15 | { 16 | var user = UserQueryService.GetUserByEmail(username); 17 | 18 | return user != null && passwordHash.Equals(user.PasswordHash, StringComparison.OrdinalIgnoreCase); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.Account.Services/DependencyRegister/ServiceDependencyRegister.cs: -------------------------------------------------------------------------------- 1 | using DotNetLive.Framework.DependencyManagement; 2 | using Microsoft.Extensions.Configuration; 3 | using Microsoft.Extensions.DependencyInjection; 4 | using System; 5 | 6 | namespace DotNetLive.Account.Services.DependencyRegister 7 | { 8 | public class ServiceDependencyRegister : IDependencyRegister 9 | { 10 | ExecuteOrderType IDependencyRegister.ExecuteOrder => ExecuteOrderType.Normal ; 11 | public void Register(IServiceCollection services, IConfigurationRoot configuration, IServiceProvider serviceProvider) 12 | { 13 | services.AddScoped(); 14 | services.AddScoped(); 15 | services.AddScoped(); 16 | services.AddScoped(); 17 | services.AddScoped(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.Account.Services/DotNetLive.Account.Services.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp1.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.Account.Services/UserDeviceCommandService.cs: -------------------------------------------------------------------------------- 1 | using DotNetLive.Account.Entities; 2 | using DotNetLive.Framework.Data.Repositories; 3 | using System; 4 | 5 | namespace DotNetLive.Account.Services 6 | { 7 | public class UserDeviceCommandService 8 | { 9 | private ICommandRepository _commandRepository; 10 | 11 | public UserDeviceCommandService(ICommandRepository commandRepository) 12 | { 13 | this._commandRepository = commandRepository; 14 | } 15 | 16 | public Guid CreateUserDevice(UserDevice userDevice) 17 | { 18 | _commandRepository.Add(userDevice); 19 | return userDevice.SysId; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.Account.Services/UserDeviceQueryService.cs: -------------------------------------------------------------------------------- 1 | using DotNetLive.Framework.Data.Repositories; 2 | 3 | namespace DotNetLive.Account.Services 4 | { 5 | public class UserDeviceQueryService 6 | { 7 | private IQueryRepository _queryRepository; 8 | 9 | public UserDeviceQueryService(IQueryRepository queryRepository) 10 | { 11 | this._queryRepository = queryRepository; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.Account.Services/UserQueryService.cs: -------------------------------------------------------------------------------- 1 | using DotNetLive.Account.Entities; 2 | using DotNetLive.Framework.Data; 3 | using DotNetLive.Framework.Data.Repositories; 4 | using System; 5 | using System.Collections.Generic; 6 | 7 | namespace DotNetLive.Account.Services 8 | { 9 | /// 10 | /// 用户查询服务 11 | /// 12 | public class UserQueryService 13 | { 14 | private IQueryRepository _queryRepository; 15 | 16 | public UserQueryService(IQueryRepository queryRepository) 17 | { 18 | this._queryRepository = queryRepository; 19 | } 20 | 21 | public SysUser GetUserById(Guid userId) 22 | { 23 | return _queryRepository.Get(userId); 24 | } 25 | 26 | public IEnumerable SearchUser() 27 | { 28 | return _queryRepository.GetAll(); 29 | } 30 | 31 | public SysUser GetUserByEmail(string username) 32 | { 33 | return _queryRepository.Get($"select {EntityMapper.GetColumnNames("t")} from {EntityMapper.GetTableName()} t where t.Email = @email", new { email = username }); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi.IntegrationTests/DotNetLive.AccountApi.IntegrationTests.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | netcoreapp1.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi.IntegrationTests/UnitTest1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Xunit; 3 | 4 | namespace DotNetLive.AccountApi.IntegrationTests 5 | { 6 | public class UnitTest1 7 | { 8 | [Fact] 9 | public void Test1() 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi.UnitTests/DotNetLive.AccountApi.UnitTests.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp1.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi.UnitTests/UnitTest1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Xunit; 3 | 4 | namespace DotNetLive.AccountApi.UnitTests 5 | { 6 | public class UnitTest1 7 | { 8 | [Fact] 9 | public void Test1() 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/AuthorizationPolicy/MinimumAgeRequirement.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Authorization; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | namespace DotNetLive.AccountApi.AuthorizationPolicy 6 | { 7 | public class MinimumAgeRequirement : IAuthorizationRequirement 8 | { 9 | public MinimumAgeRequirement(int age) 10 | { 11 | MinimumAge = age; 12 | } 13 | 14 | public int MinimumAge { get; set; } 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace DotNetLive.AccountApi.Controllers 4 | { 5 | public class HomeController : Controller 6 | { 7 | public IActionResult Index() 8 | { 9 | //return Redirect("~/swagger"); 10 | return View(); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Models/AccountModels/LoginResult.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace DotNetLive.AccountApi.Models.AccountModels 8 | { 9 | public class LoginResult 10 | { 11 | [JsonProperty("token")] 12 | public string Token { get; internal set; } 13 | [JsonProperty("expires_in")] 14 | public double ExpiresIn { get; internal set; } 15 | public LoginUser LoginUser { get; set; } 16 | } 17 | 18 | public class LoginUser 19 | { 20 | public Guid SysId { get; set; } 21 | public int Id { get; set; } 22 | public string UserName { get; set; } 23 | public string Email { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Models/ErrorResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace DotNetLive.AccountApi.Models 7 | { 8 | public class ErrorResponse 9 | { 10 | public string Message { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Models/Mapping.cs: -------------------------------------------------------------------------------- 1 | using AutoMapper; 2 | using DotNetLive.Account.Entities; 3 | using DotNetLive.AccountApi.Models.AccountModels; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Threading.Tasks; 8 | 9 | namespace DotNetLive.AccountApi.Models 10 | { 11 | public class ModelsMaping : Profile 12 | { 13 | public ModelsMaping() 14 | { 15 | CreateMap(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Builder; 7 | using Microsoft.AspNetCore.Hosting; 8 | 9 | namespace DotNetLive.AccountApi 10 | { 11 | public class Program 12 | { 13 | public static void Main(string[] args) 14 | { 15 | var host = new WebHostBuilder() 16 | .UseKestrel() 17 | .UseContentRoot(Directory.GetCurrentDirectory()) 18 | .UseIISIntegration() 19 | .UseStartup() 20 | .UseApplicationInsights() 21 | .Build(); 22 | 23 | host.Run(); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:57165/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "environmentVariables": { 14 | "ASPNETCORE_ENVIRONMENT": "Development" 15 | } 16 | }, 17 | "DotNetLive.AccountApi": { 18 | "commandName": "Project", 19 | "launchBrowser": true, 20 | "launchUrl": "api/values", 21 | "environmentVariables": { 22 | "ASPNETCORE_ENVIRONMENT": "Development" 23 | }, 24 | "applicationUrl": "http://localhost:57166" 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/README.MD: -------------------------------------------------------------------------------- 1 | # Introduction 2 | ## Authentrization 3 | ### Policy Based Authorization 4 | ### Swagger + Jwt Authorization(Base on AuthorizeAttribute + AllowAnonymous) -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/SwaggerFilter/AuthResponsesOperationFilter.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Authorization; 2 | using Swashbuckle.AspNetCore.Swagger; 3 | using Swashbuckle.AspNetCore.SwaggerGen; 4 | using System.Linq; 5 | 6 | namespace DotNetLive.AccountApi 7 | { 8 | // AuthResponsesOperationFilter.cs 9 | public class AuthResponsesOperationFilter : IOperationFilter 10 | { 11 | public void Apply(Operation operation, OperationFilterContext context) 12 | { 13 | var authAttributes = context.ApiDescription 14 | .ControllerAttributes() 15 | .Union(context.ApiDescription.ActionAttributes()) 16 | .OfType(); 17 | 18 | if (authAttributes.Any()) 19 | operation.Responses.Add("401", new Response { Description = "Unauthorized" }); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/SwaggerFilter/TagDescriptionsDocumentFilter.cs: -------------------------------------------------------------------------------- 1 | using Swashbuckle.AspNetCore.Swagger; 2 | using Swashbuckle.AspNetCore.SwaggerGen; 3 | 4 | namespace DotNetLive.AccountApi 5 | { 6 | public class TagDescriptionsDocumentFilter : IDocumentFilter 7 | { 8 | public void Apply(SwaggerDocument swaggerDoc, DocumentFilterContext context) 9 | { 10 | swaggerDoc.Tags = new[] { 11 | new Tag { Name = "Products", Description = "Browse/manage the product catalog" }, 12 | new Tag { Name = "Orders", Description = "Submit orders" } 13 | }; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "About"; 3 | } 4 |

@ViewData["Title"].

5 |

@ViewData["Message"]

6 | 7 |

Use this area to provide additional information.

8 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Views/Home/Contact.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Contact"; 3 | } 4 |

@ViewData["Title"].

5 |

@ViewData["Message"]

6 | 7 |
8 | One Microsoft Way
9 | Redmond, WA 98052-6399
10 | P: 11 | 425.555.0100 12 |
13 | 14 |
15 | Support: Support@example.com
16 | Marketing: Marketing@example.com 17 |
18 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Home Page"; 3 | } 4 | Redirect to Swagger -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Error"; 3 | } 4 | 5 |

Error.

6 |

An error occurred while processing your request.

7 | 8 |

Development Mode

9 |

10 | Swapping to Development environment will display more detailed information about the error that occurred. 11 |

12 |

13 | Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. 14 |

15 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | @RenderBody() 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DbSettings": { 3 | "DefaultSchema": "auth", 4 | "CommandDbConnectionString": "Server=qd1.niusys.com;User Id=dnl_user; Password=d0tnetlive!@#; Database=dnl;", 5 | "QueryDbConnectionString": "Server=qd1.niusys.com;User Id=dnl_user; Password=d0tnetlive!@#; Database=dnl;" 6 | }, 7 | "Logging": { 8 | "IncludeScopes": false, 9 | "LogLevel": { 10 | "Default": "Debug", 11 | "System": "Information", 12 | "Microsoft": "Information" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/appsettings.Production.json: -------------------------------------------------------------------------------- 1 | { 2 | "DbSettings": { 3 | "DefaultSchema": "auth", 4 | "CommandDbConnectionString": "Server=localhost;User Id=dnl_user; Database=dnl;", 5 | "QueryDbConnectionString": "Server=localhost;User Id=dnl_user; Database=dnl;" 6 | }, 7 | "Logging": { 8 | "IncludeScopes": false, 9 | "LogLevel": { 10 | "Default": "Debug", 11 | "System": "Information", 12 | "Microsoft": "Information" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "DbSettings": { 3 | "DefaultSchema": "auth", 4 | "CommandDbConnectionString": "Server=qd1.niusys.com;User Id=dnl_user; Password=d0tnetlive!@#; Database=dnl;", 5 | "QueryDbConnectionString": "Server=qd1.niusys.com;User Id=dnl_user; Password=d0tnetlive!@#; Database=dnl;" 6 | }, 7 | "AppSettings": { 8 | "AppName": "AccountApi" 9 | }, 10 | "Logging": { 11 | "IncludeScopes": false, 12 | "LogLevel": { 13 | "Default": "Warning" 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/accountapi/DotNetLive.AccountApi/wwwroot/swagger.css: -------------------------------------------------------------------------------- 1 | .swagger-section .swagger-ui-wrap { 2 | max-width: unset; 3 | padding: 0 20px; 4 | } 5 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["es2015", { "modules": false }], 4 | "stage-2" 5 | ], 6 | "plugins": ["transform-runtime"], 7 | "comments": false, 8 | "env": { 9 | "test": { 10 | "plugins": [ "istanbul" ] 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log 5 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/README.MD: -------------------------------------------------------------------------------- 1 | # 用户中心 2 | 3 | 用户登录后点击用户账户,进入用户中心 4 | 5 | 这里包括 用户基本信息,用户修改账户信息 修改用户密码 6 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/build/dev-client.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | require('eventsource-polyfill') 3 | var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') 4 | 5 | hotClient.subscribe(function (event) { 6 | if (event.action === 'reload') { 7 | window.location.reload() 8 | } 9 | }) 10 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/build/vue-loader.conf.js: -------------------------------------------------------------------------------- 1 | var utils = require('./utils') 2 | var config = require('../config') 3 | var isProduction = process.env.NODE_ENV === 'production' 4 | 5 | module.exports = { 6 | loaders: utils.cssLoaders({ 7 | sourceMap: isProduction 8 | ? config.build.productionSourceMap 9 | : config.dev.cssSourceMap, 10 | extract: isProduction 11 | }), 12 | postcss: [ 13 | require('autoprefixer')({ 14 | browsers: ['last 2 versions'] 15 | }) 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/config/dev.env.js: -------------------------------------------------------------------------------- 1 | var merge = require('webpack-merge') 2 | var prodEnv = require('./prod.env') 3 | 4 | module.exports = merge(prodEnv, { 5 | NODE_ENV: '"development"' 6 | }) 7 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/config/prod.env.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | NODE_ENV: '"production"' 3 | } 4 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Personal Center 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/content/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/content/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/content/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/content/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/content/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/content/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/content/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/content/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/1.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/2.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/3.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/4.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/5.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/6.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/7.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/a1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/a1.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/a2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/a2.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/a3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/a3.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/a4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/a4.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/a5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/a5.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/a6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/a6.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/a7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/a7.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/a8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/a8.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/angular_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/angular_logo.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/avatar1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/avatar1.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/avatar2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/avatar2.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/avatar3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/avatar3.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/avatar4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/avatar4.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/avatar5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/avatar5.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/avatar6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/avatar6.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/avatar7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/avatar7.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/avatar8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/avatar8.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/avatar9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/avatar9.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/avatar_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/avatar_all.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/congruent_pentagon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/congruent_pentagon.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/dashboard.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/dashboard4_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/dashboard4_1.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/dashboard4_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/dashboard4_2.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/email_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/email_1.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/email_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/email_2.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/email_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/email_3.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/full_height.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/full_height.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/header-profile-skin-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/header-profile-skin-1.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/header-profile-skin-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/header-profile-skin-2.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/header-profile-skin-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/header-profile-skin-3.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/header-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/header-profile.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/header_one.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/header_one.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/header_two.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/header_two.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/headphones.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/headphones.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/html_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/html_logo.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/iphone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/iphone.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/laptop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/laptop.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/meteor_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/meteor_logo.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/mvc_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/mvc_logo.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/off_canvas.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/off_canvas.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/otis_redding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/otis_redding.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/p1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/p1.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/p2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/p2.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/p3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/p3.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/p4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/p4.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/p5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/p5.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/p6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/p6.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/p7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/p7.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/p8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/p8.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/p_big1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/p_big1.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/p_big2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/p_big2.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/p_big3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/p_big3.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/perspective.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/perspective.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/profile.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/profile_big.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/profile_big.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/profile_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/profile_small.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/rails_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/rails_logo.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/shattered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/shattered.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/starter_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/starter_logo.jpg -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/triangular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/triangular.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/word_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/word_map.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/assets/images/zender_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/src/assets/images/zender_logo.png -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/components/Footer.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/components/Hello.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/main.js: -------------------------------------------------------------------------------- 1 | // The Vue build version to load with the `import` command 2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias. 3 | import Vue from 'vue' 4 | import VueRouter from 'vue-router' 5 | import App from './App' 6 | import routers from './routers' 7 | import './assets/content/bootstrap.min.css' 8 | import './assets/content/animate.css' 9 | import './assets/content/style.css' 10 | /* eslint-disable no-new */ 11 | Vue.use(VueRouter) 12 | const router = new VueRouter(routers) 13 | new Vue({ 14 | el: '#app', 15 | router, 16 | template: '', 17 | components: { App } 18 | }) 19 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/src/routers.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | mode: "hash", 3 | routes: [ 4 | { 5 | path: '/', 6 | component: resolve => require(['./view/Login.vue'], resolve) 7 | }, 8 | { 9 | path: '/home', 10 | component: resolve => require(['./view/Home.vue'], resolve), 11 | children: [ 12 | { 13 | path: 'index', 14 | component: resolve => require(['./components/Index.vue'], resolve) 15 | }, 16 | { 17 | path: 'profile', 18 | component: resolve => require(['./components/Profile.vue'], resolve) 19 | } 20 | ] 21 | } 22 | ] 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/accountweb-usercenter-vue/static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb-usercenter-vue/static/.gitkeep -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "wwwroot/lib" 3 | } 4 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/ApiClients/ApiHostSettings.cs: -------------------------------------------------------------------------------- 1 | namespace DotNetLive.AccountWeb.ApiClients 2 | { 3 | public class ApiHostSettings 4 | { 5 | public string AccountApi { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Configurations/AppSettings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace DotNetLive.AccountWeb.Configurations 7 | { 8 | /// 9 | /// 每个应用程序默认的配置 10 | /// 11 | public class AppSettings 12 | { 13 | public string MainSite { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Controllers/CacheController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using Microsoft.Extensions.Caching.Memory; 3 | 4 | namespace DotNetLive.AccountWeb.Controllers 5 | { 6 | public class CacheController : Controller 7 | { 8 | private IMemoryCache _cache; 9 | 10 | public CacheController(IMemoryCache memoryCache) 11 | { 12 | _cache = memoryCache; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/AccountModels/LoginResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace DotNetLive.AccountWeb.Models.AccountModels 7 | { 8 | public class LoginResult 9 | { 10 | public string Token { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/AccountViewModels/ExternalLoginConfirmationViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace DotNetLive.AccountWeb.Models.AccountViewModels 8 | { 9 | public class ExternalLoginConfirmationViewModel 10 | { 11 | [Required] 12 | [EmailAddress] 13 | public string Email { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/AccountViewModels/ForgotPasswordViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace DotNetLive.AccountWeb.Models.AccountViewModels 8 | { 9 | public class ForgotPasswordViewModel 10 | { 11 | [Required] 12 | [EmailAddress] 13 | public string Email { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/AccountViewModels/LoginViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace DotNetLive.AccountWeb.Models.AccountViewModels 8 | { 9 | public class LoginViewModel 10 | { 11 | [Required] 12 | [EmailAddress] 13 | public string Email { get; set; } 14 | 15 | [Required] 16 | [DataType(DataType.Password)] 17 | public string Password { get; set; } 18 | 19 | [Display(Name = "Remember me?")] 20 | public bool RememberMe { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/AccountViewModels/RegisterViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace DotNetLive.AccountWeb.Models.AccountViewModels 8 | { 9 | public class RegisterViewModel 10 | { 11 | [Required] 12 | [EmailAddress] 13 | [Display(Name = "Email")] 14 | public string Email { get; set; } 15 | 16 | [Required] 17 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] 18 | [DataType(DataType.Password)] 19 | [Display(Name = "Password")] 20 | public string Password { get; set; } 21 | 22 | [DataType(DataType.Password)] 23 | [Display(Name = "Confirm password")] 24 | [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 25 | public string ConfirmPassword { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/AccountViewModels/ResetPasswordViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace DotNetLive.AccountWeb.Models.AccountViewModels 8 | { 9 | public class ResetPasswordViewModel 10 | { 11 | [Required] 12 | [EmailAddress] 13 | public string Email { get; set; } 14 | 15 | [Required] 16 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] 17 | [DataType(DataType.Password)] 18 | public string Password { get; set; } 19 | 20 | [DataType(DataType.Password)] 21 | [Display(Name = "Confirm password")] 22 | [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 23 | public string ConfirmPassword { get; set; } 24 | 25 | public string Code { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/AccountViewModels/SendCodeViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc.Rendering; 6 | 7 | namespace DotNetLive.AccountWeb.Models.AccountViewModels 8 | { 9 | public class SendCodeViewModel 10 | { 11 | public string SelectedProvider { get; set; } 12 | 13 | public ICollection Providers { get; set; } 14 | 15 | public string ReturnUrl { get; set; } 16 | 17 | public bool RememberMe { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/AccountViewModels/VerifyCodeViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace DotNetLive.AccountWeb.Models.AccountViewModels 8 | { 9 | public class VerifyCodeViewModel 10 | { 11 | [Required] 12 | public string Provider { get; set; } 13 | 14 | [Required] 15 | public string Code { get; set; } 16 | 17 | public string ReturnUrl { get; set; } 18 | 19 | [Display(Name = "Remember this browser?")] 20 | public bool RememberBrowser { get; set; } 21 | 22 | [Display(Name = "Remember me?")] 23 | public bool RememberMe { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/ErrorResponse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace DotNetLive.AccountWeb.Models 7 | { 8 | public class ErrorResponse 9 | { 10 | public string Message { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/ManageViewModels/AddPhoneNumberViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace DotNetLive.AccountWeb.Models.ManageViewModels 8 | { 9 | public class AddPhoneNumberViewModel 10 | { 11 | [Required] 12 | [Phone] 13 | [Display(Name = "Phone number")] 14 | public string PhoneNumber { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/ManageViewModels/ChangePasswordViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace DotNetLive.AccountWeb.Models.ManageViewModels 8 | { 9 | public class ChangePasswordViewModel 10 | { 11 | [Required] 12 | [DataType(DataType.Password)] 13 | [Display(Name = "Current password")] 14 | public string OldPassword { get; set; } 15 | 16 | [Required] 17 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] 18 | [DataType(DataType.Password)] 19 | [Display(Name = "New password")] 20 | public string NewPassword { get; set; } 21 | 22 | [DataType(DataType.Password)] 23 | [Display(Name = "Confirm new password")] 24 | [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] 25 | public string ConfirmPassword { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/ManageViewModels/ConfigureTwoFactorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc.Rendering; 6 | 7 | namespace DotNetLive.AccountWeb.Models.ManageViewModels 8 | { 9 | public class ConfigureTwoFactorViewModel 10 | { 11 | public string SelectedProvider { get; set; } 12 | 13 | public ICollection Providers { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/ManageViewModels/FactorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace DotNetLive.AccountWeb.Models.ManageViewModels 7 | { 8 | public class FactorViewModel 9 | { 10 | public string Purpose { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/ManageViewModels/IndexViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Identity; 6 | 7 | namespace DotNetLive.AccountWeb.Models.ManageViewModels 8 | { 9 | public class IndexViewModel 10 | { 11 | public bool HasPassword { get; set; } 12 | 13 | public IList Logins { get; set; } 14 | 15 | public string PhoneNumber { get; set; } 16 | 17 | public bool TwoFactor { get; set; } 18 | 19 | public bool BrowserRemembered { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/ManageViewModels/ManageLoginsViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Http.Authentication; 6 | using Microsoft.AspNetCore.Identity; 7 | 8 | namespace DotNetLive.AccountWeb.Models.ManageViewModels 9 | { 10 | public class ManageLoginsViewModel 11 | { 12 | public IList CurrentLogins { get; set; } 13 | 14 | public IList OtherLogins { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/ManageViewModels/RemoveLoginViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace DotNetLive.AccountWeb.Models.ManageViewModels 8 | { 9 | public class RemoveLoginViewModel 10 | { 11 | public string LoginProvider { get; set; } 12 | public string ProviderKey { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/ManageViewModels/SetPasswordViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace DotNetLive.AccountWeb.Models.ManageViewModels 8 | { 9 | public class SetPasswordViewModel 10 | { 11 | [Required] 12 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] 13 | [DataType(DataType.Password)] 14 | [Display(Name = "New password")] 15 | public string NewPassword { get; set; } 16 | 17 | [DataType(DataType.Password)] 18 | [Display(Name = "Confirm new password")] 19 | [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] 20 | public string ConfirmPassword { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Models/ManageViewModels/VerifyPhoneNumberViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace DotNetLive.AccountWeb.Models.ManageViewModels 8 | { 9 | public class VerifyPhoneNumberViewModel 10 | { 11 | [Required] 12 | public string Code { get; set; } 13 | 14 | [Required] 15 | [Phone] 16 | [Display(Name = "Phone number")] 17 | public string PhoneNumber { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Hosting; 7 | 8 | namespace DotNetLive.AccountWeb 9 | { 10 | public class Program 11 | { 12 | public static void Main(string[] args) 13 | { 14 | var host = new WebHostBuilder() 15 | .UseKestrel() 16 | .UseContentRoot(Directory.GetCurrentDirectory()) 17 | .UseIISIntegration() 18 | .UseStartup() 19 | .UseApplicationInsights() 20 | .Build(); 21 | 22 | host.Run(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:56276/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "DotNetLive.AccountWeb": { 19 | "commandName": "Project", 20 | "launchBrowser": true, 21 | "environmentVariables": { 22 | "ASPNETCORE_ENVIRONMENT": "Development" 23 | }, 24 | "applicationUrl": "http://localhost:56277" 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Services/IEmailSender.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace DotNetLive.AccountWeb.Services 7 | { 8 | public interface IEmailSender 9 | { 10 | Task SendEmailAsync(string email, string subject, string message); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Services/ISmsSender.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace DotNetLive.AccountWeb.Services 7 | { 8 | public interface ISmsSender 9 | { 10 | Task SendSmsAsync(string number, string message); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Services/MessageServices.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace DotNetLive.AccountWeb.Services 7 | { 8 | // This class is used by the application to send Email and SMS 9 | // when you turn on two-factor authentication in ASP.NET Identity. 10 | // For more details see this link http://go.microsoft.com/fwlink/?LinkID=532713 11 | public class AuthMessageSender : IEmailSender, ISmsSender 12 | { 13 | public Task SendEmailAsync(string email, string subject, string message) 14 | { 15 | // Plug in your email service here to send an email. 16 | return Task.FromResult(0); 17 | } 18 | 19 | public Task SendSmsAsync(string number, string message) 20 | { 21 | // Plug in your SMS service here to send a text message. 22 | return Task.FromResult(0); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Account/AccessDenied.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Access Denied"; 3 | } 4 | 5 |
6 |

Access Denied.

7 |

You do not have access to this resource.

8 |
9 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Account/ConfirmEmail.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Confirm Email"; 3 | } 4 | 5 |

@ViewData["Title"].

6 |
7 |

8 | Thank you for confirming your email. Please Click here to Log in. 9 |

10 |
11 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Account/ExternalLoginFailure.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Login Failure"; 3 | } 4 | 5 |
6 |

@ViewData["Title"].

7 |

Unsuccessful login with service.

8 |
9 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Account/ForgotPassword.cshtml: -------------------------------------------------------------------------------- 1 | @model ForgotPasswordViewModel 2 | @{ 3 | ViewData["Title"] = "Forgot your password?"; 4 | } 5 | 6 |

@ViewData["Title"]

7 |

8 | For more information on how to enable reset password please see this article. 9 |

10 | 11 | @*
12 |

Enter your email.

13 |
14 |
15 |
16 | 17 |
18 | 19 | 20 |
21 |
22 |
23 |
24 | 25 |
26 |
27 |
*@ 28 | 29 | @section Scripts { 30 | @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 31 | } 32 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Account/ForgotPasswordConfirmation.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Forgot Password Confirmation"; 3 | } 4 | 5 |

@ViewData["Title"].

6 |

7 | Please check your email to reset your password. 8 |

9 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Account/Lockout.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Locked out"; 3 | } 4 | 5 |
6 |

Locked out.

7 |

This account has been locked out, please try again later.

8 |
9 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Account/ResetPasswordConfirmation.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Reset password confirmation"; 3 | } 4 | 5 |

@ViewData["Title"].

6 |

7 | Your password has been reset. Please Click here to log in. 8 |

9 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Account/SendCode.cshtml: -------------------------------------------------------------------------------- 1 | @model SendCodeViewModel 2 | @{ 3 | ViewData["Title"] = "Send Verification Code"; 4 | } 5 | 6 |

@ViewData["Title"].

7 | 8 |
9 | 10 |
11 |
12 | Select Two-Factor Authentication Provider: 13 | 14 | 15 |
16 |
17 |
18 | 19 | @section Scripts { 20 | @{await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 21 | } 22 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "About"; 3 | } 4 |

@ViewData["Title"].

5 |

@ViewData["Message"]

6 | 7 |

Use this area to provide additional information.

8 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Home/Contact.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Contact"; 3 | } 4 |

@ViewData["Title"].

5 |

@ViewData["Message"]

6 | 7 |
8 | One Microsoft Way
9 | Redmond, WA 98052-6399
10 | P: 11 | 425.555.0100 12 |
13 | 14 |
15 | Support: Support@example.com
16 | Marketing: Marketing@example.com 17 |
18 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Home Page"; 3 | } 4 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Manage/AddPhoneNumber.cshtml: -------------------------------------------------------------------------------- 1 | @model AddPhoneNumberViewModel 2 | @{ 3 | ViewData["Title"] = "Add Phone Number"; 4 | } 5 | 6 |

@ViewData["Title"].

7 |
8 |

Add a phone number.

9 |
10 |
11 |
12 | 13 |
14 | 15 | 16 |
17 |
18 |
19 |
20 | 21 |
22 |
23 |
24 | 25 | @section Scripts { 26 | @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 27 | } 28 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Manage/VerifyPhoneNumber.cshtml: -------------------------------------------------------------------------------- 1 | @model VerifyPhoneNumberViewModel 2 | @{ 3 | ViewData["Title"] = "Verify Phone Number"; 4 | } 5 | 6 |

@ViewData["Title"].

7 | 8 |
9 | 10 |

Add a phone number.

11 |
@ViewData["Status"]
12 |
13 |
14 |
15 | 16 |
17 | 18 | 19 |
20 |
21 |
22 |
23 | 24 |
25 |
26 |
27 | 28 | @section Scripts { 29 | @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 30 | } 31 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Error"; 3 | } 4 | 5 |

Error.

6 |

An error occurred while processing your request.

7 | 8 |

Development Mode

9 |

10 | Swapping to Development environment will display more detailed information about the error that occurred. 11 |

12 |

13 | Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. 14 |

15 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using DotNetLive.AccountWeb 2 | @using DotNetLive.AccountWeb.Models 3 | @using DotNetLive.AccountWeb.Models.AccountViewModels 4 | @using DotNetLive.AccountWeb.Models.ManageViewModels 5 | @using Microsoft.AspNetCore.Identity 6 | @using DotNetLive.Framework.Models 7 | @using DotNetLive.Framework.Web.Models 8 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 9 | @inherits DotNetLive.Framework.Mvc.WebFramework.Razor.BaseRazorPage 10 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DbSettings": { 3 | "CommandDbConnectionString": "Server=qd1.niusys.com;User Id=dev_user; Password=dotnet.live; Database=blog;", 4 | "QueryDbConnectionString": "Server=qd1.niusys.com;User Id=dev_user; Password=dotnet.live; Database=blog;" 5 | }, 6 | "AppSettings": { 7 | "MainSite": "" 8 | }, 9 | "SecuritySettings": { 10 | "DomainName": "", 11 | "DataProtectionPath": "d:\\dotnetlive\\" 12 | }, 13 | "Logging": { 14 | "IncludeScopes": false, 15 | "LogLevel": { 16 | "Default": "Warning" 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/appsettings.Production.json: -------------------------------------------------------------------------------- 1 | { 2 | "DbSettings": { 3 | "CommandDbConnectionString": "Server=qd1.niusys.com;User Id=dev_user; Password=dotnet.live; Database=blog;", 4 | "QueryDbConnectionString": "Server=qd1.niusys.com;User Id=dev_user; Password=dotnet.live; Database=blog;" 5 | }, 6 | "AppSettings": { 7 | "MainSite": "http://dotnet.live" 8 | }, 9 | "SecuritySettings": { 10 | "DomainName": ".dotnet.live", 11 | "DataProtectionPath": "/data/dotnetlive/dpkeys" 12 | }, 13 | "Logging": { 14 | "IncludeScopes": false, 15 | "LogLevel": { 16 | "Default": "Warning" 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "DbSettings": { 3 | "CommandDbConnectionString": "Server=qd1.niusys.com;User Id=dev_user; Password=dotnet.live; Database=blog;", 4 | "QueryDbConnectionString": "Server=qd1.niusys.com;User Id=dev_user; Password=dotnet.live; Database=blog;" 5 | }, 6 | "AppSettings": { 7 | "MainSite": "" 8 | }, 9 | "SecuritySettings": { 10 | "DomainName": "", 11 | "DataProtectionPath": "d:\\dotnetlive\\" 12 | }, 13 | "ApiHostSettings": { 14 | "AccountApi": "http://api.account.dotnet.live/" 15 | }, 16 | "Logging": { 17 | "IncludeScopes": false, 18 | "LogLevel": { 19 | "Default": "Debug", 20 | "System": "Information", 21 | "Microsoft": "Information" 22 | } 23 | }, 24 | "ConnectionStrings": { 25 | "NLogDb": "Data Source=N275\\MSSQLSERVER2014;Initial Catalog=Nlogs;Integrated Security=True;" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "asp.net", 3 | "private": true, 4 | "dependencies": { 5 | "bootstrap": "3.3.7", 6 | "jquery": "2.2.0", 7 | "jquery-validation": "1.14.0", 8 | "jquery-validation-unobtrusive": "3.2.6" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dotnetlive.accountweb", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "dependencies": { 7 | "npm": "^4.1.2" 8 | }, 9 | "devDependencies": { 10 | "event-stream": "^3.3.4", 11 | "gulp": "^3.9.1", 12 | "gulp-concat": "^2.6.1", 13 | "gulp-cssmin": "^0.1.7", 14 | "gulp-uglify": "^1.5.4", 15 | "rimraf": "^2.5.4" 16 | }, 17 | "scripts": { 18 | "test": "echo \"Error: no test specified\" && exit 1" 19 | }, 20 | "author": "dotnet.live", 21 | "license": "GPL-V3" 22 | } 23 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/runtimeconfig.template.json: -------------------------------------------------------------------------------- 1 | { 2 | "configProperties": { 3 | "System.GC.Server": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/web.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/wwwroot/default/css/site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 20px; 4 | } 5 | 6 | /* Wrapping element */ 7 | /* Set some basic padding to keep content from hitting the edges */ 8 | .body-content { 9 | padding-left: 15px; 10 | padding-right: 15px; 11 | } 12 | 13 | /* Set widths on the form inputs since otherwise they're 100% wide */ 14 | input, 15 | select, 16 | textarea { 17 | max-width: 280px; 18 | } 19 | 20 | /* Carousel */ 21 | .carousel-caption p { 22 | font-size: 20px; 23 | line-height: 1.4; 24 | } 25 | 26 | /* buttons and links extension to use brackets: [ click me ] */ 27 | .btn-bracketed::before { 28 | display: inline-block; 29 | content: "["; 30 | padding-right: 0.5em; 31 | } 32 | 33 | .btn-bracketed::after { 34 | display: inline-block; 35 | content: "]"; 36 | padding-left: 0.5em; 37 | } 38 | 39 | /* Make .svg files in the carousel display properly in older browsers */ 40 | .carousel-inner .item img[src$=".svg"] { 41 | width: 100%; 42 | } 43 | 44 | /* Hide/rearrange for smaller screens */ 45 | @media screen and (max-width: 767px) { 46 | /* Hide captions */ 47 | .carousel-caption { 48 | display: none; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/wwwroot/default/js/site.js: -------------------------------------------------------------------------------- 1 | // Write your Javascript code. 2 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/DotNetLive.AccountWeb/wwwroot/favicon.ico -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/wwwroot/swagger.css: -------------------------------------------------------------------------------- 1 | .swagger-section .swagger-ui-wrap { 2 | max-width: unset; 3 | padding: 0 20px; 4 | } 5 | -------------------------------------------------------------------------------- /src/accountweb/DotNetLive.AccountWeb/wwwroot/usercenter/README.MD: -------------------------------------------------------------------------------- 1 | place user center vue frentend assets -------------------------------------------------------------------------------- /src/accountweb/ng2centric/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp 6 | 7 | ] 8 | } -------------------------------------------------------------------------------- /src/accountweb/ng2centric/e2e/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { Ng2centricPage } from './app.po'; 2 | import { browser } from 'protractor'; 3 | 4 | describe('ng2centric App', function() { 5 | let page: Ng2centricPage; 6 | 7 | browser.ignoreSynchronization = true; 8 | 9 | beforeEach(() => { 10 | page = new Ng2centricPage(); 11 | }); 12 | 13 | it('should perform a basic test', () => { 14 | page.navigateTo(); 15 | let root = page.getRootElement(); 16 | expect(root.count()).toEqual(1); 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/e2e/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, element, by } from 'protractor'; 2 | 3 | export class Ng2centricPage { 4 | navigateTo() { 5 | return browser.get('/'); 6 | } 7 | 8 | getRootElement() { 9 | return element.all(by.css('app-root')); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "declaration": false, 5 | "emitDecoratorMetadata": true, 6 | "experimentalDecorators": true, 7 | "module": "commonjs", 8 | "moduleResolution": "node", 9 | "outDir": "../dist/out-tsc-e2e", 10 | "sourceMap": true, 11 | "target": "es5", 12 | "typeRoots": [ 13 | "../node_modules/@types" 14 | ] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/modernizr-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "classPrefix": "", 3 | "options": [ 4 | "setClasses" 5 | ], 6 | "feature-detects": [ 7 | "css/backgroundposition-shorthand", 8 | "css/backgroundposition-xy", 9 | "css/backgroundrepeat", 10 | "css/backgroundsizecover", 11 | "css/borderradius", 12 | "css/animations", 13 | "css/calc", 14 | "css/transforms", 15 | "css/transforms3d", 16 | "css/transformstylepreserve3d", 17 | "css/transitions", 18 | "css/flexboxtweener", 19 | "css/fontface", 20 | "svg", 21 | "svg/asimg", 22 | "svg/clippaths", 23 | "svg/filters", 24 | "svg/foreignobject", 25 | "svg/inline", 26 | "svg/smil", 27 | "storage/localstorage", 28 | "storage/sessionstorage", 29 | "storage/websqldatabase", 30 | "css/multiplebgs" 31 | ] 32 | } -------------------------------------------------------------------------------- /src/accountweb/ng2centric/protractor.conf.js: -------------------------------------------------------------------------------- 1 | // Protractor configuration file, see link for more information 2 | // https://github.com/angular/protractor/blob/master/docs/referenceConf.js 3 | 4 | /*global jasmine */ 5 | var SpecReporter = require('jasmine-spec-reporter'); 6 | 7 | exports.config = { 8 | allScriptsTimeout: 11000, 9 | specs: [ 10 | './e2e/**/*.e2e-spec.ts' 11 | ], 12 | capabilities: { 13 | 'browserName': 'chrome' 14 | }, 15 | directConnect: true, 16 | baseUrl: 'http://localhost:4200/', 17 | framework: 'jasmine', 18 | jasmineNodeOpts: { 19 | showColors: true, 20 | defaultTimeoutInterval: 30000, 21 | print: function() {} 22 | }, 23 | useAllAngular2AppRoots: true, 24 | beforeLaunch: function() { 25 | require('ts-node').register({ 26 | project: 'e2e' 27 | }); 28 | }, 29 | onPrepare: function() { 30 | jasmine.getEnv().addReporter(new SpecReporter()); 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | 2 | @import 'shared/styles/styles.scss'; 3 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/app.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | 3 | import { TestBed, async } from '@angular/core/testing'; 4 | import { AppComponent } from './app.component'; 5 | import { RouterTestingModule } from '@angular/router/testing'; 6 | 7 | describe('AppComponent', () => { 8 | 9 | beforeEach(() => { 10 | TestBed.configureTestingModule({ 11 | imports: [ 12 | RouterTestingModule 13 | ], 14 | declarations: [ 15 | AppComponent 16 | ] 17 | }).compileComponents(); 18 | }); 19 | 20 | it('should create the app', async(() => { 21 | let fixture = TestBed.createComponent(AppComponent); 22 | let app = fixture.debugElement.componentInstance; 23 | expect(app).toBeTruthy(); 24 | })); 25 | 26 | }); 27 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, ViewEncapsulation } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.scss'], 7 | encapsulation: ViewEncapsulation.None 8 | }) 9 | export class AppComponent { 10 | title = 'app works!'; 11 | } 12 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule, ViewContainerRef } from '@angular/core'; 3 | 4 | import { ComponentsHelper } from 'ng2-bootstrap/ng2-bootstrap' 5 | 6 | import { AppComponent } from './app.component'; 7 | 8 | import { CoreModule } from './core/core.module'; 9 | import { LayoutModule } from './layout/layout.module'; 10 | import { SharedModule } from './shared/shared.module'; 11 | import { RoutesModule } from './routes/routes.module'; 12 | 13 | @NgModule({ 14 | declarations: [ 15 | AppComponent 16 | ], 17 | imports: [ 18 | BrowserModule, 19 | CoreModule, 20 | LayoutModule, 21 | SharedModule, 22 | RoutesModule 23 | ], 24 | providers: [{ provide: ComponentsHelper, useClass: ComponentsHelper }], 25 | bootstrap: [AppComponent] 26 | }) 27 | export class AppModule { 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/core/colors/colors.service.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | 3 | import { TestBed, async, inject } from '@angular/core/testing'; 4 | import { ColorsService } from './colors.service'; 5 | 6 | describe('ColorsService', () => { 7 | beforeEach(() => { 8 | TestBed.configureTestingModule({ 9 | providers: [ColorsService] 10 | }); 11 | }); 12 | 13 | it('should ...', inject([ColorsService], (service: ColorsService) => { 14 | expect(service).toBeTruthy(); 15 | })); 16 | }); 17 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/core/colors/colors.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | var materialColors = require('material-colors'); 4 | 5 | @Injectable() 6 | export class ColorsService { 7 | 8 | APP_COLORS = { 9 | 'gray-darker': '#263238', 10 | 'gray-dark': '#455A64', 11 | 'gray': '#607D8B', 12 | 'gray-light': '#90A4AE', 13 | 'gray-lighter': '#ECEFF1', 14 | 'primary': '#448AFF', 15 | 'success': '#4CAF50', 16 | 'info': '#03A9F4', 17 | 'warning': '#FFB300', 18 | 'danger': '#F44336' 19 | }; 20 | 21 | constructor() { } 22 | 23 | byName(name: string) { 24 | var color = this.APP_COLORS[name]; 25 | if (!color && materialColors) { 26 | var c = name.split('-'); // red-500, blue-a100, deepPurple-500, etc 27 | if (c.length) 28 | color = (materialColors[c[0]] || {})[c[1]]; 29 | } 30 | return (color || '#fff'); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/core/core.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule, Optional, SkipSelf } from '@angular/core'; 2 | 3 | import { SharedModule } from '../shared/shared.module'; 4 | import { MenuService } from './menu/menu.service'; 5 | import { PagetitleService } from './pagetitle/pagetitle.service'; 6 | import { TranslatorService } from './translator/translator.service'; 7 | import { ColorsService } from './colors/colors.service'; 8 | 9 | import { throwIfAlreadyLoaded } from './module-import-guard'; 10 | 11 | @NgModule({ 12 | imports: [ 13 | SharedModule 14 | ], 15 | providers: [ 16 | MenuService, 17 | PagetitleService, 18 | TranslatorService, 19 | ColorsService 20 | ] 21 | }) 22 | export class CoreModule { 23 | constructor( @Optional() @SkipSelf() parentModule: CoreModule) { 24 | throwIfAlreadyLoaded(parentModule, 'CoreModule'); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/core/menu/menu.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | @Injectable() 4 | export class MenuService { 5 | 6 | menuItems: Array; 7 | 8 | constructor() { 9 | this.menuItems = []; 10 | } 11 | 12 | addMenu(items: Array<{ 13 | name: string, 14 | link?: string, 15 | href?: string, 16 | imgpath?: string, 17 | order?: number, 18 | iconclass?: string, 19 | label?: any, 20 | subitems?: Array 21 | }>) { 22 | items.forEach((item) => { 23 | this.menuItems.push(item); 24 | }); 25 | } 26 | 27 | getMenu() { 28 | return this.menuItems; 29 | } 30 | 31 | getMenuSorted() { 32 | return this.menuItems.sort((a, b) => { 33 | return a.order - b.order; 34 | }); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/core/module-import-guard.ts: -------------------------------------------------------------------------------- 1 | // https://angular.io/styleguide#!#04-12 2 | export function throwIfAlreadyLoaded(parentModule: any, moduleName: string) { 3 | if (parentModule) { 4 | throw new Error(`${moduleName} has already been loaded. Import Core modules in the AppModule only.`); 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/core/pagetitle/pagetitle.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | @Injectable() 4 | export class PagetitleService { 5 | 6 | private page = { 7 | title: '' 8 | }; 9 | 10 | constructor() {} 11 | 12 | setTitle(newTitle: string) { 13 | this.page.title = newTitle; 14 | } 15 | 16 | getTitle(): string { 17 | return this.page.title; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/core/preloader/preloader.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
-------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/core/translator/translator.service.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | 3 | import { TestBed, async, inject } from '@angular/core/testing'; 4 | import { TranslatorService } from './translator.service'; 5 | import { SharedModule } from '../../shared/shared.module'; 6 | 7 | describe('Service: Translator', () => { 8 | beforeEach(() => { 9 | TestBed.configureTestingModule({ 10 | imports: [SharedModule], 11 | providers: [TranslatorService] 12 | }); 13 | }); 14 | 15 | it('should ...', inject([TranslatorService], (service: TranslatorService) => { 16 | expect(service).toBeTruthy(); 17 | })); 18 | }); 19 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/index.ts: -------------------------------------------------------------------------------- 1 | export * from './app.component'; 2 | export * from './app.module'; 3 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/layout/header/search/search.component.html: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/layout/header/search/search.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/layout/header/search/search.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/layout/header/search/search.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { SharedModule } from '../../../shared/shared.module'; 7 | import { SearchComponent } from './search.component'; 8 | 9 | describe('SearchComponent', () => { 10 | let component: SearchComponent; 11 | let fixture: ComponentFixture; 12 | 13 | beforeEach(async(() => { 14 | TestBed.configureTestingModule({ 15 | imports: [SharedModule], 16 | declarations: [SearchComponent] 17 | }).compileComponents(); 18 | })); 19 | 20 | beforeEach(() => { 21 | fixture = TestBed.createComponent(SearchComponent); 22 | component = fixture.componentInstance; 23 | fixture.detectChanges(); 24 | }); 25 | 26 | it('should create', () => { 27 | expect(component).toBeTruthy(); 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/layout/header/search/search.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, ViewChild, ElementRef } from '@angular/core'; 2 | import { ModalDirective } from 'ng2-bootstrap'; 3 | 4 | @Component({ 5 | selector: 'header-search', 6 | templateUrl: './search.component.html', 7 | styleUrls: ['./search.component.scss'] 8 | }) 9 | export class SearchComponent implements OnInit { 10 | 11 | @ViewChild('searchModal') public searchModal:ModalDirective; 12 | 13 | constructor(private element: ElementRef) { } 14 | 15 | ngOnInit() { } 16 | 17 | onModalShown() { 18 | let input = this.element.nativeElement.querySelector('.header-input-search') 19 | if(input) input.focus(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/layout/layout-variants.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Layout Variants 3 | */ 4 | 5 | @import '../shared/styles/common/variables'; 6 | @import '../shared/styles/common/mixins'; 7 | 8 | .sidebar-offcanvas { 9 | .sidebar-container { 10 | top: $header-hg; 11 | @include translate3d(-100%, 0, 0); 12 | .sidebar-header { 13 | @include box-shadow(0 0 0 #000); 14 | } 15 | } 16 | .header-container { 17 | z-index: 30; 18 | } 19 | .main-container, 20 | .header-container{ 21 | margin-left: 0; 22 | } 23 | 24 | &.offcanvas-visible { 25 | .sidebar-container { 26 | @include translate3d(0, 0, 0); 27 | } 28 | } 29 | } 30 | // old browsers 31 | .no-csstransforms3d .sidebar-offcanvas { 32 | .sidebar-offcanvas { 33 | .sidebar-container { 34 | margin-left: -$sidebar-wd; 35 | } 36 | &.offcanvas-visible { 37 | .sidebar-container { 38 | margin-left: 0; 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/layout/layout.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 |
11 | 12 |
13 | 14 |
2017 - Centric app.
15 |
16 |
17 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/layout/layout.component.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Main Layout 3 | */ 4 | 5 | @import '../shared/styles/common/variables'; 6 | @import '../shared/styles/common/mixins'; 7 | 8 | // Layout 9 | // ----------------------------------- 10 | 11 | .layout-container { 12 | display: block; 13 | position: relative; 14 | width: 100%; 15 | height: 100%; 16 | } 17 | 18 | // Main Content 19 | // ----------------------------------- 20 | 21 | .main-container { 22 | position: relative; 23 | height: calc(100% - #{$header-hg}); 24 | // background-color: $main-content-bg; 25 | overflow: auto; 26 | -webkit-overflow-scrolling: touch; 27 | @media #{$min-desktop} { 28 | margin-left: $sidebar-wd; 29 | } 30 | 31 | > section { 32 | min-height: calc(100% - #{$footer-hg}); 33 | } 34 | 35 | } 36 | 37 | .content-heading { 38 | padding: 16px; 39 | box-shadow: 0 1px 0 rgba(20, 20, 20, 0.075); 40 | } 41 | 42 | // Footer 43 | 44 | footer { 45 | 46 | left: 0; 47 | right: 0; 48 | bottom: 0; 49 | height: $footer-hg; 50 | border-top: 1px solid rgba(160,160,160, .12); 51 | padding: 20px; 52 | z-index: 109; 53 | } 54 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/layout/layout.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { LayoutComponent } from './layout.component'; 7 | import { SettingsService } from '../shared/settings/settings.service'; 8 | 9 | describe('LayoutComponent', () => { 10 | it('should create', () => { 11 | let component = new LayoutComponent(new SettingsService()); 12 | expect(component).toBeTruthy(); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/layout/layout.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, ViewEncapsulation } from '@angular/core'; 2 | 3 | import { SettingsService } from '../shared/settings/settings.service'; 4 | 5 | @Component({ 6 | selector: 'app-layout', 7 | templateUrl: './layout.component.html', 8 | styleUrls: ['./layout.component.scss', './layout-variants.scss'], 9 | encapsulation: ViewEncapsulation.None 10 | }) 11 | export class LayoutComponent implements OnInit { 12 | 13 | constructor(private settings: SettingsService) { } 14 | 15 | ngOnInit() { } 16 | 17 | layout() { 18 | return [ 19 | 20 | this.settings.app.sidebar.visible ? 'sidebar-visible' : '', 21 | this.settings.app.sidebar.offcanvas ? 'sidebar-offcanvas' : '', 22 | this.settings.app.sidebar.offcanvasVisible ? 'offcanvas-visible' : '' 23 | 24 | ].join(' '); 25 | } 26 | 27 | closeSidebar() { 28 | this.settings.app.sidebar.visible = false; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/layout/layout.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule } from '@angular/router'; 3 | 4 | import { SharedModule } from '../shared/shared.module'; 5 | import { LayoutComponent } from './layout.component'; 6 | import { HeaderComponent } from './header/header.component'; 7 | import { SidebarComponent } from './sidebar/sidebar.component'; 8 | import { SearchComponent } from './header/search/search.component'; 9 | 10 | @NgModule({ 11 | imports: [ 12 | RouterModule, 13 | SharedModule 14 | ], 15 | declarations: [ 16 | LayoutComponent, 17 | SidebarComponent, 18 | HeaderComponent, 19 | SearchComponent 20 | ], 21 | exports: [ 22 | LayoutComponent, 23 | SidebarComponent, 24 | HeaderComponent, 25 | SearchComponent 26 | ] 27 | }) 28 | export class LayoutModule { } 29 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/cards/cards.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/cards/cards.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/cards/cards.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-cards', 7 | templateUrl: './cards.component.html', 8 | styleUrls: ['./cards.component.scss'] 9 | }) 10 | export class CardsComponent implements OnInit { 11 | 12 | counter = 25; 13 | toggle = false; 14 | 15 | constructor(pt: PagetitleService) { 16 | pt.setTitle('Cards'); 17 | } 18 | 19 | ngOnInit() { 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/cards/index.ts: -------------------------------------------------------------------------------- 1 | export * from './cards.component'; 2 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/charts/index.ts: -------------------------------------------------------------------------------- 1 | export * from './radial/radial.component'; 2 | export * from './flot/flot.component'; 3 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/charts/radial/radial.component.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Easy Pie Chart 3 | */ 4 | 5 | @import '../../../shared/styles/common/variables'; 6 | @import '../../../shared/styles/common/mixins'; 7 | 8 | // Makes possible to show the percetage 9 | // centered in the middle of the pie 10 | 11 | .easypie-chart { 12 | display: inline-block; 13 | position: relative; 14 | padding: 0 6px; 15 | 16 | span, 17 | .percentage { 18 | display: block; 19 | position: absolute; 20 | left: 50%; 21 | top: 50%; 22 | width: 100%; 23 | margin-left: -50%; 24 | height: 30px; 25 | margin-top: -15px; 26 | line-height: 25px; 27 | text-align: center; 28 | } 29 | span { 30 | font-size: 20px; 31 | } 32 | 33 | canvas { 34 | max-width: 100%; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/dashboard/dashboard.component.scss: -------------------------------------------------------------------------------- 1 | 2 | @import '../charts/flot/flot.component.scss'; 3 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/dashboard/index.ts: -------------------------------------------------------------------------------- 1 | export * from './dashboard.component'; 2 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/bootstrapui/bootstrapui.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/bootstrapui/bootstrapui.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/buttons/buttons.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/buttons/buttons.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/buttons/buttons.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-buttons', 5 | templateUrl: './buttons.component.html', 6 | styleUrls: ['./buttons.component.scss'] 7 | }) 8 | export class ButtonsComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/colors/colors.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/colors/colors.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/colors/colors.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-colors', 5 | templateUrl: './colors.component.html', 6 | styleUrls: ['./colors.component.scss'] 7 | }) 8 | export class ColorsComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/grid/grid.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/grid/grid.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/grid/grid.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-grid', 5 | templateUrl: './grid.component.html', 6 | styleUrls: ['./grid.component.scss'] 7 | }) 8 | export class GridComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/icons/icons.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/icons/icons.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/icons/icons.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-icons', 5 | templateUrl: './icons.component.html', 6 | styleUrls: ['./icons.component.scss'] 7 | }) 8 | export class IconsComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/index.ts: -------------------------------------------------------------------------------- 1 | export * from './bootstrapui/bootstrapui.component'; 2 | export * from './buttons/buttons.component'; 3 | export * from './colors/colors.component'; 4 | export * from './grid/grid.component'; 5 | export * from './icons/icons.component'; 6 | export * from './lists/lists.component'; 7 | export * from './navtree/navtree.component'; 8 | export * from './nestable/nestable.component'; 9 | export * from './spinners/spinners.component'; 10 | export * from './sweetalert/sweetalert.component'; 11 | export * from './typography/typography.component'; 12 | export * from './utilities/utilities.component'; 13 | export * from './whiteframes/whiteframes.component'; 14 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/lists/lists.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/lists/lists.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/lists/lists.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-lists', 5 | templateUrl: './lists.component.html', 6 | styleUrls: ['./lists.component.scss'] 7 | }) 8 | export class ListsComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/navtree/navtree.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/navtree/navtree.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/nestable/nestable.component.html: -------------------------------------------------------------------------------- 1 |

2 | nestable works! 3 |

4 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/nestable/nestable.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/nestable/nestable.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/nestable/nestable.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-nestable', 5 | templateUrl: './nestable.component.html', 6 | styleUrls: ['./nestable.component.scss'] 7 | }) 8 | export class NestableComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/spinners/spinners.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/spinners/spinners.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/spinners/spinners.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | declare var $: any; 3 | 4 | @Component({ 5 | selector: 'app-spinners', 6 | templateUrl: './spinners.component.html', 7 | styleUrls: ['./spinners.component.scss'] 8 | }) 9 | export class SpinnersComponent implements OnInit { 10 | 11 | constructor() { } 12 | 13 | ngOnInit() { 14 | $('.loader-inner').loaders(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/sweetalert/sweetalert.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/sweetalert/sweetalert.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/typography/typography.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/typography/typography.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/typography/typography.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-typography', 5 | templateUrl: './typography.component.html', 6 | styleUrls: ['./typography.component.scss'] 7 | }) 8 | export class TypographyComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/utilities/utilities.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/utilities/utilities.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/utilities/utilities.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-utilities', 5 | templateUrl: './utilities.component.html', 6 | styleUrls: ['./utilities.component.scss'] 7 | }) 8 | export class UtilitiesComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/whiteframes/whiteframes.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/elements/whiteframes/whiteframes.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/elements/whiteframes/whiteframes.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-whiteframes', 5 | templateUrl: './whiteframes.component.html', 6 | styleUrls: ['./whiteframes.component.scss'] 7 | }) 8 | export class WhiteframesComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/forms/advanced/advanced.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/forms/advanced/advanced.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/forms/classic/classic.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/forms/classic/classic.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/forms/classic/classic.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-classic', 7 | templateUrl: './classic.component.html', 8 | styleUrls: ['./classic.component.scss'] 9 | }) 10 | export class ClassicComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Classic Inputs'); 14 | } 15 | 16 | 17 | ngOnInit() { 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/forms/editors/editors.component.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Form Editors 3 | */ 4 | 5 | @import '../../../shared/styles/common/variables'; 6 | @import '../../../shared/styles/common/mixins'; 7 | 8 | .note-editor { 9 | .note-editing-area .note-editable { 10 | color: inherit !important; 11 | } 12 | .note-statusbar { 13 | background-color: rgba($gray-base,.26) !important; 14 | } 15 | &.note-frame { 16 | border-color: rgba(162, 162, 162, 0.26) !important; 17 | } 18 | 19 | .dropdown-menu { 20 | max-height: 280px; 21 | overflow: auto; 22 | } 23 | } 24 | 25 | .summernote-air { 26 | + .note-editor .note-editing-area .note-editable { 27 | background-color: transparent !important; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/forms/index.ts: -------------------------------------------------------------------------------- 1 | export * from './classic/classic.component'; 2 | export * from './validation/validation.component'; 3 | export * from './advanced/advanced.component'; 4 | export * from './material/material.component'; 5 | export * from './editors/editors.component'; 6 | export * from './upload/upload.component'; 7 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/forms/material/material.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/forms/material/material.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/forms/material/material.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-material', 7 | templateUrl: './material.component.html', 8 | styleUrls: ['./material.component.scss'] 9 | }) 10 | export class MaterialComponent implements OnInit { 11 | 12 | user = {}; 13 | switch1 = true; 14 | switch2 = true; 15 | switch3 = true; 16 | switch01 = true; 17 | switch02 = true; 18 | switch03 = true; 19 | switch04 = true; 20 | switch05 = true; 21 | switch06 = true; 22 | switchw01 = true; 23 | switchw02 = true; 24 | switchw03 = true; 25 | switchw04 = true; 26 | switchw05 = true; 27 | switchw06 = true; 28 | 29 | constructor(pt: PagetitleService) { 30 | pt.setTitle('Material Inputs'); 31 | } 32 | 33 | ngOnInit() { } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/forms/upload/upload.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/forms/upload/upload.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/forms/upload/upload.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { FileUploader } from 'ng2-file-upload'; 3 | 4 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 5 | 6 | const URL = 'https://evening-anchorage-3159.herokuapp.com/api/'; 7 | 8 | @Component({ 9 | selector: 'app-upload', 10 | templateUrl: './upload.component.html', 11 | styleUrls: ['./upload.component.scss'] 12 | }) 13 | export class UploadComponent implements OnInit { 14 | 15 | public uploader: FileUploader = new FileUploader({ url: URL }); 16 | public hasBaseDropZoneOver: boolean = false; 17 | public hasAnotherDropZoneOver: boolean = false; 18 | 19 | public fileOverBase(e: any): void { 20 | this.hasBaseDropZoneOver = e; 21 | } 22 | 23 | public fileOverAnother(e: any): void { 24 | this.hasAnotherDropZoneOver = e; 25 | } 26 | 27 | constructor(pt: PagetitleService) { 28 | pt.setTitle('Upload'); 29 | } 30 | 31 | ngOnInit() { 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/forms/validation/validation.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/forms/validation/validation.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/boxed/boxed.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/layouts/boxed/boxed.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/boxed/boxed.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-boxed', 7 | templateUrl: './boxed.component.html', 8 | styleUrls: ['./boxed.component.scss'] 9 | }) 10 | export class BoxedComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Boxed'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/columns/columns.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/layouts/columns/columns.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/columns/columns.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-columns', 7 | templateUrl: './columns.component.html', 8 | styleUrls: ['./columns.component.scss'] 9 | }) 10 | export class ColumnsComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Columns'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/containers/containers.component.html: -------------------------------------------------------------------------------- 1 |
2 |

Fluid container

3 |

.container-fluid

4 |
5 |

Large container

6 |

.container.container-lg

7 |
8 |

Medium container

9 |

.container.container-md

10 |
11 |

Small container

12 |

.container.container-sm

13 |
14 |
15 |
16 |
17 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/containers/containers.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/layouts/containers/containers.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/containers/containers.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-containers', 7 | templateUrl: './containers.component.html', 8 | styleUrls: ['./containers.component.scss'] 9 | }) 10 | export class ContainersComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Containers'); 14 | } 15 | ngOnInit() { 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/index.ts: -------------------------------------------------------------------------------- 1 | export * from './columns/columns.component'; 2 | export * from './overlap/overlap.component'; 3 | export * from './boxed/boxed.component'; 4 | export * from './tabs/tabs.component'; 5 | export * from './tabs/tabhome/tabhome.component'; 6 | export * from './tabs/tabprofile/tabprofile.component'; 7 | export * from './tabs/tabmessage/tabmessage.component'; 8 | export * from './containers/containers.component'; 9 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/overlap/overlap.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/layouts/overlap/overlap.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/overlap/overlap.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-overlap', 7 | templateUrl: './overlap.component.html', 8 | styleUrls: ['./overlap.component.scss'] 9 | }) 10 | export class OverlapComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Overlap'); 14 | } 15 | ngOnInit() { 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabhome/tabhome.component.html: -------------------------------------------------------------------------------- 1 |

Tab Home

-------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabhome/tabhome.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabhome/tabhome.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabhome/tabhome.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-tabhome', 5 | templateUrl: './tabhome.component.html', 6 | styleUrls: ['./tabhome.component.scss'] 7 | }) 8 | export class TabhomeComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabmessage/tabmessage.component.html: -------------------------------------------------------------------------------- 1 |

Tab Message

-------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabmessage/tabmessage.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabmessage/tabmessage.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabmessage/tabmessage.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-tabmessage', 5 | templateUrl: './tabmessage.component.html', 6 | styleUrls: ['./tabmessage.component.scss'] 7 | }) 8 | export class TabmessageComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabprofile/tabprofile.component.html: -------------------------------------------------------------------------------- 1 |

Tab Profile

-------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabprofile/tabprofile.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabprofile/tabprofile.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabprofile/tabprofile.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-tabprofile', 5 | templateUrl: './tabprofile.component.html', 6 | styleUrls: ['./tabprofile.component.scss'] 7 | }) 8 | export class TabprofileComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabs.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 |
6 |
7 | 8 |
9 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabs.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabs.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/layouts/tabs/tabs.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Injector } from '@angular/core'; 2 | import { Router } from '@angular/router'; 3 | import { ActivatedRoute } from '@angular/router'; 4 | 5 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 6 | 7 | @Component({ 8 | selector: 'app-tabs', 9 | templateUrl: './tabs.component.html', 10 | styleUrls: ['./tabs.component.scss'] 11 | }) 12 | export class TabsComponent implements OnInit { 13 | router: Router; 14 | tabs = [ 15 | { heading: 'Home', route: 'layouts/tabs/home' }, 16 | { heading: 'Profile', route: 'layouts/tabs/profile' }, 17 | { heading: 'Messages', route: 'layouts/tabs/message' }, 18 | ]; 19 | 20 | constructor(pt: PagetitleService, private route: ActivatedRoute, private injector: Injector) { 21 | pt.setTitle('Tabs'); 22 | } 23 | 24 | ngOnInit() { 25 | this.router = this.injector.get(Router); 26 | } 27 | 28 | isActive(_route: string) { 29 | return this.router.isActive(_route, true); 30 | } 31 | 32 | go(_route) { 33 | this.router.navigate([_route]); 34 | }; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/maps/google/google.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
Basic Map
4 |
5 | 6 | 7 | 8 |
9 |
10 |
11 |
Multiple markers
12 |
13 | 14 | 15 | 16 | 17 |
18 |
19 |
20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/maps/google/google.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/maps/google/google.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/maps/google/google.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-google', 7 | templateUrl: './google.component.html', 8 | styleUrls: ['./google.component.scss'] 9 | }) 10 | export class GoogleComponent implements OnInit { 11 | 12 | lat: number = 33.790807; 13 | lng: number = -117.835734; 14 | zoom: number = 14; 15 | scrollwheel = false; 16 | 17 | constructor(pt: PagetitleService) { 18 | pt.setTitle('Google Maps'); 19 | } 20 | 21 | ngOnInit() { 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/maps/googlefull/googlefull.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 14 |
15 | 16 | 17 | 18 |
19 |
20 |
21 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/maps/googlefull/googlefull.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/maps/googlefull/googlefull.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/maps/index.ts: -------------------------------------------------------------------------------- 1 | export * from './googlefull/googlefull.component'; 2 | export * from './google/google.component'; 3 | export * from './vector/vector.component'; 4 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/maps/vector/vector.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
Show last year events 5 | 8 |
9 |
World Events
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
Usa Makers
18 |
19 |
20 |
21 |
22 |
23 |
24 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/article/article.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/article/article.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/article/article.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-article', 7 | templateUrl: './article.component.html', 8 | styleUrls: ['./article.component.scss'] 9 | }) 10 | export class ArticleComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Articles'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/blog/blog.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/blog/blog.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/blog/blog.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-blog', 7 | templateUrl: './blog.component.html', 8 | styleUrls: ['./blog.component.scss'] 9 | }) 10 | export class BlogComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Blog'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/contacts/contacts.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/contacts/contacts.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/contacts/contacts.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-contacts', 7 | templateUrl: './contacts.component.html', 8 | styleUrls: ['./contacts.component.scss'] 9 | }) 10 | export class ContactsComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Contacts'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/faq/faq.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/faq/faq.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/faq/faq.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-faq', 7 | templateUrl: './faq.component.html', 8 | styleUrls: ['./faq.component.scss'] 9 | }) 10 | export class FaqComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('FAQ'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/gallery/gallery.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/gallery/gallery.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/gallery/gallery.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-gallery', 7 | templateUrl: './gallery.component.html', 8 | styleUrls: ['./gallery.component.scss'] 9 | }) 10 | export class GalleryComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Gallery'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/index.ts: -------------------------------------------------------------------------------- 1 | export * from './timeline/timeline.component'; 2 | export * from './invoice/invoice.component'; 3 | export * from './pricing/pricing.component'; 4 | export * from './contacts/contacts.component'; 5 | export * from './faq/faq.component'; 6 | export * from './projects/projects.component'; 7 | export * from './blog/blog.component'; 8 | export * from './article/article.component'; 9 | export * from './profile/profile.component'; 10 | export * from './gallery/gallery.component'; 11 | export * from './wall/wall.component'; 12 | export * from './search/search.component'; 13 | export * from './messages/messages.component'; 14 | export * from './messages/messagenew/messagenew.component'; 15 | export * from './messages/messageview/messageview.component'; 16 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/invoice/invoice.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/invoice/invoice.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/invoice/invoice.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-invoice', 7 | templateUrl: './invoice.component.html', 8 | styleUrls: ['./invoice.component.scss'] 9 | }) 10 | export class InvoiceComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Invoice'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/messages/messagenew/messagenew.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/messages/messagenew/messagenew.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/messages/messagenew/messagenew.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, ViewChild } from '@angular/core'; 2 | import { ModalDirective } from 'ng2-bootstrap'; 3 | 4 | @Component({ 5 | selector: 'app-messagenew', 6 | templateUrl: './messagenew.component.html', 7 | styleUrls: ['./messagenew.component.scss'] 8 | }) 9 | export class MessagenewComponent implements OnInit { 10 | 11 | @ViewChild('msgNewModal') public msgNewModal: ModalDirective; 12 | 13 | constructor() { } 14 | 15 | ngOnInit() { 16 | } 17 | 18 | showBackdrop() { 19 | let el = document.createElement('div'); 20 | el.className = 'modal-backdrop fade in'; 21 | document.body.appendChild(el); 22 | } 23 | hideBackdrop() { 24 | document.body.removeChild(document.querySelector('.modal-backdrop')); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/messages/messages.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/messages/messages.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/messages/messages.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-messages', 7 | templateUrl: './messages.component.html', 8 | styleUrls: ['./messages.component.scss'] 9 | }) 10 | export class MessagesComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Messages'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/messages/messageview/messageview.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/messages/messageview/messageview.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/messages/messageview/messageview.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, ViewChild } from '@angular/core'; 2 | import { ModalDirective } from 'ng2-bootstrap'; 3 | 4 | @Component({ 5 | selector: 'app-messageview', 6 | templateUrl: './messageview.component.html', 7 | styleUrls: ['./messageview.component.scss'] 8 | }) 9 | export class MessageviewComponent implements OnInit { 10 | 11 | @ViewChild('msgViewModal') public msgViewModal: ModalDirective; 12 | 13 | constructor() { } 14 | 15 | ngOnInit() { 16 | } 17 | 18 | showBackdrop() { 19 | let el = document.createElement('div'); 20 | el.className = 'modal-backdrop fade in'; 21 | document.body.appendChild(el); 22 | } 23 | hideBackdrop() { 24 | document.body.removeChild(document.querySelector('.modal-backdrop')); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/pricing/pricing.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/pricing/pricing.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/pricing/pricing.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-pricing', 7 | templateUrl: './pricing.component.html', 8 | styleUrls: ['./pricing.component.scss'] 9 | }) 10 | export class PricingComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Pricing'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/profile/profile.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/profile/profile.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/projects/projects.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/projects/projects.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/projects/projects.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-projects', 7 | templateUrl: './projects.component.html', 8 | styleUrls: ['./projects.component.scss'] 9 | }) 10 | export class ProjectsComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Projects'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/search/search.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/search/search.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/search/search.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-search', 7 | templateUrl: './search.component.html', 8 | styleUrls: ['./search.component.scss'] 9 | }) 10 | export class SearchComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Search'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/timeline/timeline.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, ViewEncapsulation } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-timeline', 7 | templateUrl: './timeline.component.html', 8 | styleUrls: ['./timeline.component.scss'], 9 | encapsulation: ViewEncapsulation.None 10 | }) 11 | export class TimelineComponent implements OnInit { 12 | 13 | timelineModeAlt = false; 14 | 15 | constructor(pt: PagetitleService) { 16 | pt.setTitle('Timeline'); 17 | } 18 | 19 | ngOnInit() { 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/wall/wall.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/pages/wall/wall.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/pages/wall/wall.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-wall', 7 | templateUrl: './wall.component.html', 8 | styleUrls: ['./wall.component.scss'] 9 | }) 10 | export class WallComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Wall'); 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/tables/classic/classic.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/tables/classic/classic.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/tables/classic/classic.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | import { PagetitleService } from '../../../core/pagetitle/pagetitle.service'; 4 | 5 | @Component({ 6 | selector: 'app-classic', 7 | templateUrl: './classic.component.html', 8 | styleUrls: ['./classic.component.scss'] 9 | }) 10 | export class ClassicComponent implements OnInit { 11 | 12 | constructor(pt: PagetitleService) { 13 | pt.setTitle('Tables Classic'); 14 | } 15 | ngOnInit() { 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/tables/datatables/datatables.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/tables/datatables/datatables.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/tables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './classic/classic.component'; 2 | export * from './datatables/datatables.component'; 3 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/user/index.ts: -------------------------------------------------------------------------------- 1 | export * from './login/login.component'; 2 | export * from './signup/signup.component'; 3 | export * from './lock/lock.component'; 4 | export * from './recover/recover.component'; 5 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/user/lock/lock.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/user/lock/lock.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/user/lock/lock.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Injector } from '@angular/core'; 2 | import { FormGroup, FormBuilder, Validators } from '@angular/forms'; 3 | import { CustomValidators } from 'ng2-validation'; 4 | import { Router } from '@angular/router'; 5 | 6 | @Component({ 7 | selector: 'app-lock', 8 | templateUrl: './lock.component.html', 9 | styleUrls: ['./lock.component.scss'] 10 | }) 11 | export class LockComponent implements OnInit { 12 | 13 | router: Router; 14 | lockForm: FormGroup; 15 | 16 | constructor(fb: FormBuilder, private inj: Injector) { 17 | 18 | this.lockForm = fb.group({ 19 | 'password': [null, Validators.required] 20 | }); 21 | } 22 | 23 | submitForm($ev, form: FormGroup) { 24 | $ev.preventDefault(); 25 | let value = form.value; 26 | for (let c in form.controls) { 27 | form.controls[c].markAsTouched(); 28 | } 29 | if (form.valid) { 30 | this.router.navigate(['/dashboard']); 31 | } 32 | // console.log(value); 33 | } 34 | 35 | ngOnInit() { 36 | this.router = this.inj.get(Router); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/user/login/login.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/user/login/login.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/user/login/login.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { FormGroup, FormBuilder, Validators } from '@angular/forms'; 3 | import { CustomValidators } from 'ng2-validation'; 4 | 5 | @Component({ 6 | selector: 'app-login', 7 | templateUrl: './login.component.html', 8 | styleUrls: ['./login.component.scss'] 9 | }) 10 | export class LoginComponent implements OnInit { 11 | 12 | loginForm: FormGroup; 13 | 14 | constructor(fb: FormBuilder) { 15 | 16 | this.loginForm = fb.group({ 17 | 'email': [null, Validators.compose([Validators.required, CustomValidators.email])], 18 | 'password': [null, Validators.required] 19 | }); 20 | } 21 | 22 | submitForm($ev, form: FormGroup) { 23 | $ev.preventDefault(); 24 | let value = form.value; 25 | for (let c in form.controls) { 26 | form.controls[c].markAsTouched(); 27 | } 28 | if (form.valid) { 29 | console.log('Valid!'); 30 | } 31 | console.log(value); 32 | } 33 | 34 | ngOnInit() { 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/user/recover/recover.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/user/recover/recover.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/user/recover/recover.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { FormGroup, FormBuilder, Validators } from '@angular/forms'; 3 | import { CustomValidators } from 'ng2-validation'; 4 | 5 | @Component({ 6 | selector: 'app-recover', 7 | templateUrl: './recover.component.html', 8 | styleUrls: ['./recover.component.scss'] 9 | }) 10 | export class RecoverComponent implements OnInit { 11 | 12 | mailSent = false; 13 | recForm: FormGroup; 14 | 15 | constructor(fb: FormBuilder) { 16 | 17 | this.recForm = fb.group({ 18 | 'email': [null, Validators.compose([Validators.required, CustomValidators.email])] 19 | }); 20 | } 21 | 22 | submitForm($ev, form: FormGroup) { 23 | $ev.preventDefault(); 24 | let value = form.value; 25 | for (let c in form.controls) { 26 | form.controls[c].markAsTouched(); 27 | } 28 | if (form.valid) { 29 | this.mailSent = true; 30 | } 31 | // console.log(value); 32 | } 33 | 34 | ngOnInit() { 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/routes/user/signup/signup.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/app/routes/user/signup/signup.component.scss -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/directives/index.ts: -------------------------------------------------------------------------------- 1 | import { EasypiechartDirective } from './easypiechart/easypiechart.directive'; 2 | import { FlotDirective } from './flot/flot.directive'; 3 | import { SparklineDirective } from './sparkline/sparkline.directive'; 4 | import { SvgreplaceDirective } from './svgreplace/svgreplace.directive'; 5 | import { VectormapDirective } from './vectormap/vectormap.directive'; 6 | import { KnobDirective } from './knob/knob.directive'; 7 | import { RippleDirective } from './ripple/ripple.directive'; 8 | 9 | export default [ 10 | EasypiechartDirective, 11 | FlotDirective, 12 | SparklineDirective, 13 | SvgreplaceDirective, 14 | VectormapDirective, 15 | KnobDirective, 16 | RippleDirective 17 | ]; 18 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/directives/knob/knob.directive.ts: -------------------------------------------------------------------------------- 1 | import { OnInit, OnDestroy, OnChanges, Directive, Input, SimpleChange, ElementRef } from '@angular/core'; 2 | declare var $: any; 3 | 4 | @Directive({ 5 | selector: '[knob]' 6 | }) 7 | export class KnobDirective implements OnInit { 8 | 9 | @Input() data; 10 | @Input() options; 11 | chart = null; 12 | 13 | constructor(private element: ElementRef) { } 14 | 15 | ngOnInit() { 16 | this.chart = $(this.element.nativeElement); 17 | this.chart.val(this.data).knob(this.options); 18 | } 19 | 20 | ngOnChanges(changes: { [propertyName: string]: SimpleChange }) { 21 | if (this.chart && changes['data']) { 22 | this.chart.val(this.data).trigger('change'); 23 | } 24 | if (this.chart && changes['options']) { 25 | this.chart.trigger('configure', this.options); 26 | } 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/directives/ripple/ripple.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, ElementRef, OnDestroy } from '@angular/core'; 2 | 3 | import { RippleEffect } from './ripple'; 4 | 5 | @Directive({ 6 | selector: '.ripple' 7 | }) 8 | export class RippleDirective implements OnDestroy { 9 | 10 | handler: RippleEffect; 11 | 12 | constructor(element: ElementRef) { 13 | this.handler = new RippleEffect(element.nativeElement); 14 | } 15 | 16 | ngOnDestroy() { 17 | this.handler.destroy(); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/directives/svgreplace/svgreplace.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, OnInit, ElementRef } from '@angular/core'; 2 | import { Http, Response } from '@angular/http'; 3 | import 'rxjs/add/operator/map'; 4 | 5 | @Directive({ 6 | selector: '[svgreplace]' 7 | }) 8 | export class SvgreplaceDirective implements OnInit { 9 | 10 | constructor(private element: ElementRef, private http: Http) { } 11 | 12 | ngOnInit() { 13 | setTimeout(() => { 14 | 15 | let src = this.element.nativeElement.src; 16 | 17 | if (!src || src.indexOf('.svg') < 0) { 18 | throw "only support for SVG images"; // return /*only support for SVG images*/; 19 | } 20 | 21 | this.http.get(src) 22 | .map(data => data.text()) 23 | .subscribe(data => { 24 | this.element.nativeElement.outerHTML = data; 25 | }); 26 | 27 | }); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_alerts.scss: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | @mixin alert-variant($background, $border, $text-color) { 4 | background-color: $background; 5 | border-color: $border; 6 | color: $text-color; 7 | 8 | hr { 9 | border-top-color: darken($border, 5%); 10 | } 11 | .alert-link { 12 | color: darken($text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_background-variant.scss: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | // [converter] $parent hack 4 | @mixin bg-variant($parent, $color) { 5 | #{$parent} { 6 | background-color: $color; 7 | } 8 | a#{$parent}:hover, 9 | a#{$parent}:focus { 10 | background-color: darken($color, 10%); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_border-radius.scss: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | @mixin border-top-radius($radius) { 4 | border-top-right-radius: $radius; 5 | border-top-left-radius: $radius; 6 | } 7 | @mixin border-right-radius($radius) { 8 | border-bottom-right-radius: $radius; 9 | border-top-right-radius: $radius; 10 | } 11 | @mixin border-bottom-radius($radius) { 12 | border-bottom-right-radius: $radius; 13 | border-bottom-left-radius: $radius; 14 | } 15 | @mixin border-left-radius($radius) { 16 | border-bottom-left-radius: $radius; 17 | border-top-left-radius: $radius; 18 | } 19 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_center-block.scss: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | @mixin center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_clearfix.scss: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | @mixin clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_hide-text.scss: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | // 3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for 4 | // mixins being reused as classes with the same name, this doesn't hold up. As 5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 6 | // 7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 8 | 9 | // Deprecated as of v3.0.1 (has been removed in v4) 10 | @mixin hide-text() { 11 | font: 0/0 a; 12 | color: transparent; 13 | text-shadow: none; 14 | background-color: transparent; 15 | border: 0; 16 | } 17 | 18 | // New mixin to use as of v3.0.1 19 | @mixin text-hide() { 20 | @include hide-text; 21 | } 22 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_labels.scss: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | @mixin label-variant($color) { 4 | background-color: $color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken($color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_list-group.scss: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | @mixin list-group-item-variant($state, $background, $color) { 4 | .list-group-item-#{$state} { 5 | color: $color; 6 | background-color: $background; 7 | 8 | // [converter] extracted a&, button& to a.list-group-item-#{$state}, button.list-group-item-#{$state} 9 | } 10 | 11 | a.list-group-item-#{$state}, 12 | button.list-group-item-#{$state} { 13 | color: $color; 14 | 15 | .list-group-item-heading { 16 | color: inherit; 17 | } 18 | 19 | &:hover, 20 | &:focus { 21 | color: $color; 22 | background-color: darken($background, 5%); 23 | } 24 | &.active, 25 | &.active:hover, 26 | &.active:focus { 27 | color: #fff; 28 | background-color: $color; 29 | border-color: $color; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_nav-divider.scss: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | @mixin nav-divider($color: #e5e5e5) { 6 | height: 1px; 7 | margin: (($line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: $color; 10 | } 11 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_nav-vertical-align.scss: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | @mixin navbar-vertical-align($element-height) { 7 | margin-top: (($navbar-height - $element-height) / 2); 8 | margin-bottom: (($navbar-height - $element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_opacity.scss: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | @mixin opacity($opacity) { 4 | opacity: $opacity; 5 | // IE8 filter 6 | $opacity-ie: ($opacity * 100); 7 | filter: alpha(opacity=$opacity-ie); 8 | } 9 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_pagination.scss: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | @mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: $padding-vertical $padding-horizontal; 8 | font-size: $font-size; 9 | line-height: $line-height; 10 | } 11 | &:first-child { 12 | > a, 13 | > span { 14 | @include border-left-radius($border-radius); 15 | } 16 | } 17 | &:last-child { 18 | > a, 19 | > span { 20 | @include border-right-radius($border-radius); 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_panels.scss: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | @mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) { 4 | border-color: $border; 5 | 6 | & > .panel-heading { 7 | color: $heading-text-color; 8 | background-color: $heading-bg-color; 9 | border-color: $heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: $border; 13 | } 14 | .badge { 15 | color: $heading-bg-color; 16 | background-color: $heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: $border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_progress-bar.scss: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | @mixin progress-bar-variant($color) { 4 | background-color: $color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | @include gradient-striped; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_reset-filter.scss: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | @mixin reset-filter() { 7 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 8 | } 9 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_reset-text.scss: -------------------------------------------------------------------------------- 1 | @mixin reset-text() { 2 | font-family: $font-family-base; 3 | // We deliberately do NOT reset font-size. 4 | font-style: normal; 5 | font-weight: normal; 6 | letter-spacing: normal; 7 | line-break: auto; 8 | line-height: $line-height-base; 9 | text-align: left; // Fallback for where `start` is not supported 10 | text-align: start; 11 | text-decoration: none; 12 | text-shadow: none; 13 | text-transform: none; 14 | white-space: normal; 15 | word-break: normal; 16 | word-spacing: normal; 17 | word-wrap: normal; 18 | } 19 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_resize.scss: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | @mixin resizable($direction) { 4 | resize: $direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_responsive-visibility.scss: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | // [converter] $parent hack 6 | @mixin responsive-visibility($parent) { 7 | #{$parent} { 8 | display: block !important; 9 | } 10 | table#{$parent} { display: table !important; } 11 | tr#{$parent} { display: table-row !important; } 12 | th#{$parent}, 13 | td#{$parent} { display: table-cell !important; } 14 | } 15 | 16 | // [converter] $parent hack 17 | @mixin responsive-invisibility($parent) { 18 | #{$parent} { 19 | display: none !important; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_size.scss: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | @mixin size($width, $height) { 4 | width: $width; 5 | height: $height; 6 | } 7 | 8 | @mixin square($size) { 9 | @include size($size, $size); 10 | } 11 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_tab-focus.scss: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | @mixin tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_table-row.scss: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | @mixin table-row-variant($state, $background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table > thead > tr, 7 | .table > tbody > tr, 8 | .table > tfoot > tr { 9 | > td.#{$state}, 10 | > th.#{$state}, 11 | &.#{$state} > td, 12 | &.#{$state} > th { 13 | background-color: $background; 14 | } 15 | } 16 | 17 | // Hover states for `.table-hover` 18 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 19 | .table-hover > tbody > tr { 20 | > td.#{$state}:hover, 21 | > th.#{$state}:hover, 22 | &.#{$state}:hover > td, 23 | &:hover > .#{$state}, 24 | &.#{$state}:hover > th { 25 | background-color: darken($background, 5%); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_text-emphasis.scss: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | // [converter] $parent hack 4 | @mixin text-emphasis-variant($parent, $color) { 5 | #{$parent} { 6 | color: $color; 7 | } 8 | a#{$parent}:hover, 9 | a#{$parent}:focus { 10 | color: darken($color, 10%); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrap/mixins/_text-overflow.scss: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | @mixin text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/bootstrapui/typeahead.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Typeahead 3 | */ 4 | 5 | @import '../common/variables'; 6 | @import '../common/mixins'; 7 | 8 | // Limits the typeahead list when it becomes too large 9 | .typeahead-ctrl { 10 | .dropdown-menu { 11 | max-height: 300px; 12 | overflow: auto; 13 | } 14 | } -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/common/file-upload.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * File Upload 3 | */ 4 | 5 | .file-upload { 6 | display: block; 7 | overflow: hidden; 8 | position: relative; 9 | 10 | [type=file] { 11 | cursor: pointer; 12 | display: block; 13 | filter: alpha(opacity=0); 14 | min-height: 100%; 15 | min-width: 100%; 16 | opacity: 0; 17 | position: absolute; 18 | right: 0; 19 | text-align: right; 20 | top: 0; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/floatbutton/floatbutton.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Float Button 3 | */ 4 | 5 | @import '../common/variables'; 6 | @import '../common/mixins'; 7 | 8 | .floatbutton { 9 | position: relative; 10 | z-index: 1000; 11 | .mfb-component__button--child, 12 | .mfb-component__button--main { 13 | color: #fff; 14 | // background-color: $mdc-pink-400; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/app/shared/styles/styles.scss: -------------------------------------------------------------------------------- 1 | 2 | @import 'bootstrap/reset.scss'; 3 | @import 'common/animate.scss'; 4 | @import 'common/buttons-extra.scss'; 5 | @import 'common/dropdown-extra.scss'; 6 | @import 'common/grid-extra.scss'; 7 | @import 'common/material-colors.scss'; 8 | @import 'common/mixins.scss'; 9 | @import 'common/modal.scss'; 10 | @import 'common/spinner.scss'; 11 | @import 'common/themes.scss'; 12 | @import 'common/typography.scss'; 13 | @import 'common/ui.checkbox-radio.scss'; 14 | @import 'common/ui.note-area.scss'; 15 | @import 'common/ui.switch.scss'; 16 | @import 'common/file-upload.scss'; 17 | @import 'common/containers.scss'; 18 | 19 | @import 'settings/settings.scss'; 20 | @import 'material/material.scss'; 21 | @import 'material/list.scss'; 22 | @import 'colors/colors.scss'; 23 | @import 'cards/cards.scss'; 24 | @import 'bootstrapui/datepicker.scss'; 25 | @import 'bootstrapui/typeahead.scss'; 26 | @import 'floatbutton/floatbutton.scss'; 27 | @import 'ripple/ripple.scss'; 28 | 29 | @import 'utils/utils.scss'; 30 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/.gitkeep -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/chart/area.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "label": "Uniques", 3 | "color": "#0277BD", 4 | "data": [ 5 | ["Mar", 50], 6 | ["Apr", 84], 7 | ["May", 52], 8 | ["Jun", 88], 9 | ["Jul", 69], 10 | ["Aug", 92], 11 | ["Sep", 58] 12 | ] 13 | }, { 14 | "label": "Recurrent", 15 | "color": "#80DEEA", 16 | "data": [ 17 | ["Mar", 13], 18 | ["Apr", 44], 19 | ["May", 24], 20 | ["Jun", 47], 21 | ["Jul", 38], 22 | ["Aug", 11], 23 | ["Sep", 39] 24 | ] 25 | }] -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/chart/bar.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "label": "Sales", 3 | "color": "#009688", 4 | "data": [ 5 | ["Jan", 27], 6 | ["Feb", 82], 7 | ["Mar", 56], 8 | ["Apr", 14], 9 | ["May", 28], 10 | ["Jun", 77], 11 | ["Jul", 23], 12 | ["Aug", 49], 13 | ["Sep", 81], 14 | ["Oct", 20] 15 | ] 16 | }] -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/chart/barstacked.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "label": "Follows", 3 | "color": "#33691E", 4 | "data": [ 5 | ["Jan", 56], 6 | ["Feb", 81], 7 | ["Mar", 97], 8 | ["Apr", 44], 9 | ["May", 24], 10 | ["Jun", 85], 11 | ["Jul", 94], 12 | ["Aug", 78], 13 | ["Sep", 52], 14 | ["Oct", 17], 15 | ["Nov", 90], 16 | ["Dec", 62] 17 | ] 18 | }, { 19 | "label": "Likes", 20 | "color": "#8BC34A", 21 | "data": [ 22 | ["Jan", 69], 23 | ["Feb", 135], 24 | ["Mar", 14], 25 | ["Apr", 100], 26 | ["May", 100], 27 | ["Jun", 62], 28 | ["Jul", 115], 29 | ["Aug", 22], 30 | ["Sep", 104], 31 | ["Oct", 132], 32 | ["Nov", 72], 33 | ["Dec", 61] 34 | ] 35 | }, { 36 | "label": "Views", 37 | "color": "#DCEDC8", 38 | "data": [ 39 | ["Jan", 29], 40 | ["Feb", 36], 41 | ["Mar", 47], 42 | ["Apr", 21], 43 | ["May", 5], 44 | ["Jun", 49], 45 | ["Jul", 37], 46 | ["Aug", 44], 47 | ["Sep", 28], 48 | ["Oct", 9], 49 | ["Nov", 12], 50 | ["Dec", 35] 51 | ] 52 | }] -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/chart/line.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "label": "Complete", 3 | "color": "#00BCD4", 4 | "data": [ 5 | ["Jan", 50], 6 | ["Feb", 93], 7 | ["Mar", 120], 8 | ["Apr", 140], 9 | ["May", 130], 10 | ["Jun", 110], 11 | ["Jul", 80], 12 | ["Aug", 70], 13 | ["Sep", 80] 14 | ] 15 | }, { 16 | "label": "In Progress", 17 | "color": "#CDDC39", 18 | "data": [ 19 | ["Jan", 153], 20 | ["Feb", 116], 21 | ["Mar", 136], 22 | ["Apr", 119], 23 | ["May", 148], 24 | ["Jun", 133], 25 | ["Jul", 118], 26 | ["Aug", 161], 27 | ["Sep", 130] 28 | ] 29 | }, { 30 | "label": "Cancelled", 31 | "color": "#FF5722", 32 | "data": [ 33 | ["Jan", 111], 34 | ["Feb", 97], 35 | ["Mar", 93], 36 | ["Apr", 110], 37 | ["May", 90], 38 | ["Jun", 75], 39 | ["Jul", 92], 40 | ["Aug", 92], 41 | ["Sep", 44] 42 | ] 43 | }] -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/chart/spline.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "label": "Uniques", 3 | "color": "#3F51B5", 4 | "data": [ 5 | ["Mar", 70], 6 | ["Apr", 85], 7 | ["May", 59], 8 | ["Jun", 93], 9 | ["Jul", 66], 10 | ["Aug", 86], 11 | ["Sep", 60] 12 | ] 13 | }, { 14 | "label": "Recurrent", 15 | "color": "#2196F3", 16 | "data": [ 17 | ["Mar", 21], 18 | ["Apr", 12], 19 | ["May", 27], 20 | ["Jun", 24], 21 | ["Jul", 16], 22 | ["Aug", 39], 23 | ["Sep", 15] 24 | ] 25 | }] -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME": "Welcome", 3 | "header": { 4 | "SEARCH": "Search.." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/i18n/es_AR.json: -------------------------------------------------------------------------------- 1 | { 2 | "WELCOME": "Bienvenido", 3 | "header": { 4 | "SEARCH": "Buscar.." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/icons/connection-bars.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/icons/ios-browsers.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/icons/navicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/logo.png -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/pic1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/pic1.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/pic2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/pic2.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/pic3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/pic3.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/pic4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/pic4.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/pic5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/pic5.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/pic6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/pic6.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/preloader/preloader.empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/preloader/preloader.empty.png -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/preloader/preloader.full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/preloader/preloader.full.png -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/user/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/user/01.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/user/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/user/02.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/user/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/user/03.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/user/04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/user/04.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/user/05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/user/05.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/user/06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/user/06.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/assets/img/user/07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/assets/img/user/07.jpg -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // The file contents for the current environment will overwrite these during build. 2 | // The build system defaults to the dev environment which uses `environment.ts`, but if you do 3 | // `ng build --env=prod` then `environment.prod.ts` will be used instead. 4 | // The list of which env maps to which file can be found in `angular-cli.json`. 5 | 6 | export const environment = { 7 | production: false 8 | }; 9 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetlive/dotnetlive.account/ff62c4b5a6dca070982e6b810d5e6bb913696f86/src/accountweb/ng2centric/src/favicon.ico -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Ng2centric 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 |
17 |
18 |
19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/main.ts: -------------------------------------------------------------------------------- 1 | import './polyfills.ts'; 2 | 3 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 4 | import { enableProdMode } from '@angular/core'; 5 | import { environment } from './environments/environment'; 6 | import { AppModule } from './app/'; 7 | 8 | if (environment.production) { 9 | enableProdMode(); 10 | } 11 | 12 | platformBrowserDynamic().bootstrapModule(AppModule) 13 | .then(() => { (window).appBootstrap && (window).appBootstrap(); }) 14 | // .catch(err => console.error(err)); 15 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/polyfills.ts: -------------------------------------------------------------------------------- 1 | // This file includes polyfills needed by Angular 2 and is loaded before 2 | // the app. You can add your own extra polyfills to this file. 3 | import 'core-js/es6/symbol'; 4 | import 'core-js/es6/object'; 5 | import 'core-js/es6/function'; 6 | import 'core-js/es6/parse-int'; 7 | import 'core-js/es6/parse-float'; 8 | import 'core-js/es6/number'; 9 | import 'core-js/es6/math'; 10 | import 'core-js/es6/string'; 11 | import 'core-js/es6/date'; 12 | import 'core-js/es6/array'; 13 | import 'core-js/es6/regexp'; 14 | import 'core-js/es6/map'; 15 | import 'core-js/es6/set'; 16 | import 'core-js/es6/reflect'; 17 | 18 | import 'core-js/es7/reflect'; 19 | import 'zone.js/dist/zone'; 20 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | 3 | //== Vendor 4 | 5 | @import '../node_modules/bootstrap/dist/css/bootstrap.css'; 6 | @import '../node_modules/ionicons/css/ionicons.css'; 7 | @import '../node_modules/font-awesome/css/font-awesome.css'; 8 | 9 | @import '../node_modules/ika.jvectormap/jquery-jvectormap-1.2.2.css'; 10 | 11 | @import '../node_modules/summernote/dist/summernote.css'; 12 | 13 | @import '../node_modules/material-colors/dist/colors.css'; 14 | 15 | @import '../node_modules/loaders.css/loaders.css'; 16 | 17 | @import '../node_modules/sweetalert/dist/sweetalert.css'; 18 | 19 | @import '../node_modules/ng-material-floating-button/mfb/dist/mfb.css'; 20 | 21 | @import '../node_modules/blueimp-gallery/css/blueimp-gallery.min.css'; 22 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/test.ts: -------------------------------------------------------------------------------- 1 | import './polyfills.ts'; 2 | 3 | import 'zone.js/dist/long-stack-trace-zone'; 4 | import 'zone.js/dist/proxy.js'; 5 | import 'zone.js/dist/sync-test'; 6 | import 'zone.js/dist/jasmine-patch'; 7 | import 'zone.js/dist/async-test'; 8 | import 'zone.js/dist/fake-async-test'; 9 | import { getTestBed } from '@angular/core/testing'; 10 | import { 11 | BrowserDynamicTestingModule, 12 | platformBrowserDynamicTesting 13 | } from '@angular/platform-browser-dynamic/testing'; 14 | 15 | // Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. 16 | declare var __karma__: any; 17 | declare var require: any; 18 | 19 | // Prevent Karma from running prematurely. 20 | __karma__.loaded = function () {}; 21 | 22 | // First, initialize the Angular testing environment. 23 | getTestBed().initTestEnvironment( 24 | BrowserDynamicTestingModule, 25 | platformBrowserDynamicTesting() 26 | ); 27 | // Then we find all the tests. 28 | let context = require.context('./', true, /\.spec\.ts/); 29 | // And load the modules. 30 | context.keys().map(context); 31 | // Finally, start Karma to run the tests. 32 | __karma__.start(); 33 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "", 4 | "declaration": false, 5 | "emitDecoratorMetadata": true, 6 | "experimentalDecorators": true, 7 | "lib": ["es6", "dom"], 8 | "mapRoot": "./", 9 | "module": "es6", 10 | "moduleResolution": "node", 11 | "outDir": "../dist/out-tsc", 12 | "sourceMap": true, 13 | "target": "es5", 14 | "typeRoots": [ 15 | "../node_modules/@types" 16 | ] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | // Typings reference file, you can add your own global typings here 2 | // https://www.typescriptlang.org/docs/handbook/writing-declaration-files.html 3 | 4 | declare var System: any; 5 | -------------------------------------------------------------------------------- /src/accountweb/ng2centric/src/vendor.ts: -------------------------------------------------------------------------------- 1 | 2 | import './modernizr.js'; // 'npm run modernizr' to create this file 3 | 4 | import '../node_modules/ika.jvectormap/jquery-jvectormap-1.2.2.min.js'; 5 | import '../node_modules/ika.jvectormap/jquery-jvectormap-world-mill-en.js'; 6 | import '../node_modules/ika.jvectormap/jquery-jvectormap-us-mill-en.js'; 7 | 8 | import '../node_modules/loaders.css/loaders.css.js'; 9 | -------------------------------------------------------------------------------- /src/authcenter/README.MD: -------------------------------------------------------------------------------- 1 | # AuthCenter 2 | 3 | 负责用户,角色与权限的管理 4 | --------------------------------------------------------------------------------