From 2c64d5a2f024bbcdae145e89575cfa266042d9fe Mon Sep 17 00:00:00 2001 From: Igor Zhukov Date: Fri, 17 Jan 2014 19:08:40 +0400 Subject: [PATCH] Added errors, improved file versions --- app/css/app.css | 12 ++++- app/favicon.ico | Bin 0 -> 959 bytes .../DialogListAvatarSystem@2x.png | Bin 5587 -> 2647 bytes app/index.html | 13 +++--- app/js/app.js | 2 +- app/js/controllers.js | 9 +++- app/js/directives.js | 4 +- app/js/services.js | 44 ++++++++++++++++-- app/partials/error_modal.html | 17 +++++++ app/partials/im.html | 2 +- app/partials/login.html | 2 +- 11 files changed, 87 insertions(+), 18 deletions(-) create mode 100644 app/favicon.ico create mode 100644 app/partials/error_modal.html diff --git a/app/css/app.css b/app/css/app.css index 0a6e6224..d05d90db 100644 --- a/app/css/app.css +++ b/app/css/app.css @@ -2,7 +2,7 @@ html { background: #dee4e9 url(../img/bg_tile.png?1) 0 0 repeat; - background-size: 300px 468px; + /*background-size: 300px 468px;*/ /*background: #dee4e9 url(../img/bg_full.png) 0 0 no-repeat;*/ /*background-size: cover;*/ @@ -1103,6 +1103,7 @@ img.img_fullsize { .chat_modal_window .modal-dialog { max-width: 506px; } + .chat_modal_wrap .modal-body { padding: 23px 25px 15px; } @@ -1242,4 +1243,13 @@ img.img_fullsize { /*-moz-border-radius : 0; -webkit-border-radius : 0; border-radius : 0;*/ +} + + +.error_modal_window .modal-dialog { + max-width: 400px; +} +.error_modal_description { + text-align: center; + padding: 40px 20px; } \ No newline at end of file diff --git a/app/favicon.ico b/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d0f064d6c9bdf31ef8a1afef30227e178dfe4c97 GIT binary patch literal 959 zcmV;w13>(VP)XUw&NkiL*2BH7?Yg^r zu7CQ%<=%78@BIG%&iNh7(N`W!pjmxR0L4HJ5C`Uf05Aaz0b`;JEdmNSfIGlt^;-mf z;3d!n1alEeIpzw0TfjHqnhD_mr9dYzufFrlD&PQyfqN*f-Y$xPhrocI0ofF&1KdF4 z4g_n_0(=6hj1(vZUS}iR1=OH;HN&In3KRhSD&bzCMwOAuiF5@z*faZPZXm+8;ZG)0)SXBl~#Tbb$K(Ry{HYa05UF3W2LT5o(hyoIYfuwaQLId131R z+wWoA%WHbeI)E-2II~^r8_EkgUumbQ!iG(@WX#19NnD;kxt2SCW*MbMg;86QPis{X ztyOlMR^1Jbao-xjXu{A288~J{<+SF}R$at}N;|bB`9g{gcveNoj?3t5I+6ui4%@j@ zUBt;Us|d3cg3$zHixCmh8X2AVpRKUbbINH-@FqsQVb?Vgb<%h z4CYS03`ppl*Re#BZg+romyhu!A$J0>xVn+6^t1>{DBX-MW`i+0MwjUrU1l~IGq!$S z+v&d-y_9a3 z1iZtbZ`0!0)JoP(#$_V;P@32g35WpC&8!SY6FmO%dy97lJz+C!o&eF!GBoU7wdkJ- z;SFu1#^Xy7eyzvNSl0000YdQ@0+Q*UN;cVTj6004N}b4%X8 hO-xS>N=;0u1OP9b1=Ow#sZ9U?002ovPDHLkV1j7Uqr?CJ literal 0 HcmV?d00001 diff --git a/app/img/placeholders/DialogListAvatarSystem@2x.png b/app/img/placeholders/DialogListAvatarSystem@2x.png index 305e86cfdf38108d4e12a14b7ff3b7f45a7ba5eb..110bd07d59802e5597c9fb52f4aa0f7b81394f21 100644 GIT binary patch delta 2637 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 literal 5587 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 diff --git a/app/index.html b/app/index.html index 557a9cff..c4c644d9 100644 --- a/app/index.html +++ b/app/index.html @@ -7,7 +7,8 @@ - + + @@ -35,11 +36,11 @@ - - - - - + + + + + diff --git a/app/js/app.js b/app/js/app.js index 385303fb..917ace19 100644 --- a/app/js/app.js +++ b/app/js/app.js @@ -49,7 +49,7 @@ config(['$locationProvider', '$routeProvider', '$compileProvider', function($loc // $locationProvider.html5Mode(true); $routeProvider.when('/', {templateUrl: 'partials/welcome.html', controller: 'AppWelcomeController'}); $routeProvider.when('/login', {templateUrl: 'partials/login.html?1', controller: 'AppLoginController'}); - $routeProvider.when('/im', {templateUrl: 'partials/im.html', controller: 'AppIMController', reloadOnSearch: false}); + $routeProvider.when('/im', {templateUrl: 'partials/im.html?1', controller: 'AppIMController', reloadOnSearch: false}); $routeProvider.otherwise({redirectTo: '/'}); }]); diff --git a/app/js/controllers.js b/app/js/controllers.js index ea368bf9..fa72d72f 100644 --- a/app/js/controllers.js +++ b/app/js/controllers.js @@ -21,7 +21,7 @@ angular.module('myApp.controllers', []) }); }) - .controller('AppLoginController', function ($scope, $location, MtpApiManager) { + .controller('AppLoginController', function ($scope, $location, MtpApiManager, ErrorService) { var dcID = 1; $scope.credentials = {}; @@ -46,6 +46,11 @@ angular.module('myApp.controllers', []) }, {dcID: dcID}).then(function (sentCode) { $scope.progress.enabled = false; + if (!sentCode.phone_registered) { + ErrorService.showSimpleError('No account', 'Sorry, there is no Telegram account for ' + $scope.credentials.phone_number + '. Please sign up using our mobile apps.'); + return false; + } + $scope.credentials.phone_code_hash = sentCode.phone_code_hash; $scope.credentials.phone_occupied = sentCode.phone_registered; $scope.error = {}; @@ -88,7 +93,7 @@ angular.module('myApp.controllers', []) $scope.progress.enabled = false; if (error.code == 400 && error.type == 'PHONE_NUMBER_UNOCCUPIED') { return $scope.logIn(true); - } else if (error.code == 400 && error.type == 'PHONE_NUMBER_UNOCCUPIED') { + } else if (error.code == 400 && error.type == 'PHONE_NUMBER_OCCUPIED') { return $scope.logIn(false); } diff --git a/app/js/directives.js b/app/js/directives.js index ac25c641..144b3ac1 100644 --- a/app/js/directives.js +++ b/app/js/directives.js @@ -16,7 +16,7 @@ angular.module('myApp.directives', ['myApp.filters']) restrict: 'AE', scope: true, translude: false, - templateUrl: 'partials/dialog.html' + templateUrl: 'partials/dialog.html?1' }; }) @@ -25,7 +25,7 @@ angular.module('myApp.directives', ['myApp.filters']) restrict: 'AE', scope: true, translude: false, - templateUrl: 'partials/message.html?1' + templateUrl: 'partials/message.html?2' }; }) diff --git a/app/js/services.js b/app/js/services.js index 24c006b5..8e0fb63c 100644 --- a/app/js/services.js +++ b/app/js/services.js @@ -160,6 +160,12 @@ angular.module('myApp.services', []) function getUserPhoto(id, placeholder) { var user = getUser(id); + if (id == 333000) { + return { + placeholder: 'img/placeholders/DialogListAvatarSystem@2x.png' + } + }; + return { placeholder: 'img/placeholders/' + placeholder + 'Avatar'+((Math.abs(id) % 8) + 1)+'@2x.png', location: user && user.photo && user.photo.photo_small @@ -320,7 +326,7 @@ angular.module('myApp.services', []) scope.chatID = chatID; var modalInstance = $modal.open({ - templateUrl: 'partials/chat_modal.html', + templateUrl: 'partials/chat_modal.html?1', controller: 'ChatModalController', windowClass: 'chat_modal_window', scope: scope, @@ -1309,9 +1315,9 @@ angular.module('myApp.services', []) scope.videoID = videoID; scope.progress = {enabled: false}; scope.player = {}; - scope.close = function () { - modalInstance.close(); - } + // scope.close = function () { + // modalInstance.close(); + // } var modalInstance = $modal.open({ templateUrl: 'partials/video_modal.html', @@ -1945,3 +1951,33 @@ angular.module('myApp.services', []) notificationsShown = []; } }) + + +.service('ErrorService', function ($rootScope, $modal) { + + function showError (templateUrl, params, options) { + var scope = $rootScope.$new(); + angular.extend(scope, params); + + return $modal.open({ + templateUrl: templateUrl, + // controller: 'ErrorModalController', + scope: scope, + windowClass: options.windowClass || '' + }); + } + + function showSimpleError (title, description) { + return showError ('partials/error_modal.html', { + title: title, + description: description + }, { + windowClass: 'error_modal_window' + }); + }; + + return { + showError: showError, + showSimpleError: showSimpleError + } +}) diff --git a/app/partials/error_modal.html b/app/partials/error_modal.html new file mode 100644 index 00000000..50e2ac2e --- /dev/null +++ b/app/partials/error_modal.html @@ -0,0 +1,17 @@ +
+ + + + + + +
\ No newline at end of file diff --git a/app/partials/im.html b/app/partials/im.html index d1fa6e43..0773340b 100644 --- a/app/partials/im.html +++ b/app/partials/im.html @@ -1,4 +1,4 @@ -
+
diff --git a/app/partials/login.html b/app/partials/login.html index 974e0e89..86f9b01e 100644 --- a/app/partials/login.html +++ b/app/partials/login.html @@ -1,4 +1,4 @@ -
+