Merged master into whydcl
This commit is contained in:
		
				commit
				
					
						36976d923e
					
				
			
		
					 21 changed files with 554 additions and 324 deletions
				
			
		| 
						 | 
				
			
			@ -33,6 +33,9 @@
 | 
			
		|||
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
 | 
			
		||||
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
 | 
			
		||||
    <![endif]-->
 | 
			
		||||
    <!-- Google analytics -->
 | 
			
		||||
    {% include "google_analytics.html" %}
 | 
			
		||||
    <!-- End Google Analytics -->
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
| 
						 | 
				
			
			@ -60,53 +63,5 @@
 | 
			
		|||
    <script src="{% static 'datacenterlight/js/form.js' %}"></script>
 | 
			
		||||
    <script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.js"></script>
 | 
			
		||||
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script>
 | 
			
		||||
    
 | 
			
		||||
    <script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.js"></script>
 | 
			
		||||
    
 | 
			
		||||
    <script type="text/javascript">
 | 
			
		||||
           $(document).ready(function(){
 | 
			
		||||
               $.validator.setDefaults({
 | 
			
		||||
                   ignore: []
 | 
			
		||||
               });
 | 
			
		||||
 | 
			
		||||
               var name_message = "{% trans 'Please enter your name' %}";
 | 
			
		||||
               var email_message = "{% trans 'Please enter a valid email address' %}";
 | 
			
		||||
               $('#order_form').validate({
 | 
			
		||||
                   wrapper: 'div',
 | 
			
		||||
                   errorLabelContainer: "#error_message_box",
 | 
			
		||||
                   rules: {
 | 
			
		||||
                       name: {
 | 
			
		||||
                           required: true,
 | 
			
		||||
                           minlength: 3
 | 
			
		||||
                       },
 | 
			
		||||
                       email: {
 | 
			
		||||
                           required: true,
 | 
			
		||||
                           email: true
 | 
			
		||||
                       }
 | 
			
		||||
                   },
 | 
			
		||||
                   messages: {
 | 
			
		||||
                       name: name_message,
 | 
			
		||||
                       email: email_message
 | 
			
		||||
                   },
 | 
			
		||||
                   submitHandler: function (form) {
 | 
			
		||||
                       return true;
 | 
			
		||||
                   }
 | 
			
		||||
               });
 | 
			
		||||
           });
 | 
			
		||||
 | 
			
		||||
          // window.onload=function(){
 | 
			
		||||
          //   $('.selectpicker').selectpicker({
 | 
			
		||||
          //        style: 'btn-link',
 | 
			
		||||
          //        windowPadding: 10,
 | 
			
		||||
          //   });
 | 
			
		||||
 | 
			
		||||
          //   var hash = window.location.hash.substr(1);
 | 
			
		||||
          //   console.log(hash);
 | 
			
		||||
          //   if (hash == 'requestform'){
 | 
			
		||||
          //       $('#reques-success-message').modal('show');
 | 
			
		||||
          //   }
 | 
			
		||||
 | 
			
		||||
          //  };
 | 
			
		||||
    </script>
 | 
			
		||||
 | 
			
		||||
    <script src="//cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script>
 | 
			
		||||
</html>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -139,7 +139,7 @@
 | 
			
		|||
                        <div class="landing card">
 | 
			
		||||
                            <img class="img-beta" src="{% static 'datacenterlight/img/beta-img.png' %}" alt="">
 | 
			
		||||
                            <div class="caption">
 | 
			
		||||
                                <form id="order_form" method="POST" action="">
 | 
			
		||||
                                <form id="order_form" method="POST" action="" data-toggle="validator" role="form">
 | 
			
		||||
                                    {% csrf_token %}
 | 
			
		||||
                                    <div class="title">
 | 
			
		||||
                                       <h3>{% trans "VM hosting" %} </h3>
 | 
			
		||||
