* packages.config:

* App.master:
* datepair.js:
* Book.aspx:
* datepair.min.js:
* LocalizedText.resx:
* jquery.datepair.js:
* jquery-ui-1.11.4.js:
* jquery.timepicker.js:
* BookQuery.cs:
* jquery-1.11.3.min.js:
* LocalizedText.fr.resx:
* jquery.datepair.min.js:
* WebCatalogExtensions.cs:
* GoogleController.cs:
* LocalizedText.Designer.cs:
* jquery.timepicker.min.js:
* jquery.timepicker.css:
* Text.cs:
* Euro.cs:
* Unit.cs:
* Link.cs:
* Note.cs:
* LocalizedText.fr.Designer.cs:
* Brand.cs:
* Label.cs:
* Scalar.cs:
* FrontOfficeController.cs:
* Period.cs:
* Option.cs:
* Service.cs:
* Catalog.cs:
* Product.cs:
* CheckBox.cs:
* Currency.cs:
* SaleForm.cs:
* TextInput.cs:
* FormInput.cs:
* FilesInput.cs:
* SelectItem.cs:
* FormElement.cs:
* SelectInput.cs:
* RadioButton.cs:
* StockStatus.cs:
* ProductImage.cs:
* CatalogHelper.cs:
* CatalogManager.cs:
* ProductCategory.cs:
* PhysicalProduct.cs:
* ui-icons_ffffff_256x240.png:
* ui-icons_cccccc_256x240.png:
* CatalogProvider.cs:
* ui-icons_a83300_256x240.png:
* ui-icons_222222_256x240.png:
* ui-icons_4b8e0b_256x240.png:
* ui-bg_glass_20_555555_1x400.png:
* ui-bg_glass_40_0078a3_1x400.png:
* ui-bg_glass_40_ffc73d_1x400.png:
* ui-icons_222222_256x240.png:
* ui-icons_a83300_256x240.png:
* ui-icons_cccccc_256x240.png:
* ui-icons_4b8e0b_256x240.png:
* ui-icons_ffffff_256x240.png:
* ui-bg_glass_40_0078a3_1x400.png:
* ui-bg_glass_20_555555_1x400.png:
* ui-bg_inset-soft_30_f58400_1x100.png:
* ui-bg_inset-soft_25_000000_1x100.png:
* ui-bg_glass_40_ffc73d_1x400.png:
* ui-bg_gloss-wave_25_333333_500x100.png:
* ui-bg_highlight-soft_80_eeeeee_1x100.png:
* ui-bg_inset-soft_30_f58400_1x100.png:
* ui-bg_inset-soft_25_000000_1x100.png:
* ui-bg_gloss-wave_25_333333_500x100.png:
* ui-bg_highlight-soft_80_eeeeee_1x100.png:
* CatalogProviderConfigurationElement.cs:
* CatalogProvidersConfigurationSection.cs:
* CatalogProvidersConfigurationCollection.cs: Date pairing at booking,
 Fixes the client side ui, concerning the dates and times

* MyClass.cs:
* WorkFlowManager.cs:
* IContentProvider.cs:
* FrontOfficeController.cs:
* XmlCatalog.cs:
* NpgsqlContentProvider.cs:
* Price.cs:
* XmlCatalogProvider.cs:
* PriceOnItemCount.cs: refactoring: a dedicated name space
  for the catalog

* ChooseADate.aspx: WIP

* Web.csproj: date pairing : includes the javascript modules
This commit is contained in:
Paul Schneider 2015-10-30 15:54:26 +01:00
commit 0a91d3935b
94 changed files with 955 additions and 297 deletions

View file

