Initial commit
This commit is contained in:
commit
184db15773
25
.dockerignore
Normal file
25
.dockerignore
Normal file
@ -0,0 +1,25 @@
|
||||
**/.classpath
|
||||
**/.dockerignore
|
||||
**/.env
|
||||
**/.git
|
||||
**/.gitignore
|
||||
**/.project
|
||||
**/.settings
|
||||
**/.toolstarget
|
||||
**/.vs
|
||||
**/.vscode
|
||||
**/*.*proj.user
|
||||
**/*.dbmdl
|
||||
**/*.jfm
|
||||
**/azds.yaml
|
||||
**/bin
|
||||
**/charts
|
||||
**/docker-compose*
|
||||
**/Dockerfile*
|
||||
**/node_modules
|
||||
**/npm-debug.log
|
||||
**/obj
|
||||
**/secrets.dev.yaml
|
||||
**/values.dev.yaml
|
||||
LICENSE
|
||||
README.md
|
||||
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
398
.gitignore
vendored
Normal file
398
.gitignore
vendored
Normal file
@ -0,0 +1,398 @@
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
##
|
||||
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
|
||||
|
||||
# User-specific files
|
||||
*.rsuser
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Mono auto generated files
|
||||
mono_crash.*
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
[Ww][Ii][Nn]32/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
[Ll]ogs/
|
||||
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# Visual Studio 2017 auto generated files
|
||||
Generated\ Files/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUnit
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
nunit-*.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# Benchmark Results
|
||||
BenchmarkDotNet.Artifacts/
|
||||
|
||||
# .NET Core
|
||||
project.lock.json
|
||||
project.fragment.lock.json
|
||||
artifacts/
|
||||
|
||||
# ASP.NET Scaffolding
|
||||
ScaffoldingReadMe.txt
|
||||
|
||||
# StyleCop
|
||||
StyleCopReport.xml
|
||||
|
||||
# Files built by Visual Studio
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_h.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.iobj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.ipdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*_wpftmp.csproj
|
||||
*.log
|
||||
*.tlog
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# Visual Studio Trace Files
|
||||
*.e2e
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# AxoCover is a Code Coverage Tool
|
||||
.axoCover/*
|
||||
!.axoCover/settings.json
|
||||
|
||||
# Coverlet is a free, cross platform Code Coverage Tool
|
||||
coverage*.json
|
||||
coverage*.xml
|
||||
coverage*.info
|
||||
|
||||
# Visual Studio code coverage results
|
||||
*.coverage
|
||||
*.coveragexml
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||
# in these scripts will be unencrypted
|
||||
PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# NuGet Symbol Packages
|
||||
*.snupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/[Pp]ackages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/[Pp]ackages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/[Pp]ackages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignorable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Windows Store app package directories and files
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
*.appx
|
||||
*.appxbundle
|
||||
*.appxupload
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!?*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.jfm
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
orleans.codegen.cs
|
||||
|
||||
# Including strong name files can present a security risk
|
||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||
#*.snk
|
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||
#bower_components/
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
ServiceFabricBackup/
|
||||
*.rptproj.bak
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
*.ndf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
*.rptproj.rsuser
|
||||
*- [Bb]ackup.rdl
|
||||
*- [Bb]ackup ([0-9]).rdl
|
||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# GhostDoc plugin setting file
|
||||
*.GhostDoc.xml
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
node_modules/
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||
*.vbw
|
||||
|
||||
# Visual Studio 6 auto-generated project file (contains which files were open etc.)
|
||||
*.vbp
|
||||
|
||||
# Visual Studio 6 workspace and project file (working project files containing files to include in project)
|
||||
*.dsw
|
||||
*.dsp
|
||||
|
||||
# Visual Studio 6 technical files
|
||||
*.ncb
|
||||
*.aps
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# CodeRush personal settings
|
||||
.cr/personal
|
||||
|
||||
# Python Tools for Visual Studio (PTVS)
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Cake - Uncomment if you are using it
|
||||
# tools/**
|
||||
# !tools/packages.config
|
||||
|
||||
# Tabs Studio
|
||||
*.tss
|
||||
|
||||
# Telerik's JustMock configuration file
|
||||
*.jmconfig
|
||||
|
||||
# BizTalk build output
|
||||
*.btp.cs
|
||||
*.btm.cs
|
||||
*.odx.cs
|
||||
*.xsd.cs
|
||||
|
||||
# OpenCover UI analysis results
|
||||
OpenCover/
|
||||
|
||||
# Azure Stream Analytics local run output
|
||||
ASALocalRun/
|
||||
|
||||
# MSBuild Binary and Structured Log
|
||||
*.binlog
|
||||
|
||||
# NVidia Nsight GPU debugger configuration file
|
||||
*.nvuser
|
||||
|
||||
# MFractors (Xamarin productivity tool) working folder
|
||||
.mfractor/
|
||||
|
||||
# Local History for Visual Studio
|
||||
.localhistory/
|
||||
|
||||
# Visual Studio History (VSHistory) files
|
||||
.vshistory/
|
||||
|
||||
# BeatPulse healthcheck temp database
|
||||
healthchecksdb
|
||||
|
||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||
MigrationBackup/
|
||||
|
||||
# Ionide (cross platform F# VS Code tools) working folder
|
||||
.ionide/
|
||||
|
||||
# Fody - auto-generated XML schema
|
||||
FodyWeavers.xsd
|
||||
|
||||
# VS Code files for those working on multiple tools
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
*.code-workspace
|
||||
|
||||
# Local History for Visual Studio Code
|
||||
.history/
|
||||
|
||||
# Windows Installer files from build outputs
|
||||
*.cab
|
||||
*.msi
|
||||
*.msix
|
||||
*.msm
|
||||
*.msp
|
||||
|
||||
# JetBrains Rider
|
||||
*.sln.iml
|
||||
77
Chruch.Net.BLL.Core/BussinessLogicBase.cs
Normal file
77
Chruch.Net.BLL.Core/BussinessLogicBase.cs
Normal file
@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using PagedList;
|
||||
|
||||
namespace Church.Net.BLL.Core
|
||||
{
|
||||
public class BussinessLogicBase<T> : IBussinessLogic<T> where T : class
|
||||
|
||||
{
|
||||
|
||||
DAL.Core.IRepository<T> DAL { get; set; }
|
||||
|
||||
public BussinessLogicBase(string connString)
|
||||
{
|
||||
DAL = new RepositoryBase<T>(connString);
|
||||
|
||||
}
|
||||
|
||||
public void Add(T obj)
|
||||
{
|
||||
DAL.Add(obj);
|
||||
}
|
||||
|
||||
public void Edit(T obj)
|
||||
{
|
||||
DAL.Edit(obj);
|
||||
}
|
||||
|
||||
public void Delete(T obj)
|
||||
{
|
||||
DAL.Delete(obj);
|
||||
}
|
||||
|
||||
public void Delete(string id)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public T GetSingle(Expression<Func<T, bool>> whereCondition)
|
||||
{
|
||||
return DAL.GetSingle(whereCondition);
|
||||
}
|
||||
|
||||
public PagedList<T> GetPagedList(int page, int itemPerPage)
|
||||
{
|
||||
var list = DAL.GetQueryable().Skip(page - 1).Take(itemPerPage);
|
||||
PagedList<T> result = new PagedList<T>(list,page, itemPerPage);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public PagedList<T> GetPagedList(int page, int itemPerPage,Expression<Func<T, bool>> whereCondition)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public PagedList<T> GetPagedList<TKey>(int page, int itemPerPage, Expression<Func<T, bool>> whereCondition, Expression<Func<T, TKey>> orderCondition)
|
||||
{
|
||||
var list = DAL.GetQueryable(whereCondition).OrderBy(orderCondition).Skip(page - 1).Take(itemPerPage);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public IList<T> GetAll()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public IList<T> GetAll(Expression<Func<T, bool>> whereCondition)
|
||||
{
|
||||
var list = DAL.GetQueryable(whereCondition);
|
||||
return list.ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Chruch.Net.BLL.Core/Church.Net.BLL.Core.csproj
Normal file
64
Chruch.Net.BLL.Core/Church.Net.BLL.Core.csproj
Normal file
@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{EF712F0F-D4A3-452B-94FD-09261C558347}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Church.Net.BLL.Core</RootNamespace>
|
||||
<AssemblyName>Church.Net.BLL.Core</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="PagedList, Version=1.17.0.0, Culture=neutral, PublicKeyToken=abbb863e9397c5e1, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\PagedList.1.17.0.0\lib\net40\PagedList.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BussinessLogicBase.cs" />
|
||||
<Compile Include="IBussinessLogic.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Chruch.Net.DAL.Core\Church.Net.DAL.Core.csproj">
|
||||
<Project>{b9d6f9dc-8eb4-44e2-8625-98dfa2958084}</Project>
|
||||
<Name>Church.Net.DAL.Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Church.Net.Utility\Church.Net.Utility.csproj">
|
||||
<Project>{606e98ab-096a-46ed-8e2e-4eb5ce4ec553}</Project>
|
||||
<Name>Church.Net.Utility</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
26
Chruch.Net.BLL.Core/IBussinessLogic.cs
Normal file
26
Chruch.Net.BLL.Core/IBussinessLogic.cs
Normal file
@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using PagedList;
|
||||
|
||||
namespace Church.Net.BLL.Core
|
||||
{
|
||||
public interface IBussinessLogic<T>
|
||||
{
|
||||
|
||||
void Add(T obj);
|
||||
void Edit(T obj);
|
||||
void Delete(T obj);
|
||||
void Delete(string id);
|
||||
T GetSingle(Expression<Func<T,bool>> whereCondition);
|
||||
PagedList<T> GetPagedList(int page, int itemPerPage);
|
||||
PagedList<T> GetPagedList(int page, int itemPerPage, Expression<Func<T, bool>> whereCondition);
|
||||
IList<T> GetAll();
|
||||
IList<T> GetAll(Expression<Func<T, bool>> whereCondition);
|
||||
|
||||
}
|
||||
}
|
||||
36
Chruch.Net.BLL.Core/Properties/AssemblyInfo.cs
Normal file
36
Chruch.Net.BLL.Core/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 組件的一般資訊是由下列的屬性集控制。
|
||||
// 變更這些屬性的值即可修改組件的相關
|
||||
// 資訊。
|
||||
[assembly: AssemblyTitle("Chruch.Net.BLL.Core")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Chruch.Net.BLL.Core")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2018")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 將 ComVisible 設為 false 可對 COM 元件隱藏
|
||||
// 組件中的類型。若必須從 COM 存取此組件中的類型,
|
||||
// 的類型,請在該類型上將 ComVisible 屬性設定為 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
|
||||
[assembly: Guid("ef712f0f-d4a3-452b-94fd-09261c558347")]
|
||||
|
||||
// 組件的版本資訊由下列四個值所組成:
|
||||
//
|
||||
// 主要版本
|
||||
// 次要版本
|
||||
// 組建編號
|
||||
// 修訂編號
|
||||
//
|
||||
// 您可以指定所有的值,或將組建編號或修訂編號設為預設值
|
||||
//方法是使用 '*',如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
4
Chruch.Net.BLL.Core/packages.config
Normal file
4
Chruch.Net.BLL.Core/packages.config
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="PagedList" version="1.17.0.0" targetFramework="net461" />
|
||||
</packages>
|
||||
47
Chruch.Net.DAL.Core/Church.Net.DAL.Core.csproj
Normal file
47
Chruch.Net.DAL.Core/Church.Net.DAL.Core.csproj
Normal file
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{B9D6F9DC-8EB4-44E2-8625-98DFA2958084}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Church.Net.DAL.Core</RootNamespace>
|
||||
<AssemblyName>Church.Net.DAL.Core</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="IRepository.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
25
Chruch.Net.DAL.Core/IRepository.cs
Normal file
25
Chruch.Net.DAL.Core/IRepository.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Church.Net.DAL.Core
|
||||
{
|
||||
public interface IRepository<T>:IDisposable where T:class
|
||||
{
|
||||
void InitializeConnectionString(string connString);
|
||||
void Add(T obj);
|
||||
void Edit(T obj);
|
||||
void Delete(T id);
|
||||
void Attach(T obj);
|
||||
T GetSingle();
|
||||
T GetSingle(Expression<Func<T, bool>> whereCondition);
|
||||
IList<T> GetAll();
|
||||
IList<T> GetAll(Expression<Func<T, bool>> whereCondition);
|
||||
IQueryable<T> GetQueryable();
|
||||
IQueryable<T> GetQueryable(Expression<Func<T, bool>> whereCondition);
|
||||
}
|
||||
}
|
||||
36
Chruch.Net.DAL.Core/Properties/AssemblyInfo.cs
Normal file
36
Chruch.Net.DAL.Core/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 組件的一般資訊是由下列的屬性集控制。
|
||||
// 變更這些屬性的值即可修改組件的相關
|
||||
// 資訊。
|
||||
[assembly: AssemblyTitle("Chruch.Net.DAL.Core")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Chruch.Net.DAL.Core")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2018")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 將 ComVisible 設為 false 可對 COM 元件隱藏
|
||||
// 組件中的類型。若必須從 COM 存取此組件中的類型,
|
||||
// 的類型,請在該類型上將 ComVisible 屬性設定為 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
|
||||
[assembly: Guid("b9d6f9dc-8eb4-44e2-8625-98dfa2958084")]
|
||||
|
||||
// 組件的版本資訊由下列四個值所組成:
|
||||
//
|
||||
// 主要版本
|
||||
// 次要版本
|
||||
// 組建編號
|
||||
// 修訂編號
|
||||
//
|
||||
// 您可以指定所有的值,或將組建編號或修訂編號設為預設值
|
||||
//方法是使用 '*',如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
157
Chruch.Net/App_Start/BundleConfig.cs
Normal file
157
Chruch.Net/App_Start/BundleConfig.cs
Normal file
@ -0,0 +1,157 @@
|
||||
using System.Web;
|
||||
using System.Web.Optimization;
|
||||
|
||||
namespace Chruch.Net
|
||||
{
|
||||
public class BundleConfig
|
||||
{
|
||||
// 如需統合的詳細資訊,請瀏覽 https://go.microsoft.com/fwlink/?LinkId=301862
|
||||
public static void RegisterBundles(BundleCollection bundles)
|
||||
{
|
||||
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
|
||||
"~/Scripts/jquery-{version}.js"));
|
||||
|
||||
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
|
||||
"~/Scripts/jquery.validate*"));
|
||||
|
||||
// 使用開發版本的 Modernizr 進行開發並學習。然後,當您
|
||||
// 準備好可進行生產時,請使用 https://modernizr.com 的建置工具,只挑選您需要的測試。
|
||||
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
|
||||
"~/Scripts/modernizr-*"));
|
||||
|
||||
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
|
||||
"~/Scripts/umd/popper.min.js",
|
||||
"~/Scripts/bootstrap.js",
|
||||
"~/dashboard/cookiejs/jquery.cookie.js",
|
||||
"~/Scripts/respond.js",
|
||||
"~/Scripts/bootstrap-material-datetimepicker.js"));
|
||||
|
||||
bundles.Add(new StyleBundle("~/Content/bootstrap").Include(
|
||||
"~/Content/bootstrap.css",
|
||||
"~/Content/site.css",
|
||||
"~/Content/bootstrap-material-datetimepicker.css"));
|
||||
|
||||
|
||||
bundles.Add(new ScriptBundle("~/bundles/Common").Include(
|
||||
"~/Scripts/sweetalert2.all.js",
|
||||
"~/Scripts/promise.min.js",
|
||||
"~/Scripts/jquery.qrcode.min.js",
|
||||
"~/Scripts/typeit.min.js"//, "~/Scripts/typeit.modern.min.js"
|
||||
));
|
||||
|
||||
#region Dashboard
|
||||
|
||||
bundles.Add(new ScriptBundle("~/bundles/Dashboard").Include(
|
||||
"~/dashboard/jquery-ui/widget.js",
|
||||
"~/dashboard/jquery-ui/version.js",
|
||||
"~/dashboard/jquery-ui/keycode.js",
|
||||
"~/dashboard/jquery-ui/position.js",
|
||||
"~/dashboard/jquery-ui/unique-id.js",
|
||||
"~/dashboard/jquery-ui/safe-active-element.js",
|
||||
"~/dashboard/jquery-ui/widgets/menu.js",
|
||||
"~/dashboard/jquery-ui/widgets/mouse.js",
|
||||
"~/dashboard/jquery-ui/widgets/datepicker.js",
|
||||
"~/dashboard/appear.js",
|
||||
"~/dashboard/bootstrap-select/js/bootstrap-select.min.js",
|
||||
"~/dashboard/flatpickr/dist/js/flatpickr.min.js",
|
||||
"~/dashboard/malihu-scrollbar/jquery.mCustomScrollbar.concat.min.js",
|
||||
"~/dashboard/chartist-js/chartist.min.js",
|
||||
"~/dashboard/chartist-js-tooltip/chartist-plugin-tooltip.js",
|
||||
"~/dashboard/fancybox/jquery.fancybox.min.js",
|
||||
"~/dashboard/js/hs.core.js",
|
||||
"~/dashboard/js/components/hs.side-nav.js",
|
||||
"~/dashboard/js/helpers/hs.hamburgers.js",
|
||||
"~/dashboard/js/components/hs.range-datepicker.js",
|
||||
"~/dashboard/js/components/hs.datepicker.js",
|
||||
"~/dashboard/js/components/hs.dropdown.js",
|
||||
"~/dashboard/js/components/hs.scrollbar.js",
|
||||
"~/dashboard/js/components/hs.area-chart.js",
|
||||
"~/dashboard/js/components/hs.donut-chart.js",
|
||||
"~/dashboard/js/components/hs.bar-chart.js",
|
||||
"~/dashboard/js/helpers/hs.focus-state.js",
|
||||
"~/dashboard/js/components/hs.popup.js",
|
||||
"~/Scripts/clipboard.min.js"
|
||||
));
|
||||
|
||||
bundles.Add(new StyleBundle("~/Content/DashboardCss").Include(
|
||||
"~/dashboard/icon-awesome/css/font-awesome.min.css",
|
||||
"~/dashboard/icon-line/css/simple-line-icons.css",
|
||||
"~/dashboard/icon-etlinefont/style.css",
|
||||
"~/dashboard/icon-line-pro/style.css",
|
||||
"~/dashboard/icon-hs/style.css",
|
||||
"~/dashboard/hs-admin-icons/hs-admin-icons.css",
|
||||
"~/dashboard/animate.css",
|
||||
"~/dashboard/malihu-scrollbar/jquery.mCustomScrollbar.min.css",
|
||||
"~/dashboard/flatpickr/dist/css/flatpickr.min.css",
|
||||
"~/dashboard/bootstrap-select/css/bootstrap-select.min.css",
|
||||
"~/dashboard/chartist-js/chartist.min.css",
|
||||
"~/dashboard/chartist-js-tooltip/chartist-plugin-tooltip.css",
|
||||
"~/dashboard/fancybox/jquery.fancybox.min.css",
|
||||
"~/dashboard/hamburgers/hamburgers.min.css",
|
||||
"~/dashboard/unify-admin.css"));
|
||||
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region UnitfyCore
|
||||
bundles.Add(new StyleBundle("~/Content/UnitfyComponentCSS").Include(
|
||||
"~/Content/unify-core.css",
|
||||
"~/Content/unify-globals.css",
|
||||
"~/Content/unify-components.css"));
|
||||
bundles.Add(new StyleBundle("~/Content/UnitfyCoreCSS").Include(
|
||||
//"~/Content/unify-core.css",
|
||||
//"~/Content/unify-globals.css",
|
||||
//"~/Content/unify-components.css",
|
||||
"~/Content/vendor/icon-awesome/css/font-awesome.min.css",
|
||||
"~/Content/vendor/icon-line/css/simple-line-icons.css",
|
||||
"~/Content/vendor/icon-hs/style.css",
|
||||
"~/Content/vendor/hamburgers/hamburgers.min.css",
|
||||
"~/Content/vendor/animate.css",
|
||||
"~/Content/vendor/slick-carousel/slick/slick.css",
|
||||
"~/Content/vendor/dzsparallaxer/dzsparallaxer.css",
|
||||
"~/Content/vendor/dzsparallaxer/dzsscroller/scroller.css",
|
||||
"~/Content/vendor/dzsparallaxer/advancedscroller/plugin.css",
|
||||
"~/Content/vendor/circles/circles.min.js",
|
||||
"~/Content/vendor/hs-megamenu/hs.megamenu.css"));
|
||||
|
||||
|
||||
bundles.Add(new ScriptBundle("~/bundles/UnitfyCore").Include(
|
||||
"~/Scripts/vendor/jquery-migrate/jquery-migrate.min.js",
|
||||
"~/Scripts/vendor/jquery.easing/js/jquery.easing.js",
|
||||
"~/Scripts/vendor/appear.js",
|
||||
"~/Scripts/vendor/circles/circles.min.js",
|
||||
"~/Scripts/vendor/slick-carousel/slick/slick.js",
|
||||
"~/Scripts/hs.core.js",
|
||||
"~/Scripts/components/hs.header.js",
|
||||
"~/Scripts/helpers/hs.hamburgers.js",
|
||||
"~/Scripts/components/hs.scroll-nav.js",
|
||||
"~/Scripts/components/hs.onscroll-animation.js",
|
||||
"~/Scripts/components/hs.chart-pie.js",
|
||||
"~/Scripts/components/hs.tabs.js",
|
||||
"~/Scripts/components/hs.carousel.js",
|
||||
"~/Scripts/components/hs.go-to.js",
|
||||
"~/Scripts/components/hs.counter.js",
|
||||
"~/Scripts/vendor/dzsparallaxer/dzsparallaxer.js",
|
||||
"~/Scripts/vendor/dzsparallaxer/dzsscroller/scroller.js",
|
||||
"~/Scripts/vendor/dzsparallaxer/advancedscroller/plugin.js",
|
||||
"~/Scripts/vendor/jquery.countdown.min.js",
|
||||
"~/Scripts/components/hs.countdown.js",
|
||||
"~/Scripts/vendor/hs-megamenu/hs.megamenu.js",
|
||||
"~/Scripts/custom.js"));
|
||||
|
||||
#endregion
|
||||
|
||||
#region Index
|
||||
|
||||
bundles.Add(new StyleBundle("~/Content/Index").Include(
|
||||
"~/Content/styles.op-architecture.css",
|
||||
"~/Content/site.css"));
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
13
Chruch.Net/App_Start/FilterConfig.cs
Normal file
13
Chruch.Net/App_Start/FilterConfig.cs
Normal file
@ -0,0 +1,13 @@
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace Chruch.Net
|
||||
{
|
||||
public class FilterConfig
|
||||
{
|
||||
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
|
||||
{
|
||||
filters.Add(new HandleErrorAttribute());
|
||||
}
|
||||
}
|
||||
}
|
||||
111
Chruch.Net/App_Start/IdentityConfig.cs
Normal file
111
Chruch.Net/App_Start/IdentityConfig.cs
Normal file
@ -0,0 +1,111 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using System.Security.Claims;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using Microsoft.AspNet.Identity;
|
||||
using Microsoft.AspNet.Identity.EntityFramework;
|
||||
using Microsoft.AspNet.Identity.Owin;
|
||||
using Microsoft.Owin;
|
||||
using Microsoft.Owin.Security;
|
||||
using Chruch.Net.Models;
|
||||
using Church.Net.DAL.EF;
|
||||
using Church.Net.Entity;
|
||||
|
||||
namespace Chruch.Net
|
||||
{
|
||||
public class EmailService : IIdentityMessageService
|
||||
{
|
||||
public Task SendAsync(IdentityMessage message)
|
||||
{
|
||||
// 將您的電子郵件服務外掛到這裡以傳送電子郵件。
|
||||
return Task.FromResult(0);
|
||||
}
|
||||
}
|
||||
|
||||
public class SmsService : IIdentityMessageService
|
||||
{
|
||||
public Task SendAsync(IdentityMessage message)
|
||||
{
|
||||
// 將您的 SMS 服務外掛到這裡以傳送簡訊。
|
||||
return Task.FromResult(0);
|
||||
}
|
||||
}
|
||||
|
||||
// 設定此應用程式中使用的應用程式使用者管理員。UserManager 在 ASP.NET Identity 中定義且由應用程式中使用。
|
||||
public class ApplicationUserManager : UserManager<FamilyMember>
|
||||
{
|
||||
public ApplicationUserManager(IUserStore<FamilyMember> store)
|
||||
: base(store)
|
||||
{
|
||||
}
|
||||
|
||||
public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
|
||||
{
|
||||
var manager = new ApplicationUserManager(new UserStore<FamilyMember>(context.Get<ChurchNetContext>()));
|
||||
// 設定使用者名稱的驗證邏輯
|
||||
manager.UserValidator = new UserValidator<FamilyMember>(manager)
|
||||
{
|
||||
AllowOnlyAlphanumericUserNames = false,
|
||||
RequireUniqueEmail = true
|
||||
};
|
||||
|
||||
// 設定密碼的驗證邏輯
|
||||
manager.PasswordValidator = new PasswordValidator
|
||||
{
|
||||
RequiredLength = 6,
|
||||
RequireNonLetterOrDigit = true,
|
||||
RequireDigit = true,
|
||||
RequireLowercase = true,
|
||||
RequireUppercase = true,
|
||||
};
|
||||
|
||||
// 設定使用者鎖定詳細資料
|
||||
manager.UserLockoutEnabledByDefault = true;
|
||||
manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5);
|
||||
manager.MaxFailedAccessAttemptsBeforeLockout = 5;
|
||||
|
||||
// 註冊雙因素驗證提供者。此應用程式使用手機和電子郵件接收驗證碼以驗證使用者
|
||||
// 您可以撰寫專屬提供者,並將它外掛到這裡。
|
||||
manager.RegisterTwoFactorProvider("電話代碼", new PhoneNumberTokenProvider<FamilyMember>
|
||||
{
|
||||
MessageFormat = "您的安全碼為 {0}"
|
||||
});
|
||||
manager.RegisterTwoFactorProvider("電子郵件代碼", new EmailTokenProvider<FamilyMember>
|
||||
{
|
||||
Subject = "安全碼",
|
||||
BodyFormat = "您的安全碼為 {0}"
|
||||
});
|
||||
manager.EmailService = new EmailService();
|
||||
manager.SmsService = new SmsService();
|
||||
var dataProtectionProvider = options.DataProtectionProvider;
|
||||
if (dataProtectionProvider != null)
|
||||
{
|
||||
manager.UserTokenProvider =
|
||||
new DataProtectorTokenProvider<FamilyMember>(dataProtectionProvider.Create("ASP.NET Identity"));
|
||||
}
|
||||
return manager;
|
||||
}
|
||||
}
|
||||
|
||||
// 設定在此應用程式中使用的應用程式登入管理員。
|
||||
public class ApplicationSignInManager : SignInManager<FamilyMember, string>
|
||||
{
|
||||
public ApplicationSignInManager(ApplicationUserManager userManager, IAuthenticationManager authenticationManager)
|
||||
: base(userManager, authenticationManager)
|
||||
{
|
||||
}
|
||||
|
||||
public override Task<ClaimsIdentity> CreateUserIdentityAsync(FamilyMember user)
|
||||
{
|
||||
return user.GenerateUserIdentityAsync((ApplicationUserManager)UserManager);
|
||||
}
|
||||
|
||||
public static ApplicationSignInManager Create(IdentityFactoryOptions<ApplicationSignInManager> options, IOwinContext context)
|
||||
{
|
||||
return new ApplicationSignInManager(context.GetUserManager<ApplicationUserManager>(), context.Authentication);
|
||||
}
|
||||
}
|
||||
}
|
||||
23
Chruch.Net/App_Start/RouteConfig.cs
Normal file
23
Chruch.Net/App_Start/RouteConfig.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
|
||||
namespace Chruch.Net
|
||||
{
|
||||
public class RouteConfig
|
||||
{
|
||||
public static void RegisterRoutes(RouteCollection routes)
|
||||
{
|
||||
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
|
||||
|
||||
routes.MapRoute(
|
||||
name: "Default",
|
||||
url: "{controller}/{action}/{id}",
|
||||
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
141
Chruch.Net/App_Start/Startup.Auth.cs
Normal file
141
Chruch.Net/App_Start/Startup.Auth.cs
Normal file
@ -0,0 +1,141 @@
|
||||
using System;
|
||||
using Microsoft.AspNet.Identity;
|
||||
using Microsoft.AspNet.Identity.Owin;
|
||||
using Microsoft.Owin;
|
||||
using Microsoft.Owin.Security.Cookies;
|
||||
using Microsoft.Owin.Security.Google;
|
||||
using Owin;
|
||||
using Chruch.Net.Models;
|
||||
using Church.Net.DAL.EF;
|
||||
using Church.Net.Entity;
|
||||
using Microsoft.AspNet.Identity.EntityFramework;
|
||||
|
||||
namespace Chruch.Net
|
||||
{
|
||||
public partial class Startup
|
||||
{
|
||||
// 如需設定驗證的詳細資訊,請瀏覽 https://go.microsoft.com/fwlink/?LinkId=301864
|
||||
public void ConfigureAuth(IAppBuilder app)
|
||||
{
|
||||
// 設定資料庫內容、使用者管理員和登入管理員,以針對每個要求使用單一執行個體
|
||||
app.CreatePerOwinContext(ChurchNetContext.Create);
|
||||
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
|
||||
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
|
||||
|
||||
// 讓應用程式使用 Cookie 儲存已登入使用者的資訊
|
||||
// 並使用 Cookie 暫時儲存使用者利用協力廠商登入提供者登入的相關資訊;
|
||||
// 在 Cookie 中設定簽章
|
||||
app.UseCookieAuthentication(new CookieAuthenticationOptions
|
||||
{
|
||||
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
|
||||
LoginPath = new PathString("/Account/Login"),
|
||||
Provider = new CookieAuthenticationProvider
|
||||
{
|
||||
// 讓應用程式在使用者登入時驗證安全性戳記。
|
||||
// 這是您變更密碼或將外部登入新增至帳戶時所使用的安全性功能。
|
||||
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, FamilyMember>(
|
||||
validateInterval: TimeSpan.FromDays(300),
|
||||
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
|
||||
}
|
||||
});
|
||||
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
|
||||
|
||||
// 讓應用程式在雙因素驗證程序中驗證第二個因素時暫時儲存使用者資訊。
|
||||
app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));
|
||||
|
||||
// 讓應用程式記住第二個登入驗證因素 (例如電話或電子郵件)。
|
||||
// 核取此選項之後,將會在用來登入的裝置上記住登入程序期間的第二個驗證步驟。
|
||||
// 這類似於登入時的 RememberMe 選項。
|
||||
app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);
|
||||
|
||||
// 註銷下列各行以啟用利用協力廠商登入提供者登入
|
||||
//app.UseMicrosoftAccountAuthentication(
|
||||
// clientId: "",
|
||||
// clientSecret: "");
|
||||
|
||||
//app.UseTwitterAuthentication(
|
||||
// consumerKey: "",
|
||||
// consumerSecret: "");
|
||||
|
||||
//app.UseFacebookAuthentication(
|
||||
// appId: "",
|
||||
// appSecret: "");
|
||||
|
||||
//app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
|
||||
//{
|
||||
// ClientId = "",
|
||||
// ClientSecret = ""
|
||||
//});
|
||||
|
||||
CreateRolesandUsers();
|
||||
}
|
||||
|
||||
private void CreateRolesandUsers()
|
||||
{
|
||||
ChurchNetContext context = new ChurchNetContext();
|
||||
|
||||
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
|
||||
var UserManager = new UserManager<FamilyMember>(new UserStore<FamilyMember>(context));
|
||||
|
||||
|
||||
// In Startup iam creating first Admin Role and creating a default Admin User
|
||||
if (!roleManager.RoleExists("Admin"))
|
||||
{
|
||||
|
||||
// first we create Admin rool
|
||||
var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
|
||||
role.Name = "Admin";
|
||||
roleManager.Create(role);
|
||||
|
||||
//Here we create a Admin super user who will maintain the website
|
||||
|
||||
var user = new FamilyMember();
|
||||
user.UserName = "chris";
|
||||
user.Email = "yuanson.chen@gmail.com";
|
||||
user.Birthday = new DateTime(1990, 01, 29);
|
||||
user.DateOfWalkIn = new DateTime(2018, 05, 25);
|
||||
string userPWD = "6262263816";
|
||||
|
||||
var chkUser = UserManager.Create(user, userPWD);
|
||||
|
||||
//Add default User to Role Admin
|
||||
if (chkUser.Succeeded)
|
||||
{
|
||||
var result1 = UserManager.AddToRole(user.Id, "Admin");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// creating Creating Manager role
|
||||
if (!roleManager.RoleExists("DirectorPastor"))
|
||||
{
|
||||
var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
|
||||
role.Name = "DirectorPastor";
|
||||
roleManager.Create(role);
|
||||
}
|
||||
|
||||
if (!roleManager.RoleExists("Pastor"))
|
||||
{
|
||||
var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
|
||||
role.Name = "Pastor";
|
||||
roleManager.Create(role);
|
||||
}
|
||||
|
||||
// creating Creating Employee role
|
||||
if (!roleManager.RoleExists("FamilyMember"))
|
||||
{
|
||||
var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
|
||||
role.Name = "FamilyMember";
|
||||
roleManager.Create(role);
|
||||
|
||||
}
|
||||
if (!roleManager.RoleExists("CellGroupLeader"))
|
||||
{
|
||||
var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
|
||||
role.Name = "CellGroupLeader";
|
||||
roleManager.Create(role);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
24
Chruch.Net/App_Start/WebApiConfig.cs
Normal file
24
Chruch.Net/App_Start/WebApiConfig.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web.Http;
|
||||
|
||||
namespace Chruch.Net
|
||||
{
|
||||
public static class WebApiConfig
|
||||
{
|
||||
public static void Register(HttpConfiguration config)
|
||||
{
|
||||
// Web API 設定和服務
|
||||
|
||||
// Web API 路由
|
||||
config.MapHttpAttributeRoutes();
|
||||
|
||||
config.Routes.MapHttpRoute(
|
||||
name: "DefaultApi",
|
||||
routeTemplate: "api/{controller}/{id}",
|
||||
defaults: new { id = RouteParameter.Optional }
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
79
Chruch.Net/ApplicationInsights.config
Normal file
79
Chruch.Net/ApplicationInsights.config
Normal file
@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
|
||||
<TelemetryInitializers>
|
||||
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.HttpDependenciesParsingTelemetryInitializer, Microsoft.AI.DependencyCollector"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureWebAppRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer, Microsoft.AI.Web"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer, Microsoft.AI.Web">
|
||||
<!-- Extended list of bots:
|
||||
search|spider|crawl|Bot|Monitor|BrowserMob|BingPreview|PagePeeker|WebThumb|URL2PNG|ZooShot|GomezA|Google SketchUp|Read Later|KTXN|KHTE|Keynote|Pingdom|AlwaysOn|zao|borg|oegp|silk|Xenu|zeal|NING|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|Java|JNLP|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|vortex|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|voyager|archiver|Icarus6j|mogimogi|Netvibes|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|wsr-agent|http client|Python-urllib|AppEngine-Google|semanticdiscovery|facebookexternalhit|web/snippet|Google-HTTP-Java-Client-->
|
||||
<Filters>search|spider|crawl|Bot|Monitor|AlwaysOn</Filters>
|
||||
</Add>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer, Microsoft.AI.Web"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer, Microsoft.AI.Web"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.UserTelemetryInitializer, Microsoft.AI.Web"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer, Microsoft.AI.Web"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer, Microsoft.AI.Web"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer, Microsoft.AI.Web"/>
|
||||
</TelemetryInitializers>
|
||||
<TelemetryModules>
|
||||
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
|
||||
<!--
|
||||
Use the following syntax here to collect additional performance counters:
|
||||
|
||||
<Counters>
|
||||
<Add PerformanceCounter="\Process(??APP_WIN32_PROC??)\Handle Count" ReportAs="Process handle count" />
|
||||
...
|
||||
</Counters>
|
||||
|
||||
PerformanceCounter must be either \CategoryName(InstanceName)\CounterName or \CategoryName\CounterName
|
||||
|
||||
NOTE: performance counters configuration will be lost upon NuGet upgrade.
|
||||
|
||||
The following placeholders are supported as InstanceName:
|
||||
??APP_WIN32_PROC?? - instance name of the application process for Win32 counters.
|
||||
??APP_W3SVC_PROC?? - instance name of the application IIS worker process for IIS/ASP.NET counters.
|
||||
??APP_CLR_PROC?? - instance name of the application CLR process for .NET counters.
|
||||
-->
|
||||
</Add>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web">
|
||||
<Handlers>
|
||||
<!--
|
||||
Add entries here to filter out additional handlers:
|
||||
|
||||
NOTE: handler configuration will be lost upon NuGet upgrade.
|
||||
-->
|
||||
<Add>System.Web.Handlers.TransferRequestHandler</Add>
|
||||
<Add>Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler</Add>
|
||||
<Add>System.Web.StaticFileHandler</Add>
|
||||
<Add>System.Web.Handlers.AssemblyResourceLoader</Add>
|
||||
<Add>System.Web.Optimization.BundleHandler</Add>
|
||||
<Add>System.Web.Script.Services.ScriptHandlerFactory</Add>
|
||||
<Add>System.Web.Handlers.TraceHandler</Add>
|
||||
<Add>System.Web.Services.Discovery.DiscoveryRequestHandler</Add>
|
||||
<Add>System.Web.HttpDebugHandler</Add>
|
||||
</Handlers>
|
||||
</Add>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web"/>
|
||||
</TelemetryModules>
|
||||
<TelemetryProcessors>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
|
||||
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
|
||||
</Add>
|
||||
</TelemetryProcessors>
|
||||
<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel"/>
|
||||
<!--
|
||||
Learn more about Application Insights configuration with ApplicationInsights.config here:
|
||||
http://go.microsoft.com/fwlink/?LinkID=513840
|
||||
|
||||
Note: If not present, please add <InstrumentationKey>Your Key</InstrumentationKey> to the top of this file.
|
||||
--></ApplicationInsights>
|
||||
344
Chruch.Net/Areas/English/Controllers/VocabulariesController.cs
Normal file
344
Chruch.Net/Areas/English/Controllers/VocabulariesController.cs
Normal file
@ -0,0 +1,344 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using Church.Net.DAL.EF;
|
||||
using Church.Net.Entity;
|
||||
|
||||
namespace Chruch.Net.Areas.English.Controllers
|
||||
{
|
||||
public class VocabulariesController : Controller
|
||||
{
|
||||
private ChurchNetContext db = new ChurchNetContext();
|
||||
|
||||
// GET: English/Vocabularies
|
||||
public ActionResult Index()
|
||||
{
|
||||
var query = db.Vocabulary.Where(v => v.PracticeStage !=Enumeration.PracticeStage.FlashCard);
|
||||
|
||||
return View(query.OrderBy(v => v.PracticeStage).ThenByDescending(v=>v.InsertDate).ToList());
|
||||
}
|
||||
|
||||
// GET: English/Vocabularies/Details/5
|
||||
public ActionResult Details(int? id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
Vocabulary vocabulary = db.Vocabulary.Find(id);
|
||||
if (vocabulary == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(vocabulary);
|
||||
}
|
||||
|
||||
// GET: English/Vocabularies/Create
|
||||
public ActionResult Create()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// POST: English/Vocabularies/Create
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Create(Vocabulary vocabulary)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
vocabulary.Word = vocabulary.Word.ToLower();
|
||||
vocabulary.Word = vocabulary.Word.Substring(0, 1).ToUpper() + vocabulary.Word.Substring(1, vocabulary.Word.Length - 1);
|
||||
|
||||
vocabulary.InsertDate = DateTime.Now;
|
||||
vocabulary.PracticeDate = DateTime.Now;
|
||||
vocabulary.PracticeStage = Enumeration.PracticeStage.Select;
|
||||
if (vocabulary.PartOfSpeech == Enumeration.PartsOfSpeech.Verbs)
|
||||
{
|
||||
vocabulary.VerbPast = vocabulary.Word + "ed";
|
||||
vocabulary.VerbParticiple = vocabulary.Word + "ed";
|
||||
}
|
||||
|
||||
|
||||
db.Vocabulary.Add(vocabulary);
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Create");
|
||||
}
|
||||
|
||||
return View(vocabulary);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public ActionResult Memorized()
|
||||
{
|
||||
Vocabulary vocabulary;
|
||||
vocabulary = db.Vocabulary.FirstOrDefault(v => v.PracticeDate <= DateTime.Today && (v.PracticeStage == Enumeration.PracticeStage.Select || v.PracticeStage == Enumeration.PracticeStage.Memorized));
|
||||
if (vocabulary != null)
|
||||
{
|
||||
vocabulary.PracticeTimes = 5;
|
||||
return View(vocabulary);
|
||||
}
|
||||
else
|
||||
{
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
}
|
||||
|
||||
// POST: English/Vocabularies/Create
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
public ActionResult MemorizedNext(int id)
|
||||
{
|
||||
Vocabulary vocabulary;
|
||||
vocabulary = db.Vocabulary.First(v => v.Id == id);
|
||||
vocabulary.PracticeDate = DateTime.Now;
|
||||
vocabulary.PracticeStage = Enumeration.PracticeStage.Visualize;
|
||||
|
||||
db.Entry(vocabulary).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Memorized");
|
||||
}
|
||||
|
||||
public ActionResult Visualize()
|
||||
{
|
||||
Vocabulary vocabulary;
|
||||
vocabulary = db.Vocabulary.FirstOrDefault(v => v.PracticeDate <= DateTime.Today && v.PracticeStage ==Enumeration.PracticeStage.Visualize);
|
||||
if (vocabulary != null)
|
||||
{
|
||||
vocabulary.PracticeTimes = 3;
|
||||
return View(vocabulary);
|
||||
}
|
||||
else
|
||||
{
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
}
|
||||
|
||||
// POST: English/Vocabularies/Create
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
public ActionResult VisualizeNext(int id)
|
||||
{
|
||||
Vocabulary vocabulary;
|
||||
vocabulary = db.Vocabulary.First(v => v.Id == id);
|
||||
vocabulary.PracticeDate = DateTime.Now;
|
||||
vocabulary.PracticeStage = vocabulary.PracticeStage + 1;
|
||||
|
||||
db.Entry(vocabulary).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Visualize");
|
||||
}
|
||||
|
||||
|
||||
public ActionResult Apply()
|
||||
{
|
||||
Vocabulary vocabulary;
|
||||
vocabulary = db.Vocabulary.FirstOrDefault(v => v.PracticeDate <= DateTime.Today && v.PracticeStage==Enumeration.PracticeStage.Apply);
|
||||
if (vocabulary != null)
|
||||
{
|
||||
vocabulary.PracticeTimes = 2;
|
||||
return View(vocabulary);
|
||||
}
|
||||
else
|
||||
{
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
}
|
||||
|
||||
// POST: English/Vocabularies/Create
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
public ActionResult ApplyNext(Vocabulary model)
|
||||
{
|
||||
Vocabulary vocabulary;
|
||||
vocabulary = db.Vocabulary.First(v => v.Id == model.Id);
|
||||
vocabulary.PracticeDate = DateTime.Now;
|
||||
vocabulary.PracticeStage = vocabulary.PracticeStage + 1;
|
||||
vocabulary.PracticeSentence = model.PracticeSentence;
|
||||
db.Entry(vocabulary).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Apply");
|
||||
}
|
||||
|
||||
|
||||
public ActionResult Review()
|
||||
{
|
||||
Vocabulary vocabulary;
|
||||
vocabulary = db.Vocabulary.FirstOrDefault(v => v.PracticeDate <= DateTime.Today && v.PracticeStage == Enumeration.PracticeStage.Review);
|
||||
if (vocabulary != null)
|
||||
{
|
||||
vocabulary.PracticeTimes = 1;
|
||||
return View(vocabulary);
|
||||
}
|
||||
else
|
||||
{
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
}
|
||||
|
||||
// POST: English/Vocabularies/Create
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
public ActionResult ReviewNext(int id)
|
||||
{
|
||||
Vocabulary vocabulary;
|
||||
vocabulary = db.Vocabulary.First(v => v.Id == id);
|
||||
vocabulary.PracticeDate = DateTime.Now;
|
||||
vocabulary.PracticeStage = vocabulary.PracticeStage + 1;
|
||||
|
||||
db.Entry(vocabulary).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Review");
|
||||
}
|
||||
public ActionResult ReviewRepracticeNext(int id)
|
||||
{
|
||||
Vocabulary vocabulary;
|
||||
vocabulary = db.Vocabulary.First(v => v.Id == id);
|
||||
vocabulary.PracticeDate = DateTime.Now;
|
||||
vocabulary.PracticeStage = Enumeration.PracticeStage.Select;
|
||||
|
||||
db.Entry(vocabulary).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Review");
|
||||
}
|
||||
// GET: English/Vocabularies/Edit/5
|
||||
public ActionResult Edit(int? id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
Vocabulary vocabulary = db.Vocabulary.Find(id);
|
||||
if (vocabulary == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(vocabulary);
|
||||
}
|
||||
|
||||
// POST: English/Vocabularies/Edit/5
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Edit(Vocabulary vocabulary)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
vocabulary.Word = vocabulary.Word.ToLower();
|
||||
vocabulary.Word = vocabulary.Word.Substring(0, 1).ToUpper() + vocabulary.Word.Substring(1, vocabulary.Word.Length - 1);
|
||||
db.Entry(vocabulary).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
return View(vocabulary);
|
||||
}
|
||||
|
||||
// GET: English/Vocabularies/Delete/5
|
||||
public ActionResult Delete(int? id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
Vocabulary vocabulary = db.Vocabulary.Find(id);
|
||||
if (vocabulary == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(vocabulary);
|
||||
}
|
||||
|
||||
// POST: English/Vocabularies/Delete/5
|
||||
[HttpPost, ActionName("Delete")]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult DeleteConfirmed(int id)
|
||||
{
|
||||
Vocabulary vocabulary = db.Vocabulary.Find(id);
|
||||
db.Vocabulary.Remove(vocabulary);
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public ActionResult FlashCard()
|
||||
{
|
||||
Vocabulary vocabulary;
|
||||
vocabulary = db.Vocabulary.OrderBy(v=>v.FlashCardTimes).FirstOrDefault(v => v.PracticeStage == Enumeration.PracticeStage.FlashCard);
|
||||
if (vocabulary != null)
|
||||
{
|
||||
return View(vocabulary);
|
||||
}
|
||||
else
|
||||
{
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
}
|
||||
|
||||
public ActionResult FlashCardNext(int id)
|
||||
{
|
||||
Vocabulary vocabulary;
|
||||
vocabulary = db.Vocabulary.First(v => v.Id == id);
|
||||
vocabulary.PracticeDate = DateTime.Now;
|
||||
vocabulary.FlashCardTimes +=1;
|
||||
db.Entry(vocabulary).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("FlashCard");
|
||||
}
|
||||
|
||||
public ActionResult FlashCardForgot(int id)
|
||||
{
|
||||
Vocabulary vocabulary;
|
||||
vocabulary = db.Vocabulary.First(v => v.Id == id);
|
||||
vocabulary.PracticeDate = DateTime.Now;
|
||||
vocabulary.FlashCardTimes =0;
|
||||
vocabulary.PracticeStage = Enumeration.PracticeStage.Select;
|
||||
db.Entry(vocabulary).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("FlashCard");
|
||||
}
|
||||
|
||||
public ActionResult UpdateDB()
|
||||
{
|
||||
|
||||
|
||||
|
||||
db.Vocabulary.Where(v => v.PracticeMemorized == false).ToList().ForEach(v => v.PracticeStage = Enumeration.PracticeStage.Memorized);
|
||||
db.Vocabulary.Where(v => v.PracticeMemorized == true && v.PracticeVisualize == false).ToList().ForEach(v => v.PracticeStage = Enumeration.PracticeStage.Visualize);
|
||||
db.Vocabulary.Where(v => v.PracticeMemorized == true && v.PracticeVisualize == true && v.PracticeApply == false).ToList().ForEach(v => v.PracticeStage = Enumeration.PracticeStage.Apply);
|
||||
|
||||
db.SaveChanges();
|
||||
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
db.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
protected override void OnActionExecuted(System.Web.Mvc.ActionExecutedContext filterContext)
|
||||
{
|
||||
ViewBag.P_Select = db.Vocabulary.Count(v => v.PracticeStage == Enumeration.PracticeStage.Select );
|
||||
ViewBag.P_Memorized = db.Vocabulary.Count(v => v.PracticeStage == Enumeration.PracticeStage.Memorized && v.PracticeDate < DateTime.Today);
|
||||
ViewBag.P_Visualize = db.Vocabulary.Count(v => v.PracticeStage == Enumeration.PracticeStage.Visualize && v.PracticeDate < DateTime.Today);
|
||||
ViewBag.P_Apply = db.Vocabulary.Count(v => v.PracticeStage == Enumeration.PracticeStage.Apply && v.PracticeDate < DateTime.Today);
|
||||
ViewBag.P_Review = db.Vocabulary.Count(v => v.PracticeStage == Enumeration.PracticeStage.Review && v.PracticeDate < DateTime.Today);
|
||||
}
|
||||
}
|
||||
}
|
||||
24
Chruch.Net/Areas/English/EnglishAreaRegistration.cs
Normal file
24
Chruch.Net/Areas/English/EnglishAreaRegistration.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace Chruch.Net.Areas.English
|
||||
{
|
||||
public class EnglishAreaRegistration : AreaRegistration
|
||||
{
|
||||
public override string AreaName
|
||||
{
|
||||
get
|
||||
{
|
||||
return "English";
|
||||
}
|
||||
}
|
||||
|
||||
public override void RegisterArea(AreaRegistrationContext context)
|
||||
{
|
||||
context.MapRoute(
|
||||
"English_default",
|
||||
"English/{controller}/{action}/{id}",
|
||||
new { controller= "Vocabularies", action = "Index", id = UrlParameter.Optional }
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
705
Chruch.Net/Areas/English/Views/Shared/_Layout.cshtml
Normal file
705
Chruch.Net/Areas/English/Views/Shared/_Layout.cshtml
Normal file
@ -0,0 +1,705 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>@ViewBag.Title - English Vocalbulary</title>
|
||||
@Scripts.Render("~/bundles/modernizr")
|
||||
<!-- Required Meta Tags Always Come First -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<!-- Favicon -->
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<!-- Google Fonts -->
|
||||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans%3A400%2C300%2C500%2C600%2C700%7CPlayfair+Display%7CRoboto%7CRaleway%7CSpectral%7CRubik">
|
||||
<!-- CSS Global Compulsory -->
|
||||
|
||||
@Styles.Render("~/Content/bootstrap")
|
||||
@Styles.Render("~/Content/DashboardCss")
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
|
||||
@Scripts.Render("~/bundles/jquery")
|
||||
<!-- Header -->
|
||||
<header id="js-header" class="u-header u-header--sticky-top">
|
||||
<div class="u-header__section u-header__section--admin-dark g-min-height-65">
|
||||
<nav class="navbar no-gutters g-pa-0">
|
||||
<div class="col-auto d-flex flex-nowrap u-header-logo-toggler g-py-12">
|
||||
<!-- Logo -->
|
||||
<a href="#" class="align-self-center d-flex g-hidden-xs-down g-line-height-1 g-ml-40 g-mt-5 navbar-brand py-0">
|
||||
<img src="/Images/logo-light.png" class="g-height-50 img-fluid">
|
||||
|
||||
</a>
|
||||
<!-- End Logo -->
|
||||
<!-- Sidebar Toggler -->
|
||||
<a class="js-side-nav u-header__nav-toggler d-flex align-self-center ml-auto" href="#!" data-hssm-class="u-side-nav--mini u-sidebar-navigation-v1--mini" data-hssm-body-class="u-side-nav-mini" data-hssm-is-close-all-except-this="true" data-hssm-target="#sideNav">
|
||||
<i class="hs-admin-align-left"></i>
|
||||
</a>
|
||||
<!-- End Sidebar Toggler -->
|
||||
</div>
|
||||
<!-- Top Search Bar -->
|
||||
<form id="searchMenu" class="u-header--search col-sm g-py-12 g-ml-15--sm g-ml-20--md g-mr-10--sm" aria-labelledby="searchInvoker" action="#!">
|
||||
<div class="input-group g-max-width-450">
|
||||
<input class="form-control form-control-md g-rounded-4" type="text" placeholder="Enter search keywords">
|
||||
<button type="submit" class="btn u-btn-outline-primary g-brd-none g-bg-transparent--hover g-pos-abs g-top-0 g-right-0 d-flex g-width-40 h-100 align-items-center justify-content-center g-font-size-18 g-z-index-2">
|
||||
<i class="hs-admin-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<!-- End Top Search Bar -->
|
||||
<!-- Messages/Notifications/Top Search Bar/Top User -->
|
||||
<div class="col-auto d-flex g-py-12 g-pl-40--lg ml-auto">
|
||||
<!-- Top Messages -->
|
||||
<div class="g-pos-rel g-hidden-sm-down g-mr-5">
|
||||
<a class="d-block text-uppercase u-header-icon-v1 g-pos-rel g-width-40 g-height-40 rounded-circle g-font-size-20" href="@Url.Action("Create","Vocabularies")">
|
||||
@if (ViewBag.P_Select > 0)
|
||||
{
|
||||
<span class="u-badge-v1 g-top-7 g-right-7 g-width-18 g-height-18 g-bg-primary g-font-size-10 g-color-white rounded-circle p-0">@ViewBag.P_Select</span>
|
||||
}
|
||||
<i class="hs-admin-search g-absolute-centered"></i>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<div class="g-pos-rel g-hidden-sm-down g-mr-5">
|
||||
<a class="d-block text-uppercase u-header-icon-v1 g-pos-rel g-width-40 g-height-40 rounded-circle g-font-size-20" href="@Url.Action("Memorized","Vocabularies")">
|
||||
@if (ViewBag.P_Memorized > 0)
|
||||
{
|
||||
<span class="u-badge-v1 g-top-7 g-right-7 g-width-18 g-height-18 g-bg-primary g-font-size-10 g-color-white rounded-circle p-0">@ViewBag.P_Memorized</span>
|
||||
}
|
||||
<i class="hs-admin-book g-absolute-centered"></i>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<div class="g-pos-rel g-hidden-sm-down g-mr-5">
|
||||
<a class="d-block text-uppercase u-header-icon-v1 g-pos-rel g-width-40 g-height-40 rounded-circle g-font-size-20" href="@Url.Action("Visualize","Vocabularies")">
|
||||
@if (ViewBag.P_Visualize > 0)
|
||||
{
|
||||
<span class="u-badge-v1 g-top-7 g-right-7 g-width-18 g-height-18 g-bg-primary g-font-size-10 g-color-white rounded-circle p-0">@ViewBag.P_Visualize</span>
|
||||
}
|
||||
<i class="hs-admin-gallery g-absolute-centered"></i>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<div class="g-pos-rel g-hidden-sm-down g-mr-5">
|
||||
<a class="d-block text-uppercase u-header-icon-v1 g-pos-rel g-width-40 g-height-40 rounded-circle g-font-size-20" href="@Url.Action("Apply","Vocabularies")">
|
||||
@if (ViewBag.P_Apply > 0)
|
||||
{
|
||||
<span class="u-badge-v1 g-top-7 g-right-7 g-width-18 g-height-18 g-bg-primary g-font-size-10 g-color-white rounded-circle p-0">@ViewBag.P_Apply</span>
|
||||
}
|
||||
<i class="hs-admin-comment-alt g-absolute-centered"></i>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<div class="g-pos-rel g-hidden-sm-down g-mr-5">
|
||||
<a class="d-block text-uppercase u-header-icon-v1 g-pos-rel g-width-40 g-height-40 rounded-circle g-font-size-20" href="@Url.Action("Review","Vocabularies")">
|
||||
@if (ViewBag.P_Review > 0)
|
||||
{
|
||||
<span class="u-badge-v1 g-top-7 g-right-7 g-width-18 g-height-18 g-bg-primary g-font-size-10 g-color-white rounded-circle p-0">@ViewBag.P_Review</span>
|
||||
}
|
||||
<i class="hs-admin-loop g-absolute-centered"></i>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<div class="g-pos-rel g-hidden-sm-down g-mr-5">
|
||||
<a class="d-block text-uppercase u-header-icon-v1 g-pos-rel g-width-40 g-height-40 rounded-circle g-font-size-20" href="@Url.Action("FlashCard","Vocabularies")">
|
||||
@if (ViewBag.P_Review > 0)
|
||||
{
|
||||
<span class="u-badge-v1 g-top-7 g-right-7 g-width-18 g-height-18 g-bg-primary g-font-size-10 g-color-white rounded-circle p-0">@ViewBag.P_Review</span>
|
||||
}
|
||||
<i class="hs-admin-loop g-absolute-centered"></i>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<!-- End Top Messages -->
|
||||
|
||||
</div>
|
||||
<!-- End Messages/Notifications/Top Search Bar/Top User -->
|
||||
<!-- Top Activity Toggler -->
|
||||
<a id="activityInvoker" class="text-uppercase u-header-icon-v1 g-pos-rel g-width-40 g-height-40 rounded-circle g-font-size-20" href="#!" aria-controls="activityMenu" aria-haspopup="true" aria-expanded="false" data-dropdown-event="click" data-dropdown-target="#activityMenu"
|
||||
data-dropdown-type="css-animation" data-dropdown-animation-in="fadeInRight" data-dropdown-animation-out="fadeOutRight" data-dropdown-duration="300">
|
||||
<i class="hs-admin-align-right g-absolute-centered"></i>
|
||||
</a>
|
||||
<!-- End Top Activity Toggler -->
|
||||
</nav>
|
||||
<!-- Top Activity Panel -->
|
||||
<div id="activityMenu" class="js-custom-scroll u-header-sidebar g-pos-fix g-top-0 g-left-auto g-right-0 g-z-index-4 g-width-300 g-width-400--sm g-height-100vh" aria-labelledby="activityInvoker">
|
||||
<div class="u-header-dropdown-bordered-v1 g-pa-20">
|
||||
<a id="activityInvokerClose" class="pull-right g-color-lightblue-v2" href="#!" aria-controls="activityMenu" aria-haspopup="true" aria-expanded="false" data-dropdown-event="click" data-dropdown-target="#activityMenu" data-dropdown-type="css-animation"
|
||||
data-dropdown-animation-in="fadeInRight" data-dropdown-animation-out="fadeOutRight" data-dropdown-duration="300">
|
||||
<i class="hs-admin-close"></i>
|
||||
</a>
|
||||
<h4 class="text-uppercase g-font-size-default g-letter-spacing-0_5 g-mr-20 g-mb-0">Activity</h4>
|
||||
</div>
|
||||
<!-- Activity Short Stat. -->
|
||||
<section class="g-pa-20">
|
||||
<div class="media align-items-center u-link-v5 g-color-white">
|
||||
<div class="media-body align-self-center g-line-height-1_3 g-font-weight-300 g-font-size-40">
|
||||
624 <span class="g-font-size-16">+3%</span>
|
||||
</div>
|
||||
<div class="d-flex align-self-center g-font-size-25 g-line-height-1 g-color-lightblue-v3 ml-auto">$49,000</div>
|
||||
<div class="d-flex align-self-center g-ml-8">
|
||||
<svg class="g-fill-white-opacity-0_5" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<svg class="g-fill-lightblue-v3" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)" points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<span class="g-font-size-16">Transactions</span>
|
||||
</section>
|
||||
<!-- End Activity Short Stat. -->
|
||||
<!-- Activity Bars -->
|
||||
<section class="g-pa-20 g-mb-10">
|
||||
<!-- Advertising Income -->
|
||||
<div class="g-mb-30">
|
||||
<div class="media u-link-v5 g-color-white g-mb-10">
|
||||
<span class="media-body align-self-center">Advertising Income</span>
|
||||
<span class="d-flex align-self-center">
|
||||
<svg class="g-fill-white-opacity-0_5" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<svg class="g-fill-lightblue-v3" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)" points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="progress g-height-4 g-bg-gray-light-v8 g-rounded-2">
|
||||
<div class="progress-bar g-bg-teal-v2 g-rounded-2" role="progressbar" style="width: 70%" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Advertising Income -->
|
||||
<!-- Projects Income -->
|
||||
<div class="g-mb-30">
|
||||
<div class="media u-link-v5 g-color-white g-mb-10">
|
||||
<span class="media-body align-self-center">Projects Income</span>
|
||||
<span class="d-flex align-self-center">
|
||||
<svg class="g-fill-red" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<svg class="g-fill-white-opacity-0_5" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)" points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="progress g-height-4 g-bg-gray-light-v8 g-rounded-2">
|
||||
<div class="progress-bar g-bg-lightblue-v4 g-rounded-2" role="progressbar" style="width: 40%" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Projects Income -->
|
||||
<!-- Template Sales -->
|
||||
<div>
|
||||
<div class="media u-link-v5 g-color-white g-mb-10">
|
||||
<span class="media-body align-self-center">Template Sales</span>
|
||||
<span class="d-flex align-self-center">
|
||||
<svg class="g-fill-white-opacity-0_5" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<svg class="g-fill-lightblue-v3" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)" points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="progress g-height-4 g-bg-gray-light-v8 g-rounded-2">
|
||||
<div class="progress-bar g-bg-darkblue-v2 g-rounded-2" role="progressbar" style="width: 90%" aria-valuenow="90" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Template Sales -->
|
||||
</section>
|
||||
<!-- End Activity Bars -->
|
||||
<!-- Activity Accounts -->
|
||||
<section class="g-pa-20">
|
||||
<h5 class="text-uppercase g-font-size-default g-letter-spacing-0_5 g-mb-10">My accounts</h5>
|
||||
<div class="media u-header-dropdown-bordered-v2 g-py-10">
|
||||
<div class="d-flex align-self-center g-mr-12">
|
||||
<span class="u-badge-v2--sm g-pos-stc g-transform-origin--top-left g-bg-teal-v2"></span>
|
||||
</div>
|
||||
<div class="media-body align-self-center">Credit Card</div>
|
||||
<div class="d-flex text-right">$12.240</div>
|
||||
</div>
|
||||
<div class="media u-header-dropdown-bordered-v2 g-py-10">
|
||||
<div class="d-flex align-self-center g-mr-12">
|
||||
<span class="u-badge-v2--sm g-pos-stc g-transform-origin--top-left g-bg-lightblue-v4"></span>
|
||||
</div>
|
||||
<div class="media-body align-self-center">Debit Card</div>
|
||||
<div class="d-flex text-right">$228.110</div>
|
||||
</div>
|
||||
<div class="media g-py-10">
|
||||
<div class="d-flex align-self-center g-mr-12">
|
||||
<span class="u-badge-v2--sm g-pos-stc g-transform-origin--top-left g-bg-darkblue-v2"></span>
|
||||
</div>
|
||||
<div class="media-body align-self-center">Savings Account</div>
|
||||
<div class="d-flex text-right">$128.248.000</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- End Activity Accounts -->
|
||||
<!-- Activity Transactions -->
|
||||
<section class="g-pa-20">
|
||||
<h5 class="text-uppercase g-font-size-default g-letter-spacing-0_5 g-mb-10">Transactions</h5>
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-plus g-color-lightblue-v4"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$240.00</strong>
|
||||
<p class="mb-0 g-mt-5">Addiction When Gambling Becomes</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> <small>5 Min ago</small>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-minus g-color-red"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$126.00</strong>
|
||||
<p class="mb-0 g-mt-5">Make Myspace Your</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> <small>25 Nov 2017</small>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-plus g-color-lightblue-v4"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$560.00</strong>
|
||||
<p class="mb-0 g-mt-5">Writing A Good Headline</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> <small>22 Nov 2017</small>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-plus g-color-lightblue-v4"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$6.00</strong>
|
||||
<p class="mb-0 g-mt-5">Buying Used Electronic Equipment</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> <small>13 Oct 2017</small>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-plus g-color-lightblue-v4"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$320.00</strong>
|
||||
<p class="mb-0 g-mt-5">Gambling Becomes A Problem</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> <small>27 Jul 2017</small>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-minus g-color-red"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$28.00</strong>
|
||||
<p class="mb-0 g-mt-5">Baby Monitor Technology</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> <small>05 Mar 2017</small>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-plus g-color-lightblue-v4"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$490.00</strong>
|
||||
<p class="mb-0 g-mt-5">Adwords Keyword Research For Beginners</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 text-uppercase g-font-size-11 g-letter-spacing-0_5 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> 09 Feb 2017
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-minus g-color-red"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$14.20</strong>
|
||||
<p class="mb-0 g-mt-5">A Good Autoresponder</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 text-uppercase g-font-size-11 g-letter-spacing-0_5 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> 09 Feb 2017
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
</section>
|
||||
<!-- End Activity Transactions -->
|
||||
</div>
|
||||
<!-- End Top Activity Panel -->
|
||||
</div>
|
||||
</header>
|
||||
<!-- End Header -->
|
||||
|
||||
<main class="container-fluid px-0">
|
||||
<div class="row no-gutters g-pos-rel g-overflow-x-hidden">
|
||||
<!-- Sidebar Nav -->
|
||||
<div id="sideNav" class="col-auto u-sidebar-navigation-v1 u-sidebar-navigation--dark">
|
||||
<ul id="sideNavMenu" class="u-sidebar-navigation-v1-menu u-side-nav--top-level-menu g-min-height-100vh mb-0 g-pt-65">
|
||||
|
||||
<!-- Packages -->
|
||||
<li class="u-sidebar-navigation-v1-menu-item u-side-nav--top-level-menu-item has-active">
|
||||
<a class="media u-side-nav--top-level-menu-link u-side-nav--hide-on-hidden g-px-15 g-py-12" href="@(Url.Action("Index","NewVisitors"))">
|
||||
<span class="d-flex align-self-center g-font-size-18 g-mr-18">
|
||||
<i class="hs-admin-medall"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">新朋友</span>
|
||||
</a>
|
||||
</li>
|
||||
<!-- End Packages -->
|
||||
|
||||
<li class="u-sidebar-navigation-v1-menu-item u-side-nav--top-level-menu-item">
|
||||
<a class="media u-side-nav--top-level-menu-link u-side-nav--hide-on-hidden g-px-15 g-py-12" href="#">
|
||||
<span class="d-flex align-self-center g-font-size-18 g-mr-18">
|
||||
<i class="hs-admin-user"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">教友清單</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="u-sidebar-navigation-v1-menu-item u-side-nav--top-level-menu-item">
|
||||
<a class="media u-side-nav--top-level-menu-link u-side-nav--hide-on-hidden g-px-15 g-py-12" href="#">
|
||||
<span class="d-flex align-self-center g-font-size-18 g-mr-18">
|
||||
<i class="hs-admin-crown"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">細胞小組管理</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="u-sidebar-navigation-v1-menu-item u-side-nav--top-level-menu-item">
|
||||
<a class="media u-side-nav--top-level-menu-link u-side-nav--hide-on-hidden g-px-15 g-py-12" href="#">
|
||||
<span class="d-flex align-self-center g-font-size-18 g-mr-18">
|
||||
<i class="hs-admin-announcement"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">最新消息管理</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="u-sidebar-navigation-v1-menu-item u-side-nav--top-level-menu-item">
|
||||
<a class="media u-side-nav--top-level-menu-link u-side-nav--hide-on-hidden g-px-15 g-py-12" href="#">
|
||||
<span class="d-flex align-self-center g-font-size-18 g-mr-18">
|
||||
<i class="hs-admin-basketball"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">活動管理</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="u-sidebar-navigation-v1-menu-item u-side-nav--top-level-menu-item">
|
||||
<a class="media u-side-nav--top-level-menu-link u-side-nav--hide-on-hidden g-px-15 g-py-12" href="#">
|
||||
<span class="d-flex align-self-center g-font-size-18 g-mr-18">
|
||||
<i class="hs-admin-blackboard"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">主日信息發布</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End Sidebar Nav -->
|
||||
|
||||
<div class="col g-ml-45 g-ml-0--lg g-pt-65">
|
||||
<div class="g-bg-gray-light-v8 g-pa-20">
|
||||
<ul class="u-list-inline g-color-gray-dark-v6">
|
||||
|
||||
<li class="list-inline-item g-mr-10">
|
||||
<a class="u-link-v5 g-color-gray-dark-v6 g-color-lightblue-v3--hover g-valign-middle" href="#">Dashboard</a>
|
||||
<i class="hs-admin-angle-right g-font-size-12 g-color-gray-light-v6 g-valign-middle g-ml-10"></i>
|
||||
</li>
|
||||
@if (!string.IsNullOrEmpty(ViewBag.returnUrl2))
|
||||
{
|
||||
|
||||
<li class="list-inline-item g-mr-10">
|
||||
<a class="u-link-v5 g-color-gray-dark-v6 g-color-lightblue-v3--hover g-valign-middle" href="@ViewBag.returnUrl2">@ViewBag.returnUrlTitle2</a>
|
||||
<i class="hs-admin-angle-right g-font-size-12 g-color-gray-light-v6 g-valign-middle g-ml-10"></i>
|
||||
</li>
|
||||
}
|
||||
|
||||
@if (!string.IsNullOrEmpty(ViewBag.returnUrl))
|
||||
{
|
||||
|
||||
<li class="list-inline-item g-mr-10">
|
||||
<a class="u-link-v5 g-color-gray-dark-v6 g-color-lightblue-v3--hover g-valign-middle" href="@ViewBag.returnUrl">@ViewBag.returnUrlTitle</a>
|
||||
<i class="hs-admin-angle-right g-font-size-12 g-color-gray-light-v6 g-valign-middle g-ml-10"></i>
|
||||
</li>
|
||||
}
|
||||
|
||||
<li class="list-inline-item">
|
||||
<span class="g-valign-middle">@ViewBag.Title</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@*<section class="g-color-white g-bg-gray-dark-v1 g-py-30" style="background-image: url(/images/bg/pattern3.png);">
|
||||
<div class="container-fluid">
|
||||
<div class="d-sm-flex text-center">
|
||||
<div class="align-self-center">
|
||||
<h2 class="h3 g-font-weight-300 w-100 g-mb-10 g-mb-0--md">@ViewBag.title</h2>
|
||||
</div>
|
||||
|
||||
@*<div class="align-self-center ml-auto">
|
||||
<ul class="u-list-inline">
|
||||
<li class="list-inline-item g-mr-5">
|
||||
<a class="u-link-v5 g-color-white g-color-primary--hover" href="#!">Home</a>
|
||||
<i class="g-color-gray-light-v2 g-ml-5">/</i>
|
||||
</li>
|
||||
<li class="list-inline-item g-mr-5">
|
||||
<a class="u-link-v5 g-color-white g-color-primary--hover" href="#!">Pages</a>
|
||||
<i class="g-color-gray-light-v2 g-ml-5">/</i>
|
||||
</li>
|
||||
<li class="list-inline-item g-color-primary">
|
||||
<span>About Us</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>*@
|
||||
<div class="g-pt-20 g-overflow-y-auto g-pt-20" style="height: calc(100vh - 225px);">
|
||||
|
||||
@RenderBody()
|
||||
</div>
|
||||
<!-- Footer -->
|
||||
<footer id="footer" class="u-footer--bottom-sticky g-bg-white g-color-gray-dark-v6 g-brd-top g-brd-gray-light-v7 g-pa-20">
|
||||
<div class="row align-items-center">
|
||||
<!-- Footer Nav -->
|
||||
<div class="col-md-4 g-mb-10 g-mb-0--md">
|
||||
<ul class="list-inline text-center text-md-left mb-0">
|
||||
<li class="list-inline-item">
|
||||
<a class="g-color-gray-dark-v6 g-color-lightblue-v3--hover" href="#!">FAQ</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="g-color-gray-dark-v6">|</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a class="g-color-gray-dark-v6 g-color-lightblue-v3--hover" href="#!">Support</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="g-color-gray-dark-v6">|</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a class="g-color-gray-dark-v6 g-color-lightblue-v3--hover" href="#!">Contact Us</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End Footer Nav -->
|
||||
<!-- Footer Socials -->
|
||||
<div class="col-md-4 g-mb-10 g-mb-0--md">
|
||||
<ul class="list-inline g-font-size-16 text-center mb-0">
|
||||
<li class="list-inline-item g-mx-10">
|
||||
<a href="#!" class="g-color-facebook g-color-lightblue-v3--hover">
|
||||
<i class="fa fa-facebook-square"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item g-mx-10">
|
||||
<a href="#!" class="g-color-google-plus g-color-lightblue-v3--hover">
|
||||
<i class="fa fa-google-plus"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item g-mx-10">
|
||||
<a href="#!" class="g-color-black g-color-lightblue-v3--hover">
|
||||
<i class="fa fa-github"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item g-mx-10">
|
||||
<a href="#!" class="g-color-twitter g-color-lightblue-v3--hover">
|
||||
<i class="fa fa-twitter"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End Footer Socials -->
|
||||
<!-- Footer Copyrights -->
|
||||
<div class="col-md-4 text-center text-md-right">
|
||||
<small class="d-block g-font-size-default">© 2018 Htmlstream. All Rights Reserved.</small>
|
||||
</div>
|
||||
<!-- End Footer Copyrights -->
|
||||
</div>
|
||||
</footer>
|
||||
<!-- End Footer -->
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Scripts.Render("~/bundles/jqueryval")
|
||||
|
||||
@Scripts.Render("~/bundles/common")
|
||||
@Scripts.Render("~/bundles/bootstrap")
|
||||
@Scripts.Render("~/bundles/Dashboard")
|
||||
<!-- JS Plugins Init. -->
|
||||
<script>
|
||||
$(function (parameters) {
|
||||
// initialization of custom select
|
||||
$('.js-select').selectpicker();
|
||||
|
||||
// initialization of hamburger
|
||||
$.HSCore.helpers.HSHamburgers.init('.hamburger');
|
||||
|
||||
// initialization of charts
|
||||
$.HSCore.components.HSAreaChart.init('.js-area-chart');
|
||||
$.HSCore.components.HSDonutChart.init('.js-donut-chart');
|
||||
$.HSCore.components.HSBarChart.init('.js-bar-chart');
|
||||
|
||||
// initialization of sidebar navigation component
|
||||
$.HSCore.components.HSSideNav.init('.js-side-nav', {
|
||||
afterOpen: function () {
|
||||
setTimeout(function () {
|
||||
$.HSCore.components.HSAreaChart.init('.js-area-chart');
|
||||
$.HSCore.components.HSDonutChart.init('.js-donut-chart');
|
||||
$.HSCore.components.HSBarChart.init('.js-bar-chart');
|
||||
}, 400);
|
||||
},
|
||||
afterClose: function () {
|
||||
setTimeout(function () {
|
||||
$.HSCore.components.HSAreaChart.init('.js-area-chart');
|
||||
$.HSCore.components.HSDonutChart.init('.js-donut-chart');
|
||||
$.HSCore.components.HSBarChart.init('.js-bar-chart');
|
||||
}, 400);
|
||||
}
|
||||
});
|
||||
|
||||
// initialization of range datepicker
|
||||
$.HSCore.components.HSRangeDatepicker.init('#rangeDatepicker, #rangeDatepicker2, #rangeDatepicker3');
|
||||
|
||||
// initialization of datepicker
|
||||
$.HSCore.components.HSDatepicker.init('#datepicker', {
|
||||
dayNamesMin: [
|
||||
'SU',
|
||||
'MO',
|
||||
'TU',
|
||||
'WE',
|
||||
'TH',
|
||||
'FR',
|
||||
'SA'
|
||||
]
|
||||
});
|
||||
|
||||
// initialization of HSDropdown component
|
||||
$.HSCore.components.HSDropdown.init($('[data-dropdown-target]'), { dropdownHideOnScroll: false });
|
||||
|
||||
// initialization of custom scrollbar
|
||||
$.HSCore.components.HSScrollBar.init($('.js-custom-scroll'));
|
||||
|
||||
// initialization of popups
|
||||
$.HSCore.components.HSPopup.init('.js-fancybox', {
|
||||
btnTpl: {
|
||||
smallBtn: '<button data-fancybox-close class="btn g-pos-abs g-top-25 g-right-30 g-line-height-1 g-bg-transparent g-font-size-16 g-color-gray-light-v3 g-brd-none p-0" title=""><i class="hs-admin-close"></i></button>'
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
function Speak(word) {
|
||||
var msg = new SpeechSynthesisUtterance(word);
|
||||
window.speechSynthesis.speak(msg);
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@RenderSection("scripts", required: false)
|
||||
</body>
|
||||
</html>
|
||||
110
Chruch.Net/Areas/English/Views/Shared/_SpellPractice.cshtml
Normal file
110
Chruch.Net/Areas/English/Views/Shared/_SpellPractice.cshtml
Normal file
@ -0,0 +1,110 @@
|
||||
@model Church.Net.Entity.Vocabulary
|
||||
|
||||
<style>
|
||||
|
||||
.vocalInput {
|
||||
border: none;
|
||||
width: 10.5ch;
|
||||
background: repeating-linear-gradient(90deg, dimgrey 0, dimgrey 1ch, transparent 0, transparent 1.5ch) 0 100%/100% 2px no-repeat;
|
||||
color: dimgrey;
|
||||
font: 5ch consolas, monospace;
|
||||
letter-spacing: .5ch;
|
||||
}
|
||||
|
||||
.vocalInput:focus {
|
||||
outline: none;
|
||||
color: dodgerblue;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="divSpellingPractice" class="jumbotron m-auto text-center">
|
||||
<span class="mb-1 badge badge-info">
|
||||
@Model.PartOfSpeech.ToString()
|
||||
|
||||
</span>
|
||||
<h1 class="display-3" id="MarskedAnswer">
|
||||
@Model.MaskedWord
|
||||
<button class="btn btn-success p-4" onclick="Speak('@Html.Raw(Model.Word)')"><i class="g-absolute-centered g-font-size-20 hs-admin-announcement"></i></button>
|
||||
@if (Model.PartOfSpeech == Church.Net.Entity.Enumeration.PartsOfSpeech.VerbsUnRegular)
|
||||
{
|
||||
@Html.Raw("<br>" + Model.MaskedVerbPast + " ; " + Model.MaskedVerbParticiple)
|
||||
}
|
||||
</h1>
|
||||
<p><img id="volImg" class="img-fluid img-thumbnail g-max-width-380" src="@Model.ImagesUrl" /></p>
|
||||
<p class="lead" id="definition">
|
||||
@Model.DefinitionEn
|
||||
|
||||
</p>
|
||||
<hr class="my-4">
|
||||
<div class="progress mb-2">
|
||||
<div id="spellProgress" class="progress-bar progress-bar-striped progress-bar-animated bg-success" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: 0%"></div>
|
||||
</div>
|
||||
|
||||
<input class="vocalInput" id="txSpell" onkeyup="checkAnswer(this.value)" style="width:@Html.Raw(Model.Word.Length*1.5)px" />
|
||||
<br />
|
||||
<br />
|
||||
<p class="lead">
|
||||
<button class="btn btn-primary btn-lg" role="button" onclick="ShowTheAnswer()">Check the answer</button>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
var spellingAnswer, lenOfAnswer;
|
||||
var successCount, successReq;
|
||||
var nextBtnId;
|
||||
function SetUpSpellingQuitze(answer, showingId) {
|
||||
spellingAnswer = answer;
|
||||
lenOfAnswer = answer.length;
|
||||
nextBtnId = showingId;
|
||||
successReq = @Model.PracticeTimes;
|
||||
$("#txSpell").width(lenOfAnswer * 1.5 + 'ch');
|
||||
successCount = 0
|
||||
|
||||
$("#spellProgress").width((successCount / successReq * 100) + "%");
|
||||
$("#spellProgress").html(successCount + ' / ' + successReq);
|
||||
$("#txSpell").focus();
|
||||
}
|
||||
|
||||
function ShowTheAnswer() {
|
||||
//al('@Model.Word');
|
||||
|
||||
|
||||
Swal.fire({
|
||||
title: '@Model.Word',
|
||||
text:'@Html.Raw(Model.DefinitionCh.Replace(Environment.NewLine,""))',
|
||||
imageUrl: '@Model.ImagesUrl',
|
||||
imageHeight: 200,
|
||||
imageAlt: 'Answer'
|
||||
})
|
||||
}
|
||||
function checkAnswer(value) {
|
||||
if (value.length == lenOfAnswer) {
|
||||
if (value.toLowerCase() == spellingAnswer.toLowerCase()) {
|
||||
successCount = successCount + 1;
|
||||
} else {
|
||||
successCount = 0;
|
||||
}
|
||||
$("#txSpell").val("");
|
||||
if (successCount >= successReq) {
|
||||
if (nextBtnId == 'divNextQuiz') {
|
||||
$("#" + nextBtnId).show("divNextQuiz");
|
||||
} else {
|
||||
|
||||
swal("Good job!", "", "success").then(function () {
|
||||
window.location.href = nextBtnId;
|
||||
});
|
||||
}
|
||||
//
|
||||
}
|
||||
}
|
||||
$("#spellProgress").width((successCount / successReq * 100) + "%");
|
||||
$("#spellProgress").html(successCount+' / '+successReq);
|
||||
|
||||
}
|
||||
@*$(function () {
|
||||
|
||||
SetUpSpellingQuitze('@Model.Word', 5, "divNextQuiz");
|
||||
})*@
|
||||
</script>
|
||||
93
Chruch.Net/Areas/English/Views/Vocabularies/Apply.cshtml
Normal file
93
Chruch.Net/Areas/English/Views/Vocabularies/Apply.cshtml
Normal file
@ -0,0 +1,93 @@
|
||||
@model Church.Net.Entity.Vocabulary
|
||||
|
||||
@{
|
||||
ViewBag.title = "Apply";
|
||||
}
|
||||
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row center">
|
||||
|
||||
|
||||
@Html.Partial("~/Areas/English/Views/Shared/_SpellPractice.cshtml", Model)
|
||||
|
||||
|
||||
</div>
|
||||
@using (Html.BeginForm("ApplyNext"))
|
||||
{
|
||||
<div class="form-group" id="divNextQuiz" style="display:none">
|
||||
|
||||
<div class="row">
|
||||
<iframe id="frameDictionary" src="" class="g-width-100vw" style="height:500px;display:none"></iframe>
|
||||
<div class="col-md-2 g-mb-20--md">
|
||||
<button type="button" class="btn u-btn-outline-primary" onclick="QueryWord()">Query</button>
|
||||
<button type="button" class="btn u-btn-outline-primary" onclick="QueryWord2()">Query</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DefinitionEn, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
@Html.HiddenFor(model=>model.Id)
|
||||
@Html.EditorFor(model => model.PracticeSentence, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", @multiLine = "true" } })
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="submit" value="Next" class="btn btn-default" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
<div>
|
||||
@Html.ActionLink("Back to List", "Index")
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@section scripts{
|
||||
<script>
|
||||
$(function(){
|
||||
SetUpSpellingQuitze('@Model.Word','divNextQuiz');
|
||||
})
|
||||
|
||||
function QueryWord() {
|
||||
if ($("#Word").val() != '') {
|
||||
|
||||
|
||||
$('#frameDictionary').show('fast');
|
||||
$('#frameDictionary').attr('src', 'https://dictionary.cambridge.org/us/dictionary/english-chinese-traditional/@Model.Word');
|
||||
$("#DefinitionEn").focus();
|
||||
$([document.documentElement, document.body]).animate({
|
||||
scrollTop: $("#frameDictionary").offset().top
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
function QueryWord2() {
|
||||
if ($("#Word").val() != '') {
|
||||
|
||||
|
||||
$('#frameDictionary').show('fast');
|
||||
$('#frameDictionary').attr('src', 'https://dict.cn/@Model.Word');
|
||||
$("#DefinitionEn").focus();
|
||||
$([document.documentElement, document.body]).animate({
|
||||
scrollTop: $("#frameDictionary").offset().top
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
}
|
||||
|
||||
187
Chruch.Net/Areas/English/Views/Vocabularies/Create.cshtml
Normal file
187
Chruch.Net/Areas/English/Views/Vocabularies/Create.cshtml
Normal file
@ -0,0 +1,187 @@
|
||||
@model Church.Net.Entity.Vocabulary
|
||||
|
||||
@{
|
||||
ViewBag.title="Select Word";
|
||||
}
|
||||
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PartOfSpeech, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EnumDropDownListFor(model => model.PartOfSpeech, htmlAttributes: new { @class = "w-100 u-select-v2 u-shadow-v19 g-brd-none g-color-black g-color-primary--hover g-bg-white text-left g-rounded-30 g-pl-30 g-py-12", @onchange = "PartOfSpeechChanged(value)" })
|
||||
@Html.ValidationMessageFor(model => model.PartOfSpeech, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Word, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Word, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Word, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-2 g-mb-20--md">
|
||||
<button type="button" class="btn u-btn-outline-primary" onclick="QueryWord()">Query</button>
|
||||
<button type="button" class="btn u-btn-outline-primary" onclick="QueryWord2()">Query</button>
|
||||
</div>
|
||||
<div class="col-md-4 g-mb-20--md nounPlural">
|
||||
@Html.LabelFor(model => model.NounPlural, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.NounPlural, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.NounPlural, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row verbForm" style="display:none">
|
||||
|
||||
<div class="col-md-4 g-mb-20--md ">
|
||||
@Html.LabelFor(model => model.VerbPast, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.VerbPast, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.VerbPast, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 g-mb-20--md ">
|
||||
@Html.LabelFor(model => model.VerbParticiple, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.VerbParticiple, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.VerbParticiple, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<iframe id="frameDictionary" src="" class="g-width-100vw" style="height:500px;display:none"></iframe>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DefinitionEn, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.DefinitionEn, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", @multiLine = "true" } })
|
||||
@Html.ValidationMessageFor(model => model.DefinitionEn, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DefinitionCh, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.DefinitionCh, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.DefinitionCh, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ImagesUrl, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.ImagesUrl, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.ImagesUrl, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
<button type="button" class="btn btn-primary" onclick="QueryImage()">Query</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="submit" value="Create" class="btn btn-default" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
@Html.ActionLink("Back to List", "Index")
|
||||
</div>
|
||||
|
||||
</div>
|
||||
}
|
||||
@section scripts{
|
||||
<script>
|
||||
|
||||
function PartOfSpeechChanged(value) {
|
||||
if (value == "2") {
|
||||
|
||||
$('.verbForm').show('slow')
|
||||
} else {
|
||||
|
||||
$('.verbForm').hide('slow')
|
||||
}
|
||||
|
||||
|
||||
if (value == "0") {
|
||||
|
||||
$('.nounPlural').show('slow')
|
||||
} else {
|
||||
|
||||
$('.nounPlural').hide('slow')
|
||||
}
|
||||
}
|
||||
|
||||
function QueryWord() {
|
||||
if ($("#Word").val() != '') {
|
||||
|
||||
|
||||
$('#frameDictionary').show('fast');
|
||||
$('#frameDictionary').attr('src', 'https://dictionary.cambridge.org/us/dictionary/english-chinese-traditional/' + $("#Word").val());
|
||||
$("#DefinitionEn").focus();
|
||||
$([document.documentElement, document.body]).animate({
|
||||
scrollTop: $("#frameDictionary").offset().top
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
function QueryWord2() {
|
||||
if ($("#Word").val() != '') {
|
||||
|
||||
|
||||
$('#frameDictionary').show('fast');
|
||||
$('#frameDictionary').attr('src', 'https://dict.cn/' + $("#Word").val());
|
||||
$("#DefinitionEn").focus();
|
||||
$([document.documentElement, document.body]).animate({
|
||||
scrollTop: $("#frameDictionary").offset().top
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
function QueryImage() {
|
||||
if ($("#Word").val() !='') {
|
||||
|
||||
|
||||
var win = window.open("https://www.google.com/search?q=" + $("#Word").val() + "&hl=en&tbm=isch&source=lnt&sa=X&ved=0ahUKEwiQyc-w1NrjAhWRKn0KHYGgDf8QpwUIIw&biw=1368&bih=770&dpr=2", '_blank');
|
||||
if (win) {
|
||||
//Browser has allowed it to be opened
|
||||
$("#ImageUrl").focus()
|
||||
win.focus();
|
||||
} else {
|
||||
//Browser has blocked it
|
||||
alert('Please allow popups for this website');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
}
|
||||
149
Chruch.Net/Areas/English/Views/Vocabularies/Delete.cshtml
Normal file
149
Chruch.Net/Areas/English/Views/Vocabularies/Delete.cshtml
Normal file
@ -0,0 +1,149 @@
|
||||
@model Church.Net.Entity.Vocabulary
|
||||
|
||||
@{
|
||||
Layout = null;
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<title>Delete</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Are you sure you want to <span class="g-color-primary g-ml-5">DELETE</span> this?
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Word, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Word)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.NounPlural, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.NounPlural)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.VerbPast, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.VerbPast)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.VerbParticiple, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.VerbParticiple)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PartOfSpeech, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PartOfSpeech)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ImagesUrl, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.ImagesUrl)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeDate, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeDate)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeSelect, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeSelect)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeMemorized, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeMemorized)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeVisualize, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeVisualize)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeApply, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeApply)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeReview, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeReview)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeSentence, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeSentence)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<div class="d-flex">
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" href="@Url.Action("Index")">Back to List</a>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Delete</button>
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
138
Chruch.Net/Areas/English/Views/Vocabularies/Details.cshtml
Normal file
138
Chruch.Net/Areas/English/Views/Vocabularies/Details.cshtml
Normal file
@ -0,0 +1,138 @@
|
||||
@model Church.Net.Entity.Vocabulary
|
||||
|
||||
@{
|
||||
Layout = null;
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<title>Details</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Detail of <span class="g-color-primary g-ml-5">Details</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Word, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Word)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.NounPlural, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.NounPlural)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.VerbPast, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.VerbPast)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.VerbParticiple, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.VerbParticiple)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PartOfSpeech, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PartOfSpeech)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ImagesUrl, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.ImagesUrl)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeDate, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeDate)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeSelect, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeSelect)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeMemorized, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeMemorized)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeVisualize, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeVisualize)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeApply, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeApply)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeReview, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeReview)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PracticeSentence, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PracticeSentence)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<div class="d-flex">
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" href="@Url.Action("Index")">Back to List</a>
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" href="@Url.Action("Edit", new { id = Model.Id })">Edit</button>
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
180
Chruch.Net/Areas/English/Views/Vocabularies/Edit.cshtml
Normal file
180
Chruch.Net/Areas/English/Views/Vocabularies/Edit.cshtml
Normal file
@ -0,0 +1,180 @@
|
||||
@model Church.Net.Entity.Vocabulary
|
||||
|
||||
@{
|
||||
ViewBag.title = "Edit Word";
|
||||
}
|
||||
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
@Html.HiddenFor(model => model.Id)
|
||||
@Html.HiddenFor(model => model.PracticeDate)
|
||||
@Html.HiddenFor(model => model.PracticeStage)
|
||||
@Html.HiddenFor(model => model.FlashCardTimes)
|
||||
@Html.HiddenFor(model => model.InsertDate)
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PartOfSpeech, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EnumDropDownListFor(model => model.PartOfSpeech, htmlAttributes: new { @class = "w-100 u-select-v2 u-shadow-v19 g-brd-none g-color-black g-color-primary--hover g-bg-white text-left g-rounded-30 g-pl-30 g-py-12", @onchange = "PartOfSpeechChanged(value)" })
|
||||
@Html.ValidationMessageFor(model => model.PartOfSpeech, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Word, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Word, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Word, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-2 g-mb-20--md">
|
||||
<button type="button" class="btn u-btn-outline-primary" onclick="QueryWord()">Query</button>
|
||||
</div>
|
||||
<div class="col-md-4 g-mb-20--md nounPlural">
|
||||
@Html.LabelFor(model => model.NounPlural, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.NounPlural, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.NounPlural, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row verbForm" style="display:none">
|
||||
|
||||
<div class="col-md-4 g-mb-20--md ">
|
||||
@Html.LabelFor(model => model.VerbPast, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.VerbPast, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.VerbPast, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 g-mb-20--md ">
|
||||
@Html.LabelFor(model => model.VerbParticiple, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.VerbParticiple, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.VerbParticiple, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<iframe id="frameDictionary" src="" class="g-width-100vw" style="height:500px;display:none"></iframe>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DefinitionEn, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.DefinitionEn, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", @multiLine = "true" } })
|
||||
@Html.ValidationMessageFor(model => model.DefinitionEn, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DefinitionCh, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.DefinitionCh, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.DefinitionCh, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ImagesUrl, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.ImagesUrl, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.ImagesUrl, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
<img class="img-thumbnail g-max-width-200" src="@Model.ImagesUrl" />
|
||||
<button type="button" class="btn btn-primary" onclick="QueryImage()">Query</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="submit" value="Create" class="btn btn-default" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
@Html.ActionLink("Back to List", "Index")
|
||||
</div>
|
||||
|
||||
</div>
|
||||
}
|
||||
@section scripts{
|
||||
<script>
|
||||
|
||||
function PartOfSpeechChanged(value) {
|
||||
if (value == "2") {
|
||||
|
||||
$('.verbForm').show('slow')
|
||||
} else {
|
||||
|
||||
$('.verbForm').hide('slow')
|
||||
}
|
||||
|
||||
|
||||
if (value == "0") {
|
||||
|
||||
$('.nounPlural').show('slow')
|
||||
} else {
|
||||
|
||||
$('.nounPlural').hide('slow')
|
||||
}
|
||||
}
|
||||
|
||||
function QueryWord() {
|
||||
if ($("#Word").val() != '') {
|
||||
|
||||
|
||||
$('#frameDictionary').show('fast');
|
||||
$('#frameDictionary').attr('src', 'https://dictionary.cambridge.org/us/dictionary/english-chinese-traditional/' + $("#Word").val());
|
||||
$("#DefinitionEn").focus();
|
||||
$([document.documentElement, document.body]).animate({
|
||||
scrollTop: $("#frameDictionary").offset().top
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
function QueryImage() {
|
||||
if ($("#Word").val() !='') {
|
||||
|
||||
|
||||
var win = window.open("https://www.google.com/search?q=" + $("#Word").val() + "&hl=en&tbm=isch&source=lnt&sa=X&ved=0ahUKEwiQyc-w1NrjAhWRKn0KHYGgDf8QpwUIIw&biw=1368&bih=770&dpr=2", '_blank');
|
||||
if (win) {
|
||||
//Browser has allowed it to be opened
|
||||
$("#ImageUrl").focus()
|
||||
win.focus();
|
||||
} else {
|
||||
//Browser has blocked it
|
||||
alert('Please allow popups for this website');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
}
|
||||
64
Chruch.Net/Areas/English/Views/Vocabularies/FlashCard.cshtml
Normal file
64
Chruch.Net/Areas/English/Views/Vocabularies/FlashCard.cshtml
Normal file
@ -0,0 +1,64 @@
|
||||
@model Church.Net.Entity.Vocabulary
|
||||
@{
|
||||
ViewBag.Title = "FlashCard";
|
||||
}
|
||||
@using (Html.BeginForm("FlashCardNext"))
|
||||
{
|
||||
|
||||
}
|
||||
<div id="divSpellingPractice" class="jumbotron m-auto text-center">
|
||||
<span class="mb-1 badge badge-info">
|
||||
@Model.PartOfSpeech.ToString()
|
||||
|
||||
</span>
|
||||
<h1 class="display-3" id="MarskedAnswer">
|
||||
@Model.Word
|
||||
<button class="btn btn-success p-4" onclick="Speak('@Html.Raw(Model.Word)')"><i class="g-absolute-centered g-font-size-20 hs-admin-announcement"></i></button>
|
||||
@if (Model.PartOfSpeech == Church.Net.Entity.Enumeration.PartsOfSpeech.VerbsUnRegular)
|
||||
{
|
||||
@Html.Raw("<br>" + Model.MaskedVerbPast + " ; " + Model.MaskedVerbParticiple)
|
||||
}
|
||||
</h1>
|
||||
<p><img id="volImg" class="img-fluid img-thumbnail g-max-width-380" src="@Model.ImagesUrl" /></p>
|
||||
<p class="lead" id="definition">
|
||||
@Model.DefinitionEn
|
||||
|
||||
</p>
|
||||
<hr class="my-4">
|
||||
<div class="progress mb-2">
|
||||
<div id="spellProgress" class="progress-bar progress-bar-striped progress-bar-animated bg-success" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: 0%"></div>
|
||||
</div>
|
||||
|
||||
<input class="vocalInput" id="txSpell" onkeyup="checkAnswer(this.value)" style="width:@Html.Raw(Model.Word.Length*1.5)px" />
|
||||
<br />
|
||||
<br />
|
||||
<p class="lead">
|
||||
<button class="btn btn-primary btn-lg" role="button" onclick="ShowTheAnswer()">Check the answer</button>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group" id="divNextQuiz" >
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="button" value="Next" class="btn btn-default" onclick="location.href='@Url.Action("FlashCardNext", "Vocabularies",new { id=Model.Id})'" />
|
||||
@*<input type="submit" value="Next" class="btn btn-default" />*@
|
||||
<input type="button" value="Forgot this word" class="btn btn-danger" onclick="location.href='@Url.Action("FlashCardForgot", "Vocabularies",new { id=Model.Id})'" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
function ShowTheAnswer() {
|
||||
//al('@Model.Word');
|
||||
|
||||
|
||||
Swal.fire({
|
||||
title: '@Model.Word',
|
||||
text:'@Html.Raw(Model.DefinitionCh.Replace(Environment.NewLine,""))',
|
||||
imageUrl: '@Model.ImagesUrl',
|
||||
imageHeight: 200,
|
||||
imageAlt: 'Answer'
|
||||
})
|
||||
}
|
||||
</script>
|
||||
168
Chruch.Net/Areas/English/Views/Vocabularies/Index.cshtml
Normal file
168
Chruch.Net/Areas/English/Views/Vocabularies/Index.cshtml
Normal file
@ -0,0 +1,168 @@
|
||||
@model IEnumerable<Church.Net.Entity.Vocabulary>
|
||||
|
||||
|
||||
<div class="g-px-20">
|
||||
<div class="media">
|
||||
<div class="d-flex align-self-center">
|
||||
<h1 class="g-font-weight-300 g-font-size-28 g-color-black mb-0">@ViewBag.Title</h1>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<hr class="d-flex g-brd-gray-light-v7 g-my-30">
|
||||
|
||||
|
||||
<div class="media flex-wrap g-mb-30">
|
||||
<div class="d-flex align-self-center align-items-center">
|
||||
<span class="g-hidden-sm-down g-color-gray-dark-v6 g-mr-12">Type:</span>
|
||||
|
||||
<div class="u-select--v1 g-pr-20">
|
||||
<select class="js-select u-select--v1-select w-100" style="display: none;">
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-lightblue-v3 g-mr-8--sm"></span><span class="g-hidden-sm-down g-line-height-1_2 g-color-black">Friends</span></span>'>Friends</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-teal-v2 g-mr-8--sm"></span><span class="g-hidden-sm-down g-line-height-1_2 g-color-black">Colleagues</span></span>'>Colleagues</option>
|
||||
</select>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v6 ml-auto"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-self-center align-items-center g-ml-10 g-ml-20--md g-ml-40--lg">
|
||||
<span class="g-hidden-sm-down g-color-gray-dark-v6 g-mr-12">Position:</span>
|
||||
|
||||
<div class="u-select--v1 g-pr-20">
|
||||
<select class="js-select u-select--v1-select w-100" style="display: none;">
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">All Positions</span></span>'>All Positions</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Manager</span></span>'>Manager</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Designer</span></span>'>Designer</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Developer</span></span>'>Developer</option>
|
||||
</select>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v6 ml-auto"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex g-hidden-md-up w-100"></div>
|
||||
|
||||
<div class="media-body align-self-center g-mt-10 g-mt-0--md">
|
||||
<div class="input-group g-pos-rel g-max-width-380 float-right">
|
||||
<input class="form-control g-font-size-default g-brd-gray-light-v7 g-brd-lightblue-v3--focus g-rounded-20 g-pl-20 g-pr-50 g-py-10" type="text" placeholder="Search for name, position">
|
||||
<button class="btn g-pos-abs g-top-0 g-right-0 g-z-index-2 g-width-60 h-100 g-bg-transparent g-font-size-16 g-color-lightred-v2 g-color-lightblue-v3--hover rounded-0" type="submit">
|
||||
<i class="hs-admin-search g-absolute-centered"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<table class="table w-100 g-mb-25">
|
||||
|
||||
<thead class="g-hidden-sm-down g-color-gray-dark-v6">
|
||||
<tr>
|
||||
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.PracticeDate)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-900 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Word)
|
||||
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.ImagesUrl)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15 g-pr-25">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
Definition
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15 g-pr-25"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody class="g-font-size-default g-color-black" id="accordion-09" role="tablist" aria-multiselectable="true">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<tr>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.PracticeDate)
|
||||
<br />
|
||||
<span class="badge badge-info">@item.PracticeStage.ToString()</span>
|
||||
|
||||
@*<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.PracticeSelect)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.PracticeMemorized)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.PracticeVisualize)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.PracticeApply)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.PracticeReview)
|
||||
</td>*@
|
||||
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-font-weight-900 g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
<span class="badge badge-info">@Html.DisplayFor(modelItem => item.PartOfSpeech)</span>
|
||||
<h3>@Html.DisplayFor(modelItem => item.Word)</h3>
|
||||
@if (item.PartOfSpeech == Church.Net.Entity.Enumeration.PartsOfSpeech.Nouns)
|
||||
{
|
||||
@Html.DisplayFor(modelItem => item.NounPlural)
|
||||
|
||||
}
|
||||
else if (item.PartOfSpeech == Church.Net.Entity.Enumeration.PartsOfSpeech.VerbsUnRegular)
|
||||
{
|
||||
|
||||
@Html.Raw(item.VerbPast);@Html.Raw(item.VerbParticiple)
|
||||
}
|
||||
|
||||
<button class="btn btn-success p-4" onclick="Speak('@Html.Raw(item.Word)')"><i class="g-absolute-centered g-font-size-20 hs-admin-announcement"></i></button>
|
||||
</td>
|
||||
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
<img class="img-thumbnail g-max-width-380" src="@item.ImagesUrl" />
|
||||
</td>
|
||||
|
||||
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.Raw(item.DefinitionEn)
|
||||
<hr />
|
||||
@Html.Raw(item.DefinitionCh)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm g-pr-25">
|
||||
<div class="d-flex align-items-center g-line-height-1">
|
||||
|
||||
<a href="@Url.Action("Edit", new { id=item.Id })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15">
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Delete", new { id=item.Id })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover">
|
||||
<i class="hs-admin-trash g-font-size-18"></i>
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
44
Chruch.Net/Areas/English/Views/Vocabularies/Memorized.cshtml
Normal file
44
Chruch.Net/Areas/English/Views/Vocabularies/Memorized.cshtml
Normal file
@ -0,0 +1,44 @@
|
||||
@model Church.Net.Entity.Vocabulary
|
||||
|
||||
@{
|
||||
ViewBag.title = "Memorized";
|
||||
}
|
||||
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row center">
|
||||
|
||||
|
||||
@Html.Partial("~/Areas/English/Views/Shared/_SpellPractice.cshtml", Model)
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group" id="divNextQuiz" style="display:none">
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="button" value="Next" class="btn btn-default" onclick="location.href='@Url.Action("MemorizedNext", "Vocabularies",new { id=Model.Id})'" />
|
||||
@*<input type="submit" value="Next" class="btn btn-default" />*@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
@Html.ActionLink("Back to List", "Index")
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
@section scripts{
|
||||
<script>
|
||||
$(function(){
|
||||
SetUpSpellingQuitze('@Model.Word','@Url.Action("MemorizedNext", "Vocabularies", new { id = Model.Id })');
|
||||
})
|
||||
|
||||
</script>
|
||||
}
|
||||
47
Chruch.Net/Areas/English/Views/Vocabularies/Review.cshtml
Normal file
47
Chruch.Net/Areas/English/Views/Vocabularies/Review.cshtml
Normal file
@ -0,0 +1,47 @@
|
||||
@model Church.Net.Entity.Vocabulary
|
||||
|
||||
@{
|
||||
ViewBag.title = "Review";
|
||||
}
|
||||
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row center">
|
||||
|
||||
|
||||
@Html.Partial("~/Areas/English/Views/Shared/_SpellPractice.cshtml", Model)
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group" id="divNextQuiz" style="display:none">
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
|
||||
<input type="button" value="Next" class="btn btn-success" onclick="location.href='@Url.Action("ReviewNext", "Vocabularies",new { id=Model.Id})'" />
|
||||
|
||||
<input type="button" value="Practice Again" class="btn btn-danger" onclick="location.href='@Url.Action("ReviewRepracticeNext", "Vocabularies",new { id=Model.Id})'" />
|
||||
@*<input type="submit" value="Next" class="btn btn-default" />*@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
@Html.ActionLink("Back to List", "Index")
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
@section scripts{
|
||||
<script>
|
||||
$(function(){
|
||||
SetUpSpellingQuitze('@Model.Word','divNextQuiz');
|
||||
})
|
||||
|
||||
</script>
|
||||
}
|
||||
44
Chruch.Net/Areas/English/Views/Vocabularies/Visualize.cshtml
Normal file
44
Chruch.Net/Areas/English/Views/Vocabularies/Visualize.cshtml
Normal file
@ -0,0 +1,44 @@
|
||||
@model Church.Net.Entity.Vocabulary
|
||||
|
||||
@{
|
||||
ViewBag.title = "Visualize";
|
||||
}
|
||||
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row center">
|
||||
|
||||
|
||||
@Html.Partial("~/Areas/English/Views/Shared/_SpellPractice.cshtml", Model)
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group" id="divNextQuiz" style="display:none">
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="button" value="Next" class="btn btn-default" onclick="location.href='@Url.Action("VisualizeNext", "Vocabularies",new { id=Model.Id})'" />
|
||||
@*<input type="submit" value="Next" class="btn btn-default" />*@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
@Html.ActionLink("Back to List", "Index")
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
@section scripts{
|
||||
<script>
|
||||
$(function(){
|
||||
SetUpSpellingQuitze('@Model.Word','@Url.Action("VisualizeNext", "Vocabularies", new { id = Model.Id })');
|
||||
})
|
||||
|
||||
</script>
|
||||
}
|
||||
3
Chruch.Net/Areas/English/Views/_ViewStart.cshtml
Normal file
3
Chruch.Net/Areas/English/Views/_ViewStart.cshtml
Normal file
@ -0,0 +1,3 @@
|
||||
@{
|
||||
Layout = "~/Areas/English/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
36
Chruch.Net/Areas/English/Views/web.config
Normal file
36
Chruch.Net/Areas/English/Views/web.config
Normal file
@ -0,0 +1,36 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
|
||||
<system.web.webPages.razor>
|
||||
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<pages pageBaseType="System.Web.Mvc.WebViewPage">
|
||||
<namespaces>
|
||||
<add namespace="System.Web.Mvc" />
|
||||
<add namespace="System.Web.Mvc.Ajax" />
|
||||
<add namespace="System.Web.Mvc.Html" />
|
||||
<add namespace="System.Web.Routing" />
|
||||
<add namespace="System.Web.Optimization" />
|
||||
<add namespace="Chruch.Net" />
|
||||
|
||||
</namespaces>
|
||||
</pages>
|
||||
</system.web.webPages.razor>
|
||||
|
||||
<appSettings>
|
||||
<add key="webpages:Enabled" value="false" />
|
||||
</appSettings>
|
||||
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<remove name="BlockViewHandler"/>
|
||||
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
|
||||
</handlers>
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
89
Chruch.Net/Areas/admin/Controllers/DashboardController.cs
Normal file
89
Chruch.Net/Areas/admin/Controllers/DashboardController.cs
Normal file
@ -0,0 +1,89 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace Chruch.Net.Areas.admin.Controllers
|
||||
{
|
||||
public class DashboardController : Controller
|
||||
{
|
||||
// GET: admin/Dashboard
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// GET: admin/Dashboard/Details/5
|
||||
public ActionResult Details(int id)
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// GET: admin/Dashboard/Create
|
||||
public ActionResult Create()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// POST: admin/Dashboard/Create
|
||||
[HttpPost]
|
||||
public ActionResult Create(FormCollection collection)
|
||||
{
|
||||
try
|
||||
{
|
||||
// TODO: Add insert logic here
|
||||
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
catch
|
||||
{
|
||||
return View();
|
||||
}
|
||||
}
|
||||
|
||||
// GET: admin/Dashboard/Edit/5
|
||||
public ActionResult Edit(int id)
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// POST: admin/Dashboard/Edit/5
|
||||
[HttpPost]
|
||||
public ActionResult Edit(int id, FormCollection collection)
|
||||
{
|
||||
try
|
||||
{
|
||||
// TODO: Add update logic here
|
||||
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
catch
|
||||
{
|
||||
return View();
|
||||
}
|
||||
}
|
||||
|
||||
// GET: admin/Dashboard/Delete/5
|
||||
public ActionResult Delete(int id)
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// POST: admin/Dashboard/Delete/5
|
||||
[HttpPost]
|
||||
public ActionResult Delete(int id, FormCollection collection)
|
||||
{
|
||||
try
|
||||
{
|
||||
// TODO: Add delete logic here
|
||||
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
catch
|
||||
{
|
||||
return View();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
796
Chruch.Net/Areas/admin/Views/Dashboard/Index.cshtml
Normal file
796
Chruch.Net/Areas/admin/Views/Dashboard/Index.cshtml
Normal file
@ -0,0 +1,796 @@
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Index";
|
||||
}
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-sm-6 col-lg-6 col-xl-3 g-mb-30">
|
||||
<!-- Panel -->
|
||||
<div class="card h-100 g-brd-gray-light-v7 g-rounded-3">
|
||||
<div class="card-block g-font-weight-300 g-pa-20">
|
||||
<div class="media">
|
||||
<div class="d-flex g-mr-15">
|
||||
<div class="u-header-dropdown-icon-v1 g-pos-rel g-width-60 g-height-60 g-bg-lightblue-v4 g-font-size-18 g-font-size-24--md g-color-white rounded-circle">
|
||||
<i class="hs-admin-briefcase g-absolute-centered"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<div class="d-flex align-items-center g-mb-5">
|
||||
<span class="g-font-size-24 g-line-height-1 g-color-black">99.9%</span>
|
||||
<span class="d-flex align-self-center g-font-size-0 g-ml-5 g-ml-10--md">
|
||||
<i class="g-fill-gray-dark-v9">
|
||||
<svg width="12px" height="20px" viewbox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</i>
|
||||
<i class="g-fill-lightblue-v3">
|
||||
<svg width="12px" height="20px" viewbox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)"
|
||||
points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</i>
|
||||
</span>
|
||||
</div>
|
||||
<h6 class="g-font-size-16 g-font-weight-300 g-color-gray-dark-v6 mb-0">Projects Done</h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Panel -->
|
||||
</div>
|
||||
<div class="col-sm-6 col-lg-6 col-xl-3 g-mb-30">
|
||||
<!-- Panel -->
|
||||
<div class="card h-100 g-brd-gray-light-v7 g-rounded-3">
|
||||
<div class="card-block g-font-weight-300 g-pa-20">
|
||||
<div class="media">
|
||||
<div class="d-flex g-mr-15">
|
||||
<div class="u-header-dropdown-icon-v1 g-pos-rel g-width-60 g-height-60 g-bg-teal-v2 g-font-size-18 g-font-size-24--md g-color-white rounded-circle">
|
||||
<i class="hs-admin-check-box g-absolute-centered"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<div class="d-flex align-items-center g-mb-5">
|
||||
<span class="g-font-size-24 g-line-height-1 g-color-black">324</span>
|
||||
<span class="d-flex align-self-center g-font-size-0 g-ml-5 g-ml-10--md">
|
||||
<i class="g-fill-gray-dark-v9">
|
||||
<svg width="12px" height="20px" viewbox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</i>
|
||||
<i class="g-fill-lightblue-v3">
|
||||
<svg width="12px" height="20px" viewbox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)"
|
||||
points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</i>
|
||||
</span>
|
||||
</div>
|
||||
<h6 class="g-font-size-16 g-font-weight-300 g-color-gray-dark-v6 mb-0">Total Tasks</h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Panel -->
|
||||
</div>
|
||||
<div class="col-sm-6 col-lg-6 col-xl-3 g-mb-30">
|
||||
<!-- Panel -->
|
||||
<div class="card h-100 g-brd-gray-light-v7 g-rounded-3">
|
||||
<div class="card-block g-font-weight-300 g-pa-20">
|
||||
<div class="media">
|
||||
<div class="d-flex g-mr-15">
|
||||
<div class="u-header-dropdown-icon-v1 g-pos-rel g-width-60 g-height-60 g-bg-darkblue-v2 g-font-size-18 g-font-size-24--md g-color-white rounded-circle">
|
||||
<i class="hs-admin-wallet g-absolute-centered"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<div class="d-flex align-items-center g-mb-5">
|
||||
<span class="g-font-size-24 g-line-height-1 g-color-black">$124.2</span>
|
||||
<span class="d-flex align-self-center g-font-size-0 g-ml-5 g-ml-10--md">
|
||||
<i class="g-fill-red">
|
||||
<svg width="12px" height="20px" viewbox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</i>
|
||||
<i class="g-fill-gray-dark-v9">
|
||||
<svg width="12px" height="20px" viewbox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)"
|
||||
points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</i>
|
||||
</span>
|
||||
</div>
|
||||
<h6 class="g-font-size-16 g-font-weight-300 g-color-gray-dark-v6 mb-0">Projects Done</h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Panel -->
|
||||
</div>
|
||||
<div class="col-sm-6 col-lg-6 col-xl-3 g-mb-30">
|
||||
<!-- Panel -->
|
||||
<div class="card h-100 g-brd-gray-light-v7 g-rounded-3">
|
||||
<div class="card-block g-font-weight-300 g-pa-20">
|
||||
<div class="media">
|
||||
<div class="d-flex g-mr-15">
|
||||
<div class="u-header-dropdown-icon-v1 g-pos-rel g-width-60 g-height-60 g-bg-lightred-v2 g-font-size-18 g-font-size-24--md g-color-white rounded-circle">
|
||||
<i class="hs-admin-user g-absolute-centered"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<div class="d-flex align-items-center g-mb-5">
|
||||
<span class="g-font-size-24 g-line-height-1 g-color-black">148</span>
|
||||
<span class="d-flex align-self-center g-font-size-0 g-ml-5 g-ml-10--md">
|
||||
<i class="g-fill-gray-dark-v9">
|
||||
<svg width="12px" height="20px" viewbox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</i>
|
||||
<i class="g-fill-gray-dark-v9">
|
||||
<svg width="12px" height="20px" viewbox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)"
|
||||
points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</i>
|
||||
</span>
|
||||
</div>
|
||||
<h6 class="g-font-size-16 g-font-weight-300 g-color-gray-dark-v6 mb-0">New Clients</h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Panel -->
|
||||
</div>
|
||||
<!-- Statistic Card -->
|
||||
<div class="col-xl-12">
|
||||
<!-- Statistic Card -->
|
||||
<div class="card g-brd-gray-light-v7 g-pa-15 g-pa-25-30--md g-mb-30">
|
||||
<header class="media g-mb-30">
|
||||
<h3 class="d-flex align-self-center text-uppercase g-font-size-12 g-font-size-default--md g-color-black mb-0">Project statistics</h3>
|
||||
<div class="media-body d-flex justify-content-end">
|
||||
<div id="rangePickerWrapper2" class="d-flex align-items-center u-datepicker-right u-datepicker--v3 g-pr-10">
|
||||
<input id="rangeDatepicker2" class="g-font-size-12 g-font-size-default--md" type="text" data-rp-wrapper="#rangePickerWrapper2" data-rp-type="range" data-rp-date-format="d M Y" data-rp-default-date='["01 Jan 2016", "31 Dec 2017"]'>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v3"></i>
|
||||
</div>
|
||||
<a class="d-flex align-items-center hs-admin-panel u-link-v5 g-font-size-20 g-color-gray-light-v3 g-color-lightblue-v3--hover g-ml-5 g-ml-30--md" href="#!"></a>
|
||||
</div>
|
||||
</header>
|
||||
<section>
|
||||
<ul class="list-unstyled d-flex g-mb-45">
|
||||
<li class="media">
|
||||
<div class="d-flex align-self-center g-mr-8">
|
||||
<span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-lightblue-v4"></span>
|
||||
</div>
|
||||
<div class="media-body align-self-center g-font-size-12 g-font-size-default--md">Total hits</div>
|
||||
</li>
|
||||
<li class="media g-ml-5 g-ml-35--md">
|
||||
<div class="d-flex align-self-center g-mr-8">
|
||||
<span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-darkblue-v2"></span>
|
||||
</div>
|
||||
<div class="media-body align-self-center g-font-size-12 g-font-size-default--md">Unique visits</div>
|
||||
</li>
|
||||
<li class="media g-ml-5 g-ml-35--md">
|
||||
<div class="d-flex align-self-center g-mr-8">
|
||||
<span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-lightred-v2"></span>
|
||||
</div>
|
||||
<div class="media-body align-self-center g-font-size-12 g-font-size-default--md">New orders</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="js-area-chart u-area-chart--v1 g-pos-rel g-line-height-0" data-height="300px" data-mobile-height="180px" data-high="5000000" data-low="0" data-offset-x="30" data-offset-y="50" data-postfix=" m" data-is-show-area="true" data-is-show-line="false"
|
||||
data-is-show-point="true" data-is-full-width="true" data-is-stack-bars="true" data-is-show-axis-x="true" data-is-show-axis-y="true" data-is-show-tooltips="true" data-tooltip-description-position="right" data-tooltip-custom-class="u-tooltip--v2 g-font-weight-300 g-font-size-default g-color-gray-dark-v6"
|
||||
data-align-text-axis-x="center" data-fill-opacity=".7" data-fill-colors='["#e62154","#3dd1e8","#1d75e5"]' data-stroke-color="#e1eaea" data-stroke-dash-array="0" data-text-size-x="14px" data-text-color-x="#000000" data-text-offset-top-x="10"
|
||||
data-text-size-y="14px" data-text-color-y="#53585e" data-points-colors='["#e62154","#3dd1e8","#1d75e5"]' data-series='[
|
||||
[
|
||||
{"meta": "Orders", "value": 300000},
|
||||
{"meta": "Orders", "value": 500000},
|
||||
{"meta": "Orders", "value": 700000},
|
||||
{"meta": "Orders", "value": 1100000},
|
||||
{"meta": "Orders", "value": 800000},
|
||||
{"meta": "Orders", "value": 800000},
|
||||
{"meta": "Orders", "value": 1000000},
|
||||
{"meta": "Orders", "value": 2300000},
|
||||
{"meta": "Orders", "value": 700000},
|
||||
{"meta": "Orders", "value": 300000},
|
||||
{"meta": "Orders", "value": 600000},
|
||||
{"meta": "Orders", "value": 300000}
|
||||
],
|
||||
[
|
||||
{"meta": "Hits", "value": 300000},
|
||||
{"meta": "Hits", "value": 300000},
|
||||
{"meta": "Hits", "value": 300000},
|
||||
{"meta": "Hits", "value": 300000},
|
||||
{"meta": "Hits", "value": 300000},
|
||||
{"meta": "Hits", "value": 3300000},
|
||||
{"meta": "Hits", "value": 500000},
|
||||
{"meta": "Hits", "value": 500000},
|
||||
{"meta": "Hits", "value": 800000},
|
||||
{"meta": "Hits", "value": 1100000},
|
||||
{"meta": "Hits", "value": 1500000},
|
||||
{"meta": "Hits", "value": 300000}
|
||||
],
|
||||
[
|
||||
{"meta": "Visits", "value": 300000},
|
||||
{"meta": "Visits", "value": 300000},
|
||||
{"meta": "Visits", "value": 300000},
|
||||
{"meta": "Visits", "value": 300000},
|
||||
{"meta": "Visits", "value": 2300000},
|
||||
{"meta": "Visits", "value": 1000000},
|
||||
{"meta": "Visits", "value": 500000},
|
||||
{"meta": "Visits", "value": 500000},
|
||||
{"meta": "Visits", "value": 500000},
|
||||
{"meta": "Visits", "value": 1000000},
|
||||
{"meta": "Visits", "value": 300000},
|
||||
{"meta": "Visits", "value": 300000}
|
||||
]
|
||||
]' data-labels='["Jan", "Feb", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]'></div>
|
||||
</section>
|
||||
</div>
|
||||
<!-- End Statistic Card -->
|
||||
</div>
|
||||
<!-- End Statistic Card -->
|
||||
<!-- Income Card -->
|
||||
<div class="col-xl-8">
|
||||
<!-- Income Cards -->
|
||||
<div class="card g-brd-gray-light-v7 g-mb-30">
|
||||
<header class="media g-pa-15 g-pa-25-30-0--md g-mb-20">
|
||||
<div class="media-body align-self-center">
|
||||
<h3 class="text-uppercase g-font-size-default g-color-black g-mb-8">Total Income</h3>
|
||||
<div id="rangePickerWrapper3" class="u-datepicker-left u-datepicker--v3 g-pr-10">
|
||||
<input id="rangeDatepicker3" class="g-font-size-12 g-font-size-default--md" type="text" data-rp-wrapper="#rangePickerWrapper3" data-rp-type="range" data-rp-date-format="d M Y" data-rp-default-date='["01 Jan 2016", "31 Dec 2017"]'>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v3"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-self-end align-items-center">
|
||||
<span class="g-line-height-1 g-font-weight-300 g-font-size-28 g-color-lightblue-v4">$48,200</span>
|
||||
<span class="d-flex align-self-center g-font-size-0 g-ml-10">
|
||||
<i class="g-fill-gray-dark-v9">
|
||||
<svg width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</i>
|
||||
<i class="g-fill-lightblue-v3">
|
||||
<svg width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)" points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</i>
|
||||
</span>
|
||||
</div>
|
||||
</header>
|
||||
<div class="js-custom-scroll g-height-500 g-pa-15 g-pa-0-30-25--md">
|
||||
<table class="table table-responsive-sm w-100">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="g-font-weight-300 g-color-gray-dark-v6 g-brd-top-none g-pl-20">#</th>
|
||||
<th class="g-font-weight-300 g-color-gray-dark-v6 g-brd-top-none">Name</th>
|
||||
<th class="g-font-weight-300 g-color-gray-dark-v6 g-brd-top-none">Status</th>
|
||||
<th class="g-font-weight-300 g-color-gray-dark-v6 g-brd-top-none">Date</th>
|
||||
<th class="text-right g-font-weight-300 g-color-gray-dark-v6 g-brd-top-none">Price</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10 g-pl-20">1</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Business Cards</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">
|
||||
<span class="u-tags-v1 text-center g-width-100 g-brd-around g-brd-lightblue-v3 g-bg-lightblue-v3 g-font-size-default g-color-white g-rounded-50 g-py-4 g-px-15">approved</span>
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Aug 12, 2016</td>
|
||||
<td class="text-right g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">$2045</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10 g-pl-20">2</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Advertising Outdoors</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">
|
||||
<span class="u-tags-v1 text-center g-width-100 g-brd-around g-brd-lightred-v2 g-bg-lightred-v2 g-font-size-default g-color-white g-rounded-50 g-py-4 g-px-15">pending</span>
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Jun 6, 2016</td>
|
||||
<td class="text-right g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">$995</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10 g-pl-20">3</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Freelance Design</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">
|
||||
<span class="u-tags-v1 text-center g-width-100 g-brd-around g-brd-teal-v2 g-bg-teal-v2 g-font-size-default g-color-white g-rounded-50 g-py-4 g-px-15">done</span>
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Sep 8, 2016</td>
|
||||
<td class="text-right g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">$1025</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10 g-pl-20">4</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Music Improvement</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">
|
||||
<span class="u-tags-v1 text-center g-width-100 g-brd-around g-brd-lightblue-v3 g-bg-lightblue-v3 g-font-size-default g-color-white g-rounded-50 g-py-4 g-px-15">approved</span>
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Dec 20, 2016</td>
|
||||
<td class="text-right g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">$9562</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom--md g-brd-2 g-brd-gray-light-v4 g-py-10 g-pl-20">5</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom--md g-brd-2 g-brd-gray-light-v4 g-py-10">Truck Advertising</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom--md g-brd-2 g-brd-gray-light-v4 g-py-10">
|
||||
<span class="u-tags-v1 text-center g-width-100 g-brd-around g-brd-teal-v2 g-bg-teal-v2 g-font-size-default g-color-white g-rounded-50 g-py-4 g-px-15">done</span>
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom--md g-brd-2 g-brd-gray-light-v4 g-py-10">Dec 24, 2016</td>
|
||||
<td class="text-right g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom--md g-brd-2 g-brd-gray-light-v4 g-py-10">$5470</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10 g-pl-20">6</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Business Cards</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">
|
||||
<span class="u-tags-v1 text-center g-width-100 g-brd-around g-brd-lightblue-v3 g-bg-lightblue-v3 g-font-size-default g-color-white g-rounded-50 g-py-4 g-px-15">approved</span>
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Aug 12, 2016</td>
|
||||
<td class="text-right g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">$2045</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10 g-pl-20">7</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Advertising Outdoors</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">
|
||||
<span class="u-tags-v1 text-center g-width-100 g-brd-around g-brd-lightred-v2 g-bg-lightred-v2 g-font-size-default g-color-white g-rounded-50 g-py-4 g-px-15">pending</span>
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Jun 6, 2016</td>
|
||||
<td class="text-right g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">$995</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10 g-pl-20">8</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Freelance Design</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">
|
||||
<span class="u-tags-v1 text-center g-width-100 g-brd-around g-brd-teal-v2 g-bg-teal-v2 g-font-size-default g-color-white g-rounded-50 g-py-4 g-px-15">done</span>
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Sep 8, 2016</td>
|
||||
<td class="text-right g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">$1025</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10 g-pl-20">9</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Music Improvement</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">
|
||||
<span class="u-tags-v1 text-center g-width-100 g-brd-around g-brd-lightblue-v3 g-bg-lightblue-v3 g-font-size-default g-color-white g-rounded-50 g-py-4 g-px-15">approved</span>
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">Dec 20, 2016</td>
|
||||
<td class="text-right g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom g-brd-2 g-brd-gray-light-v4 g-py-10">$9562</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom--md g-brd-2 g-brd-gray-light-v4 g-py-10 g-pl-20">10</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom--md g-brd-2 g-brd-gray-light-v4 g-py-10">Truck Advertising</td>
|
||||
<td class="g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom--md g-brd-2 g-brd-gray-light-v4 g-py-10">
|
||||
<span class="u-tags-v1 text-center g-width-100 g-brd-around g-brd-teal-v2 g-bg-teal-v2 g-font-size-default g-color-white g-rounded-50 g-py-4 g-px-15">done</span>
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom--md g-brd-2 g-brd-gray-light-v4 g-py-10">Dec 24, 2016</td>
|
||||
<td class="text-right g-font-size-default g-color-black g-valign-middle g-brd-top-none g-brd-bottom--md g-brd-2 g-brd-gray-light-v4 g-py-10">$5470</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="js-area-chart u-area-chart--v1 g-pos-rel g-line-height-0" data-height="65px" data-high="2420" data-low="0" data-offset-x="0" data-offset-y="0" data-postfix=" m" data-is-show-area="true" data-is-show-line="false" data-is-show-point="true" data-is-full-width="true"
|
||||
data-is-stack-bars="true" data-is-show-axis-x="false" data-is-show-axis-y="false" data-is-show-tooltips="true" data-tooltip-description-position="left" data-tooltip-custom-class="u-tooltip--v2 g-font-weight-300 g-font-size-default g-color-gray-dark-v6"
|
||||
data-align-text-axis-x="center" data-fill-opacity="1" data-fill-colors='["#67c8d8"]' data-stroke-color="#e1eaea" data-stroke-dash-array="0" data-text-size-x="14px" data-text-color-x="#000000" data-text-offset-top-x="0" data-text-size-y="14px"
|
||||
data-text-color-y="#53585e" data-points-colors='["#1cc9e4"]' data-series='[
|
||||
[
|
||||
{"meta": "$", "value": 100},
|
||||
{"meta": "$", "value": 2100},
|
||||
{"meta": "$", "value": 350},
|
||||
{"meta": "$", "value": 2920},
|
||||
{"meta": "$", "value": 840},
|
||||
{"meta": "$", "value": 2770}
|
||||
]
|
||||
]' data-labels='["2013", "2014", "2015", "2016", "2017"]'></div>
|
||||
</div>
|
||||
<!-- End Income Cards -->
|
||||
</div>
|
||||
<!-- End Income Card -->
|
||||
<!-- Calendar Card -->
|
||||
<div class="col-xl-4">
|
||||
<!-- Calendar Card -->
|
||||
<div class="g-mb-30">
|
||||
<header class="u-bg-overlay g-bg-img-hero g-bg-black-opacity-0_5--after g-rounded-4 g-rounded-0--bottom-left g-rounded-0--bottom-right g-overflow-hidden" style="background-image: url(../../assets/img-temp/400x270/img3.jpg);">
|
||||
<div class="u-bg-overlay__inner g-color-white g-pa-30">
|
||||
<h3 class="g-font-weight-300 g-font-size-28 g-color-white g-mb-35">
|
||||
Friday 3rd
|
||||
<span class="d-block g-font-size-16">January 2017</span>
|
||||
</h3>
|
||||
<a class="btn btn-md text-uppercase u-btn-outline-white" href="#">Add event</a>
|
||||
</div>
|
||||
</header>
|
||||
<section class="g-brd-around g-brd-top-none g-brd-gray-light-v7 g-rounded-4 g-rounded-0--top-left g-rounded-0--top-right">
|
||||
<div class="g-pa-10 g-pa-20--md">
|
||||
<div id="datepicker" class="u-datepicker--v2"></div>
|
||||
</div>
|
||||
<ul class="list-unstyled">
|
||||
<li class="media g-bg-gray-light-v8 g-brd-left g-brd-2 g-brd-darkblue-v2 g-px-30 g-py-15 g-mb-2 g-ml-minus-1">
|
||||
<strong class="d-flex align-self-center g-width-80 g-color-black">8:00am</strong>
|
||||
<div class="media-body g-font-weight-300 g-color-black">Build My Own Website</div>
|
||||
</li>
|
||||
<li class="media g-bg-gray-light-v8 g-brd-left g-brd-2 g-brd-lightblue-v4 g-px-30 g-py-15 g-mb-2 g-ml-minus-1">
|
||||
<strong class="d-flex align-self-center g-width-80 g-color-black">9:00am</strong>
|
||||
<div class="media-body g-font-weight-300 g-color-black">Create New Content</div>
|
||||
</li>
|
||||
<li class="media g-bg-gray-light-v8 g-brd-left g-brd-2 g-brd-darkblue-v2 g-px-30 g-py-15 g-mb-2 g-ml-minus-1">
|
||||
<strong class="d-flex align-self-center g-width-80 g-color-black">10:00am</strong>
|
||||
<div class="media-body g-font-weight-300 g-color-black">Check Unify Profile Updates</div>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
<!-- End Calendar Card -->
|
||||
</div>
|
||||
<!-- End Calendar Card -->
|
||||
<!-- Activity Card -->
|
||||
<div class="col-xl-4">
|
||||
<!-- Activity Card -->
|
||||
<div class="card g-brd-gray-light-v7 g-mb-30">
|
||||
<header class="media g-pa-15 g-pa-25-30-0--md g-mb-16">
|
||||
<h3 class="d-flex align-self-center text-uppercase g-font-size-12 g-font-size-default--md g-color-black g-mr-20 mb-0">Activity</h3>
|
||||
<div class="media-body d-flex justify-content-end">
|
||||
<div id="rangePickerWrapper" class="u-datepicker-right u-datepicker--v3 g-pr-10">
|
||||
<input id="rangeDatepicker" class="g-font-size-12 g-font-size-default--md" type="text" data-rp-wrapper="#rangePickerWrapper" data-rp-type="range" data-rp-date-format="d M Y" data-rp-default-date='["01 Jan 2016", "31 Dec 2017"]'>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v3"></i>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="js-custom-scroll g-height-400 g-pa-15 g-pl-5--md g-pr-30--md g-py-25--md">
|
||||
<section class="u-timeline-v2-wrap g-pos-rel g-left-25--before g-mb-20">
|
||||
<div class="g-orientation-left g-pos-rel g-ml-25--md g-pl-20">
|
||||
<div class="g-hidden-sm-down u-timeline-v2__icon g-top-35">
|
||||
<i class="d-block g-width-16 g-height-16 g-bg-white g-brd-around g-brd-2 g-brd-lightblue-v3 rounded-circle"></i>
|
||||
</div>
|
||||
<div class="media g-mb-16">
|
||||
<div class="d-flex align-self-center g-mr-15">
|
||||
<img class="g-width-55 g-height-55 rounded-circle" src="../../assets/img-temp/100x100/img1.jpg" alt="Image Description">
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<h3 class="g-font-weight-300 g-font-size-16 g-mb-3">Htmlstream</h3>
|
||||
<em class="g-font-style-normal g-color-lightblue-v3">Commented on Project</em>
|
||||
</div>
|
||||
</div>
|
||||
<p class="g-font-weight-300 g-font-size-default g-mb-16">When you browse through videos at YouTube, which do you usually click first: one with around 10 views or one with around 75,000 views</p>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal g-color-gray-dark-v6">
|
||||
<i class="hs-admin-time g-font-size-default g-font-size-18--md g-color-gray-light-v3"></i>
|
||||
<span class="g-font-weight-300 g-font-size-12 g-font-size-default--md g-ml-4 g-ml-8--md">45 Min <span class="g-hidden-md-down">ago</span></span>
|
||||
</em>
|
||||
</div>
|
||||
<hr class="d-flex g-brd-gray-light-v4 g-ml-35--md g-my-20 g-my-30--md">
|
||||
<div class="g-orientation-left g-pos-rel g-ml-25--md g-pl-20">
|
||||
<div class="g-hidden-sm-down u-timeline-v2__icon g-top-35">
|
||||
<i class="d-block g-width-16 g-height-16 g-bg-white g-brd-around g-brd-2 g-brd-lightblue-v3 rounded-circle"></i>
|
||||
</div>
|
||||
<div class="media g-mb-25">
|
||||
<div class="d-flex align-self-center g-mr-15">
|
||||
<img class="g-width-55 g-height-55 rounded-circle" src="../../assets/img-temp/100x100/img4.jpg" alt="Image Description">
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<h3 class="g-font-weight-300 g-font-size-16 g-mb-3">E<span class="g-hidden-md-down">mma </span><span class="g-hidden-md-up">.</span>Watson</h3>
|
||||
<em class="g-font-style-normal g-color-lightblue-v3">Added New Files</em>
|
||||
</div>
|
||||
</div>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal g-mb-30">
|
||||
<i class="hs-admin-zip g-font-size-24 g-color-lightblue-v3"></i>
|
||||
<span class="g-font-weight-300 g-font-size-default g-color-gray-dark-v6 g-ml-12">Project Updates.zip</span>
|
||||
</em>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal g-color-gray-dark-v6">
|
||||
<i class="hs-admin-time g-font-size-default g-font-size-18--md g-color-gray-light-v3"></i>
|
||||
<span class="g-font-weight-300 g-font-size-12 g-font-size-default--md g-ml-4 g-ml-8--md">10 Min <span class="g-hidden-md-down">ago</span></span>
|
||||
</em>
|
||||
</div>
|
||||
<hr class="d-flex g-brd-gray-light-v4 g-ml-35--md g-my-20 g-my-30--md">
|
||||
<div class="g-orientation-left g-pos-rel g-ml-25--md g-pl-20">
|
||||
<div class="g-hidden-sm-down u-timeline-v2__icon g-top-35">
|
||||
<i class="d-block g-width-16 g-height-16 g-bg-white g-brd-around g-brd-2 g-brd-lightblue-v3 rounded-circle"></i>
|
||||
</div>
|
||||
<div class="media g-mb-16">
|
||||
<div class="d-flex align-self-center g-mr-15">
|
||||
<img class="g-width-55 g-height-55 rounded-circle" src="../../assets/img-temp/100x100/img5.jpg" alt="Image Description">
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<h3 class="g-font-weight-300 g-font-size-16 g-mb-3">V<span class="g-hidden-md-down">erna </span><span class="g-hidden-md-up">.</span>Swanson</h3>
|
||||
<em class="g-font-style-normal g-color-lightblue-v3">Commented on Project</em>
|
||||
</div>
|
||||
</div>
|
||||
<p class="g-font-weight-300 g-font-size-default g-mb-16">The collapse of the online-advertising market in 2001 made marketing on the Internet seem even less compelling. Website usability, press releases, online media buys, podcasts, mobile marketing and more – there’s an entire world</p>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal g-color-gray-dark-v6">
|
||||
<i class="hs-admin-time g-font-size-default g-font-size-18--md g-color-gray-light-v3"></i>
|
||||
<span class="g-font-weight-300 g-font-size-12 g-font-size-default--md g-ml-4 g-ml-8--md">10 Min <span class="g-hidden-md-down">ago</span></span>
|
||||
</em>
|
||||
</div>
|
||||
<hr class="d-flex g-brd-gray-light-v4 g-ml-35--md g-my-20 g-my-30--md">
|
||||
<div class="g-orientation-left g-pos-rel g-ml-25--md g-pl-20">
|
||||
<div class="g-hidden-sm-down u-timeline-v2__icon g-top-35">
|
||||
<i class="d-block g-width-16 g-height-16 g-bg-white g-brd-around g-brd-2 g-brd-lightblue-v3 rounded-circle"></i>
|
||||
</div>
|
||||
<div class="media g-mb-16">
|
||||
<div class="d-flex align-self-center g-mr-15">
|
||||
<img class="g-width-55 g-height-55 rounded-circle" src="../../assets/img-temp/100x100/img7.jpg" alt="Image Description">
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<h3 class="g-font-weight-300 g-font-size-16 g-mb-3">J<span class="g-hidden-md-down">ohn </span><span class="g-hidden-md-up">.</span>Doe</h3>
|
||||
<em class="g-font-style-normal g-color-lightblue-v3">Shared Project with Users</em>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="list-inline d-flex g-mb-20">
|
||||
<li class="list-inline-item g-mb-10 g-mb-0--sm mr-0">
|
||||
<img class="g-width-30 g-width-40--md g-height-30 g-height-40--md rounded-circle" src="../../assets/img-temp/100x100/img4.jpg" alt="Image Description">
|
||||
</li>
|
||||
<li class="list-inline-item g-mb-10 g-mb-0--sm g-ml-7 mr-0">
|
||||
<img class="g-width-30 g-width-40--md g-height-30 g-height-40--md rounded-circle" src="../../assets/img-temp/100x100/img7.jpg" alt="Image Description">
|
||||
</li>
|
||||
<li class="list-inline-item g-mb-10 g-mb-0--sm g-ml-7 mr-0">
|
||||
<img class="g-width-30 g-width-40--md g-height-30 g-height-40--md rounded-circle" src="../../assets/img-temp/100x100/img14.jpg" alt="Image Description">
|
||||
</li>
|
||||
<li class="list-inline-item g-mb-10 g-mb-0--sm g-ml-7 mr-0">
|
||||
<img class="g-width-30 g-width-40--md g-height-30 g-height-40--md rounded-circle" src="../../assets/img-temp/100x100/img15.jpg" alt="Image Description">
|
||||
</li>
|
||||
<li class="list-inline-item g-mb-10 g-mb-0--sm g-ml-7 mr-0">
|
||||
<div class="d-flex align-items-center justify-content-center g-width-30 g-width-40--md g-height-30 g-height-40--md g-bg-gray-light-v8 g-font-size-14 g-font-size-16--md g-color-lightblue-v3 rounded-circle">+5</div>
|
||||
</li>
|
||||
</ul>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal g-color-gray-dark-v6">
|
||||
<i class="hs-admin-time g-font-size-default g-font-size-18--md g-color-gray-light-v3"></i>
|
||||
<span class="g-font-weight-300 g-font-size-12 g-font-size-default--md g-ml-4 g-ml-8--md">10 Min <span class="g-hidden-md-down">ago</span></span>
|
||||
</em>
|
||||
</div>
|
||||
<hr class="d-flex g-brd-gray-light-v4 g-ml-35--md g-my-20 g-my-30--md">
|
||||
</section>
|
||||
<a class="d-flex align-items-center text-uppercase u-link-v5 g-font-style-normal g-color-lightblue-v3 g-ml-25--md" href="#!">
|
||||
<i class="hs-admin-reload g-font-size-20"></i>
|
||||
<span class="g-font-size-12 g-font-size-default--md g-ml-10 g-ml-25--md">Load more</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Activity Card -->
|
||||
</div>
|
||||
<!-- End Activity Card -->
|
||||
<!-- Tickets Card -->
|
||||
<div class="col-xl-4">
|
||||
<!-- Tickets Cards -->
|
||||
<div class="card g-brd-gray-light-v7 g-mb-30">
|
||||
<header class="media g-pa-15 g-pa-25-30-0--md g-mb-20">
|
||||
<h3 class="text-uppercase g-font-size-12 g-font-size-default--md g-color-black mb-0">Tickets</h3>
|
||||
</header>
|
||||
<div class="js-custom-scroll g-height-400 g-pa-15 g-pa-0-30-25--md">
|
||||
<section>
|
||||
<div class="media">
|
||||
<div class="media-body g-mb-15">
|
||||
<h3 class="g-font-weight-300 g-font-size-16 g-color-black g-mb-5">Freelance Design</h3>
|
||||
<p class="g-font-weight-300 g-color-gray-dark-v6 mb-0">15 Tips To Increase Your Adwords</p>
|
||||
</div>
|
||||
<div class="d-flex">
|
||||
<a class="u-link-v5 g-font-size-16 g-color-lightblue-v3" href="#!">#001-3456</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="media">
|
||||
<div class="media-body align-self-center" href="#!">
|
||||
<span class="u-tags-v1 text-center g-width-140 g-bg-lightblue-v3 g-color-white g-brd-around g-brd-lightblue-v3 g-rounded-50 g-py-4 g-px-15">In Progress</span>
|
||||
</div>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal">
|
||||
<i class="hs-admin-time g-font-size-default g-font-size-18--md g-color-gray-light-v3"></i>
|
||||
<span class="g-font-weight-300 g-font-size-12 g-font-size-default--md g-color-gray-dark-v6 g-ml-4 g-ml-8--md">45 Min <span class="g-hidden-md-down">ago</span></span>
|
||||
</em>
|
||||
</div>
|
||||
</section>
|
||||
<hr class="d-flex g-brd-gray-light-v4 g-my-25">
|
||||
<section>
|
||||
<div class="media">
|
||||
<div class="media-body g-mb-15">
|
||||
<h3 class="g-font-weight-300 g-font-size-16 g-color-black g-mb-5">The Flash Tutorial</h3>
|
||||
<p class="g-font-weight-300 g-color-gray-dark-v6 mb-0">Las Vegas How To Have Non Gambling</p>
|
||||
</div>
|
||||
<div class="d-flex">
|
||||
<a class="u-link-v5 g-font-size-16 g-color-lightblue-v3" href="#!">#001-3458</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="media">
|
||||
<div class="media-body align-self-center" href="#!">
|
||||
<span class="u-tags-v1 text-center g-width-140 g-bg-teal-v2 g-color-white g-brd-around g-brd-teal-v2 g-rounded-50 g-py-4 g-px-15">Done</span>
|
||||
</div>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal">
|
||||
<i class="hs-admin-time g-font-size-default g-font-size-18--md g-color-gray-light-v3"></i>
|
||||
<span class="g-font-weight-300 g-font-size-12 g-font-size-default--md g-color-gray-dark-v6 g-ml-4 g-ml-8--md">15 Min <span class="g-hidden-md-down">ago</span></span>
|
||||
</em>
|
||||
</div>
|
||||
</section>
|
||||
<hr class="d-flex g-brd-gray-light-v4 g-my-25">
|
||||
<section>
|
||||
<div class="media">
|
||||
<div class="media-body g-mb-15">
|
||||
<h3 class="g-font-weight-300 g-font-size-16 g-color-black g-mb-5">Free Advertising</h3>
|
||||
<p class="g-font-weight-300 g-color-gray-dark-v6 mb-0">How Does An Lcd Screen Work</p>
|
||||
</div>
|
||||
<div class="d-flex">
|
||||
<a class="u-link-v5 g-font-size-16 g-color-lightblue-v3" href="#!">#001-3454</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="media">
|
||||
<div class="media-body align-self-center" href="#!">
|
||||
<span class="u-tags-v1 text-center g-width-140 g-bg-lightred-v2 g-color-white g-brd-around g-brd-lightred-v2 g-rounded-50 g-py-4 g-px-15">To Do</span>
|
||||
</div>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal">
|
||||
<i class="hs-admin-time g-font-size-default g-font-size-18--md g-color-gray-light-v3"></i>
|
||||
<span class="g-font-weight-300 g-font-size-12 g-font-size-default--md g-color-gray-dark-v6 g-ml-4 g-ml-8--md">10 Min <span class="g-hidden-md-down">ago</span></span>
|
||||
</em>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Tickets Cards -->
|
||||
</div>
|
||||
<!-- End Tickets Card -->
|
||||
<!-- Comments Card -->
|
||||
<div class="col-xl-4">
|
||||
<!-- Comments Card-->
|
||||
<div class="card g-brd-gray-light-v7 g-mb-30">
|
||||
<header class="media g-pa-15 g-pa-25-30-0--md g-mb-20">
|
||||
<h3 class="text-uppercase g-font-size-12 g-font-size-default--md g-color-black mb-0">Recent comments</h3>
|
||||
</header>
|
||||
<div class="js-custom-scroll g-height-400 g-pa-15 g-pa-0-30-25--md">
|
||||
<section class="media">
|
||||
<div class="d-flex g-mr-12">
|
||||
<img class="g-width-40 g-width-48--md g-height-40 g-height-48--md rounded-circle" src="../../assets/img-temp/100x100/img5.jpg" alt="Image Description">
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h3 class="g-font-weight-300 g-font-size-16 g-color-black g-mb-5">V<span class="g-hidden-md-down">erna </span><span class="g-hidden-md-up">.</span>Swanson</h3>
|
||||
<p class="g-font-weight-300 g-color-gray-dark-v6 g-mb-15">15 Tips To Increase Your Adwords</p>
|
||||
<div class="media">
|
||||
<div class="media-body align-self-center" href="#!">
|
||||
<span class="u-tags-v1 text-center g-width-140--md g-bg-gray-light-v8 g-font-size-12 g-font-size-default--md g-color-darkblue-v2 g-brd-around g-brd-gray-light-v8 g-rounded-50 g-py-4 g-px-15">
|
||||
Dropbox
|
||||
<span class="g-hidden-sm-down">Project</span>
|
||||
</span>
|
||||
</div>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal">
|
||||
<i class="hs-admin-time g-font-size-default g-font-size-18--md g-color-gray-light-v3"></i>
|
||||
<span class="g-font-weight-300 g-font-size-12 g-font-size-default--md g-color-gray-dark-v6 g-ml-4 g-ml-8--md">45 Min <span class="g-hidden-md-down">ago</span></span>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<hr class="d-flex g-brd-gray-light-v4 g-my-25">
|
||||
<section class="media">
|
||||
<div class="d-flex g-mr-12">
|
||||
<img class="g-width-40 g-width-48--md g-height-40 g-height-48--md rounded-circle" src="../../assets/img-temp/100x100/img14.jpg" alt="Image Description">
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h3 class="g-font-weight-300 g-font-size-16 g-color-black g-mb-5">E<span class="g-hidden-md-down">ddie </span><span class="g-hidden-md-up">.</span>Hayes</h3>
|
||||
<p class="g-font-weight-300 g-color-gray-dark-v6 g-mb-15">Las Vegas How To Have Non Gambling</p>
|
||||
<div class="media">
|
||||
<div class="media-body align-self-center" href="#!">
|
||||
<span class="u-tags-v1 text-center g-width-140--md g-bg-gray-light-v8 g-font-size-12 g-font-size-default--md g-color-darkblue-v2 g-brd-around g-brd-gray-light-v8 g-rounded-50 g-py-4 g-px-15">
|
||||
Sketch
|
||||
<span class="g-hidden-sm-down">Project</span>
|
||||
</span>
|
||||
</div>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal">
|
||||
<i class="hs-admin-time g-font-size-default g-font-size-18--md g-color-gray-light-v3"></i>
|
||||
<span class="g-font-weight-300 g-font-size-12 g-font-size-default--md g-color-gray-dark-v6 g-ml-4 g-ml-8--md">15 Min <span class="g-hidden-md-down">ago</span></span>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<hr class="d-flex g-brd-gray-light-v4 g-my-25">
|
||||
<section class="media">
|
||||
<div class="d-flex g-mr-12">
|
||||
<img class="g-width-40 g-width-48--md g-height-40 g-height-48--md rounded-circle" src="../../assets/img-temp/100x100/img7.jpg" alt="Image Description">
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h3 class="g-font-weight-300 g-font-size-16 g-color-black g-mb-5">H<span class="g-hidden-md-down">erbert </span><span class="g-hidden-md-up">.</span>Castro</h3>
|
||||
<p class="g-font-weight-300 g-color-gray-dark-v6 g-mb-15">But today, the use and influence of is growing right along illustration</p>
|
||||
<div class="media">
|
||||
<div class="media-body align-self-center" href="#!">
|
||||
<span class="u-tags-v1 text-center g-width-140--md g-bg-gray-light-v8 g-font-size-12 g-font-size-default--md g-color-darkblue-v2 g-brd-around g-brd-gray-light-v8 g-rounded-50 g-py-4 g-px-15">
|
||||
Unify
|
||||
<span class="g-hidden-sm-down">Project</span>
|
||||
</span>
|
||||
</div>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal">
|
||||
<i class="hs-admin-time g-font-size-default g-font-size-18--md g-color-gray-light-v3"></i>
|
||||
<span class="g-font-weight-300 g-font-size-12 g-font-size-default--md g-color-gray-dark-v6 g-ml-4 g-ml-8--md">10 Min <span class="g-hidden-md-down">ago</span></span>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<hr class="d-flex g-brd-gray-light-v4 g-my-25">
|
||||
<section class="media">
|
||||
<div class="d-flex g-mr-12">
|
||||
<img class="g-width-40 g-width-48--md g-height-40 g-height-48--md rounded-circle" src="../../assets/img-temp/100x100/img7.jpg" alt="Image Description">
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h3 class="g-font-weight-300 g-font-size-16 g-color-black g-mb-5">H<span class="g-hidden-md-down">erbert </span><span class="g-hidden-md-up">.</span>Castro</h3>
|
||||
<p class="g-font-weight-300 g-color-gray-dark-v6 g-mb-15">How Does An Lcd Screen Work</p>
|
||||
<div class="media">
|
||||
<div class="media-body align-self-center" href="#!">
|
||||
<span class="u-tags-v1 text-center g-width-140--md g-bg-gray-light-v8 g-font-size-12 g-font-size-default--md g-color-darkblue-v2 g-brd-around g-brd-gray-light-v8 g-rounded-50 g-py-4 g-px-15">
|
||||
Unify
|
||||
<span class="g-hidden-sm-down">Project</span>
|
||||
</span>
|
||||
</div>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal">
|
||||
<i class="hs-admin-time g-font-size-default g-font-size-18--md g-color-gray-light-v3"></i>
|
||||
<span class="g-font-weight-300 g-font-size-12 g-font-size-default--md g-color-gray-dark-v6 g-ml-4 g-ml-8--md">12 Min <span class="g-hidden-md-down">ago</span></span>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Comments Card-->
|
||||
</div>
|
||||
<!-- End Comments Card -->
|
||||
</div>
|
||||
1485
Chruch.Net/Areas/admin/Views/Shared/_Layout.cshtml
Normal file
1485
Chruch.Net/Areas/admin/Views/Shared/_Layout.cshtml
Normal file
File diff suppressed because it is too large
Load Diff
3
Chruch.Net/Areas/admin/Views/_ViewStart.cshtml
Normal file
3
Chruch.Net/Areas/admin/Views/_ViewStart.cshtml
Normal file
@ -0,0 +1,3 @@
|
||||
@{
|
||||
Layout = "~/Areas/admin/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
36
Chruch.Net/Areas/admin/Views/web.config
Normal file
36
Chruch.Net/Areas/admin/Views/web.config
Normal file
@ -0,0 +1,36 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
|
||||
<system.web.webPages.razor>
|
||||
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<pages pageBaseType="System.Web.Mvc.WebViewPage">
|
||||
<namespaces>
|
||||
<add namespace="System.Web.Mvc" />
|
||||
<add namespace="System.Web.Mvc.Ajax" />
|
||||
<add namespace="System.Web.Mvc.Html" />
|
||||
<add namespace="System.Web.Routing" />
|
||||
<add namespace="System.Web.Optimization" />
|
||||
<add namespace="Chruch.Net" />
|
||||
|
||||
</namespaces>
|
||||
</pages>
|
||||
</system.web.webPages.razor>
|
||||
|
||||
<appSettings>
|
||||
<add key="webpages:Enabled" value="false" />
|
||||
</appSettings>
|
||||
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<remove name="BlockViewHandler"/>
|
||||
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
|
||||
</handlers>
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
24
Chruch.Net/Areas/admin/adminAreaRegistration.cs
Normal file
24
Chruch.Net/Areas/admin/adminAreaRegistration.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace Chruch.Net.Areas.admin
|
||||
{
|
||||
public class adminAreaRegistration : AreaRegistration
|
||||
{
|
||||
public override string AreaName
|
||||
{
|
||||
get
|
||||
{
|
||||
return "admin";
|
||||
}
|
||||
}
|
||||
|
||||
public override void RegisterArea(AreaRegistrationContext context)
|
||||
{
|
||||
context.MapRoute(
|
||||
"admin_default",
|
||||
"admin/{controller}/{action}/{id}",
|
||||
new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional }
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,133 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using Church.Net.DAL.EF;
|
||||
using Church.Net.Entity;
|
||||
|
||||
namespace Chruch.Net.Areas.dashboard.Controllers
|
||||
{
|
||||
public class FamilyMembersController : Controller
|
||||
{
|
||||
private ChurchNetContext db = new ChurchNetContext();
|
||||
|
||||
// GET: dashboard/FamilyMembers
|
||||
public ActionResult Index()
|
||||
{
|
||||
var familyMembers = db.Users.Include(f => f.Career);
|
||||
return View(familyMembers.ToList());
|
||||
}
|
||||
|
||||
// GET: dashboard/FamilyMembers/Details/5
|
||||
public ActionResult Details(string id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
FamilyMember familyMember = db.Users.Find(id);
|
||||
if (familyMember == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(familyMember);
|
||||
}
|
||||
|
||||
// GET: dashboard/FamilyMembers/Create
|
||||
public ActionResult Create()
|
||||
{
|
||||
ViewBag.CareerId = new SelectList(db.Careers, "CareerId", "Name");
|
||||
return View();
|
||||
}
|
||||
|
||||
// POST: dashboard/FamilyMembers/Create
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Create([Bind(Include = "Id,FirstName,LastName,Gender,Birthday,Married,Baptized,DateOfBaptized,DateOfWalkIn,Address,ComunityAppId,CareerId,ProfileImage,Email,EmailConfirmed,PasswordHash,SecurityStamp,PhoneNumber,PhoneNumberConfirmed,TwoFactorEnabled,LockoutEndDateUtc,LockoutEnabled,AccessFailedCount,UserName")] FamilyMember familyMember)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
db.Users.Add(familyMember);
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
ViewBag.CareerId = new SelectList(db.Careers, "CareerId", "Name", familyMember.CareerId);
|
||||
return View(familyMember);
|
||||
}
|
||||
|
||||
// GET: dashboard/FamilyMembers/Edit/5
|
||||
public ActionResult Edit(string id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
FamilyMember familyMember = db.Users.Find(id);
|
||||
if (familyMember == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
ViewBag.CareerId = new SelectList(db.Careers, "CareerId", "Name", familyMember.CareerId);
|
||||
return View(familyMember);
|
||||
}
|
||||
|
||||
// POST: dashboard/FamilyMembers/Edit/5
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Edit([Bind(Include = "Id,FirstName,LastName,Gender,Birthday,Married,Baptized,DateOfBaptized,DateOfWalkIn,Address,ComunityAppId,CareerId,ProfileImage,Email,EmailConfirmed,PasswordHash,SecurityStamp,PhoneNumber,PhoneNumberConfirmed,TwoFactorEnabled,LockoutEndDateUtc,LockoutEnabled,AccessFailedCount,UserName")] FamilyMember familyMember)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
db.Entry(familyMember).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
ViewBag.CareerId = new SelectList(db.Careers, "CareerId", "Name", familyMember.CareerId);
|
||||
return View(familyMember);
|
||||
}
|
||||
|
||||
// GET: dashboard/FamilyMembers/Delete/5
|
||||
public ActionResult Delete(string id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
FamilyMember familyMember = db.Users.Find(id);
|
||||
if (familyMember == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(familyMember);
|
||||
}
|
||||
|
||||
// POST: dashboard/FamilyMembers/Delete/5
|
||||
[HttpPost, ActionName("Delete")]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult DeleteConfirmed(string id)
|
||||
{
|
||||
FamilyMember familyMember = db.Users.Find(id);
|
||||
db.Users.Remove(familyMember);
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
db.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,136 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using Church.Net.DAL.EF;
|
||||
using Church.Net.Entity;
|
||||
|
||||
namespace Chruch.Net.Areas.dashboard.Controllers
|
||||
{
|
||||
public class HappinessBESTsController : Controller
|
||||
{
|
||||
private ChurchNetContext db = new ChurchNetContext();
|
||||
|
||||
// GET: dashboard/HappinessBESTs
|
||||
public ActionResult Index(string groupId)
|
||||
{
|
||||
var happinessBESTs = db.HappinessBESTs.Include(h => h.HappinessGroup).Where(h=>h.GroupId==groupId);
|
||||
return View(happinessBESTs.ToList());
|
||||
}
|
||||
|
||||
// GET: dashboard/HappinessBESTs/Details/5
|
||||
public ActionResult Details(string id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
HappinessBEST happinessBEST = db.HappinessBESTs.Find(id);
|
||||
if (happinessBEST == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(happinessBEST);
|
||||
}
|
||||
|
||||
// GET: dashboard/HappinessBESTs/Create
|
||||
public ActionResult Create(string id)
|
||||
{
|
||||
ViewBag.GroupId = new SelectList(db.HappinessGroups, "GroupId", "Name", id);
|
||||
HappinessBEST happinessBEST = new HappinessBEST();
|
||||
happinessBEST.BestId = Church.Net.Utility.Format.Get33BaseGuid();
|
||||
happinessBEST.GroupId = id;
|
||||
return View(happinessBEST);
|
||||
}
|
||||
|
||||
// POST: dashboard/HappinessBESTs/Create
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Create([Bind(Include = "BestId,GroupId,Name,Email,Phone")] HappinessBEST happinessBEST)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
db.HappinessBESTs.Add(happinessBEST);
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Details", "HappinessGroups", new { id= happinessBEST.GroupId});
|
||||
}
|
||||
|
||||
ViewBag.GroupId = new SelectList(db.HappinessGroups, "GroupId", "Name", happinessBEST.GroupId);
|
||||
return View(happinessBEST);
|
||||
}
|
||||
|
||||
// GET: dashboard/HappinessBESTs/Edit/5
|
||||
public ActionResult Edit(string id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
HappinessBEST happinessBEST = db.HappinessBESTs.Find(id);
|
||||
if (happinessBEST == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
ViewBag.GroupId = new SelectList(db.HappinessGroups, "GroupId", "Name", happinessBEST.GroupId);
|
||||
return View(happinessBEST);
|
||||
}
|
||||
|
||||
// POST: dashboard/HappinessBESTs/Edit/5
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Edit([Bind(Include = "BestId,GroupId,Name,Email,Phone")] HappinessBEST happinessBEST)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
db.Entry(happinessBEST).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
ViewBag.GroupId = new SelectList(db.HappinessGroups, "GroupId", "Name", happinessBEST.GroupId);
|
||||
return View(happinessBEST);
|
||||
}
|
||||
|
||||
// GET: dashboard/HappinessBESTs/Delete/5
|
||||
public ActionResult Delete(string id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
HappinessBEST happinessBEST = db.HappinessBESTs.Find(id);
|
||||
if (happinessBEST == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(happinessBEST);
|
||||
}
|
||||
|
||||
// POST: dashboard/HappinessBESTs/Delete/5
|
||||
[HttpPost, ActionName("Delete")]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult DeleteConfirmed(string id)
|
||||
{
|
||||
HappinessBEST happinessBEST = db.HappinessBESTs.Find(id);
|
||||
db.HappinessBESTs.Remove(happinessBEST);
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
db.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,159 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using Church.Net.DAL.EF;
|
||||
using Church.Net.Entity;
|
||||
|
||||
namespace Chruch.Net.Areas.dashboard.Controllers
|
||||
{
|
||||
public class HappinessGroupsController : Controller
|
||||
{
|
||||
private ChurchNetContext db = new ChurchNetContext();
|
||||
|
||||
// GET: dashboard/HappinessGroups
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View(db.HappinessGroups.ToList());
|
||||
}
|
||||
|
||||
// GET: dashboard/HappinessGroups/Details/5
|
||||
public ActionResult Details(string id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
HappinessGroup happinessGroup = db.HappinessGroups.Find(id);
|
||||
if (happinessGroup == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(happinessGroup);
|
||||
}
|
||||
|
||||
// GET: dashboard/HappinessGroups/Create
|
||||
public ActionResult Create()
|
||||
{
|
||||
HappinessGroup happinessGroup = new HappinessGroup();
|
||||
happinessGroup.GroupId = Church.Net.Utility.Format.Get33BaseGuid();
|
||||
happinessGroup.BeginTime = new DateTime(2019, 11, 01, 16, 00, 0);
|
||||
return View(happinessGroup);
|
||||
}
|
||||
|
||||
// POST: dashboard/HappinessGroups/Create
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Create([Bind(Include = "GroupId,Name,BeginTime,Address,CityAndZipCode,InvitationText")] HappinessGroup happinessGroup)
|
||||
{
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
db.HappinessGroups.Add(happinessGroup);
|
||||
for (int i = 1; i <= 8; i++)
|
||||
{
|
||||
|
||||
HappinessWeek week = new HappinessWeek();
|
||||
week.SEQ = i;
|
||||
week.Address = happinessGroup.Address;
|
||||
week.Date = happinessGroup.BeginTime.AddDays((i - 1) * 7);
|
||||
week.InvitationText = happinessGroup.InvitationText;
|
||||
week.GroupId = happinessGroup.GroupId;
|
||||
week.WeekId = Church.Net.Utility.Format.Get33BaseGuid();
|
||||
db.HappinessWeeks.Add(week);
|
||||
}
|
||||
|
||||
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
return View(happinessGroup);
|
||||
}
|
||||
|
||||
// GET: dashboard/HappinessGroups/Edit/5
|
||||
public ActionResult Edit(string id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
HappinessGroup happinessGroup = db.HappinessGroups.Find(id);
|
||||
if (happinessGroup == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(happinessGroup);
|
||||
}
|
||||
|
||||
// POST: dashboard/HappinessGroups/Edit/5
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Edit([Bind(Include = "GroupId,Name,BeginTime,Address,CityAndZipCode,InvitationText")] HappinessGroup happinessGroup)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
|
||||
db.Entry(happinessGroup).State = EntityState.Modified;
|
||||
|
||||
List<HappinessWeek> weeks = db.HappinessWeeks.Where(h => h.GroupId == happinessGroup.GroupId).ToList();
|
||||
foreach (var item in weeks)
|
||||
{
|
||||
item.Address = happinessGroup.Address;
|
||||
item.CityAndZipCode = happinessGroup.CityAndZipCode;
|
||||
item.InvitationText = happinessGroup.InvitationText;
|
||||
|
||||
item.Date = happinessGroup.BeginTime.AddDays((item.SEQ - 1) * 7);
|
||||
db.Entry(item).State = EntityState.Modified;
|
||||
}
|
||||
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
return View(happinessGroup);
|
||||
}
|
||||
|
||||
// GET: dashboard/HappinessGroups/Delete/5
|
||||
public ActionResult Delete(string id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
HappinessGroup happinessGroup = db.HappinessGroups.Find(id);
|
||||
if (happinessGroup == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(happinessGroup);
|
||||
}
|
||||
|
||||
// POST: dashboard/HappinessGroups/Delete/5
|
||||
[HttpPost, ActionName("Delete")]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult DeleteConfirmed(string id)
|
||||
{
|
||||
HappinessGroup happinessGroup = db.HappinessGroups.Find(id);
|
||||
db.HappinessGroups.Remove(happinessGroup);
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
db.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
}
|
||||
}
|
||||
160
Chruch.Net/Areas/dashboard/Controllers/NewVisitorsController.cs
Normal file
160
Chruch.Net/Areas/dashboard/Controllers/NewVisitorsController.cs
Normal file
@ -0,0 +1,160 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using Church.Net.DAL.EF;
|
||||
using Church.Net.Entity;
|
||||
|
||||
namespace Chruch.Net.Areas.dashboard.Controllers
|
||||
{
|
||||
public class NewVisitorsController : Controller
|
||||
{
|
||||
private ChurchNetContext db = new ChurchNetContext();
|
||||
|
||||
// GET: dashboard/NewVisitors
|
||||
public ActionResult Index()
|
||||
{
|
||||
var visitors = db.NewVisitors.Include(n => n.Religion);
|
||||
visitors = visitors.Where(n => n.VisitingDate > new DateTime(2019, 01, 01));
|
||||
return View(visitors.OrderBy(n => n.VisitingDate).ToList());
|
||||
}
|
||||
|
||||
// GET: dashboard/NewVisitors/Details/5
|
||||
public ActionResult Details(string id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
NewVisitor newVisitor = db.NewVisitors.Include(n => n.Religion).FirstOrDefault(n => n.Id == id);
|
||||
if (newVisitor == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(newVisitor);
|
||||
}
|
||||
|
||||
// GET: dashboard/NewVisitors/Create
|
||||
public ActionResult Create()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// POST: dashboard/NewVisitors/Create
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Create([Bind(Include = "Id,FirstName,LastName,Gender,Address,Phone,Email,ComunityAppId,VisitingDate,Note")] NewVisitor newVisitor)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
db.NewVisitors.Add(newVisitor);
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
return View(newVisitor);
|
||||
}
|
||||
|
||||
// GET: dashboard/NewVisitors/Edit/5
|
||||
public ActionResult Edit(string id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
NewVisitor newVisitor = db.NewVisitors.Find(id);
|
||||
if (newVisitor == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
ViewBag.ReligionId = new SelectList(db.Religions, "ReligionId", "Name", newVisitor.ReligionId);
|
||||
return View(newVisitor);
|
||||
}
|
||||
|
||||
// POST: dashboard/NewVisitors/Edit/5
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Edit([Bind(Include = "Id,FirstName,LastName,Gender,Address,Phone,Email,ComunityAppId,VisitingDate,Note,ReligionId")] NewVisitor newVisitor)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
db.Entry(newVisitor).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
ViewBag.ReligionId = new SelectList(db.Religions, "ReligionId", "Name", newVisitor.ReligionId);
|
||||
return View(newVisitor);
|
||||
}
|
||||
|
||||
// GET: dashboard/NewVisitors/Delete/5
|
||||
public ActionResult Delete(string id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
NewVisitor newVisitor = db.NewVisitors.Find(id);
|
||||
if (newVisitor == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(newVisitor);
|
||||
}
|
||||
|
||||
// POST: dashboard/NewVisitors/Delete/5
|
||||
[HttpPost, ActionName("Delete")]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult DeleteConfirmed(string id)
|
||||
{
|
||||
NewVisitor newVisitor = db.NewVisitors.Find(id);
|
||||
db.NewVisitors.Remove(newVisitor);
|
||||
db.SaveChanges();
|
||||
if (System.IO.File.Exists(Server.MapPath($"/NewVisitorsPics/{id}.jpg")))
|
||||
{
|
||||
System.IO.File.Delete(Server.MapPath($"/NewVisitorsPics/{id}.jpg"));
|
||||
}
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
public FileContentResult DownloadCSV()
|
||||
{
|
||||
var visitors = db.NewVisitors.Include(n => n.Religion).Where(n => n.VisitingDate > new DateTime(2019, 01, 01)).OrderBy(n => n.VisitingDate).ToList();
|
||||
|
||||
StringBuilder csv = new StringBuilder();
|
||||
|
||||
csv.AppendLine("Img,Last Name,First Name,Gender,Phone,Note,首次參加主日時間");
|
||||
|
||||
foreach (var visitor in visitors)
|
||||
{
|
||||
string imgPath = "http://arcadia.nlccoc.org/" +(System.IO.File.Exists(Server.MapPath($"/NewVisitorsPics/{visitor.Id}.jpg")) ? "NewVisitorsPics/" + visitor.Id + ".jpg" : "Images/New Visitor-NonImage.jpg");
|
||||
|
||||
|
||||
|
||||
csv.AppendLine($"{imgPath},{visitor.LastName},{visitor.FirstName},{visitor.Gender},{visitor.Phone},{visitor.Note},{visitor.VisitingDate}");
|
||||
}
|
||||
|
||||
|
||||
|
||||
return File(new System.Text.UTF8Encoding().GetBytes(csv.ToString()), "text/csv", "NewVisitors.csv");
|
||||
}
|
||||
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
db.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
}
|
||||
}
|
||||
128
Chruch.Net/Areas/dashboard/Controllers/ReligionsController.cs
Normal file
128
Chruch.Net/Areas/dashboard/Controllers/ReligionsController.cs
Normal file
@ -0,0 +1,128 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using Church.Net.DAL.EF;
|
||||
using Church.Net.Entity;
|
||||
|
||||
namespace Chruch.Net.Areas.dashboard.Controllers
|
||||
{
|
||||
public class ReligionsController : Controller
|
||||
{
|
||||
private ChurchNetContext db = new ChurchNetContext();
|
||||
|
||||
// GET: dashboard/Religions
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View(db.Religions.ToList());
|
||||
}
|
||||
|
||||
// GET: dashboard/Religions/Details/5
|
||||
public ActionResult Details(int? id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
Religion religion = db.Religions.Find(id);
|
||||
if (religion == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(religion);
|
||||
}
|
||||
|
||||
// GET: dashboard/Religions/Create
|
||||
public ActionResult Create()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// POST: dashboard/Religions/Create
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Create([Bind(Include = "ReligionId,Name")] Religion religion)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
db.Religions.Add(religion);
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
return View(religion);
|
||||
}
|
||||
|
||||
// GET: dashboard/Religions/Edit/5
|
||||
public ActionResult Edit(int? id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
Religion religion = db.Religions.Find(id);
|
||||
if (religion == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(religion);
|
||||
}
|
||||
|
||||
// POST: dashboard/Religions/Edit/5
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Edit([Bind(Include = "ReligionId,Name")] Religion religion)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
db.Entry(religion).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
return View(religion);
|
||||
}
|
||||
|
||||
// GET: dashboard/Religions/Delete/5
|
||||
public ActionResult Delete(int? id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
Religion religion = db.Religions.Find(id);
|
||||
if (religion == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(religion);
|
||||
}
|
||||
|
||||
// POST: dashboard/Religions/Delete/5
|
||||
[HttpPost, ActionName("Delete")]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult DeleteConfirmed(int id)
|
||||
{
|
||||
Religion religion = db.Religions.Find(id);
|
||||
db.Religions.Remove(religion);
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
db.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
}
|
||||
}
|
||||
156
Chruch.Net/Areas/dashboard/Controllers/WhoIsSpiesController.cs
Normal file
156
Chruch.Net/Areas/dashboard/Controllers/WhoIsSpiesController.cs
Normal file
@ -0,0 +1,156 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Entity;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using Chruch.Net.Controllers;
|
||||
using Church.Net.DAL.EF;
|
||||
using Church.Net.Entity;
|
||||
|
||||
namespace Chruch.Net.Areas.dashboard.Controllers
|
||||
{
|
||||
public class WhoIsSpiesController : Controller
|
||||
{
|
||||
private ChurchNetContext db = new ChurchNetContext();
|
||||
|
||||
// GET: dashboard/WhoIsSpies
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View(db.WhoIsSpy.ToList());
|
||||
}
|
||||
|
||||
// GET: dashboard/WhoIsSpies/Details/5
|
||||
public ActionResult Details(int? id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
WhoIsSpy whoIsSpy = db.WhoIsSpy.Find(id);
|
||||
if (whoIsSpy == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(whoIsSpy);
|
||||
}
|
||||
|
||||
// GET: dashboard/WhoIsSpies/Create
|
||||
public ActionResult Create()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// POST: dashboard/WhoIsSpies/Create
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Create(WhoIsSpy whoIsSpy)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
db.WhoIsSpy.Add(whoIsSpy);
|
||||
db.SaveChanges();
|
||||
|
||||
|
||||
SaveImageFromRequest("Answer1Image", Server.MapPath("~/Images/IceBreak/WhoIsSpy/"), whoIsSpy.Answer1Image);
|
||||
SaveImageFromRequest("Answer2Image", Server.MapPath("~/Images/IceBreak/WhoIsSpy/"), whoIsSpy.Answer2Image);
|
||||
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
return View(whoIsSpy);
|
||||
}
|
||||
|
||||
// GET: dashboard/WhoIsSpies/Edit/5
|
||||
public ActionResult Edit(int? id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
WhoIsSpy whoIsSpy = db.WhoIsSpy.Find(id);
|
||||
if (whoIsSpy == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(whoIsSpy);
|
||||
}
|
||||
|
||||
// POST: dashboard/WhoIsSpies/Edit/5
|
||||
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
|
||||
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Edit([Bind(Include = "Id,Answer1Cht,Answer1Chs,Answer1En,Answer2Cht,Answer2Chs,Answer2En,Answer1Image,Answer2Image")] WhoIsSpy whoIsSpy)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
db.Entry(whoIsSpy).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
|
||||
SaveImageFromRequest("Answer1Image", Server.MapPath("~/Images/IceBreak/WhoIsSpy/"), whoIsSpy.Answer1Image);
|
||||
SaveImageFromRequest("Answer2Image", Server.MapPath("~/Images/IceBreak/WhoIsSpy/"), whoIsSpy.Answer2Image);
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
return View(whoIsSpy);
|
||||
}
|
||||
|
||||
// GET: dashboard/WhoIsSpies/Delete/5
|
||||
public ActionResult Delete(int? id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
WhoIsSpy whoIsSpy = db.WhoIsSpy.Find(id);
|
||||
if (whoIsSpy == null)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
return View(whoIsSpy);
|
||||
}
|
||||
|
||||
// POST: dashboard/WhoIsSpies/Delete/5
|
||||
[HttpPost, ActionName("Delete")]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult DeleteConfirmed(int id)
|
||||
{
|
||||
WhoIsSpy whoIsSpy = db.WhoIsSpy.Find(id);
|
||||
db.WhoIsSpy.Remove(whoIsSpy);
|
||||
db.SaveChanges();
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
db.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
private void SaveImageFromRequest(string requestParameterName, string filePath,string newFileName)
|
||||
{
|
||||
|
||||
var file = HttpContext.Request.Files[requestParameterName];
|
||||
bool hasFile = file != null && !string.IsNullOrEmpty(file.FileName);
|
||||
|
||||
|
||||
//string newFileName = hasFile ? $"{model.Id}{file.FileName.Substring(file.FileName.LastIndexOf("."))}" : "";
|
||||
Directory.CreateDirectory(filePath);
|
||||
if (hasFile)
|
||||
{
|
||||
|
||||
Church.Net.Utility.Image.SaveThumbnail(new Bitmap(file.InputStream),
|
||||
filePath + "\\" + newFileName, 200, 200);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace Chruch.Net.Areas.dashboard.Controllers
|
||||
{
|
||||
[Authorize]
|
||||
public class _DashboardBaseController : Controller
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Church.Net.Entity;
|
||||
|
||||
namespace Chruch.Net.Areas.dashboard.Models
|
||||
{
|
||||
public class FamilyMemberCreateViewModel
|
||||
{
|
||||
|
||||
[StringLength(50)]
|
||||
public string FirstName { get; set; }
|
||||
[StringLength(50)]
|
||||
public string LastName { get; set; }
|
||||
public Enumeration.Gender Gender { get; set; }
|
||||
public bool Married { get; set; }
|
||||
public bool Baptized { get; set; }
|
||||
|
||||
public Enumeration.Month BaptizedMonth { get; set; }
|
||||
|
||||
public int BaptizedDay { get; set; }
|
||||
public int BaptizedYear { get; set; }
|
||||
public Enumeration.Month BirthMonth { get; set; }
|
||||
|
||||
public int BirthDay { get; set; }
|
||||
public int BirthYear { get; set; }
|
||||
|
||||
[StringLength(500)]
|
||||
public string Address { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string ComunityAppId { get; set; }
|
||||
|
||||
public string PhoneNumber { get; set; }
|
||||
|
||||
[StringLength(500)]
|
||||
public string Email { get; set; }
|
||||
public string ProfileImage { get; set; }
|
||||
|
||||
|
||||
[Required]
|
||||
[StringLength(100, ErrorMessage = "{0} 的長度至少必須為 {2} 個字元。", MinimumLength = 6)]
|
||||
[DataType(DataType.Password)]
|
||||
[Display(Name = "密碼")]
|
||||
public string Password { get; set; }
|
||||
|
||||
[DataType(DataType.Password)]
|
||||
[Display(Name = "確認密碼")]
|
||||
[System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = "密碼和確認密碼不相符。")]
|
||||
public string ConfirmPassword { get; set; }
|
||||
|
||||
|
||||
public DateTime GetBirthDate()
|
||||
{
|
||||
return new DateTime(BirthYear,(int)BirthMonth,BirthDay);
|
||||
}
|
||||
public DateTime GetBaptizedDate()
|
||||
{
|
||||
return new DateTime(BaptizedYear, (int)BaptizedMonth, BaptizedDay);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
145
Chruch.Net/Areas/dashboard/Views/FamilyMembers/Create.cshtml
Normal file
145
Chruch.Net/Areas/dashboard/Views/FamilyMembers/Create.cshtml
Normal file
@ -0,0 +1,145 @@
|
||||
@model Church.Net.Entity.FamilyMember
|
||||
@{
|
||||
ViewBag.returnUrl= @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle= "FamilyMember List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Create FamilyMember";
|
||||
}
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">Create <span class="g-color-primary g-ml-5">FamilyMember</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.FirstName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.FirstName, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.FirstName, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.LastName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.LastName, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.LastName, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Gender, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EnumDropDownListFor(model => model.Gender, htmlAttributes: new { @class = "w-100 u-select-v2 u-shadow-v19 g-brd-none g-color-black g-color-primary--hover g-bg-white text-left g-rounded-30 g-pl-30 g-py-12" })
|
||||
@Html.ValidationMessageFor(model => model.Gender, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Birthday, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Birthday, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Birthday, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Married, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="form-check-inline u-check g-mr-20 mx-0 mb-0">
|
||||
</label>
|
||||
<label class="form-check-inline u-check g-pl-25">
|
||||
|
||||
@Html.EditorFor(model => model.Married, new { htmlAttributes = new { @class = "g-hidden-xs-up g-pos-abs g-top-0 g-left-0" } })
|
||||
<div class="u-check-icon-checkbox-v6 g-absolute-centered--y g-left-0">
|
||||
<i class="fa" data-check-icon=""></i>
|
||||
</div>
|
||||
Option 3
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Baptized, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<div class="form-check-inline u-check g-mr-20 mx-0 mb-0">
|
||||
|
||||
@Html.EditorFor(model => model.Baptized, new { htmlAttributes = new { @class = "g-hidden-xs-up g-pos-abs g-top-0 g-left-0" } })
|
||||
@Html.ValidationMessageFor(model => model.Baptized, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DateOfBaptized, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.DateOfBaptized, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.DateOfBaptized, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DateOfWalkIn, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.DateOfWalkIn, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.DateOfWalkIn, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Address, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Email, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.EmailConfirmed, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<div class="form-check-inline u-check g-mr-20 mx-0 mb-0">
|
||||
|
||||
@Html.EditorFor(model => model.EmailConfirmed, new { htmlAttributes = new { @class = "g-hidden-xs-up g-pos-abs g-top-0 g-left-0" } })
|
||||
@Html.ValidationMessageFor(model => model.EmailConfirmed, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PhoneNumber, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.PhoneNumber, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.PhoneNumber, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.UserName, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.UserName, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="submit" value="Create" class="btn btn-default" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div>
|
||||
@Html.ActionLink("Back to List", "Index")
|
||||
</div>
|
||||
223
Chruch.Net/Areas/dashboard/Views/FamilyMembers/Delete.cshtml
Normal file
223
Chruch.Net/Areas/dashboard/Views/FamilyMembers/Delete.cshtml
Normal file
@ -0,0 +1,223 @@
|
||||
@model Church.Net.Entity.FamilyMember
|
||||
@{
|
||||
ViewBag.returnUrl= @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle= "FamilyMember List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Delete FamilyMember";
|
||||
}
|
||||
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Are you sure you want to <span class="g-color-primary g-ml-5">DELETE</span> this?
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Career.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Career.Name)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.FirstName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.FirstName)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.LastName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.LastName)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Gender, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Gender)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Birthday, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Birthday)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Married, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Married)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Baptized, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Baptized)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DateOfBaptized, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.DateOfBaptized)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DateOfWalkIn, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.DateOfWalkIn)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Address)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ComunityAppId, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.ComunityAppId)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ProfileImage, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.ProfileImage)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Email)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.EmailConfirmed, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.EmailConfirmed)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PasswordHash, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PasswordHash)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.SecurityStamp, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.SecurityStamp)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PhoneNumber, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PhoneNumber)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PhoneNumberConfirmed, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PhoneNumberConfirmed)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.TwoFactorEnabled, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.TwoFactorEnabled)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.LockoutEndDateUtc, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.LockoutEndDateUtc)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.LockoutEnabled, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.LockoutEnabled)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.AccessFailedCount, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.AccessFailedCount)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.UserName)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<div class="d-flex">
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" href="@Url.Action("Index")">Back to List</a>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Delete</button>
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
203
Chruch.Net/Areas/dashboard/Views/FamilyMembers/Details.cshtml
Normal file
203
Chruch.Net/Areas/dashboard/Views/FamilyMembers/Details.cshtml
Normal file
@ -0,0 +1,203 @@
|
||||
@model Church.Net.Entity.FamilyMember
|
||||
@{
|
||||
ViewBag.returnUrl= @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle= "FamilyMember List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Details FamilyMember";
|
||||
}
|
||||
|
||||
<h2>Details</h2>
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Detail of <span class="g-color-primary g-ml-5">Details</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Career.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Career.Name)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.FirstName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.FirstName)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.LastName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.LastName)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Gender, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Gender)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Birthday, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Birthday)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Married, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Married)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Baptized, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Baptized)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DateOfBaptized, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.DateOfBaptized)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DateOfWalkIn, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.DateOfWalkIn)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Address)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ComunityAppId, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.ComunityAppId)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ProfileImage, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.ProfileImage)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Email)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.EmailConfirmed, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.EmailConfirmed)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PasswordHash, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PasswordHash)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.SecurityStamp, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.SecurityStamp)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PhoneNumber, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PhoneNumber)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PhoneNumberConfirmed, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.PhoneNumberConfirmed)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.TwoFactorEnabled, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.TwoFactorEnabled)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.LockoutEndDateUtc, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.LockoutEndDateUtc)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.LockoutEnabled, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.LockoutEnabled)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.AccessFailedCount, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.AccessFailedCount)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.UserName)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<div class="d-flex">
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" href="@Url.Action("Index")">Back to List</a>
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" href="@Url.Action("Edit", new { id = Model.Id })">Edit</button>
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
258
Chruch.Net/Areas/dashboard/Views/FamilyMembers/Edit.cshtml
Normal file
258
Chruch.Net/Areas/dashboard/Views/FamilyMembers/Edit.cshtml
Normal file
@ -0,0 +1,258 @@
|
||||
@model Church.Net.Entity.FamilyMember
|
||||
@{
|
||||
ViewBag.returnUrl= @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle= "FamilyMember List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Edit FamilyMember";
|
||||
}
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">Edit <span class="g-color-primary g-ml-5">FamilyMember</span>
|
||||
</h2>
|
||||
</div>
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
@Html.HiddenFor(model => model.Id)
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.FirstName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.FirstName, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.FirstName, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.LastName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.LastName, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.LastName, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Gender, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EnumDropDownListFor(model => model.Gender, htmlAttributes: new { @class = "w-100 u-select-v2 u-shadow-v19 g-brd-none g-color-black g-color-primary--hover g-bg-white text-left g-rounded-30 g-pl-30 g-py-12" })
|
||||
@Html.ValidationMessageFor(model => model.Gender, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Birthday, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Birthday, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Birthday, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Married, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="form-check-inline u-check g-mr-20 mx-0 mb-0">
|
||||
|
||||
@Html.EditorFor(model => model.Married, new { htmlAttributes = new { @class = "g-hidden-xs-up g-pos-abs g-top-0 g-left-0" } })
|
||||
@Html.ValidationMessageFor(model => model.Married, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
<div class="u-check-icon-radio-v7">
|
||||
<i class="d-inline-block"></i>
|
||||
</div>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Baptized, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="form-check-inline u-check g-mr-20 mx-0 mb-0">
|
||||
|
||||
@Html.EditorFor(model => model.Baptized, new { htmlAttributes = new { @class = "g-hidden-xs-up g-pos-abs g-top-0 g-left-0" } })
|
||||
@Html.ValidationMessageFor(model => model.Baptized, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
<div class="u-check-icon-radio-v7">
|
||||
<i class="d-inline-block"></i>
|
||||
</div>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DateOfBaptized, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.DateOfBaptized, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.DateOfBaptized, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.DateOfWalkIn, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.DateOfWalkIn, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.DateOfWalkIn, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Address, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ComunityAppId, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.ComunityAppId, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.ComunityAppId, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.CareerId, "CareerId", htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.DropDownList("CareerId", null, htmlAttributes: new { @class = "w-100 u-select-v2 u-shadow-v19 g-brd-none g-color-black g-color-primary--hover g-bg-white text-left g-rounded-30 g-pl-30 g-py-12" })
|
||||
@Html.ValidationMessageFor(model => model.CareerId, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ProfileImage, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.ProfileImage, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.ProfileImage, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Email, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.EmailConfirmed, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="form-check-inline u-check g-mr-20 mx-0 mb-0">
|
||||
|
||||
@Html.EditorFor(model => model.EmailConfirmed, new { htmlAttributes = new { @class = "g-hidden-xs-up g-pos-abs g-top-0 g-left-0" } })
|
||||
@Html.ValidationMessageFor(model => model.EmailConfirmed, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
<div class="u-check-icon-radio-v7">
|
||||
<i class="d-inline-block"></i>
|
||||
</div>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PasswordHash, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.PasswordHash, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.PasswordHash, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.SecurityStamp, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.SecurityStamp, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.SecurityStamp, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PhoneNumber, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.PhoneNumber, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.PhoneNumber, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.PhoneNumberConfirmed, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="form-check-inline u-check g-mr-20 mx-0 mb-0">
|
||||
|
||||
@Html.EditorFor(model => model.PhoneNumberConfirmed, new { htmlAttributes = new { @class = "g-hidden-xs-up g-pos-abs g-top-0 g-left-0" } })
|
||||
@Html.ValidationMessageFor(model => model.PhoneNumberConfirmed, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
<div class="u-check-icon-radio-v7">
|
||||
<i class="d-inline-block"></i>
|
||||
</div>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.TwoFactorEnabled, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="form-check-inline u-check g-mr-20 mx-0 mb-0">
|
||||
|
||||
@Html.EditorFor(model => model.TwoFactorEnabled, new { htmlAttributes = new { @class = "g-hidden-xs-up g-pos-abs g-top-0 g-left-0" } })
|
||||
@Html.ValidationMessageFor(model => model.TwoFactorEnabled, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
<div class="u-check-icon-radio-v7">
|
||||
<i class="d-inline-block"></i>
|
||||
</div>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.LockoutEndDateUtc, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.LockoutEndDateUtc, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.LockoutEndDateUtc, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.LockoutEnabled, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="form-check-inline u-check g-mr-20 mx-0 mb-0">
|
||||
|
||||
@Html.EditorFor(model => model.LockoutEnabled, new { htmlAttributes = new { @class = "g-hidden-xs-up g-pos-abs g-top-0 g-left-0" } })
|
||||
@Html.ValidationMessageFor(model => model.LockoutEnabled, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
<div class="u-check-icon-radio-v7">
|
||||
<i class="d-inline-block"></i>
|
||||
</div>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.AccessFailedCount, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.AccessFailedCount, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.AccessFailedCount, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.UserName, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.UserName, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
<div class="d-flex">
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" type="reset">Reset</button>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Update</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
272
Chruch.Net/Areas/dashboard/Views/FamilyMembers/Index.cshtml
Normal file
272
Chruch.Net/Areas/dashboard/Views/FamilyMembers/Index.cshtml
Normal file
@ -0,0 +1,272 @@
|
||||
@model IEnumerable<Church.Net.Entity.FamilyMember>
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Index";
|
||||
}
|
||||
|
||||
|
||||
<div class="g-px-20">
|
||||
<div class="media">
|
||||
<div class="d-flex align-self-center">
|
||||
<h1 class="g-font-weight-300 g-font-size-28 g-color-black mb-0">@ViewBag.Title</h1>
|
||||
</div>
|
||||
|
||||
<div class="media-body align-self-center text-right">
|
||||
<a class="js-fancybox btn btn-xl u-btn-lightblue-v3 g-width-160--md g-font-size-default g-ml-10" href="javascript:;" data-src="#add-contact-form" data-speed="350">
|
||||
建立
|
||||
</a>
|
||||
@Html.ActionLink("建立", "Create")
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="d-flex g-brd-gray-light-v7 g-my-30">
|
||||
|
||||
|
||||
<div class="media flex-wrap g-mb-30">
|
||||
<div class="d-flex align-self-center align-items-center">
|
||||
<span class="g-hidden-sm-down g-color-gray-dark-v6 g-mr-12">Type:</span>
|
||||
|
||||
<div class="u-select--v1 g-pr-20">
|
||||
<select class="js-select u-select--v1-select w-100" style="display: none;">
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-lightblue-v3 g-mr-8--sm"></span><span class="g-hidden-sm-down g-line-height-1_2 g-color-black">Friends</span></span>'>Friends</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-teal-v2 g-mr-8--sm"></span><span class="g-hidden-sm-down g-line-height-1_2 g-color-black">Colleagues</span></span>'>Colleagues</option>
|
||||
</select>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v6 ml-auto"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-self-center align-items-center g-ml-10 g-ml-20--md g-ml-40--lg">
|
||||
<span class="g-hidden-sm-down g-color-gray-dark-v6 g-mr-12">Position:</span>
|
||||
|
||||
<div class="u-select--v1 g-pr-20">
|
||||
<select class="js-select u-select--v1-select w-100" style="display: none;">
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">All Positions</span></span>'>All Positions</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Manager</span></span>'>Manager</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Designer</span></span>'>Designer</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Developer</span></span>'>Developer</option>
|
||||
</select>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v6 ml-auto"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex g-hidden-md-up w-100"></div>
|
||||
|
||||
<div class="media-body align-self-center g-mt-10 g-mt-0--md">
|
||||
<div class="input-group g-pos-rel g-max-width-380 float-right">
|
||||
<input class="form-control g-font-size-default g-brd-gray-light-v7 g-brd-lightblue-v3--focus g-rounded-20 g-pl-20 g-pr-50 g-py-10" type="text" placeholder="Search for name, position">
|
||||
<button class="btn g-pos-abs g-top-0 g-right-0 g-z-index-2 g-width-60 h-100 g-bg-transparent g-font-size-16 g-color-lightred-v2 g-color-lightblue-v3--hover rounded-0" type="submit">
|
||||
<i class="hs-admin-search g-absolute-centered"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<table class="table w-100 g-mb-25">
|
||||
|
||||
<thead class="g-hidden-sm-down g-color-gray-dark-v6">
|
||||
<tr>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Career.Name)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.FirstName)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.LastName)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Gender)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Birthday)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Married)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Baptized)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.DateOfBaptized)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.DateOfWalkIn)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Address)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.ComunityAppId)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Email)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.PhoneNumber)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15 g-pr-25"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody class="g-font-size-default g-color-black" id="accordion-09" role="tablist" aria-multiselectable="true">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<tr>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Career.Name)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.FirstName)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.LastName)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Gender)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Birthday)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Married)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Baptized)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.DateOfBaptized)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.DateOfWalkIn)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Address)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.ComunityAppId)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@*@Html.DisplayFor(modelItem => item.ProfileImage)*@
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Email)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.EmailConfirmed)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.PasswordHash)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.SecurityStamp)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.PhoneNumber)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.PhoneNumberConfirmed)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.TwoFactorEnabled)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.LockoutEndDateUtc)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.LockoutEnabled)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.AccessFailedCount)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.UserName)
|
||||
</td>
|
||||
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm g-pr-25">
|
||||
<div class="d-flex align-items-center g-line-height-1">
|
||||
<a href="@Url.Action("Details", new { id=item.Id })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15">
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Edit", new { id=item.Id })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15">
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Delete", new { id=item.Id })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover">
|
||||
<i class="hs-admin-trash g-font-size-18"></i>
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@ -0,0 +1,67 @@
|
||||
@model Church.Net.Entity.HappinessBEST
|
||||
@{
|
||||
ViewBag.returnUrl = @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle = "HappinessBEST List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Create HappinessBEST";
|
||||
}
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Create <span class="g-color-primary g-ml-5">HappinessBEST</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
|
||||
@Html.HiddenFor(model => model.BestId)
|
||||
@Html.HiddenFor(model => model.GroupId)
|
||||
|
||||
@*<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.GroupId, "GroupId", htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.DropDownList("GroupId", null, htmlAttributes: new { @class = "w-100 u-select-v2 u-shadow-v19 g-brd-none g-color-black g-color-primary--hover g-bg-white text-left g-rounded-30 g-pl-30 g-py-12" })
|
||||
@Html.ValidationMessageFor(model => model.GroupId, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>*@
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Email, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Phone, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Phone, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Phone, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="submit" value="Create" class="btn btn-default" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@Html.ActionLink("Back to List", "Index")
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
@model Church.Net.Entity.HappinessBEST
|
||||
@{
|
||||
ViewBag.returnUrl= @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle= "HappinessBEST List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Delete HappinessBEST";
|
||||
}
|
||||
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Are you sure you want to <span class="g-color-primary g-ml-5">DELETE</span> this?
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.HappinessGroup.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.HappinessGroup.Name)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Name)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Email)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Phone, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Phone)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<div class="d-flex">
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" href="@Url.Action("Index")">Back to List</a>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Delete</button>
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,70 @@
|
||||
@model Church.Net.Entity.HappinessBEST
|
||||
@{
|
||||
ViewBag.returnUrl= @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle= "HappinessBEST List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Details HappinessBEST";
|
||||
}
|
||||
|
||||
<h2>Details</h2>
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Detail of <span class="g-color-primary g-ml-5">Details</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.HappinessGroup.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.HappinessGroup.Name)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Name)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Email)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Phone, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Phone)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<div class="d-flex">
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" href="@Url.Action("Index")">Back to List</a>
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" href="@Url.Action("Edit", new { id = Model.BestId })">Edit</button>
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
70
Chruch.Net/Areas/dashboard/Views/HappinessBESTs/Edit.cshtml
Normal file
70
Chruch.Net/Areas/dashboard/Views/HappinessBESTs/Edit.cshtml
Normal file
@ -0,0 +1,70 @@
|
||||
@model Church.Net.Entity.HappinessBEST
|
||||
@{
|
||||
ViewBag.returnUrl= @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle= "HappinessBEST List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Edit HappinessBEST";
|
||||
}
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">Edit <span class="g-color-primary g-ml-5">HappinessBEST</span>
|
||||
</h2>
|
||||
</div>
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
@Html.HiddenFor(model => model.BestId)
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.GroupId, "GroupId", htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.DropDownList("GroupId", null, htmlAttributes: new { @class = "w-100 u-select-v2 u-shadow-v19 g-brd-none g-color-black g-color-primary--hover g-bg-white text-left g-rounded-30 g-pl-30 g-py-12" })
|
||||
@Html.ValidationMessageFor(model => model.GroupId, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Email, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Phone, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Phone, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Phone, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
<div class="d-flex">
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" type="reset">Reset</button>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Update</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
141
Chruch.Net/Areas/dashboard/Views/HappinessBESTs/Index.cshtml
Normal file
141
Chruch.Net/Areas/dashboard/Views/HappinessBESTs/Index.cshtml
Normal file
@ -0,0 +1,141 @@
|
||||
@model IEnumerable<Church.Net.Entity.HappinessBEST>
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Index";
|
||||
}
|
||||
|
||||
|
||||
<div class="g-px-20">
|
||||
<div class="media">
|
||||
<div class="d-flex align-self-center">
|
||||
<h1 class="g-font-weight-300 g-font-size-28 g-color-black mb-0">@ViewBag.Title</h1>
|
||||
</div>
|
||||
|
||||
<div class="media-body align-self-center text-right">
|
||||
<a class="js-fancybox btn btn-xl u-btn-lightblue-v3 g-width-160--md g-font-size-default g-ml-10" href="javascript:;" data-src="#add-contact-form" data-speed="350">建立
|
||||
</a>
|
||||
@Html.ActionLink("建立", "Create")
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="d-flex g-brd-gray-light-v7 g-my-30">
|
||||
|
||||
|
||||
<div class="media flex-wrap g-mb-30">
|
||||
<div class="d-flex align-self-center align-items-center">
|
||||
<span class="g-hidden-sm-down g-color-gray-dark-v6 g-mr-12">Type:</span>
|
||||
|
||||
<div class="u-select--v1 g-pr-20">
|
||||
<select class="js-select u-select--v1-select w-100" style="display: none;">
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-lightblue-v3 g-mr-8--sm"></span><span class="g-hidden-sm-down g-line-height-1_2 g-color-black">Friends</span></span>'>Friends</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-teal-v2 g-mr-8--sm"></span><span class="g-hidden-sm-down g-line-height-1_2 g-color-black">Colleagues</span></span>'>Colleagues</option>
|
||||
</select>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v6 ml-auto"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-self-center align-items-center g-ml-10 g-ml-20--md g-ml-40--lg">
|
||||
<span class="g-hidden-sm-down g-color-gray-dark-v6 g-mr-12">Position:</span>
|
||||
|
||||
<div class="u-select--v1 g-pr-20">
|
||||
<select class="js-select u-select--v1-select w-100" style="display: none;">
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">All Positions</span></span>'>All Positions</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Manager</span></span>'>Manager</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Designer</span></span>'>Designer</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Developer</span></span>'>Developer</option>
|
||||
</select>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v6 ml-auto"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex g-hidden-md-up w-100"></div>
|
||||
|
||||
<div class="media-body align-self-center g-mt-10 g-mt-0--md">
|
||||
<div class="input-group g-pos-rel g-max-width-380 float-right">
|
||||
<input class="form-control g-font-size-default g-brd-gray-light-v7 g-brd-lightblue-v3--focus g-rounded-20 g-pl-20 g-pr-50 g-py-10" type="text" placeholder="Search for name, position">
|
||||
<button class="btn g-pos-abs g-top-0 g-right-0 g-z-index-2 g-width-60 h-100 g-bg-transparent g-font-size-16 g-color-lightred-v2 g-color-lightblue-v3--hover rounded-0" type="submit">
|
||||
<i class="hs-admin-search g-absolute-centered"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<table class="table w-100 g-mb-25">
|
||||
|
||||
<thead class="g-hidden-sm-down g-color-gray-dark-v6">
|
||||
<tr>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.HappinessGroup.Name)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Name)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Email)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Phone)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15 g-pr-25"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody class="g-font-size-default g-color-black" id="accordion-09" role="tablist" aria-multiselectable="true">
|
||||
@foreach (var item in Model) {
|
||||
<tr>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.HappinessGroup.Name)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Name)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Email)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Phone)
|
||||
</td>
|
||||
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm g-pr-25">
|
||||
<div class="d-flex align-items-center g-line-height-1">
|
||||
<a href="@Url.Action("Details", new { id=item.BestId })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15" >
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Edit", new { id=item.BestId })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15" >
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Delete", new { id=item.BestId })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover" >
|
||||
<i class="hs-admin-trash g-font-size-18"></i>
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@ -0,0 +1,69 @@
|
||||
@model Church.Net.Entity.HappinessGroup
|
||||
@{
|
||||
ViewBag.returnUrl = @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle = "HappinessGroup List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Create HappinessGroup";
|
||||
}
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Create <span class="g-color-primary g-ml-5">HappinessGroup</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
@Html.HiddenFor(model => model.GroupId)
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.BeginTime, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.BeginTime, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.BeginTime, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Address, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.CityAndZipCode, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.CityAndZipCode, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.CityAndZipCode, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.InvitationText, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
@Html.TextAreaFor(model => model.InvitationText, 10, 80, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.InvitationText, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="submit" value="Create" class="btn btn-default" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div>
|
||||
@Html.ActionLink("Back to List", "Index")
|
||||
</div>
|
||||
@ -0,0 +1,63 @@
|
||||
@model Church.Net.Entity.HappinessGroup
|
||||
@{
|
||||
ViewBag.returnUrl = @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle = "HappinessGroup List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Delete HappinessGroup";
|
||||
}
|
||||
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Are you sure you want to <span class="g-color-primary g-ml-5">DELETE</span> this?
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.BeginTime, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.BeginTime)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Address)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.InvitationText, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.InvitationText)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<div class="d-flex">
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" href="@Url.Action("Index")">Back to List</a>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Delete</button>
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
129
Chruch.Net/Areas/dashboard/Views/HappinessGroups/Details.cshtml
Normal file
129
Chruch.Net/Areas/dashboard/Views/HappinessGroups/Details.cshtml
Normal file
@ -0,0 +1,129 @@
|
||||
@model Church.Net.Entity.HappinessGroup
|
||||
@{
|
||||
ViewBag.returnUrl = @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle = "HappinessGroup List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Details HappinessGroup";
|
||||
}
|
||||
|
||||
<h2>Details</h2>
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h2 g-mb-0">
|
||||
<span class="g-color-primary g-ml-5">@Model.Name</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.BeginTime, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.BeginTime)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Address)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<table class="table w-100 g-mb-25">
|
||||
|
||||
<thead class="g-hidden-sm-down g-color-gray-dark-v6">
|
||||
<tr>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
Best
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
Email
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
Phone
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15 g-pr-25"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody class="g-font-size-default g-color-black" id="accordion-09" role="tablist" aria-multiselectable="true">
|
||||
@foreach (var item in Model.BestList)
|
||||
{
|
||||
<tr>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Name)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Email)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Phone)
|
||||
</td>
|
||||
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm g-pr-25">
|
||||
<div class="d-flex align-items-center g-line-height-1">
|
||||
|
||||
<button class="btn clipBtn" data-clipboard-text="@Url.Action("Best","Happiness",new { id=item.BestId,area = ""}, Request.Url.Scheme)" onclick="@Html.Raw($"swal('已複製邀請函連結','可以直接貼給 <strong>{item.Name}</strong> 囉!','success')")">
|
||||
複製邀請函網址
|
||||
</button>
|
||||
|
||||
@*<a href="@Url.Action("Details", new { id=item.BestId })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15">
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Edit", new { id=item.BestId })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15">
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Delete", new { id=item.BestId })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover">
|
||||
<i class="hs-admin-trash g-font-size-18"></i>
|
||||
</a>*@
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<div class="d-flex">
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" href="@Url.Action("Index")">Back to List</a>
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" href="@Url.Action("Create","HappinessBESTs", new { id = Model.GroupId })">建立Best</a>
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
77
Chruch.Net/Areas/dashboard/Views/HappinessGroups/Edit.cshtml
Normal file
77
Chruch.Net/Areas/dashboard/Views/HappinessGroups/Edit.cshtml
Normal file
@ -0,0 +1,77 @@
|
||||
@model Church.Net.Entity.HappinessGroup
|
||||
@{
|
||||
ViewBag.returnUrl = @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle = "HappinessGroup List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Edit HappinessGroup";
|
||||
}
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Edit <span class="g-color-primary g-ml-5">HappinessGroup</span>
|
||||
</h2>
|
||||
</div>
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
@Html.HiddenFor(model => model.GroupId)
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.BeginTime, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.BeginTime, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.BeginTime, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Address, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.CityAndZipCode, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.CityAndZipCode, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.CityAndZipCode, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.InvitationText, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.TextAreaFor(model => model.InvitationText, 10, 80, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.InvitationText, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
<div class="d-flex">
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" type="reset">Reset</button>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Update</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
143
Chruch.Net/Areas/dashboard/Views/HappinessGroups/Index.cshtml
Normal file
143
Chruch.Net/Areas/dashboard/Views/HappinessGroups/Index.cshtml
Normal file
@ -0,0 +1,143 @@
|
||||
@model IEnumerable<Church.Net.Entity.HappinessGroup>
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Index";
|
||||
}
|
||||
|
||||
|
||||
<div class="g-px-20">
|
||||
<div class="media">
|
||||
<div class="d-flex align-self-center">
|
||||
<h1 class="g-font-weight-300 g-font-size-28 g-color-black mb-0">@ViewBag.Title</h1>
|
||||
</div>
|
||||
|
||||
<div class="media-body align-self-center text-right">
|
||||
<a class="js-fancybox btn btn-xl u-btn-lightblue-v3 g-width-160--md g-font-size-default g-ml-10" href="javascript:;" data-src="#add-contact-form" data-speed="350">
|
||||
建立
|
||||
</a>
|
||||
@Html.ActionLink("建立", "Create")
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="d-flex g-brd-gray-light-v7 g-my-30">
|
||||
|
||||
|
||||
<div class="media flex-wrap g-mb-30">
|
||||
<div class="d-flex align-self-center align-items-center">
|
||||
<span class="g-hidden-sm-down g-color-gray-dark-v6 g-mr-12">Type:</span>
|
||||
|
||||
<div class="u-select--v1 g-pr-20">
|
||||
<select class="js-select u-select--v1-select w-100" style="display: none;">
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-lightblue-v3 g-mr-8--sm"></span><span class="g-hidden-sm-down g-line-height-1_2 g-color-black">Friends</span></span>'>Friends</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-teal-v2 g-mr-8--sm"></span><span class="g-hidden-sm-down g-line-height-1_2 g-color-black">Colleagues</span></span>'>Colleagues</option>
|
||||
</select>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v6 ml-auto"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-self-center align-items-center g-ml-10 g-ml-20--md g-ml-40--lg">
|
||||
<span class="g-hidden-sm-down g-color-gray-dark-v6 g-mr-12">Position:</span>
|
||||
|
||||
<div class="u-select--v1 g-pr-20">
|
||||
<select class="js-select u-select--v1-select w-100" style="display: none;">
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">All Positions</span></span>'>All Positions</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Manager</span></span>'>Manager</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Designer</span></span>'>Designer</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Developer</span></span>'>Developer</option>
|
||||
</select>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v6 ml-auto"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex g-hidden-md-up w-100"></div>
|
||||
|
||||
<div class="media-body align-self-center g-mt-10 g-mt-0--md">
|
||||
<div class="input-group g-pos-rel g-max-width-380 float-right">
|
||||
<input class="form-control g-font-size-default g-brd-gray-light-v7 g-brd-lightblue-v3--focus g-rounded-20 g-pl-20 g-pr-50 g-py-10" type="text" placeholder="Search for name, position">
|
||||
<button class="btn g-pos-abs g-top-0 g-right-0 g-z-index-2 g-width-60 h-100 g-bg-transparent g-font-size-16 g-color-lightred-v2 g-color-lightblue-v3--hover rounded-0" type="submit">
|
||||
<i class="hs-admin-search g-absolute-centered"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<table class="table w-100 g-mb-25">
|
||||
|
||||
<thead class="g-hidden-sm-down g-color-gray-dark-v6">
|
||||
<tr>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Name)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.BeginTime)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Address)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.InvitationText)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15 g-pr-25"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody class="g-font-size-default g-color-black" id="accordion-09" role="tablist" aria-multiselectable="true">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<tr>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Name)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.BeginTime)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Address)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.InvitationText)
|
||||
</td>
|
||||
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm g-pr-25">
|
||||
<div class="d-flex align-items-center g-line-height-1">
|
||||
<a href="@Url.Action("Details", new { id=item.GroupId })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15">
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Edit", new { id=item.GroupId })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15">
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Delete", new { id=item.GroupId })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover">
|
||||
<i class="hs-admin-trash g-font-size-18"></i>
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
107
Chruch.Net/Areas/dashboard/Views/NewVisitors/Create.cshtml
Normal file
107
Chruch.Net/Areas/dashboard/Views/NewVisitors/Create.cshtml
Normal file
@ -0,0 +1,107 @@
|
||||
@model Church.Net.Entity.NewVisitor
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Create";
|
||||
}
|
||||
|
||||
<h2>Create</h2>
|
||||
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
@Html.AntiForgeryToken()
|
||||
|
||||
<div class="form-horizontal">
|
||||
<h4>NewVisitor</h4>
|
||||
<hr />
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Id, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.EditorFor(model => model.Id, new { htmlAttributes = new { @class = "form-control" } })
|
||||
@Html.ValidationMessageFor(model => model.Id, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.FirstName, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.EditorFor(model => model.FirstName, new { htmlAttributes = new { @class = "form-control" } })
|
||||
@Html.ValidationMessageFor(model => model.FirstName, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.LastName, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.EditorFor(model => model.LastName, new { htmlAttributes = new { @class = "form-control" } })
|
||||
@Html.ValidationMessageFor(model => model.LastName, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Gender, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.EnumDropDownListFor(model => model.Gender, htmlAttributes: new { @class = "form-control" })
|
||||
@Html.ValidationMessageFor(model => model.Gender, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control" } })
|
||||
@Html.ValidationMessageFor(model => model.Address, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Phone, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.EditorFor(model => model.Phone, new { htmlAttributes = new { @class = "form-control" } })
|
||||
@Html.ValidationMessageFor(model => model.Phone, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
|
||||
@Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.ComunityAppId, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.EditorFor(model => model.ComunityAppId, new { htmlAttributes = new { @class = "form-control" } })
|
||||
@Html.ValidationMessageFor(model => model.ComunityAppId, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.VisitingDate, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.EditorFor(model => model.VisitingDate, new { htmlAttributes = new { @class = "form-control" } })
|
||||
@Html.ValidationMessageFor(model => model.VisitingDate, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Note, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.EditorFor(model => model.Note, new { htmlAttributes = new { @class = "form-control" } })
|
||||
@Html.ValidationMessageFor(model => model.Note, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="submit" value="Create" class="btn btn-default" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div>
|
||||
@Html.ActionLink("Back to List", "Index")
|
||||
</div>
|
||||
127
Chruch.Net/Areas/dashboard/Views/NewVisitors/Delete.cshtml
Normal file
127
Chruch.Net/Areas/dashboard/Views/NewVisitors/Delete.cshtml
Normal file
@ -0,0 +1,127 @@
|
||||
@model Church.Net.Entity.NewVisitor
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Delete";
|
||||
}
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Are you sure you want to <span class="g-color-primary g-ml-5">DELETE</span> this?
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-xl-4 g-mb-30 order-md-1">
|
||||
|
||||
<img src="/NewVisitorsPics/@Html.Raw(Model.Id+".jpg")" class="img-fluid img-thumbnail" />
|
||||
</div>
|
||||
<div class="col-xl-8 g-mb-30 order-md-0">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
|
||||
@Html.LabelFor(model => model.FirstName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
|
||||
@Html.DisplayFor(model => model.FirstName)
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
|
||||
|
||||
@Html.LabelFor(model => model.LastName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
|
||||
@Html.DisplayFor(model => model.LastName)
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
|
||||
@Html.LabelFor(model => model.Gender, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
|
||||
@Html.DisplayFor(model => model.Gender)
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
|
||||
|
||||
@Html.LabelFor(model => model.Phone, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
|
||||
@Html.DisplayFor(model => model.Phone)
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ComunityAppId, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
|
||||
@Html.DisplayFor(model => model.ComunityAppId)
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
|
||||
|
||||
@Html.LabelFor(model => model.VisitingDate, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
|
||||
@Html.DisplayFor(model => model.VisitingDate)
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="g-mb-20--md">
|
||||
|
||||
|
||||
@Html.LabelFor(model => model.Note, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
|
||||
@Html.DisplayFor(model => model.Note)
|
||||
</label>
|
||||
</div>
|
||||
<div class="g-mb-20--md">
|
||||
|
||||
|
||||
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
|
||||
@Html.DisplayFor(model => model.Address)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<div class="d-flex">
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" href="@Url.Action("Index")">Back to List</a>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Delete</button>
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
95
Chruch.Net/Areas/dashboard/Views/NewVisitors/Details.cshtml
Normal file
95
Chruch.Net/Areas/dashboard/Views/NewVisitors/Details.cshtml
Normal file
@ -0,0 +1,95 @@
|
||||
@model Church.Net.Entity.NewVisitor
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Details";
|
||||
}
|
||||
|
||||
|
||||
|
||||
<div class="form-horizontal">
|
||||
<h4>新朋友詳細資訊</h4>
|
||||
<hr />
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
@Html.HiddenFor(model => model.Id)
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
|
||||
<div class="form-group">
|
||||
<img src="/NewVisitorsPics/@Html.Raw(Model.Id+".jpg")" class="img-fluid img-thumbnail"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.LastName, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.DisplayFor(model => model.LastName, new { htmlAttributes = new { @class = "form-control" } })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.FirstName, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.DisplayFor(model => model.FirstName, new { htmlAttributes = new { @class = "form-control" } })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Gender, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.DisplayFor(model => model.Gender, new { htmlAttributes = new { @class = "form-control" } })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.DisplayFor(model => model.Address, new { htmlAttributes = new { @class = "form-control" } })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Phone, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.DisplayFor(model => model.Phone, new { htmlAttributes = new { @class = "form-control" } })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.DisplayFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.ComunityAppId, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.DisplayFor(model => model.ComunityAppId, new { htmlAttributes = new { @class = "form-control" } })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.VisitingDate, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.DisplayFor(model => model.VisitingDate, new { htmlAttributes = new { @class = "form-control" } })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Note, htmlAttributes: new { @class = "control-label col-md-2" })
|
||||
<div class="col-md-10">
|
||||
@Html.DisplayFor(model => model.Note, new { htmlAttributes = new { @class = "form-control" } })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="submit" value="Save" class="btn btn-default" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
108
Chruch.Net/Areas/dashboard/Views/NewVisitors/Edit.cshtml
Normal file
108
Chruch.Net/Areas/dashboard/Views/NewVisitors/Edit.cshtml
Normal file
@ -0,0 +1,108 @@
|
||||
@model Church.Net.Entity.NewVisitor
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Edit";
|
||||
}
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">Edit <span class="g-color-primary g-ml-5">NewVisitor</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-xl-4 g-mb-30 order-md-1">
|
||||
|
||||
<img src="/NewVisitorsPics/@Html.Raw(Model.Id+".jpg")" class="img-fluid img-thumbnail" />
|
||||
</div>
|
||||
<div class="col-xl-8 g-mb-30 order-md-0">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
|
||||
@Html.LabelFor(model => model.FirstName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
@Html.EditorFor(model => model.FirstName, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", placeholder = "" } })
|
||||
@Html.ValidationMessageFor(model => model.FirstName, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
|
||||
|
||||
@Html.LabelFor(model => model.LastName, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
@Html.EditorFor(model => model.LastName, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", placeholder = "" } })
|
||||
@Html.ValidationMessageFor(model => model.LastName, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
|
||||
@Html.LabelFor(model => model.Gender, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
@Html.EnumDropDownListFor(model => model.Gender, htmlAttributes: new { @class = "w-100 u-select-v2 u-shadow-v19 g-brd-none g-color-black g-color-primary--hover g-bg-white text-left g-rounded-30 g-pl-30 g-py-12" })
|
||||
@Html.ValidationMessageFor(model => model.Gender, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
|
||||
|
||||
@Html.LabelFor(model => model.Phone, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
@Html.EditorFor(model => model.Phone, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", placeholder = "" } })
|
||||
@Html.ValidationMessageFor(model => model.Phone, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ComunityAppId, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
@Html.EditorFor(model => model.ComunityAppId, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", placeholder = "" } })
|
||||
@Html.ValidationMessageFor(model => model.ComunityAppId, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
|
||||
|
||||
@Html.LabelFor(model => model.VisitingDate, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
@Html.EditorFor(model => model.VisitingDate, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", placeholder = "" } })
|
||||
@Html.ValidationMessageFor(model => model.VisitingDate, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.ReligionId, "ReligionId", htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.DropDownList("ReligionId", null, htmlAttributes: new { @class = "w-100 u-select-v2 u-shadow-v19 g-brd-none g-color-black g-color-primary--hover g-bg-white text-left g-rounded-30 g-pl-30 g-py-12" })
|
||||
@Html.ValidationMessageFor(model => model.ReligionId, "", new { @class = "form-control-feedback g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Note, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
@Html.EditorFor(model => model.Note, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", placeholder = "" } })
|
||||
@Html.ValidationMessageFor(model => model.Note, "", new { @class = "text-danger" })
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="g-mb-20--md">
|
||||
|
||||
|
||||
@Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
@Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", placeholder = "" } })
|
||||
@Html.ValidationMessageFor(model => model.Address, "", new { @class = "text-danger" })
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
<div class="d-flex">
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" type="reset">Reset</button>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Update</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
}
|
||||
217
Chruch.Net/Areas/dashboard/Views/NewVisitors/Index.cshtml
Normal file
217
Chruch.Net/Areas/dashboard/Views/NewVisitors/Index.cshtml
Normal file
@ -0,0 +1,217 @@
|
||||
@model IEnumerable<Church.Net.Entity.NewVisitor>
|
||||
|
||||
@{
|
||||
ViewBag.Title = "新朋友清單";
|
||||
}
|
||||
|
||||
<div class="g-px-20">
|
||||
|
||||
<div class="media">
|
||||
<div class="d-flex align-self-center">
|
||||
<h1 class="g-font-weight-300 g-font-size-28 g-color-black mb-0">@ViewBag.Title</h1>
|
||||
</div>
|
||||
|
||||
<div class="media-body align-self-center text-right">
|
||||
<a class="btn btn-xl u-btn-lightblue-v3 g-width-160--md g-font-size-default g-ml-10" href="@Url.Action("Index","NewVisitor",new{Area=""})">
|
||||
建立
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="d-flex g-brd-gray-light-v7 g-my-30">
|
||||
|
||||
|
||||
<div class="media flex-wrap g-mb-30">
|
||||
<div class="d-flex align-self-center align-items-center">
|
||||
<span class="g-hidden-sm-down g-color-gray-dark-v6 g-mr-12">Type:</span>
|
||||
<div class="u-select--v1 g-pr-20">
|
||||
<select class="js-select u-select--v1-select w-100" style="display: none;">
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-lightblue-v3 g-mr-8--sm"></span><span class="g-hidden-sm-down g-line-height-1_2 g-color-black">Friends</span></span>'>Friends</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-teal-v2 g-mr-8--sm"></span><span class="g-hidden-sm-down g-line-height-1_2 g-color-black">Colleagues</span></span>'>Colleagues</option>
|
||||
</select>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v6 ml-auto"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-self-center align-items-center g-ml-10 g-ml-20--md g-ml-40--lg">
|
||||
<span class="g-hidden-sm-down g-color-gray-dark-v6 g-mr-12">Position:</span>
|
||||
<div class="u-select--v1 g-pr-20">
|
||||
<select class="js-select u-select--v1-select w-100" style="display: none;">
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">All Positions</span></span>'>All Positions</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Manager</span></span>'>Manager</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Designer</span></span>'>Designer</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Developer</span></span>'>Developer</option>
|
||||
</select>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v6 ml-auto"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex g-hidden-md-up w-100"></div>
|
||||
<div class="media-body align-self-center g-mt-10 g-mt-0--md">
|
||||
<div class="input-group g-pos-rel g-max-width-380 float-right">
|
||||
<input class="form-control g-font-size-default g-brd-gray-light-v7 g-brd-lightblue-v3--focus g-rounded-20 g-pl-20 g-pr-50 g-py-10" type="text" placeholder="Search for name, position">
|
||||
<button class="btn g-pos-abs g-top-0 g-right-0 g-z-index-2 g-width-60 h-100 g-bg-transparent g-font-size-16 g-color-lightred-v2 g-color-lightblue-v3--hover rounded-0" type="submit">
|
||||
<i class="hs-admin-search g-absolute-centered"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<table class="table w-100 g-mb-25">
|
||||
|
||||
<thead class="g-hidden-sm-down g-color-gray-dark-v6">
|
||||
<tr>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.LastName)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.FirstName)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Gender)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Address)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Phone)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Email)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.ComunityAppId)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Religion.Name)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.VisitingDate)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Note)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15 g-pr-25"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody class="g-font-size-default g-color-black" id="accordion-09" role="tablist" aria-multiselectable="true">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<tr>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@if (File.Exists(HttpContext.Current.Server.MapPath("/NewVisitorsPics/" + item.Id + ".jpg")))
|
||||
{
|
||||
<img src="/NewVisitorsPics/@Html.Raw(item.Id+".jpg")" class="img-fluid img-thumbnail g-width-250" />
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
<img src="/Images/New Visitor-NonImage.jpg" class="img-fluid img-thumbnail g-width-250" />
|
||||
|
||||
}
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.LastName)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.FirstName)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Gender)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Address)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Phone)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Email)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.ComunityAppId)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Religion.Name)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.VisitingDate)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Note)
|
||||
</td>
|
||||
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm g-pr-25">
|
||||
<div class="d-flex align-items-center g-line-height-1">
|
||||
<a href="@Url.Action("Edit", new { id=item.Id })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15">
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Delete", new { id=item.Id })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover">
|
||||
<i class="hs-admin-trash g-font-size-18"></i>
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
44
Chruch.Net/Areas/dashboard/Views/Religions/Create.cshtml
Normal file
44
Chruch.Net/Areas/dashboard/Views/Religions/Create.cshtml
Normal file
@ -0,0 +1,44 @@
|
||||
@model Church.Net.Entity.Religion
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Create Religion";
|
||||
ViewBag.returnUrl2 = Url.Action("Index", "NewVisitors");
|
||||
ViewBag.returnUrl2Title = "新朋友管理";
|
||||
|
||||
ViewBag.returnUrl = Url.Action("Index");
|
||||
ViewBag.returnUrlTitle = "宗教信仰選項管理";
|
||||
}
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Create <span class="g-color-primary g-ml-5">Religion</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="submit" value="Create" class="btn btn-default" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div>
|
||||
@Html.ActionLink("Back to List", "Index")
|
||||
</div>
|
||||
49
Chruch.Net/Areas/dashboard/Views/Religions/Delete.cshtml
Normal file
49
Chruch.Net/Areas/dashboard/Views/Religions/Delete.cshtml
Normal file
@ -0,0 +1,49 @@
|
||||
@model Church.Net.Entity.Religion
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Delete Religion";
|
||||
ViewBag.returnUrl2 = Url.Action("Index", "NewVisitors");
|
||||
ViewBag.returnUrl2Title = "新朋友管理";
|
||||
|
||||
ViewBag.returnUrl = Url.Action("Index");
|
||||
ViewBag.returnUrlTitle = "宗教信仰選項管理";
|
||||
}
|
||||
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Are you sure you want to <span class="g-color-primary g-ml-5">DELETE</span> this?
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Name)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<div class="d-flex">
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" href="@Url.Action("Index")">Back to List</a>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Delete</button>
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
26
Chruch.Net/Areas/dashboard/Views/Religions/Details.cshtml
Normal file
26
Chruch.Net/Areas/dashboard/Views/Religions/Details.cshtml
Normal file
@ -0,0 +1,26 @@
|
||||
@model Church.Net.Entity.Religion
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Details";
|
||||
}
|
||||
|
||||
<h2>Details</h2>
|
||||
|
||||
<div>
|
||||
<h4>Religion</h4>
|
||||
<hr />
|
||||
<dl class="dl-horizontal">
|
||||
<dt>
|
||||
@Html.DisplayNameFor(model => model.Name)
|
||||
</dt>
|
||||
|
||||
<dd>
|
||||
@Html.DisplayFor(model => model.Name)
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@Html.ActionLink("Edit", "Edit", new { id = Model.ReligionId }) |
|
||||
@Html.ActionLink("Back to List", "Index")
|
||||
</p>
|
||||
49
Chruch.Net/Areas/dashboard/Views/Religions/Edit.cshtml
Normal file
49
Chruch.Net/Areas/dashboard/Views/Religions/Edit.cshtml
Normal file
@ -0,0 +1,49 @@
|
||||
@model Church.Net.Entity.Religion
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Edit Religion";
|
||||
ViewBag.returnUrl2 = Url.Action("Index", "NewVisitors");
|
||||
ViewBag.returnUrl2Title = "新朋友管理";
|
||||
|
||||
ViewBag.returnUrl = Url.Action("Index");
|
||||
ViewBag.returnUrlTitle = "宗教信仰選項管理";
|
||||
}
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Edit <span class="g-color-primary g-ml-5">Religion</span>
|
||||
</h2>
|
||||
</div>
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
@Html.HiddenFor(model => model.ReligionId)
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
<div class="d-flex">
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" type="reset">Reset</button>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Update</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
67
Chruch.Net/Areas/dashboard/Views/Religions/Index.cshtml
Normal file
67
Chruch.Net/Areas/dashboard/Views/Religions/Index.cshtml
Normal file
@ -0,0 +1,67 @@
|
||||
@model IEnumerable<Church.Net.Entity.Religion>
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Index";
|
||||
ViewBag.returnUrl2 = Url.Action("Index", "NewVisitors");
|
||||
|
||||
ViewBag.returnUrl2Title = "新朋友管理";
|
||||
}
|
||||
|
||||
<h2>Index</h2>
|
||||
|
||||
|
||||
<div class="media">
|
||||
<div class="d-flex align-self-center">
|
||||
<h1 class="g-font-weight-300 g-font-size-28 g-color-black mb-0">@ViewBag.Title</h1>
|
||||
</div>
|
||||
|
||||
<div class="media-body align-self-center text-right">
|
||||
<a class="js-fancybox btn btn-xl u-btn-lightblue-v3 g-width-160--md g-font-size-default g-ml-10" href="javascript:;" data-src="#add-contact-form" data-speed="350">
|
||||
建立
|
||||
</a>
|
||||
@Html.ActionLink("建立", "Create")
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="d-flex g-brd-gray-light-v7 g-my-30">
|
||||
|
||||
<table class="table w-100 g-mb-25">
|
||||
|
||||
<thead class="g-hidden-sm-down g-color-gray-dark-v6">
|
||||
<tr>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Name)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15 g-pr-25"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody class="g-font-size-default g-color-black" id="accordion-09" role="tablist" aria-multiselectable="true">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<tr>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Name)
|
||||
</td>
|
||||
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm g-pr-25">
|
||||
<div class="d-flex align-items-center g-line-height-1">
|
||||
<a href="@Url.Action("Edit", new { id=item.ReligionId })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15">
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Delete", new { id=item.ReligionId })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover">
|
||||
<i class="hs-admin-trash g-font-size-18"></i>
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
879
Chruch.Net/Areas/dashboard/Views/Shared/_Layout.cshtml
Normal file
879
Chruch.Net/Areas/dashboard/Views/Shared/_Layout.cshtml
Normal file
@ -0,0 +1,879 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>@ViewBag.Title - My ASP.NET Application</title>
|
||||
@Scripts.Render("~/bundles/modernizr")
|
||||
<!-- Required Meta Tags Always Come First -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<!-- Favicon -->
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<!-- Google Fonts -->
|
||||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans%3A400%2C300%2C500%2C600%2C700%7CPlayfair+Display%7CRoboto%7CRaleway%7CSpectral%7CRubik">
|
||||
<!-- CSS Global Compulsory -->
|
||||
|
||||
@Styles.Render("~/Content/bootstrap")
|
||||
@Styles.Render("~/Content/DashboardCss")
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
|
||||
<!-- Header -->
|
||||
<header id="js-header" class="u-header u-header--sticky-top">
|
||||
<div class="u-header__section u-header__section--admin-dark g-min-height-65">
|
||||
<nav class="navbar no-gutters g-pa-0">
|
||||
<div class="col-auto d-flex flex-nowrap u-header-logo-toggler g-py-12">
|
||||
<!-- Logo -->
|
||||
<a href="#" class="align-self-center d-flex g-hidden-xs-down g-line-height-1 g-ml-40 g-mt-5 navbar-brand py-0">
|
||||
<img src="/Images/logo-light.png" class="g-height-50 img-fluid">
|
||||
|
||||
</a>
|
||||
<!-- End Logo -->
|
||||
<!-- Sidebar Toggler -->
|
||||
<a class="js-side-nav u-header__nav-toggler d-flex align-self-center ml-auto" href="#!" data-hssm-class="u-side-nav--mini u-sidebar-navigation-v1--mini" data-hssm-body-class="u-side-nav-mini" data-hssm-is-close-all-except-this="true" data-hssm-target="#sideNav">
|
||||
<i class="hs-admin-align-left"></i>
|
||||
</a>
|
||||
<!-- End Sidebar Toggler -->
|
||||
</div>
|
||||
<!-- Top Search Bar -->
|
||||
<form id="searchMenu" class="u-header--search col-sm g-py-12 g-ml-15--sm g-ml-20--md g-mr-10--sm" aria-labelledby="searchInvoker" action="#!">
|
||||
<div class="input-group g-max-width-450">
|
||||
<input class="form-control form-control-md g-rounded-4" type="text" placeholder="Enter search keywords">
|
||||
<button type="submit" class="btn u-btn-outline-primary g-brd-none g-bg-transparent--hover g-pos-abs g-top-0 g-right-0 d-flex g-width-40 h-100 align-items-center justify-content-center g-font-size-18 g-z-index-2">
|
||||
<i class="hs-admin-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<!-- End Top Search Bar -->
|
||||
<!-- Messages/Notifications/Top Search Bar/Top User -->
|
||||
<div class="col-auto d-flex g-py-12 g-pl-40--lg ml-auto">
|
||||
<!-- Top Messages -->
|
||||
<div class="g-pos-rel g-hidden-sm-down g-mr-5">
|
||||
<a id="messagesInvoker" class="d-block text-uppercase u-header-icon-v1 g-pos-rel g-width-40 g-height-40 rounded-circle g-font-size-20" href="#!" aria-controls="messagesMenu" aria-haspopup="true" aria-expanded="false" data-dropdown-event="click" data-dropdown-target="#messagesMenu"
|
||||
data-dropdown-type="css-animation" data-dropdown-duration="300" data-dropdown-animation-in="fadeIn" data-dropdown-animation-out="fadeOut">
|
||||
<span class="u-badge-v1 g-top-7 g-right-7 g-width-18 g-height-18 g-bg-primary g-font-size-10 g-color-white rounded-circle p-0">7</span>
|
||||
<i class="hs-admin-comment-alt g-absolute-centered"></i>
|
||||
</a>
|
||||
<!-- Top Messages List -->
|
||||
<div id="messagesMenu" class="g-absolute-centered--x g-width-340 g-max-width-400 g-mt-17 rounded" aria-labelledby="messagesInvoker">
|
||||
<div class="media u-header-dropdown-bordered-v1 g-pa-20">
|
||||
<h4 class="d-flex align-self-center text-uppercase g-font-size-default g-letter-spacing-0_5 g-mr-20 g-mb-0">3 new messages</h4>
|
||||
<div class="media-body align-self-center text-right">
|
||||
<a class="g-color-secondary" href="#!">View All</a>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="p-0 mb-0">
|
||||
<!-- Top Messages List Item -->
|
||||
<li class="media g-pos-rel u-header-dropdown-item-v1 g-pa-20">
|
||||
<div class="d-flex g-mr-15">
|
||||
<img class="g-width-40 g-height-40 rounded-circle" src="../../assets/img-temp/100x100/img5.jpg" alt="Image Description">
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h5 class="g-font-size-16 g-font-weight-400 g-mb-5"><a href="#!">Verna Swanson</a></h5>
|
||||
<p class="g-mb-10">Not so many years businesses used to grunt at using</p>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-mr-5"></i> <small>5 Min ago</small>
|
||||
</em>
|
||||
</div>
|
||||
<a class="u-link-v2" href="#!">Read</a>
|
||||
</li>
|
||||
<!-- End Top Messages List Item -->
|
||||
<!-- Top Messages List Item -->
|
||||
<li class="media g-pos-rel u-header-dropdown-item-v1 g-pa-20">
|
||||
<div class="d-flex g-mr-15">
|
||||
<img class="g-width-40 g-height-40 rounded-circle" src="../../assets/img-temp/100x100/img6.jpg" alt="Image Description">
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h5 class="g-font-size-16 g-font-weight-400 g-mb-5"><a href="#!">Eddie Hayes</a></h5>
|
||||
<p class="g-mb-10">But today and influence of is growing right along illustration</p>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-mr-5"></i> <small>22 Min ago</small>
|
||||
</em>
|
||||
</div>
|
||||
<a class="u-link-v2" href="#!">Read</a>
|
||||
</li>
|
||||
<!-- End Top Messages List Item -->
|
||||
<!-- Top Messages List Item -->
|
||||
<li class="media g-pos-rel u-header-dropdown-item-v1 g-pa-20">
|
||||
<div class="d-flex g-mr-15">
|
||||
<img class="g-width-40 g-height-40 rounded-circle" src="../../assets/img-temp/100x100/img7.jpg" alt="Image Description">
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h5 class="g-font-size-16 g-font-weight-400 g-mb-5"><a href="#!">Herbert Castro</a></h5>
|
||||
<p class="g-mb-10">But today, the use and influence of illustrations is growing right along</p>
|
||||
<em class="d-flex align-self-center align-items-center g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-mr-5"></i> <small>15 Min ago</small>
|
||||
</em>
|
||||
</div>
|
||||
<a class="u-link-v2" href="#!">Read</a>
|
||||
</li>
|
||||
<!-- End Top Messages List Item -->
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End Top Messages List -->
|
||||
</div>
|
||||
<!-- End Top Messages -->
|
||||
<!-- Top Notifications -->
|
||||
<div class="g-pos-rel g-hidden-sm-down">
|
||||
<a id="notificationsInvoker" class="d-block text-uppercase u-header-icon-v1 g-pos-rel g-width-40 g-height-40 rounded-circle g-font-size-20" href="#!" aria-controls="notificationsMenu" aria-haspopup="true" aria-expanded="false" data-dropdown-event="click"
|
||||
data-dropdown-target="#notificationsMenu" data-dropdown-type="css-animation" data-dropdown-duration="300" data-dropdown-animation-in="fadeIn" data-dropdown-animation-out="fadeOut">
|
||||
<i class="hs-admin-bell g-absolute-centered"></i>
|
||||
</a>
|
||||
<!-- Top Notifications List -->
|
||||
<div id="notificationsMenu" class="js-custom-scroll g-absolute-centered--x g-width-340 g-max-width-400 g-height-400 g-mt-17 rounded" aria-labelledby="notificationsInvoker">
|
||||
<div class="media text-uppercase u-header-dropdown-bordered-v1 g-pa-20">
|
||||
<h4 class="d-flex align-self-center g-font-size-default g-letter-spacing-0_5 g-mr-20 g-mb-0">Notifications</h4>
|
||||
</div>
|
||||
<ul class="p-0 mb-0">
|
||||
<!-- Top Notifications List Item -->
|
||||
<li class="media u-header-dropdown-item-v1 g-parent g-px-20 g-py-15">
|
||||
<div class="d-flex align-self-center u-header-dropdown-icon-v1 g-pos-rel g-width-55 g-height-55 g-font-size-22 rounded-circle g-mr-15">
|
||||
<i class="hs-admin-bookmark-alt g-absolute-centered"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<p class="mb-0">A Pocket PC is a handheld computer features</p>
|
||||
</div>
|
||||
<a class="d-flex g-color-lightblue-v2 g-font-size-12 opacity-0 g-opacity-1--parent-hover g-transition--ease-in g-transition-0_2" href="#!">
|
||||
<i class="hs-admin-close"></i>
|
||||
</a>
|
||||
</li>
|
||||
<!-- End Top Notifications List Item -->
|
||||
<!-- Top Notifications List Item -->
|
||||
<li class="media u-header-dropdown-item-v1 g-parent g-px-20 g-py-15">
|
||||
<div class="d-flex align-self-center u-header-dropdown-icon-v1 g-pos-rel g-width-55 g-height-55 g-font-size-22 rounded-circle g-mr-15">
|
||||
<i class="hs-admin-blackboard g-absolute-centered"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<p class="mb-0">The first is a non technical method which requires</p>
|
||||
</div>
|
||||
<a class="d-flex g-color-lightblue-v2 g-font-size-12 opacity-0 g-opacity-1--parent-hover g-transition--ease-in g-transition-0_2" href="#!">
|
||||
<i class="hs-admin-close"></i>
|
||||
</a>
|
||||
</li>
|
||||
<!-- End Top Notifications List Item -->
|
||||
<!-- Top Notifications List Item -->
|
||||
<li class="media u-header-dropdown-item-v1 g-parent g-px-20 g-py-15">
|
||||
<div class="d-flex align-self-center u-header-dropdown-icon-v1 g-pos-rel g-width-55 g-height-55 g-font-size-22 rounded-circle g-mr-15">
|
||||
<i class="hs-admin-calendar g-absolute-centered"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<p class="mb-0">Stu Unger is of the biggest superstarsis</p>
|
||||
</div>
|
||||
<a class="d-flex g-color-lightblue-v2 g-font-size-12 opacity-0 g-opacity-1--parent-hover g-transition--ease-in g-transition-0_2" href="#!">
|
||||
<i class="hs-admin-close"></i>
|
||||
</a>
|
||||
</li>
|
||||
<!-- End Top Notifications List Item -->
|
||||
<!-- Top Notifications List Item -->
|
||||
<li class="media u-header-dropdown-item-v1 g-parent g-px-20 g-py-15">
|
||||
<div class="d-flex align-self-center u-header-dropdown-icon-v1 g-pos-rel g-width-55 g-height-55 g-font-size-22 rounded-circle g-mr-15">
|
||||
<i class="hs-admin-pie-chart g-absolute-centered"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<p class="mb-0">Sony laptops are among the most well known laptops</p>
|
||||
</div>
|
||||
<a class="d-flex g-color-lightblue-v2 g-font-size-12 opacity-0 g-opacity-1--parent-hover g-transition--ease-in g-transition-0_2" href="#!">
|
||||
<i class="hs-admin-close"></i>
|
||||
</a>
|
||||
</li>
|
||||
<!-- End Top Notifications List Item -->
|
||||
<!-- Top Notifications List Item -->
|
||||
<li class="media u-header-dropdown-item-v1 g-parent g-px-20 g-py-15">
|
||||
<div class="d-flex align-self-center u-header-dropdown-icon-v1 g-pos-rel g-width-55 g-height-55 g-font-size-22 rounded-circle g-mr-15">
|
||||
<i class="hs-admin-bookmark-alt g-absolute-centered"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<p class="mb-0">A Pocket PC is a handheld computer features</p>
|
||||
</div>
|
||||
<a class="d-flex g-color-lightblue-v2 g-font-size-12 opacity-0 g-opacity-1--parent-hover g-transition--ease-in g-transition-0_2" href="#!">
|
||||
<i class="hs-admin-close"></i>
|
||||
</a>
|
||||
</li>
|
||||
<!-- End Top Notifications List Item -->
|
||||
<!-- Top Notifications List Item -->
|
||||
<li class="media u-header-dropdown-item-v1 g-parent g-px-20 g-py-15">
|
||||
<div class="d-flex align-self-center u-header-dropdown-icon-v1 g-pos-rel g-width-55 g-height-55 g-font-size-22 rounded-circle g-mr-15">
|
||||
<i class="hs-admin-blackboard g-absolute-centered"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-center">
|
||||
<p class="mb-0">The first is a non technical method which requires</p>
|
||||
</div>
|
||||
<a class="d-flex g-color-lightblue-v2 g-font-size-12 opacity-0 g-opacity-1--parent-hover g-transition--ease-in g-transition-0_2" href="#!">
|
||||
<i class="hs-admin-close"></i>
|
||||
</a>
|
||||
</li>
|
||||
<!-- End Top Notifications List Item -->
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End Top Notifications List -->
|
||||
</div>
|
||||
<!-- End Top Notifications -->
|
||||
<!-- Top Search Bar (Mobi) -->
|
||||
<a id="searchInvoker" class="g-hidden-sm-up text-uppercase u-header-icon-v1 g-pos-rel g-width-40 g-height-40 rounded-circle g-font-size-20" href="#!" aria-controls="searchMenu" aria-haspopup="true" aria-expanded="false" data-is-mobile-only="true" data-dropdown-event="click"
|
||||
data-dropdown-target="#searchMenu" data-dropdown-type="css-animation" data-dropdown-duration="300" data-dropdown-animation-in="fadeIn" data-dropdown-animation-out="fadeOut">
|
||||
<i class="hs-admin-search g-absolute-centered"></i>
|
||||
</a>
|
||||
<!-- End Top Search Bar (Mobi) -->
|
||||
<!-- Top User -->
|
||||
<div class="col-auto d-flex g-pt-5 g-pt-0--sm g-pl-10 g-pl-20--sm">
|
||||
<div class="g-pos-rel g-px-10--lg">
|
||||
<a id="profileMenuInvoker" class="d-block" href="#!" aria-controls="profileMenu" aria-haspopup="true" aria-expanded="false" data-dropdown-event="click" data-dropdown-target="#profileMenu" data-dropdown-type="css-animation" data-dropdown-duration="300"
|
||||
data-dropdown-animation-in="fadeIn" data-dropdown-animation-out="fadeOut">
|
||||
<span class="g-pos-rel">
|
||||
<span class="u-badge-v2--xs u-badge--top-right g-hidden-sm-up g-bg-lightblue-v5 g-mr-5"></span>
|
||||
<img class="g-width-30 g-width-40--md g-height-30 g-height-40--md rounded-circle g-mr-10--sm" src="../assets/img-temp/130x130/img1.jpg" alt="Image description">
|
||||
</span>
|
||||
<span class="g-pos-rel g-top-2">
|
||||
<span class="g-hidden-sm-down">Charlie Bailey</span>
|
||||
<i class="hs-admin-angle-down g-pos-rel g-top-2 g-ml-10"></i>
|
||||
</span>
|
||||
</a>
|
||||
<!-- Top User Menu -->
|
||||
<ul id="profileMenu" class="g-pos-abs g-left-0 g-width-100x--lg g-nowrap g-font-size-14 g-py-20 g-mt-17 rounded" aria-labelledby="profileMenuInvoker">
|
||||
<li class="g-hidden-sm-up g-mb-10">
|
||||
<a class="media g-py-5 g-px-20" href="#!">
|
||||
<span class="d-flex align-self-center g-pos-rel g-mr-12">
|
||||
<span class="u-badge-v1 g-top-minus-3 g-right-minus-3 g-width-18 g-height-18 g-bg-lightblue-v5 g-font-size-10 g-color-white rounded-circle p-0">10</span>
|
||||
<i class="hs-admin-comment-alt"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">Unread Messages</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="g-hidden-sm-up g-mb-10">
|
||||
<a class="media g-py-5 g-px-20" href="#!">
|
||||
<span class="d-flex align-self-center g-mr-12">
|
||||
<i class="hs-admin-bell"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">Notifications</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="g-mb-10">
|
||||
<a class="media g-color-lightred-v2--hover g-py-5 g-px-20" href="#!">
|
||||
<span class="d-flex align-self-center g-mr-12">
|
||||
<i class="hs-admin-user"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">My Profile</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="g-mb-10">
|
||||
<a class="media g-color-lightred-v2--hover g-py-5 g-px-20" href="#!">
|
||||
<span class="d-flex align-self-center g-mr-12">
|
||||
<i class="hs-admin-rocket"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">Upgrade Plan</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="g-mb-10">
|
||||
<a class="media g-color-lightred-v2--hover g-py-5 g-px-20" href="#!">
|
||||
<span class="d-flex align-self-center g-mr-12">
|
||||
<i class="hs-admin-layout-grid-2"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">Latest Projects</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="g-mb-10">
|
||||
<a class="media g-color-lightred-v2--hover g-py-5 g-px-20" href="#!">
|
||||
<span class="d-flex align-self-center g-mr-12">
|
||||
<i class="hs-admin-headphone-alt"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">Get Support</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="mb-0">
|
||||
<a class="media g-color-lightred-v2--hover g-py-5 g-px-20" href="#!">
|
||||
<span class="d-flex align-self-center g-mr-12">
|
||||
<i class="hs-admin-shift-right"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">Sign Out</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- End Top User Menu -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Top User -->
|
||||
</div>
|
||||
<!-- End Messages/Notifications/Top Search Bar/Top User -->
|
||||
<!-- Top Activity Toggler -->
|
||||
<a id="activityInvoker" class="text-uppercase u-header-icon-v1 g-pos-rel g-width-40 g-height-40 rounded-circle g-font-size-20" href="#!" aria-controls="activityMenu" aria-haspopup="true" aria-expanded="false" data-dropdown-event="click" data-dropdown-target="#activityMenu"
|
||||
data-dropdown-type="css-animation" data-dropdown-animation-in="fadeInRight" data-dropdown-animation-out="fadeOutRight" data-dropdown-duration="300">
|
||||
<i class="hs-admin-align-right g-absolute-centered"></i>
|
||||
</a>
|
||||
<!-- End Top Activity Toggler -->
|
||||
</nav>
|
||||
<!-- Top Activity Panel -->
|
||||
<div id="activityMenu" class="js-custom-scroll u-header-sidebar g-pos-fix g-top-0 g-left-auto g-right-0 g-z-index-4 g-width-300 g-width-400--sm g-height-100vh" aria-labelledby="activityInvoker">
|
||||
<div class="u-header-dropdown-bordered-v1 g-pa-20">
|
||||
<a id="activityInvokerClose" class="pull-right g-color-lightblue-v2" href="#!" aria-controls="activityMenu" aria-haspopup="true" aria-expanded="false" data-dropdown-event="click" data-dropdown-target="#activityMenu" data-dropdown-type="css-animation"
|
||||
data-dropdown-animation-in="fadeInRight" data-dropdown-animation-out="fadeOutRight" data-dropdown-duration="300">
|
||||
<i class="hs-admin-close"></i>
|
||||
</a>
|
||||
<h4 class="text-uppercase g-font-size-default g-letter-spacing-0_5 g-mr-20 g-mb-0">Activity</h4>
|
||||
</div>
|
||||
<!-- Activity Short Stat. -->
|
||||
<section class="g-pa-20">
|
||||
<div class="media align-items-center u-link-v5 g-color-white">
|
||||
<div class="media-body align-self-center g-line-height-1_3 g-font-weight-300 g-font-size-40">
|
||||
624 <span class="g-font-size-16">+3%</span>
|
||||
</div>
|
||||
<div class="d-flex align-self-center g-font-size-25 g-line-height-1 g-color-lightblue-v3 ml-auto">$49,000</div>
|
||||
<div class="d-flex align-self-center g-ml-8">
|
||||
<svg class="g-fill-white-opacity-0_5" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<svg class="g-fill-lightblue-v3" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)" points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<span class="g-font-size-16">Transactions</span>
|
||||
</section>
|
||||
<!-- End Activity Short Stat. -->
|
||||
<!-- Activity Bars -->
|
||||
<section class="g-pa-20 g-mb-10">
|
||||
<!-- Advertising Income -->
|
||||
<div class="g-mb-30">
|
||||
<div class="media u-link-v5 g-color-white g-mb-10">
|
||||
<span class="media-body align-self-center">Advertising Income</span>
|
||||
<span class="d-flex align-self-center">
|
||||
<svg class="g-fill-white-opacity-0_5" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<svg class="g-fill-lightblue-v3" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)" points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="progress g-height-4 g-bg-gray-light-v8 g-rounded-2">
|
||||
<div class="progress-bar g-bg-teal-v2 g-rounded-2" role="progressbar" style="width: 70%" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Advertising Income -->
|
||||
<!-- Projects Income -->
|
||||
<div class="g-mb-30">
|
||||
<div class="media u-link-v5 g-color-white g-mb-10">
|
||||
<span class="media-body align-self-center">Projects Income</span>
|
||||
<span class="d-flex align-self-center">
|
||||
<svg class="g-fill-red" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<svg class="g-fill-white-opacity-0_5" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)" points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="progress g-height-4 g-bg-gray-light-v8 g-rounded-2">
|
||||
<div class="progress-bar g-bg-lightblue-v4 g-rounded-2" role="progressbar" style="width: 40%" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Projects Income -->
|
||||
<!-- Template Sales -->
|
||||
<div>
|
||||
<div class="media u-link-v5 g-color-white g-mb-10">
|
||||
<span class="media-body align-self-center">Template Sales</span>
|
||||
<span class="d-flex align-self-center">
|
||||
<svg class="g-fill-white-opacity-0_5" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-21.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon points="6 20 0 13.9709049 0.576828937 13.3911999 5.59205874 18.430615 5.59205874 0 6.40794126 0 6.40794126 18.430615 11.4223552 13.3911999 12 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<svg class="g-fill-lightblue-v3" width="12px" height="20px" viewBox="0 0 12 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="translate(-33.000000, -751.000000)">
|
||||
<g transform="translate(0.000000, 64.000000)">
|
||||
<g transform="translate(20.000000, 619.000000)">
|
||||
<g transform="translate(1.000000, 68.000000)">
|
||||
<polygon transform="translate(18.000000, 10.000000) scale(1, -1) translate(-18.000000, -10.000000)" points="18 20 12 13.9709049 12.5768289 13.3911999 17.5920587 18.430615 17.5920587 0 18.4079413 0 18.4079413 18.430615 23.4223552 13.3911999 24 13.9709049"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="progress g-height-4 g-bg-gray-light-v8 g-rounded-2">
|
||||
<div class="progress-bar g-bg-darkblue-v2 g-rounded-2" role="progressbar" style="width: 90%" aria-valuenow="90" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Template Sales -->
|
||||
</section>
|
||||
<!-- End Activity Bars -->
|
||||
<!-- Activity Accounts -->
|
||||
<section class="g-pa-20">
|
||||
<h5 class="text-uppercase g-font-size-default g-letter-spacing-0_5 g-mb-10">My accounts</h5>
|
||||
<div class="media u-header-dropdown-bordered-v2 g-py-10">
|
||||
<div class="d-flex align-self-center g-mr-12">
|
||||
<span class="u-badge-v2--sm g-pos-stc g-transform-origin--top-left g-bg-teal-v2"></span>
|
||||
</div>
|
||||
<div class="media-body align-self-center">Credit Card</div>
|
||||
<div class="d-flex text-right">$12.240</div>
|
||||
</div>
|
||||
<div class="media u-header-dropdown-bordered-v2 g-py-10">
|
||||
<div class="d-flex align-self-center g-mr-12">
|
||||
<span class="u-badge-v2--sm g-pos-stc g-transform-origin--top-left g-bg-lightblue-v4"></span>
|
||||
</div>
|
||||
<div class="media-body align-self-center">Debit Card</div>
|
||||
<div class="d-flex text-right">$228.110</div>
|
||||
</div>
|
||||
<div class="media g-py-10">
|
||||
<div class="d-flex align-self-center g-mr-12">
|
||||
<span class="u-badge-v2--sm g-pos-stc g-transform-origin--top-left g-bg-darkblue-v2"></span>
|
||||
</div>
|
||||
<div class="media-body align-self-center">Savings Account</div>
|
||||
<div class="d-flex text-right">$128.248.000</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- End Activity Accounts -->
|
||||
<!-- Activity Transactions -->
|
||||
<section class="g-pa-20">
|
||||
<h5 class="text-uppercase g-font-size-default g-letter-spacing-0_5 g-mb-10">Transactions</h5>
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-plus g-color-lightblue-v4"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$240.00</strong>
|
||||
<p class="mb-0 g-mt-5">Addiction When Gambling Becomes</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> <small>5 Min ago</small>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-minus g-color-red"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$126.00</strong>
|
||||
<p class="mb-0 g-mt-5">Make Myspace Your</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> <small>25 Nov 2017</small>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-plus g-color-lightblue-v4"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$560.00</strong>
|
||||
<p class="mb-0 g-mt-5">Writing A Good Headline</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> <small>22 Nov 2017</small>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-plus g-color-lightblue-v4"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$6.00</strong>
|
||||
<p class="mb-0 g-mt-5">Buying Used Electronic Equipment</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> <small>13 Oct 2017</small>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-plus g-color-lightblue-v4"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$320.00</strong>
|
||||
<p class="mb-0 g-mt-5">Gambling Becomes A Problem</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> <small>27 Jul 2017</small>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-minus g-color-red"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$28.00</strong>
|
||||
<p class="mb-0 g-mt-5">Baby Monitor Technology</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> <small>05 Mar 2017</small>
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-plus g-color-lightblue-v4"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$490.00</strong>
|
||||
<p class="mb-0 g-mt-5">Adwords Keyword Research For Beginners</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 text-uppercase g-font-size-11 g-letter-spacing-0_5 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> 09 Feb 2017
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
<!-- Transaction Item -->
|
||||
<div class="u-header-dropdown-bordered-v2 g-py-20">
|
||||
<div class="media g-pos-rel">
|
||||
<div class="d-flex align-self-start g-pt-3 g-mr-12">
|
||||
<i class="hs-admin-minus g-color-red"></i>
|
||||
</div>
|
||||
<div class="media-body align-self-start">
|
||||
<strong class="d-block g-font-size-17 g-font-weight-400 g-line-height-1">$14.20</strong>
|
||||
<p class="mb-0 g-mt-5">A Good Autoresponder</p>
|
||||
</div>
|
||||
<em class="d-flex align-items-center g-pos-abs g-top-0 g-right-0 text-uppercase g-font-size-11 g-letter-spacing-0_5 g-font-style-normal g-color-lightblue-v2">
|
||||
<i class="hs-admin-time icon-clock g-font-size-default g-mr-8"></i> 09 Feb 2017
|
||||
</em>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Transaction Item -->
|
||||
</section>
|
||||
<!-- End Activity Transactions -->
|
||||
</div>
|
||||
<!-- End Top Activity Panel -->
|
||||
</div>
|
||||
</header>
|
||||
<!-- End Header -->
|
||||
|
||||
<main class="container-fluid px-0">
|
||||
<div class="row no-gutters g-pos-rel g-overflow-x-hidden">
|
||||
<!-- Sidebar Nav -->
|
||||
<div id="sideNav" class="col-auto u-sidebar-navigation-v1 u-sidebar-navigation--dark">
|
||||
<ul id="sideNavMenu" class="u-sidebar-navigation-v1-menu u-side-nav--top-level-menu g-min-height-100vh mb-0 g-pt-65">
|
||||
|
||||
<!-- Packages -->
|
||||
<li class="u-sidebar-navigation-v1-menu-item u-side-nav--top-level-menu-item has-active">
|
||||
<a class="media u-side-nav--top-level-menu-link u-side-nav--hide-on-hidden g-px-15 g-py-12" href="@(Url.Action("Index","NewVisitors"))">
|
||||
<span class="d-flex align-self-center g-font-size-18 g-mr-18">
|
||||
<i class="hs-admin-medall"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">新朋友</span>
|
||||
</a>
|
||||
</li>
|
||||
<!-- End Packages -->
|
||||
|
||||
<li class="u-sidebar-navigation-v1-menu-item u-side-nav--top-level-menu-item">
|
||||
<a class="media u-side-nav--top-level-menu-link u-side-nav--hide-on-hidden g-px-15 g-py-12" href="#">
|
||||
<span class="d-flex align-self-center g-font-size-18 g-mr-18">
|
||||
<i class="hs-admin-user"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">教友清單</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="u-sidebar-navigation-v1-menu-item u-side-nav--top-level-menu-item">
|
||||
<a class="media u-side-nav--top-level-menu-link u-side-nav--hide-on-hidden g-px-15 g-py-12" href="#">
|
||||
<span class="d-flex align-self-center g-font-size-18 g-mr-18">
|
||||
<i class="hs-admin-crown"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">細胞小組管理</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="u-sidebar-navigation-v1-menu-item u-side-nav--top-level-menu-item">
|
||||
<a class="media u-side-nav--top-level-menu-link u-side-nav--hide-on-hidden g-px-15 g-py-12" href="#">
|
||||
<span class="d-flex align-self-center g-font-size-18 g-mr-18">
|
||||
<i class="hs-admin-announcement"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">最新消息管理</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="u-sidebar-navigation-v1-menu-item u-side-nav--top-level-menu-item">
|
||||
<a class="media u-side-nav--top-level-menu-link u-side-nav--hide-on-hidden g-px-15 g-py-12" href="#">
|
||||
<span class="d-flex align-self-center g-font-size-18 g-mr-18">
|
||||
<i class="hs-admin-basketball"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">活動管理</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="u-sidebar-navigation-v1-menu-item u-side-nav--top-level-menu-item">
|
||||
<a class="media u-side-nav--top-level-menu-link u-side-nav--hide-on-hidden g-px-15 g-py-12" href="#">
|
||||
<span class="d-flex align-self-center g-font-size-18 g-mr-18">
|
||||
<i class="hs-admin-blackboard"></i>
|
||||
</span>
|
||||
<span class="media-body align-self-center">主日信息發布</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End Sidebar Nav -->
|
||||
|
||||
<div class="col g-ml-45 g-ml-0--lg g-pt-65">
|
||||
<div class="g-bg-gray-light-v8 g-pa-20">
|
||||
<ul class="u-list-inline g-color-gray-dark-v6">
|
||||
|
||||
<li class="list-inline-item g-mr-10">
|
||||
<a class="u-link-v5 g-color-gray-dark-v6 g-color-lightblue-v3--hover g-valign-middle" href="#">Dashboard</a>
|
||||
<i class="hs-admin-angle-right g-font-size-12 g-color-gray-light-v6 g-valign-middle g-ml-10"></i>
|
||||
</li>
|
||||
@if (!string.IsNullOrEmpty(ViewBag.returnUrl2))
|
||||
{
|
||||
|
||||
<li class="list-inline-item g-mr-10">
|
||||
<a class="u-link-v5 g-color-gray-dark-v6 g-color-lightblue-v3--hover g-valign-middle" href="@ViewBag.returnUrl2">@ViewBag.returnUrlTitle2</a>
|
||||
<i class="hs-admin-angle-right g-font-size-12 g-color-gray-light-v6 g-valign-middle g-ml-10"></i>
|
||||
</li>
|
||||
}
|
||||
|
||||
@if (!string.IsNullOrEmpty(ViewBag.returnUrl))
|
||||
{
|
||||
|
||||
<li class="list-inline-item g-mr-10">
|
||||
<a class="u-link-v5 g-color-gray-dark-v6 g-color-lightblue-v3--hover g-valign-middle" href="@ViewBag.returnUrl">@ViewBag.returnUrlTitle</a>
|
||||
<i class="hs-admin-angle-right g-font-size-12 g-color-gray-light-v6 g-valign-middle g-ml-10"></i>
|
||||
</li>
|
||||
}
|
||||
|
||||
<li class="list-inline-item">
|
||||
<span class="g-valign-middle">@ViewBag.Title</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@*<section class="g-color-white g-bg-gray-dark-v1 g-py-30" style="background-image: url(/images/bg/pattern3.png);">
|
||||
<div class="container-fluid">
|
||||
<div class="d-sm-flex text-center">
|
||||
<div class="align-self-center">
|
||||
<h2 class="h3 g-font-weight-300 w-100 g-mb-10 g-mb-0--md">@ViewBag.title</h2>
|
||||
</div>
|
||||
|
||||
@*<div class="align-self-center ml-auto">
|
||||
<ul class="u-list-inline">
|
||||
<li class="list-inline-item g-mr-5">
|
||||
<a class="u-link-v5 g-color-white g-color-primary--hover" href="#!">Home</a>
|
||||
<i class="g-color-gray-light-v2 g-ml-5">/</i>
|
||||
</li>
|
||||
<li class="list-inline-item g-mr-5">
|
||||
<a class="u-link-v5 g-color-white g-color-primary--hover" href="#!">Pages</a>
|
||||
<i class="g-color-gray-light-v2 g-ml-5">/</i>
|
||||
</li>
|
||||
<li class="list-inline-item g-color-primary">
|
||||
<span>About Us</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>*@
|
||||
<div class="g-pt-20 g-overflow-y-auto g-pt-20" style="height: calc(100vh - 225px);">
|
||||
|
||||
@RenderBody()
|
||||
</div>
|
||||
<!-- Footer -->
|
||||
<footer id="footer" class="u-footer--bottom-sticky g-bg-white g-color-gray-dark-v6 g-brd-top g-brd-gray-light-v7 g-pa-20">
|
||||
<div class="row align-items-center">
|
||||
<!-- Footer Nav -->
|
||||
<div class="col-md-4 g-mb-10 g-mb-0--md">
|
||||
<ul class="list-inline text-center text-md-left mb-0">
|
||||
<li class="list-inline-item">
|
||||
<a class="g-color-gray-dark-v6 g-color-lightblue-v3--hover" href="#!">FAQ</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="g-color-gray-dark-v6">|</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a class="g-color-gray-dark-v6 g-color-lightblue-v3--hover" href="#!">Support</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="g-color-gray-dark-v6">|</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a class="g-color-gray-dark-v6 g-color-lightblue-v3--hover" href="#!">Contact Us</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End Footer Nav -->
|
||||
<!-- Footer Socials -->
|
||||
<div class="col-md-4 g-mb-10 g-mb-0--md">
|
||||
<ul class="list-inline g-font-size-16 text-center mb-0">
|
||||
<li class="list-inline-item g-mx-10">
|
||||
<a href="#!" class="g-color-facebook g-color-lightblue-v3--hover">
|
||||
<i class="fa fa-facebook-square"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item g-mx-10">
|
||||
<a href="#!" class="g-color-google-plus g-color-lightblue-v3--hover">
|
||||
<i class="fa fa-google-plus"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item g-mx-10">
|
||||
<a href="#!" class="g-color-black g-color-lightblue-v3--hover">
|
||||
<i class="fa fa-github"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item g-mx-10">
|
||||
<a href="#!" class="g-color-twitter g-color-lightblue-v3--hover">
|
||||
<i class="fa fa-twitter"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End Footer Socials -->
|
||||
<!-- Footer Copyrights -->
|
||||
<div class="col-md-4 text-center text-md-right">
|
||||
<small class="d-block g-font-size-default">© 2018 Htmlstream. All Rights Reserved.</small>
|
||||
</div>
|
||||
<!-- End Footer Copyrights -->
|
||||
</div>
|
||||
</footer>
|
||||
<!-- End Footer -->
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Scripts.Render("~/bundles/jquery")
|
||||
@Scripts.Render("~/bundles/bootstrap")
|
||||
@Scripts.Render("~/bundles/Common")
|
||||
@Scripts.Render("~/bundles/Dashboard")
|
||||
<!-- JS Plugins Init. -->
|
||||
<script>
|
||||
$(function (parameters) {
|
||||
// initialization of custom select
|
||||
$('.js-select').selectpicker();
|
||||
|
||||
// initialization of hamburger
|
||||
$.HSCore.helpers.HSHamburgers.init('.hamburger');
|
||||
|
||||
// initialization of charts
|
||||
$.HSCore.components.HSAreaChart.init('.js-area-chart');
|
||||
$.HSCore.components.HSDonutChart.init('.js-donut-chart');
|
||||
$.HSCore.components.HSBarChart.init('.js-bar-chart');
|
||||
|
||||
// initialization of sidebar navigation component
|
||||
$.HSCore.components.HSSideNav.init('.js-side-nav', {
|
||||
afterOpen: function () {
|
||||
setTimeout(function () {
|
||||
$.HSCore.components.HSAreaChart.init('.js-area-chart');
|
||||
$.HSCore.components.HSDonutChart.init('.js-donut-chart');
|
||||
$.HSCore.components.HSBarChart.init('.js-bar-chart');
|
||||
}, 400);
|
||||
},
|
||||
afterClose: function () {
|
||||
setTimeout(function () {
|
||||
$.HSCore.components.HSAreaChart.init('.js-area-chart');
|
||||
$.HSCore.components.HSDonutChart.init('.js-donut-chart');
|
||||
$.HSCore.components.HSBarChart.init('.js-bar-chart');
|
||||
}, 400);
|
||||
}
|
||||
});
|
||||
|
||||
// initialization of range datepicker
|
||||
$.HSCore.components.HSRangeDatepicker.init('#rangeDatepicker, #rangeDatepicker2, #rangeDatepicker3');
|
||||
|
||||
// initialization of datepicker
|
||||
$.HSCore.components.HSDatepicker.init('#datepicker', {
|
||||
dayNamesMin: [
|
||||
'SU',
|
||||
'MO',
|
||||
'TU',
|
||||
'WE',
|
||||
'TH',
|
||||
'FR',
|
||||
'SA'
|
||||
]
|
||||
});
|
||||
|
||||
// initialization of HSDropdown component
|
||||
$.HSCore.components.HSDropdown.init($('[data-dropdown-target]'), { dropdownHideOnScroll: false });
|
||||
|
||||
// initialization of custom scrollbar
|
||||
$.HSCore.components.HSScrollBar.init($('.js-custom-scroll'));
|
||||
|
||||
// initialization of popups
|
||||
$.HSCore.components.HSPopup.init('.js-fancybox', {
|
||||
btnTpl: {
|
||||
smallBtn: '<button data-fancybox-close class="btn g-pos-abs g-top-25 g-right-30 g-line-height-1 g-bg-transparent g-font-size-16 g-color-gray-light-v3 g-brd-none p-0" title=""><i class="hs-admin-close"></i></button>'
|
||||
}
|
||||
});
|
||||
new ClipboardJS('.clipBtn');
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@RenderSection("scripts", required: false)
|
||||
</body>
|
||||
</html>
|
||||
91
Chruch.Net/Areas/dashboard/Views/WhoIsSpies/Create.cshtml
Normal file
91
Chruch.Net/Areas/dashboard/Views/WhoIsSpies/Create.cshtml
Normal file
@ -0,0 +1,91 @@
|
||||
@model Church.Net.Entity.WhoIsSpy
|
||||
@{
|
||||
ViewBag.returnUrl = @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle = "WhoIsSpy List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Create WhoIsSpy";
|
||||
}
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Create <span class="g-color-primary g-ml-5">WhoIsSpy</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
@using (Html.BeginForm("Create","WhoIsSpies", FormMethod.Post, new { enctype = "multipart/form-data" }))
|
||||
{
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1Cht, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Answer1Cht, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Answer1Cht, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2Cht, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Answer2Cht, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Answer2Cht, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1Chs, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Answer1Chs, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Answer1Chs, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2Chs, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Answer2Chs, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Answer2Chs, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1En, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Answer1En, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Answer1En, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2En, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
@Html.EditorFor(model => model.Answer2En, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Answer2En, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1Image, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.TextBox("Answer1Image", "", new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", type = "file", accept = "image/*;capture=camera" })
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2Image, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.TextBox("Answer2Image", "", new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", type = "file", accept = "image/*;capture=camera" })
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-md-offset-2 col-md-10">
|
||||
<input type="submit" value="Create" class="btn btn-default" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
}
|
||||
87
Chruch.Net/Areas/dashboard/Views/WhoIsSpies/Delete.cshtml
Normal file
87
Chruch.Net/Areas/dashboard/Views/WhoIsSpies/Delete.cshtml
Normal file
@ -0,0 +1,87 @@
|
||||
@model Church.Net.Entity.WhoIsSpy
|
||||
@{
|
||||
ViewBag.returnUrl= @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle= "WhoIsSpy List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Delete WhoIsSpy";
|
||||
}
|
||||
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Are you sure you want to <span class="g-color-primary g-ml-5">DELETE</span> this?
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1Cht, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Answer1Cht)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1Chs, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Answer1Chs)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1En, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Answer1En)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2Cht, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Answer2Cht)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2Chs, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Answer2Chs)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2En, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Answer2En)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<div class="d-flex">
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" href="@Url.Action("Index")">Back to List</a>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Delete</button>
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
84
Chruch.Net/Areas/dashboard/Views/WhoIsSpies/Details.cshtml
Normal file
84
Chruch.Net/Areas/dashboard/Views/WhoIsSpies/Details.cshtml
Normal file
@ -0,0 +1,84 @@
|
||||
@model Church.Net.Entity.WhoIsSpy
|
||||
@{
|
||||
ViewBag.returnUrl= @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle= "WhoIsSpy List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Details WhoIsSpy";
|
||||
}
|
||||
|
||||
<h2>Details</h2>
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Detail of <span class="g-color-primary g-ml-5">Details</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1Cht, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Answer1Cht)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1Chs, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Answer1Chs)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1En, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Answer1En)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2Cht, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Answer2Cht)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2Chs, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Answer2Chs)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2En, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<label class="d-block g-font-size-20 g-pl-30">
|
||||
@Html.DisplayFor(model => model.Answer2En)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<div class="d-flex">
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" href="@Url.Action("Index")">Back to List</a>
|
||||
<a class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" href="@Url.Action("Edit", new { id = Model.Id })">Edit</button>
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
101
Chruch.Net/Areas/dashboard/Views/WhoIsSpies/Edit.cshtml
Normal file
101
Chruch.Net/Areas/dashboard/Views/WhoIsSpies/Edit.cshtml
Normal file
@ -0,0 +1,101 @@
|
||||
@model Church.Net.Entity.WhoIsSpy
|
||||
@{
|
||||
ViewBag.returnUrl = @Url.Action("Index");
|
||||
ViewBag.returnUrlTitle = "WhoIsSpy List";
|
||||
}
|
||||
@{
|
||||
ViewBag.Title = "Edit WhoIsSpy";
|
||||
}
|
||||
|
||||
<div class="text-center g-mb-50--md">
|
||||
<h2 class="h4 g-mb-0">
|
||||
Edit <span class="g-color-primary g-ml-5">WhoIsSpy</span>
|
||||
</h2>
|
||||
</div>
|
||||
@using (Html.BeginForm("Edit", "WhoIsSpies", FormMethod.Post, new { enctype = "multipart/form-data" }))
|
||||
{
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="g-bg-img-hero g-bg-pos-top-center g-pos-rel g-z-index-1 g-mt-minus-100" style="background-image: url(/Images/svg/svg-bg5.svg);">
|
||||
<div class="container g-pt-150 g-pb-30">
|
||||
<div class="row">
|
||||
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
|
||||
@Html.HiddenFor(model => model.Id)
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1Cht, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Answer1Cht, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Answer1Cht, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2Cht, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Answer2Cht, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Answer2Cht, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1Chs, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Answer1Chs, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Answer1Chs, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2Chs, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Answer2Chs, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Answer2Chs, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1En, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Answer1En, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Answer1En, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2En, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
@Html.EditorFor(model => model.Answer2En, new { htmlAttributes = new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30" } })
|
||||
@Html.ValidationMessageFor(model => model.Answer2En, "", new { @class = "form-control-feedback d-block g-bg-red g-color-white g-font-size-12 g-px-14 g-py-3 mt-0" })
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer1Image, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
<img src="/Images/IceBreak/WhoIsSpy/@Model.Answer1Image" />
|
||||
@Html.TextBox("Answer1Image", "", new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", type = "file", accept = "image/*;capture=camera" })
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-md-6 g-mb-20--md">
|
||||
@Html.LabelFor(model => model.Answer2Image, htmlAttributes: new { @class = "g-font-weight-500 g-font-size-15 g-pl-30" })
|
||||
|
||||
<img src="/Images/IceBreak/WhoIsSpy/@Model.Answer2Image" />
|
||||
@Html.TextBox("Answer2Image", "", new { @class = "form-control u-shadow-v19 g-brd-none g-bg-white g-font-size-16 g-rounded-30 g-px-30 g-py-13 g-mb-30", type = "file", accept = "image/*;capture=camera" })
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6 g-mt-30 g-mb-30">
|
||||
<div class="d-flex">
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-black g-brd-2 g-color-black g-color-white--hover g-bg-transparent g-bg-black--hover g-font-size-16 g-rounded-30 g-py-10 mr-2 g-mt-0" type="reset">Reset</button>
|
||||
<button class="btn btn-block u-shadow-v32 g-brd-none g-color-white g-bg-black g-bg-primary--hover g-font-size-16 g-rounded-30 g-py-10 ml-2 g-mt-0" type="submit">Update</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
163
Chruch.Net/Areas/dashboard/Views/WhoIsSpies/Index.cshtml
Normal file
163
Chruch.Net/Areas/dashboard/Views/WhoIsSpies/Index.cshtml
Normal file
@ -0,0 +1,163 @@
|
||||
@model IEnumerable<Church.Net.Entity.WhoIsSpy>
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Index";
|
||||
}
|
||||
|
||||
|
||||
<div class="g-px-20">
|
||||
<div class="media">
|
||||
<div class="d-flex align-self-center">
|
||||
<h1 class="g-font-weight-300 g-font-size-28 g-color-black mb-0">@ViewBag.Title</h1>
|
||||
</div>
|
||||
|
||||
<div class="media-body align-self-center text-right">
|
||||
<a class="js-fancybox btn btn-xl u-btn-lightblue-v3 g-width-160--md g-font-size-default g-ml-10" href="javascript:;" data-src="#add-contact-form" data-speed="350">建立
|
||||
</a>
|
||||
@Html.ActionLink("建立", "Create")
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="d-flex g-brd-gray-light-v7 g-my-30">
|
||||
|
||||
|
||||
<div class="media flex-wrap g-mb-30">
|
||||
<div class="d-flex align-self-center align-items-center">
|
||||
<span class="g-hidden-sm-down g-color-gray-dark-v6 g-mr-12">Type:</span>
|
||||
|
||||
<div class="u-select--v1 g-pr-20">
|
||||
<select class="js-select u-select--v1-select w-100" style="display: none;">
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-lightblue-v3 g-mr-8--sm"></span><span class="g-hidden-sm-down g-line-height-1_2 g-color-black">Friends</span></span>'>Friends</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="u-badge-v2--md g-pos-stc g-transform-origin--top-left g-bg-teal-v2 g-mr-8--sm"></span><span class="g-hidden-sm-down g-line-height-1_2 g-color-black">Colleagues</span></span>'>Colleagues</option>
|
||||
</select>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v6 ml-auto"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-self-center align-items-center g-ml-10 g-ml-20--md g-ml-40--lg">
|
||||
<span class="g-hidden-sm-down g-color-gray-dark-v6 g-mr-12">Position:</span>
|
||||
|
||||
<div class="u-select--v1 g-pr-20">
|
||||
<select class="js-select u-select--v1-select w-100" style="display: none;">
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">All Positions</span></span>'>All Positions</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Manager</span></span>'>Manager</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Designer</span></span>'>Designer</option>
|
||||
<option data-content='<span class="d-flex align-items-center"><span class="g-line-height-1_2 g-color-black">Developer</span></span>'>Developer</option>
|
||||
</select>
|
||||
<i class="hs-admin-angle-down g-absolute-centered--y g-right-0 g-color-gray-light-v6 ml-auto"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex g-hidden-md-up w-100"></div>
|
||||
|
||||
<div class="media-body align-self-center g-mt-10 g-mt-0--md">
|
||||
<div class="input-group g-pos-rel g-max-width-380 float-right">
|
||||
<input class="form-control g-font-size-default g-brd-gray-light-v7 g-brd-lightblue-v3--focus g-rounded-20 g-pl-20 g-pr-50 g-py-10" type="text" placeholder="Search for name, position">
|
||||
<button class="btn g-pos-abs g-top-0 g-right-0 g-z-index-2 g-width-60 h-100 g-bg-transparent g-font-size-16 g-color-lightred-v2 g-color-lightblue-v3--hover rounded-0" type="submit">
|
||||
<i class="hs-admin-search g-absolute-centered"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<table class="table w-100 g-mb-25">
|
||||
|
||||
<thead class="g-hidden-sm-down g-color-gray-dark-v6">
|
||||
<tr>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Answer1Cht)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Answer1Chs)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Answer1En)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Answer2Cht)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Answer2Chs)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
@Html.DisplayNameFor(model => model.Answer2En)
|
||||
<!-- <a class="u-link-v5 g-line-height-1 g-color-gray-dark-v7 g-color-lightblue-v4--hover" href="#!">
|
||||
<i class="hs-admin-arrows-vertical g-font-size-15"></i>
|
||||
</a> -->
|
||||
</div>
|
||||
</th>
|
||||
<th class="g-bg-gray-light-v8 g-font-weight-400 g-valign-middle g-brd-bottom-none g-py-15 g-pr-25"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody class="g-font-size-default g-color-black" id="accordion-09" role="tablist" aria-multiselectable="true">
|
||||
@foreach (var item in Model) {
|
||||
<tr>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Answer1Cht)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Answer1Chs)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Answer1En)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Answer2Cht)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Answer2Chs)
|
||||
</td>
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm">
|
||||
@Html.DisplayFor(modelItem => item.Answer2En)
|
||||
</td>
|
||||
|
||||
<td class="g-valign-middle g-brd-top-none g-brd-bottom g-brd-gray-light-v7 g-py-15 g-py-30--md g-px-5 g-px-10--sm g-pr-25">
|
||||
<div class="d-flex align-items-center g-line-height-1">
|
||||
<a href="@Url.Action("Details", new { id=item.Id })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15" >
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Edit", new { id=item.Id })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover g-mr-15" >
|
||||
<i class="hs-admin-pencil g-font-size-18"></i>
|
||||
</a>
|
||||
<a href="@Url.Action("Delete", new { id=item.Id })" class="u-link-v5 g-color-gray-light-v6 g-color-lightblue-v4--hover" >
|
||||
<i class="hs-admin-trash g-font-size-18"></i>
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
3
Chruch.Net/Areas/dashboard/Views/_ViewStart.cshtml
Normal file
3
Chruch.Net/Areas/dashboard/Views/_ViewStart.cshtml
Normal file
@ -0,0 +1,3 @@
|
||||
@{
|
||||
Layout = "~/Areas/dashboard/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
36
Chruch.Net/Areas/dashboard/Views/web.config
Normal file
36
Chruch.Net/Areas/dashboard/Views/web.config
Normal file
@ -0,0 +1,36 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
|
||||
<system.web.webPages.razor>
|
||||
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<pages pageBaseType="System.Web.Mvc.WebViewPage">
|
||||
<namespaces>
|
||||
<add namespace="System.Web.Mvc" />
|
||||
<add namespace="System.Web.Mvc.Ajax" />
|
||||
<add namespace="System.Web.Mvc.Html" />
|
||||
<add namespace="System.Web.Routing" />
|
||||
<add namespace="System.Web.Optimization" />
|
||||
<add namespace="Chruch.Net" />
|
||||
|
||||
</namespaces>
|
||||
</pages>
|
||||
</system.web.webPages.razor>
|
||||
|
||||
<appSettings>
|
||||
<add key="webpages:Enabled" value="false" />
|
||||
</appSettings>
|
||||
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<remove name="BlockViewHandler"/>
|
||||
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
|
||||
</handlers>
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
24
Chruch.Net/Areas/dashboard/dashboardAreaRegistration.cs
Normal file
24
Chruch.Net/Areas/dashboard/dashboardAreaRegistration.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace Chruch.Net.Areas.dashboard
|
||||
{
|
||||
public class dashboardAreaRegistration : AreaRegistration
|
||||
{
|
||||
public override string AreaName
|
||||
{
|
||||
get
|
||||
{
|
||||
return "dashboard";
|
||||
}
|
||||
}
|
||||
|
||||
public override void RegisterArea(AreaRegistrationContext context)
|
||||
{
|
||||
context.MapRoute(
|
||||
"dashboard_default",
|
||||
"dashboard/{controller}/{action}/{id}",
|
||||
new { action = "Index", id = UrlParameter.Optional }
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
4570
Chruch.Net/Chruch.Net.csproj
Normal file
4570
Chruch.Net/Chruch.Net.csproj
Normal file
File diff suppressed because it is too large
Load Diff
4526
Chruch.Net/Content/Login.css
Normal file
4526
Chruch.Net/Content/Login.css
Normal file
File diff suppressed because it is too large
Load Diff
351
Chruch.Net/Content/PreLoader.css
Normal file
351
Chruch.Net/Content/PreLoader.css
Normal file
@ -0,0 +1,351 @@
|
||||
|
||||
/* ALL LOADERS */
|
||||
|
||||
.loader{
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
border-radius: 100%;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* LOADER 1 */
|
||||
|
||||
#loader-1:before, #loader-1:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
left: -10px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 100%;
|
||||
border: 10px solid transparent;
|
||||
border-top-color: #ffffff;
|
||||
}
|
||||
|
||||
#loader-1:before{
|
||||
z-index: 100;
|
||||
animation: spin 1s infinite;
|
||||
}
|
||||
|
||||
#loader-1:after{
|
||||
border: 10px solid #ccc;
|
||||
}
|
||||
|
||||
@keyframes spin{
|
||||
0%{
|
||||
-webkit-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100%{
|
||||
-webkit-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
-o-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
/* LOADER 2 */
|
||||
|
||||
#loader-2 span{
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 100%;
|
||||
background-color: #ffffff;
|
||||
margin: 35px 5px;
|
||||
}
|
||||
|
||||
#loader-2 span:nth-child(1){
|
||||
animation: bounce 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
#loader-2 span:nth-child(2){
|
||||
animation: bounce 1s ease-in-out 0.33s infinite;
|
||||
}
|
||||
|
||||
#loader-2 span:nth-child(3){
|
||||
animation: bounce 1s ease-in-out 0.66s infinite;
|
||||
}
|
||||
|
||||
@keyframes bounce{
|
||||
0%, 75%, 100%{
|
||||
-webkit-transform: translateY(0);
|
||||
-ms-transform: translateY(0);
|
||||
-o-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
25%{
|
||||
-webkit-transform: translateY(-20px);
|
||||
-ms-transform: translateY(-20px);
|
||||
-o-transform: translateY(-20px);
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
}
|
||||
|
||||
/* LOADER 3 */
|
||||
|
||||
#loader-3:before, #loader-3:after{
|
||||
content: "";
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: calc(50% - 10px);
|
||||
background-color: #ffffff;
|
||||
animation: squaremove 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
#loader-3:after{
|
||||
bottom: 0;
|
||||
animation-delay: 0.5s;
|
||||
}
|
||||
|
||||
@keyframes squaremove{
|
||||
0%, 100%{
|
||||
-webkit-transform: translate(0,0) rotate(0);
|
||||
-ms-transform: translate(0,0) rotate(0);
|
||||
-o-transform: translate(0,0) rotate(0);
|
||||
transform: translate(0,0) rotate(0);
|
||||
}
|
||||
|
||||
25%{
|
||||
-webkit-transform: translate(40px,40px) rotate(45deg);
|
||||
-ms-transform: translate(40px,40px) rotate(45deg);
|
||||
-o-transform: translate(40px,40px) rotate(45deg);
|
||||
transform: translate(40px,40px) rotate(45deg);
|
||||
}
|
||||
|
||||
50%{
|
||||
-webkit-transform: translate(0px,80px) rotate(0deg);
|
||||
-ms-transform: translate(0px,80px) rotate(0deg);
|
||||
-o-transform: translate(0px,80px) rotate(0deg);
|
||||
transform: translate(0px,80px) rotate(0deg);
|
||||
}
|
||||
|
||||
75%{
|
||||
-webkit-transform: translate(-40px,40px) rotate(45deg);
|
||||
-ms-transform: translate(-40px,40px) rotate(45deg);
|
||||
-o-transform: translate(-40px,40px) rotate(45deg);
|
||||
transform: translate(-40px,40px) rotate(45deg);
|
||||
}
|
||||
}
|
||||
|
||||
/* LOADER 4 */
|
||||
|
||||
#loader-4 span{
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 100%;
|
||||
background-color: #ffffff;
|
||||
margin: 35px 5px;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#loader-4 span:nth-child(1){
|
||||
animation: opacitychange 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
#loader-4 span:nth-child(2){
|
||||
animation: opacitychange 1s ease-in-out 0.33s infinite;
|
||||
}
|
||||
|
||||
#loader-4 span:nth-child(3){
|
||||
animation: opacitychange 1s ease-in-out 0.66s infinite;
|
||||
}
|
||||
|
||||
@keyframes opacitychange{
|
||||
0%, 100%{
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
60%{
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* LOADER 5 */
|
||||
|
||||
#loader-5 span{
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: calc(50% - 20px);
|
||||
top: calc(50% - 20px);
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#loader-5 span:nth-child(2){
|
||||
animation: moveanimation1 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
#loader-5 span:nth-child(3){
|
||||
animation: moveanimation2 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
#loader-5 span:nth-child(4){
|
||||
animation: moveanimation3 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes moveanimation1{
|
||||
0%, 100%{
|
||||
-webkit-transform: translateX(0px);
|
||||
-ms-transform: translateX(0px);
|
||||
-o-transform: translateX(0px);
|
||||
transform: translateX(0px);
|
||||
}
|
||||
|
||||
75%{
|
||||
-webkit-transform: translateX(30px);
|
||||
-ms-transform: translateX(30px);
|
||||
-o-transform: translateX(30px);
|
||||
transform: translateX(30px);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes moveanimation2{
|
||||
0%, 100%{
|
||||
-webkit-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px);
|
||||
}
|
||||
|
||||
75%{
|
||||
-webkit-transform: translateY(30px);
|
||||
-ms-transform: translateY(30px);
|
||||
-o-transform: translateY(30px);
|
||||
transform: translateY(30px);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes moveanimation3{
|
||||
0%, 100%{
|
||||
-webkit-transform: translate(0px, 0px);
|
||||
-ms-transform: translate(0px, 0px);
|
||||
-o-transform: translate(0px, 0px);
|
||||
transform: translate(0px, 0px);
|
||||
}
|
||||
|
||||
75%{
|
||||
-webkit-transform: translate(30px, 30px);
|
||||
-ms-transform: translate(30px, 30px);
|
||||
-o-transform: translate(30px, 30px);
|
||||
transform: translate(30px, 30px);
|
||||
}
|
||||
}
|
||||
|
||||
/* LOADER 6 */
|
||||
|
||||
#loader-6{
|
||||
top: 40px;
|
||||
left: -2.5px;
|
||||
}
|
||||
|
||||
#loader-6 span{
|
||||
display: inline-block;
|
||||
width: 15px;
|
||||
height: 40px;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#loader-6 span:nth-child(1){
|
||||
animation: grow 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
#loader-6 span:nth-child(2){
|
||||
animation: grow 1s ease-in-out 0.15s infinite;
|
||||
}
|
||||
|
||||
#loader-6 span:nth-child(3){
|
||||
animation: grow 1s ease-in-out 0.30s infinite;
|
||||
}
|
||||
|
||||
#loader-6 span:nth-child(4){
|
||||
animation: grow 1s ease-in-out 0.45s infinite;
|
||||
}
|
||||
|
||||
@keyframes grow{
|
||||
0%, 100%{
|
||||
-webkit-transform: scaleY(1);
|
||||
-ms-transform: scaleY(1);
|
||||
-o-transform: scaleY(1);
|
||||
transform: scaleY(1);
|
||||
}
|
||||
|
||||
50%{
|
||||
-webkit-transform: scaleY(1.8);
|
||||
-ms-transform: scaleY(1.8);
|
||||
-o-transform: scaleY(1.8);
|
||||
transform: scaleY(1.8);
|
||||
}
|
||||
}
|
||||
|
||||
/* LOADER 7 */
|
||||
|
||||
#loader-7{
|
||||
-webkit-perspective: 120px;
|
||||
-moz-perspective: 120px;
|
||||
-ms-perspective: 120px;
|
||||
perspective: 120px;
|
||||
}
|
||||
|
||||
#loader-7:before{
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 25px;
|
||||
top: 25px;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
background-color: #ffffff;
|
||||
animation: flip 1s infinite;
|
||||
}
|
||||
|
||||
@keyframes flip {
|
||||
0% {
|
||||
transform: rotate(0);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: rotateY(180deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotateY(180deg) rotateX(180deg);
|
||||
}
|
||||
}
|
||||
|
||||
/* LOADER 8 */
|
||||
|
||||
#loader-8:before{
|
||||
content: "";
|
||||
position: absolute;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
top: calc(50% - 10px);
|
||||
left: 0px;
|
||||
background-color: #ffffff;
|
||||
animation: rotatemove 1s infinite;
|
||||
}
|
||||
|
||||
@keyframes rotatemove{
|
||||
0%{
|
||||
-webkit-transform: scale(1) translateX(0px);
|
||||
-ms-transform: scale(1) translateX(0px);
|
||||
-o-transform: scale(1) translateX(0px);
|
||||
transform: scale(1) translateX(0px);
|
||||
}
|
||||
|
||||
100%{
|
||||
-webkit-transform: scale(2) translateX(45px);
|
||||
-ms-transform: scale(2) translateX(45px);
|
||||
-o-transform: scale(2) translateX(45px);
|
||||
transform: scale(2) translateX(45px);
|
||||
}
|
||||
}
|
||||
6
Chruch.Net/Content/Site.css
Normal file
6
Chruch.Net/Content/Site.css
Normal file
@ -0,0 +1,6 @@
|
||||
.g-theme-bg-blue-dark-v1-opacity-0_8--after::after {
|
||||
background-color: rgba(0,0,0,.6) !important;
|
||||
}
|
||||
span.field-validation-valid.form-control-feedback {
|
||||
display: none !important;
|
||||
}
|
||||
1912
Chruch.Net/Content/bootstrap-grid.css
vendored
Normal file
1912
Chruch.Net/Content/bootstrap-grid.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
Chruch.Net/Content/bootstrap-grid.css.map
Normal file
1
Chruch.Net/Content/bootstrap-grid.css.map
Normal file
File diff suppressed because one or more lines are too long
7
Chruch.Net/Content/bootstrap-grid.min.css
vendored
Normal file
7
Chruch.Net/Content/bootstrap-grid.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
Chruch.Net/Content/bootstrap-grid.min.css.map
Normal file
1
Chruch.Net/Content/bootstrap-grid.min.css.map
Normal file
File diff suppressed because one or more lines are too long
82
Chruch.Net/Content/bootstrap-material-datetimepicker.css
vendored
Normal file
82
Chruch.Net/Content/bootstrap-material-datetimepicker.css
vendored
Normal file
@ -0,0 +1,82 @@
|
||||
.dtp { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); z-index: 2000; font-size: 14px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
|
||||
.dtp > .dtp-content { background: #fff; max-width: 300px; box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); max-height: 520px; position: relative; left: 50%; }
|
||||
.dtp > .dtp-content > .dtp-date-view > header.dtp-header { background: #689F38; color: #fff; text-align: center; padding: 0.3em; }
|
||||
|
||||
.dtp div.dtp-date, .dtp div.dtp-time { background: #8BC34A; text-align: center; color: #fff; padding: 10px; }
|
||||
.dtp div.dtp-date > div { padding: 0; margin: 0; }
|
||||
.dtp div.dtp-actual-month { font-size: 1.5em; }
|
||||
.dtp div.dtp-actual-num { font-size: 3em; line-height: 0.9; }
|
||||
.dtp div.dtp-actual-maxtime { font-size: 3em; line-height: 0.9; }
|
||||
.dtp div.dtp-actual-year { font-size: 1.5em; color: #DCEDC8; }
|
||||
.dtp div.dtp-picker { padding: 1em; text-align: center; }
|
||||
|
||||
.dtp div.dtp-picker-month, .dtp div.dtp-actual-time { font-weight: 500; text-align: center; }
|
||||
.dtp div.dtp-picker-month { padding-bottom:20px!important; text-transform: uppercase!important; }
|
||||
|
||||
.dtp .dtp-close { position: absolute; top: 0.5em; right: 1em; }
|
||||
.dtp .dtp-close > a { color: #fff; }
|
||||
.dtp .dtp-close > a > i { font-size: 1em; }
|
||||
|
||||
.dtp table.dtp-picker-days { margin: 0; min-height: 251px;}
|
||||
.dtp table.dtp-picker-days, .dtp table.dtp-picker-days tr, .dtp table.dtp-picker-days tr > td { border: none; }
|
||||
.dtp table.dtp-picker-days tr > td { font-weight: 700; font-size: 0.8em; text-align: center; padding: 0.5em 0.3em; }
|
||||
.dtp table.dtp-picker-days tr > td > span.dtp-select-day { color: #BDBDBD!important; padding: 0.4em 0.5em 0.5em 0.6em;}
|
||||
.dtp table.dtp-picker-days tr > td > a, .dtp .dtp-picker-time > a { color: #212121; text-decoration: none; padding: 0.4em 0.5em 0.5em 0.6em; border-radius: 50%!important; }
|
||||
.dtp table.dtp-picker-days tr > td > a.selected{ background: #8BC34A; color: #fff; }
|
||||
.dtp table.dtp-picker-days tr > th { color: #757575; text-align: center; font-weight: 700; padding: 0.4em 0.3em; }
|
||||
|
||||
.dtp .p10 > a { color: #689F38; text-decoration: none; }
|
||||
.dtp .p10 { width: 10%; display: inline-block; }
|
||||
.dtp .p20 { width: 20%; display: inline-block; }
|
||||
.dtp .p60 { width: 60%; display: inline-block; }
|
||||
.dtp .p80 { width: 80%; display: inline-block; }
|
||||
|
||||
.dtp a.dtp-meridien-am, .dtp a.dtp-meridien-pm { position: relative; top: 10px; color: #212121; font-weight: 500; padding: 0.7em 0.5em; border-radius: 50%!important;text-decoration: none; background: #eee; font-size:1em; }
|
||||
.dtp .dtp-actual-meridien a.selected { background: #689F38; color: #fff; }
|
||||
|
||||
.dtp .dtp-picker-time > .dtp-select-hour { cursor: pointer; }
|
||||
.dtp .dtp-picker-time > .dtp-select-minute { cursor: pointer; }
|
||||
|
||||
.dtp .dtp-buttons { padding: 0 1em 1em 1em; text-align: right; }
|
||||
|
||||
.dtp.hidden, .dtp .hidden { display: none; }
|
||||
.dtp .invisible { visibility: hidden; }
|
||||
|
||||
.dtp .left { float: left; }
|
||||
.dtp .right { float: right; }
|
||||
.dtp .clearfix { clear: both; }
|
||||
|
||||
.dtp .center { text-align: center; }
|
||||
|
||||
.dtp-picker-year{
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.year-picker-item{
|
||||
text-align: center;
|
||||
padding-top: 5px;
|
||||
font-size: large;
|
||||
cursor: pointer;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.dtp-actual-year:hover{
|
||||
cursor: pointer;
|
||||
}
|
||||
.dtp-actual-year.disabled:hover{
|
||||
cursor: inherit;
|
||||
}
|
||||
.year-picker-item:hover{
|
||||
color:#689F38;
|
||||
}
|
||||
|
||||
.year-picker-item.active{
|
||||
color:#689F38;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.dtp-select-year-range{
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
330
Chruch.Net/Content/bootstrap-reboot.css
vendored
Normal file
330
Chruch.Net/Content/bootstrap-reboot.css
vendored
Normal file
@ -0,0 +1,330 @@
|
||||
/*!
|
||||
* Bootstrap Reboot v4.1.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: sans-serif;
|
||||
line-height: 1.15;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
-ms-overflow-style: scrollbar;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
@-ms-viewport {
|
||||
width: device-width;
|
||||
}
|
||||
|
||||
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #212529;
|
||||
text-align: left;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
[tabindex="-1"]:focus {
|
||||
outline: 0 !important;
|
||||
}
|
||||
|
||||
hr {
|
||||
box-sizing: content-box;
|
||||
height: 0;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
abbr[title],
|
||||
abbr[data-original-title] {
|
||||
text-decoration: underline;
|
||||
-webkit-text-decoration: underline dotted;
|
||||
text-decoration: underline dotted;
|
||||
cursor: help;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
address {
|
||||
margin-bottom: 1rem;
|
||||
font-style: normal;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul,
|
||||
dl {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
ol ol,
|
||||
ul ul,
|
||||
ol ul,
|
||||
ul ol {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-bottom: .5rem;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
sub,
|
||||
sup {
|
||||
position: relative;
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -.5em;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #007bff;
|
||||
text-decoration: none;
|
||||
background-color: transparent;
|
||||
-webkit-text-decoration-skip: objects;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #0056b3;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:not([href]):not([tabindex]) {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:not([href]):not([tabindex]):focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
pre,
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
overflow: auto;
|
||||
-ms-overflow-style: scrollbar;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
|
||||
img {
|
||||
vertical-align: middle;
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
svg:not(:root) {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
caption {
|
||||
padding-top: 0.75rem;
|
||||
padding-bottom: 0.75rem;
|
||||
color: #6c757d;
|
||||
text-align: left;
|
||||
caption-side: bottom;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: inherit;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
button:focus {
|
||||
outline: 1px dotted;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
}
|
||||
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
optgroup,
|
||||
textarea {
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
button,
|
||||
html [type="button"],
|
||||
[type="reset"],
|
||||
[type="submit"] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
button::-moz-focus-inner,
|
||||
[type="button"]::-moz-focus-inner,
|
||||
[type="reset"]::-moz-focus-inner,
|
||||
[type="submit"]::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
input[type="radio"],
|
||||
input[type="checkbox"] {
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
input[type="date"],
|
||||
input[type="time"],
|
||||
input[type="datetime-local"],
|
||||
input[type="month"] {
|
||||
-webkit-appearance: listbox;
|
||||
}
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
min-width: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
legend {
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
padding: 0;
|
||||
margin-bottom: .5rem;
|
||||
font-size: 1.5rem;
|
||||
line-height: inherit;
|
||||
color: inherit;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
[type="number"]::-webkit-inner-spin-button,
|
||||
[type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
[type="search"] {
|
||||
outline-offset: -2px;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
[type="search"]::-webkit-search-cancel-button,
|
||||
[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
font: inherit;
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
output {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
[hidden] {
|
||||
display: none !important;
|
||||
}
|
||||
/*# sourceMappingURL=bootstrap-reboot.css.map */
|
||||
1
Chruch.Net/Content/bootstrap-reboot.css.map
Normal file
1
Chruch.Net/Content/bootstrap-reboot.css.map
Normal file
File diff suppressed because one or more lines are too long
8
Chruch.Net/Content/bootstrap-reboot.min.css
vendored
Normal file
8
Chruch.Net/Content/bootstrap-reboot.min.css
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
/*!
|
||||
* Bootstrap Reboot v4.1.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
||||
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
||||
1
Chruch.Net/Content/bootstrap-reboot.min.css.map
Normal file
1
Chruch.Net/Content/bootstrap-reboot.min.css.map
Normal file
File diff suppressed because one or more lines are too long
8981
Chruch.Net/Content/bootstrap.css
vendored
Normal file
8981
Chruch.Net/Content/bootstrap.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
Chruch.Net/Content/bootstrap.css.map
Normal file
1
Chruch.Net/Content/bootstrap.css.map
Normal file
File diff suppressed because one or more lines are too long
7
Chruch.Net/Content/bootstrap.min.css
vendored
Normal file
7
Chruch.Net/Content/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
Chruch.Net/Content/bootstrap.min.css.map
Normal file
1
Chruch.Net/Content/bootstrap.min.css.map
Normal file
File diff suppressed because one or more lines are too long
45779
Chruch.Net/Content/styles.op-architecture.css
Normal file
45779
Chruch.Net/Content/styles.op-architecture.css
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user