| 
						 | 
				
			
			@ -152,28 +152,37 @@
 | 
			
		|||
                                        </div>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                    <div class="descriptions">
 | 
			
		||||
                                        <div class="description">
 | 
			
		||||
                                        <div class="description form-group">
 | 
			
		||||
                                            <p>{% trans "Hosted in Switzerland" %}</p>
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                        <div class="description">
 | 
			
		||||
                                        <div class="form-group">
 | 
			
		||||
                                            <div class="description input">
 | 
			
		||||
                                            <i class="fa fa-minus-circle left" data-minus="cpu" aria-hidden="true"></i>
 | 
			
		||||
                                            <input class="input-price" type="number"  min="1" max="42" id="coreValue" name="cpu">
 | 
			
		||||
                                            <input class="input-price select-number" type="number"  min="1" max="42" id="coreValue" name="cpu" data-error="{% trans 'Please enter a value greater than or equal to 1.' %}" required>
 | 
			
		||||
                                            <span> Core</span>
 | 
			
		||||
                                            <i class="fa fa-plus-circle right" data-plus="cpu"  aria-hidden="true"></i>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                            <div class="help-block with-errors"></div>
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                        <div class="description">
 | 
			
		||||
                                        <div class="form-group">
 | 
			
		||||
                                            <div class="description input">
 | 
			
		||||
                                            <i class="fa fa-minus-circle left" data-minus="ram" aria-hidden="true"></i>
 | 
			
		||||
                                            <input id="ramValue" class="input-price" type="number"  min="2" max="200"  name="ram">
 | 
			
		||||
                                            <input id="ramValue" class="input-price select-number" type="number"  min="2" max="200"  name="ram" data-error="{% trans 'Please enter a value greater than or equal to 2.' %}" required>
 | 
			
		||||
                                            <span> GB RAM</span>
 | 
			
		||||
                                            <i class="fa fa-plus-circle right" data-plus="ram"  aria-hidden="true"></i>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                            <div class="help-block with-errors"></div>
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                        <div class="description">
 | 
			
		||||
                                        <div class="form-group">
 | 
			
		||||
                                            <div class="description input">
 | 
			
		||||
                                            <i class="fa fa-minus-circle left" data-minus="storage" aria-hidden="true"></i>
 | 
			
		||||
                                            <input id="storageValue" class="input-price" type="number"  min="10" max="500" step="10" name="storage">
 | 
			
		||||
                                            <input id="storageValue" class="input-price select-number" type="number"  min="10" max="500" step="10" name="storage" data-error="{% trans 'Please enter a value greater than or equal to 10.' %}" required>
 | 
			
		||||
                                            <span>{% trans "GB Storage (SSD)" %}</span>
 | 
			
		||||
                                            <i class="fa fa-plus-circle right" data-plus="storage"  aria-hidden="true"></i>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                            <div class="help-block with-errors"></div>
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                        <div class="description select-configuration input">
 | 
			
		||||
                                        <div class="description select-configuration input form-group justify-center">
 | 
			
		||||
                                            <label for="config">OS</label>
 | 
			
		||||
                                            <select name="config" id="">
 | 
			
		||||
                                                {% for template in templates %}
 | 
			
		||||
