David 9 éve
szülő
commit
5ec8e159b4

BIN
back/images/logo.png


+ 51 - 0
back/mail.py

@@ -0,0 +1,51 @@
+#!/usr/bin/python2
+# -*- coding: utf-8 -*-
+import smtplib
+from email.mime.multipart import MIMEMultipart
+from email.mime.text import MIMEText
+
+
+def sendmail(target, message, subject):
+	noreply = 'consultas@especificosba.com.ar'
+	#noreplypass = "contraseñaparacandelaria".encode("ascii","ignore")
+	#noreplypass = noreplypass.decode("ascii")
+	noreplypass = 'contraseñaparacandelaria'
+	
+
+	msg = MIMEMultipart('alternative')
+	msg['Subject'] = subject
+	msg['From'] = noreply
+	msg['to'] = target
+	msg.attach(MIMEText(message,'html'))
+	s = smtplib.SMTP('mail.especificosba.com.ar:587')
+	s.ehlo()
+	s.starttls()
+	#print("tls'd", noreply, noreplypass)
+	s.login(noreply, noreplypass)
+	try:
+		s.sendmail(noreply, target, msg.as_string())
+	except Exception:
+		print("Error al enviar la consulta")
+	finally:
+		s.quit()
+
+def populate(tpl, data):
+	out = ""
+	for line in tpl.split("\n"):
+		for k,v in data.iteritems():
+			if k in line:
+				line = line.replace("{{%s}}" % k , data[k])
+
+		out += line + "\n"
+	
+	return out
+
+DATA = { 
+	"HASH": "254bdbda00d73f8645d5d4e6f1ef2c3e9525f2fda387148a33b451c88c25"
+}
+
+message = open("mailtemplate.html").read()
+subject = "Link pedididos ESPECIFICOS Buenos Aires"
+target = "adriana.garcia.cc@gmail.com"
+target = "davidventura27@gmail.com"
+sendmail(target, populate(message, DATA), subject)

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 87 - 0
back/mailtemplate.html


BIN
favicon.ico


+ 0 - 1
js/angular-notify

@@ -1 +0,0 @@
-Subproject commit 4d159b6ebec256409341ba707a9838e93827f523

+ 83 - 0
js/angular-notify/dist/angular-notify.css

@@ -0,0 +1,83 @@
+.cg-notify-message {
+    position:fixed;
+    top:0px;
+    z-index: 9999;
+    max-width:400px;
+    text-align: center;
+
+    background-color: #d9edf7;
+    color: #31708f;
+    padding: 15px;
+    border: 1px solid #bce8f1;
+    border-radius: 4px;
+
+    -webkit-transition: top 0.5s ease-out,opacity 0.2s ease-out;
+    -moz-transition: top 0.5s ease-out,opacity 0.2s ease-out;
+    -o-transition: top 0.5s ease-out,opacity 0.2s ease-out;
+    transition: top 0.5s ease-out,opacity 0.2s ease-out;    
+
+    visibility:hidden;
+
+    -webkit-box-shadow: 0 6px 12px rgba(0,0,0,.175);
+    box-shadow: 0 6px 12px rgba(0,0,0,.175);
+}
+
+.cg-notify-message-center {
+    left:50%;
+}
+
+.cg-notify-message-left {
+    left:15px;
+}
+
+.cg-notify-message-right {
+    right:15px;
+}
+
+.cg-notify-message a {
+    font-weight:bold;
+    color:inherit;
+}
+
+.cg-notify-message a:hover {
+    color:inherit;
+}
+
+.cg-notify-close {
+    -webkit-appearance: none;
+    padding: 0;
+    cursor: pointer;
+    background: 0 0;
+    border: 0;
+    font-size: 21px;
+    font-weight: 700;
+    line-height: 1;
+    color: #000;
+    text-shadow: 0 1px 0 #fff;
+    filter: alpha(opacity=20);
+    opacity: .2;
+
+    position: absolute;
+    top: 0px;
+    right: 3px;
+    line-height: 15px;    
+}
+
+.cg-notify-close:hover, .cg-notify-close:focus {
+    color: #000;
+    text-decoration: none;
+    cursor: pointer;
+    filter: alpha(opacity=50);
+    opacity: .5;
+}
+
+.cg-notify-sr-only {
+    position: absolute;
+    width: 1px;
+    height: 1px;
+    padding: 0;
+    margin: -1px;
+    overflow: hidden;
+    clip: rect(0,0,0,0);
+    border: 0;
+}

+ 184 - 0
js/angular-notify/dist/angular-notify.js