@ -1,71 +1,39 @@
<%@ Page Title="Booking" Language="C#" Inherits="System.Web.Mvc.ViewPage<BookQuery>" MasterPageFile="~/Models/App.master" %>
<asp:Content ContentPlaceHolderID="head" ID="headContent" runat="server">
<link rel='stylesheet' href='/Scripts/fullcalendar/fullcalendar.css' />
<script type="text/javascript" src="/Scripts/jquery-2.1.3.min.js"></script>
<script src='/Scripts/fullcalendar/lib/moment.min.js'></script>
<script src='/Scripts/fullcalendar/fullcalendar.js'></script>
<script type="text/javascript" src="/Scripts/jquery.mousewheel.js"></script>
<script type="text/javascript" src="/Scripts/jquery.timepicker.js"></script>
<link rel="stylesheet" type="text/css" href="/App_Themes/jquery.timepicker.css" />
<link rel="stylesheet" type="text/css" href="/App_Themes/jquery.timepicker.css" />
<script type="text/javascript" src="/Scripts/globalize/globalize.js"></script>
<script type="text/javascript" src="/Scripts/jquery.mousewheel.js"></script>
<script type="text/javascript" src="/Scripts/globalize/cultures/globalize.culture.fr.js"></script>
<script type="text/javascript" src="/Scripts/datepicker-fr.js"></script>
<script type="text/javascript" src="/Scripts/datepicker-en-GB.js"></script>
<link rel="stylesheet" href="/Theme/jquery-ui.css">
<style>
.ui-icon .ui-icon-circle-triangle-e {
background-image: url(/images/ui-bg_flechg.png);
}
.ui-datepicker-next .ui-corner-all {
background-image: url(/images/ui-bg_flechd.png);
}
</style>
<script>
$.widget( "ui.timespinner", $.ui.spinner, {
options: {
// seconds
step: 60 * 1000,
// hours
page: 60
},
_parse: function( value ) {
if ( typeof value === "string" ) {
// already a timestamp
if ( Number( value ) == value ) {
return Number( value );
}
return +Globalize.parseDate( value );
}
return value;
},
_format: function( value ) {
return Globalize.format( new Date(value), "t" );
}
});
</script>
<script type="text/javascript" src="/Scripts/jquery.timepicker.min.js"></script>
<script type="text/javascript" src="/Scripts/datepair.js"></script>
<script type="text/javascript" src="/Scripts/jquery.datepair.min.js"></script>
</asp:Content>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<% using ( Html.BeginForm("Book","Google") ) { %>
<fieldset><legend>Période de recherche</legend>
<%= Html.LabelFor(model=>model.PreferedDate) %>:
<%= Html.TextBoxFor(model => model.PreferedDate) %>
<%= Html.ValidationMessageFor(model=>model.PreferedDate) %>
<br>
<%= Html.LabelFor(model=>model.PreferedHour) %>:
<%= Html.TextBoxFor(model=>model.PreferedHour) %>
<%= Html.ValidationMessageFor(model=>model.PreferedHour) %>
<br>
<%= Html.LabelFor(model=>model.MaxDate) %>:
<%= Html.TextBoxFor(model=>model.MaxDate) %>
<%= Html.ValidationMessageFor(model=>model.MaxDate) %>
<div id="book" >Date d'intervention :
Intervention souhaitée entre le
<input type="text" id="StartDate" class="start date" >
<%= Html.ValidationMessageFor(model=>model.StartDate) %>
et le
<input type="text" id="EndDate" class="end date" >
<%= Html.ValidationMessageFor(model=>model.EndDate) %>
<br>
<%= Html.LabelFor(model=>model.MinDuration) %>:
<%= Html.TextBoxFor(model=>model.MinDuration) %>
<%= Html.ValidationMessageFor(model=>model.MinDuration) %>
<br>
Heure et durée d'intervention souhaitée
<%= Html.LabelFor(model=>model.StartHour) %>
<input type="text" id="StartHour" class="start time" >
<%= Html.ValidationMessageFor(model=>model.StartHour) %>
<%= Html.LabelFor(model=>model.EndHour) %>
<input type="text" id="EndHour" class="end time" >
<%= Html.ValidationMessageFor(model=>model.EndHour) %>
</div>
<fieldset>
<legend>Intervenant</legend>
<%= Html.LabelFor(model=>model.Role) %>:
<%= Html.TextBoxFor(model=>model.Role) %>
<%= Html.ValidationMessageFor(model=>model.Role) %>
@ -73,19 +41,26 @@ return Globalize.format( new Date(value), "t" );
<%= Html.LabelFor(model=>model.Person) %>:
<%= Html.TextBoxFor(model=>model.Person) %>
<%= Html.ValidationMessageFor(model=>model.Person) %>
</fieldset>
</fieldset>
<script>
$(function() {
var dpconfig = $.datepicker.regional["fr"];
$( '#PreferedHour' ).addClass('ui-timepicker-input');
$( '#PreferedHour' ).timepicker({ 'scrollDefault': 'now', 'timeFormat': 'H:i' });
// $( '#MinDuration' ).addClass("ui-timepicker-input")
// $( '#MinDuration' ).timepicker({ 'scrollDefault': 'now', 'timeFormat': 'H:i' });
$( "#PreferedDate" ).datepicker(dpconfig).datepicker("setDate", new Date());
$( "#MaxDate" ).datepicker(dpconfig).datepicker("setDate", new Date());
$( "#MinDuration" ).addClass('ui-timepicker-input').timepicker({ 'scrollDefault': 'now', 'timeFormat': 'H:i' });
});
</script>
$(document).ready(function(){
var tpconfig = {
'timeFormat': 'H:i',
'showDuration': true,
'disableTimeRanges': [
['17:01pm', '24:01pm'],
['0am', '9am']
]};
$.datepicker.setDefaults($.datepicker.regional[ "fr" ] );
var dpconfig = {
'format': 'yy/mm/dd',
'autoclose': true } ;
$('#book .time').timepicker(tpconfig);
$('#book .date').datepicker(dpconfig);
$('#book').datepair();
});
</script>
<input type="submit">
<% } %>