| 
						 | 
				
			
			@ -185,21 +194,40 @@
 | 
			
		|||
                                        <!--<div class="description check-ip">
 | 
			
		||||
                                            <input type="checkbox" name="ipv6"> Ipv6 Only<br>
 | 
			
		||||
                                        </div>-->
 | 
			
		||||
                                        <div class="description input">
 | 
			
		||||
                                            <label for="name">{% trans "Name"%}</label>
 | 
			
		||||
                                            <input type="text" name="name" placeholder="{% trans "Your Name" %}">
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                        <div class="description input">
 | 
			
		||||
                                            <label for="email">{% trans "Email" %}</label>
 | 
			
		||||
                                            <input type="email" name="email" placeholder="{% trans "Your Email" %}">
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                            <div class="form-group">
 | 
			
		||||
                                                <div class="description input justify-center">
 | 
			
		||||
                                                <label for="name" class="control-label">{% trans "Name"%}</label>
 | 
			
		||||
                                                <input type="text" name="name" class="form-control" placeholder="{% trans 'Your Name'%}" data-minlength="3" data-error="{% trans 'Please enter your name' %}" required>
 | 
			
		||||
                                                </div>
 | 
			
		||||
                                                <div class="help-block with-errors">
 | 
			
		||||
                                                    {% for message in messages %}
 | 
			
		||||
                                                        {% if 'name' in message.tags %}
 | 
			
		||||
                                                        <ul class="list-unstyled"><li>
 | 
			
		||||
                                                            {{ message|safe }}
 | 
			
		||||
                                                        </li></ul>
 | 
			
		||||
                                                        {% endif %}
 | 
			
		||||
                                                    {% endfor %}
 | 
			
		||||
                                                </div>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                            <div class="form-group">
 | 
			
		||||
                                                <div class="description input justify-center">
 | 
			
		||||
                                                <label for="email" class="control-label">{% trans "Email"%}</label>
 | 
			
		||||
                                                <input name="email" type="email" pattern="^[^@\s]+@([^@\s]+\.)+[^@\s]+$" class="form-control" placeholder="{% trans 'Your Email' %}" data-error="{% trans 'Please enter a valid email address' %}" required>
 | 
			
		||||
                                                </div>
 | 
			
		||||
                                                <div class="help-block with-errors">
 | 
			
		||||
                                                    {% for message in messages %}
 | 
			
		||||
                                                        {% if 'email' in message.tags %}
 | 
			
		||||
                                                         <ul class="list-unstyled"><li>
 | 
			
		||||
                                                            {{ message|safe }}
 | 
			
		||||
                                                        </li></ul>
 | 
			
		||||
                                                        {% endif %}
 | 
			
		||||
                                                    {% endfor %}
 | 
			
		||||
                                                </div>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                    <input type="submit" class="btn btn-primary" value="{% trans 'Order Now!' %}"></input>
 | 
			
		||||
                                </form>
 | 
			
		||||
                            </div>
 | 
			
		||||
                            <div>
 | 
			
		||||
                                <div id="error_message_box" class="error-message-box"></div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -250,4 +278,4 @@
 | 
			
		|||
        
 | 
			
		||||
    </div>
 | 
			
		||||
    <!-- /.banner -->
 | 
			
		||||
    {% endblock %}
 | 
			
		||||
    {% endblock %}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,8 @@
 | 
			
		|||
{% extends "hosting/base_short.html" %}
 | 
			
		||||
{% load staticfiles bootstrap3 %}
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
{% block content %} 
 | 
			
		||||
{% load custom_tags %}
 | 
			
		||||
{% block content %}
 | 
			
		||||
 | 
			
		||||
<div class="order-detail-container">
 | 
			
		||||
   {% if messages %}
 | 
			
		||||
| 
						 | 
				
			
			@ -19,37 +20,38 @@
 | 
			
		|||
    {% if not error %}
 | 
			
		||||
    <div class="row">  
 | 
			
		||||
        <div class="col-xs-12 col-md-8 col-md-offset-2">
 | 
			
		||||
    		<div class="invoice-title">
 | 
			
		||||
    			<h2>{% trans "Confirm Order"%}</h2><h3 class="pull-right">{% trans "Order #"%} {{order.id}}</h3>
 | 
			
		||||
    		</div>
 | 
			
		||||
    		<hr>
 | 
			
		||||
    		<div class="row">
 | 
			
		||||
    			<div class="col-xs-6">
 | 
			
		||||
    				<address>
 | 
			
		||||
            <div class="invoice-title">
 | 
			
		||||
                <h2>{% trans "Confirm Order"%}</h2>
 | 
			
		||||
            </div>
 | 
			
		||||
            <hr>
 | 
			
		||||
            <div class="row">
 | 
			
		||||
                <div class="col-xs-6">
 | 
			
		||||
                    <address>
 | 
			
		||||
                    <h3><b>{% trans "Billed To:"%}</b></h3>
 | 
			
		||||
    					{{user.name}}<br>
 | 
			
		||||
                        {{order.billing_address.street_address}},{{order.billing_address.postal_code}}<br>
 | 
			
		||||
                        {{order.billing_address.city}}, {{order.billing_address.country}}.
 | 
			
		||||
    				</address>
 | 
			
		||||
    			</div>
 | 
			
		||||
                    {% with request.session.billing_address_data as billing_address %}
 | 
			
		||||
                        {{request.session.user.name}}<br> {{billing_address|get_value_from_dict:'street_address'}}, {{billing_address|get_value_from_dict:'postal_code'}}<br>
 | 
			
		||||
                        {{billing_address|get_value_from_dict:'city'}}, {{billing_address|get_value_from_dict:'country'}}.
 | 
			
		||||
                    {% endwith %}
 | 
			
		||||
                    </address>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="col-xs-6 text-right">
 | 
			
		||||
                    <address>
 | 
			
		||||
                        <strong>{% trans "Date"%}:</strong><br>
 | 
			
		||||
                        {{order.created_at}}<br><br>
 | 
			
		||||
                        <span id="order-created_at">{% now "Y-m-d H:i" %}</span><br><br>
 | 
			
		||||
                    </address>
 | 
			
		||||
 | 
			
		||||
                </div>
 | 
			
		||||
    		</div>
 | 
			
		||||
    		<div class="row">
 | 
			
		||||
    			<div class="col-xs-6">
 | 
			
		||||
    				<address>
 | 
			
		||||
    					<strong>{% trans "Payment Method:"%}</strong><br>
 | 
			
		||||
    					{{order.cc_brand}} ending **** {{order.last4}}<br>
 | 
			
		||||
    					{{user.email}}
 | 
			
		||||
    				</address>
 | 
			
		||||
    			</div>
 | 
			
		||||
    		</div>
 | 
			
		||||
    	</div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="row">
 | 
			
		||||
                <div class="col-xs-6">
 | 
			
		||||
                    <address>
 | 
			
		||||
                        <strong>{% trans "Payment Method:"%}</strong><br>
 | 
			
		||||
                            {{cc_brand}} {% trans "ending" %} **** {{cc_last4}}<br>
 | 
			
		||||
                            {{request.session.user.email}}
 | 
			
		||||
                    </address>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    
 | 
			
		||||
    <div class="row">
 | 
			
		||||