@@ -0,0 +1,184 @@
+angular.module('cgNotify', []).factory('notify',['$timeout','$http','$compile','$templateCache','$rootScope',
+    function($timeout,$http,$compile,$templateCache,$rootScope){
+
+        var startTop = 10;
+        var verticalSpacing = 15;
+        var defaultDuration = 10000;
+        var defaultTemplateUrl = 'angular-notify.html';
+        var position = 'center';
+        var container = document.body;
+        var maximumOpen = 0;
+
+        var messageElements = [];
+        var openNotificationsScope = [];
+
+        var notify = function(args){
+
+            if (typeof args !== 'object'){
+                args = {message:args};
+            }
+
+            args.duration = args.duration ? args.duration : defaultDuration;
+            args.templateUrl = args.templateUrl ? args.templateUrl : defaultTemplateUrl;
+            args.container = args.container ? args.container : container;
+            args.classes = args.classes ? args.classes : '';
+
+            var scope = args.scope ? args.scope.$new() : $rootScope.$new();
+            scope.$position = args.position ? args.position : position;
+            scope.$message = args.message;
+            scope.$classes = args.classes;
+            scope.$messageTemplate = args.messageTemplate;
+
+            if (maximumOpen > 0) {
+                var numToClose = (openNotificationsScope.length + 1) - maximumOpen;
+                for (var i = 0; i < numToClose; i++) {
+                    openNotificationsScope[i].$close();
+                }
+            }
+
+            $http.get(args.templateUrl,{cache: $templateCache}).success(function(template){
+
+                var templateElement = $compile(template)(scope);
+                templateElement.bind('webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd', function(e){
+                    if (e.propertyName === 'opacity' || e.currentTarget.style.opacity === 0 || 
+                        (e.originalEvent && e.originalEvent.propertyName === 'opacity')){
+
+                        templateElement.remove();
+                        messageElements.splice(messageElements.indexOf(templateElement),1);
+                        openNotificationsScope.splice(openNotificationsScope.indexOf(scope),1);
+                        layoutMessages();
+                    }
+                });
+
+                if (args.messageTemplate){
+                    var messageTemplateElement;
+                    for (var i = 0; i < templateElement.children().length; i ++){
+                        if (angular.element(templateElement.children()[i]).hasClass('cg-notify-message-template')){
+                            messageTemplateElement = angular.element(templateElement.children()[i]);
+                            break;
+                        }
+                    }
+                    if (messageTemplateElement){
+                        messageTemplateElement.append($compile(args.messageTemplate)(scope));
+                    } else {
+                        throw new Error('cgNotify could not find the .cg-notify-message-template element in '+args.templateUrl+'.');
+                    }
+                }
+
+                angular.element(args.container).append(templateElement);
+                messageElements.push(templateElement);
+
+                if (scope.$position === 'center'){
+                    $timeout(function(){
+                        scope.$centerMargin = '-' + (templateElement[0].offsetWidth /2) + 'px';
+                    });
+                }
+
+                scope.$close = function(){
+                    templateElement.css('opacity',0).attr('data-closing','true');
+                    layoutMessages();
+                };
+
+                var layoutMessages = function(){
+                    var j = 0;
+                    var currentY = startTop;
+                    for(var i = messageElements.length - 1; i >= 0; i --){
+                        var shadowHeight = 10;
+                        var element = messageElements[i];
+                        var height = element[0].offsetHeight;
+                        var top = currentY + height + shadowHeight;
+                        if (element.attr('data-closing')){
+                            top += 20;
+                        } else {
+                            currentY += height + verticalSpacing;
+                        }
+                        element.css('top',top + 'px').css('margin-top','-' + (height+shadowHeight) + 'px').css('visibility','visible');
+                        j ++;
+                    }
+                };
+
+                $timeout(function(){
+                    layoutMessages();
+                });
+
+                if (args.duration > 0){
+                    $timeout(function(){
+                        scope.$close();
+                    },args.duration);
+                }
+
+            }).error(function(data){
+                    throw new Error('Template specified for cgNotify ('+args.templateUrl+') could not be loaded. ' + data);
+            });
+
+            var retVal = {};
+            
+            retVal.close = function(){
+                if (scope.$close){
+                    scope.$close();
+                }
+            };
+
+            Object.defineProperty(retVal,'message',{
+                get: function(){
+                    return scope.$message;
+                },
+                set: function(val){
+                    scope.$message = val;
+                }
+            });
+
+            openNotificationsScope.push(scope);
+
+            return retVal;
+
+        };
+
+        notify.config = function(args){
+            startTop = !angular.isUndefined(args.startTop) ? args.startTop : startTop;
+            verticalSpacing = !angular.isUndefined(args.verticalSpacing) ? args.verticalSpacing : verticalSpacing;
+            defaultDuration = !angular.isUndefined(args.duration) ? args.duration : defaultDuration;
+            defaultTemplateUrl = args.templateUrl ? args.templateUrl : defaultTemplateUrl;
+            position = !angular.isUndefined(args.position) ? args.position : position;
+            container = args.container ? args.container : container;
+            maximumOpen = args.maximumOpen ? args.maximumOpen : maximumOpen;
+        };
+
+        notify.closeAll = function(){
+            for(var i = messageElements.length - 1; i >= 0; i --){
+                var element = messageElements[i];
+                element.css('opacity',0);
+            }
+        };
+
+        return notify;
+    }
+]);
+
+angular.module('cgNotify').run(['$templateCache', function($templateCache) {
+  'use strict';
+
+  $templateCache.put('angular-notify.html',
+    "<div class=\"cg-notify-message\" ng-class=\"[$classes, \n" +
+    "    $position === 'center' ? 'cg-notify-message-center' : '',\n" +
+    "    $position === 'left' ? 'cg-notify-message-left' : '',\n" +
+    "    $position === 'right' ? 'cg-notify-message-right' : '']\"\n" +
+    "    ng-style=\"{'margin-left': $centerMargin}\">\n" +
+    "\n" +
+    "    <div ng-show=\"!$messageTemplate\">\n" +
+    "        {{$message}}\n" +
+    "    </div>\n" +
+    "\n" +
+    "    <div ng-show=\"$messageTemplate\" class=\"cg-notify-message-template\">\n" +
+    "        \n" +
+    "    </div>\n" +
+    "\n" +
+    "    <button type=\"button\" class=\"cg-notify-close\" ng-click=\"$close()\">\n" +
+    "        <span aria-hidden=\"true\">&times;</span>\n" +
+    "        <span class=\"cg-notify-sr-only\">Close</span>\n" +
+    "    </button>\n" +
+    "\n" +
+    "</div>"
+  );
+
+}]);

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 10 - 0
js/ui-bootstrap-tpls-2.4.0.min.js