| 
						 | 
				
			
			@ -57,23 +59,39 @@
 | 
			
		|||
            <h3><b>{% trans "Order summary"%}</b></h3>
 | 
			
		||||
            <hr>
 | 
			
		||||
            <div class="content">
 | 
			
		||||
                <p><b>{% trans "Cores"%}</b> <span class="pull-right">{{vm.cores}}</span></p>
 | 
			
		||||
                <hr>
 | 
			
		||||
                <p><b>{% trans "Memory"%}</b> <span class="pull-right">{{vm.memory}} GB</span></p>
 | 
			
		||||
                <hr>
 | 
			
		||||
                <p><b>{% trans "Disk space"%}</b> <span class="pull-right">{{vm.disk_size}} GB</span></p>
 | 
			
		||||
                <hr>
 | 
			
		||||
                <h4>{% trans "Total"%}<p class="pull-right"><b>{{vm.price}} CHF</b></p></h4>
 | 
			
		||||
                {% with request.session.specs as vm %}
 | 
			
		||||
                    <p><b>{% trans "Cores"%}</b> <span class="pull-right">{{vm.cpu}}</span></p>
 | 
			
		||||
                    <hr>
 | 
			
		||||
                    <p><b>{% trans "Memory"%}</b> <span class="pull-right">{{vm.memory}} GB</span></p>
 | 
			
		||||
                    <hr>
 | 
			
		||||
                    <p><b>{% trans "Disk space"%}</b> <span class="pull-right">{{vm.disk_size}} GB</span></p>
 | 
			
		||||
                    <hr>
 | 
			
		||||
                    <p><b>{% trans "Configuration"%}</b> <span class="pull-right">{{request.session.template.name}}</span></p>
 | 
			
		||||
                    <hr>
 | 
			
		||||
                    <h4>{% trans "Total"%}<p class="pull-right"><b>{{vm.price}} CHF</b></p></h4>
 | 
			
		||||
                {% endwith %}
 | 
			
		||||
            </div>
 | 
			
		||||
            <br/>
 | 
			
		||||
            {% url 'datacenterlight:payment' as payment_url %}
 | 
			
		||||
            {% if payment_url in request.META.HTTP_REFERER  %}
 | 
			
		||||
            <form method="post">
 | 
			
		||||
            {% csrf_token %}
 | 
			
		||||
            <div class=" content pull-right">
 | 
			
		||||
                <a href="{{next_url}}" ><button class="btn btn-info">{% trans "Finish Configuration"%}</button></a>
 | 
			
		||||
                <a href="{{next_url}}" ><button class="btn btn-info">{% trans "Place order"%}</button></a>
 | 
			
		||||
            </div>
 | 
			
		||||
            {% endif %}
 | 
			
		||||
            </form>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
 | 
			
		||||
    window.onload = function () {
 | 
			
		||||
            var locale_date = moment.utc(document.getElementById("order-created_at").textContent,'YYYY-MM-DD HH:mm').toDate();
 | 
			
		||||
            locale_date =  moment(locale_date).format("YYYY-MM-DD h:mm:ss a");
 | 
			
		||||
            document.getElementById('order-created_at').innerHTML = locale_date;
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
{%endblock%}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue