Merge branch 'pr/139'
Conflicts: app/css/app.css
This commit is contained in:
commit
96d7f04981
9
.gitignore
vendored
9
.gitignore
vendored
@ -1,10 +1,11 @@
|
||||
.DS_Store
|
||||
.idea
|
||||
*.sublime-workspace
|
||||
|
||||
# Node.js package manager
|
||||
/node_modules
|
||||
/npm-debug.log
|
||||
node_modules
|
||||
npm-debug.log
|
||||
dist
|
||||
package_dist
|
||||
releases
|
||||
webogram*.zip
|
||||
*.sublime-workspace
|
||||
app/js/templates.js
|
@ -1,7 +1,7 @@
|
||||
/* app css stylesheet */
|
||||
|
||||
html {
|
||||
background: #dee4e9 url(../img/bg_tile.png?1) 0 0 repeat;
|
||||
background: #dee4e9 url(../img/bg_tile.png) 0 0 repeat;
|
||||
/*background-size: 300px 468px;*/
|
||||
}
|
||||
body {
|
||||
@ -255,12 +255,12 @@ input[type="number"]::-webkit-inner-spin-button {
|
||||
height: 18px;
|
||||
vertical-align: text-top;
|
||||
|
||||
background: url(../img/icons/IconsetW.png?1) -15px -419px no-repeat;
|
||||
background: url(../img/icons/IconsetW.png) -15px -419px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
opacity: 0.6;
|
||||
}
|
||||
.is_1x .icon-back {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
.tg_page_head .navbar-quick-nav a:hover .icon-back {
|
||||
opacity: 1;
|
||||
@ -484,7 +484,7 @@ input[type="number"]::-webkit-inner-spin-button {
|
||||
margin-right: -7px;
|
||||
}
|
||||
.im_dialogs_col .nano > .pane {
|
||||
background : rgba(0,0,0,.0);
|
||||
background : rgba(0,0,0,0.0);
|
||||
width : 12px;
|
||||
right: 0px;
|
||||
-webkit-transition : .2s;
|
||||
@ -510,7 +510,7 @@ input[type="number"]::-webkit-inner-spin-button {
|
||||
.im_dialogs_search_field {
|
||||
font-size: 12px;
|
||||
line-height: normal;
|
||||
background: #F2F2F2 url(../img/icons/IconsetW.png?1) -6px -205px no-repeat;
|
||||
background: #F2F2F2 url(../img/icons/IconsetW.png) -6px -205px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
border: 1px solid #F2F2F2;
|
||||
border-radius: 3px;
|
||||
@ -519,7 +519,7 @@ input[type="number"]::-webkit-inner-spin-button {
|
||||
margin: 0;
|
||||
}
|
||||
.is_1x .im_dialogs_search_field {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
.im_dialogs_search_field:focus,
|
||||
.im_dialogs_search_field:active {
|
||||
@ -534,12 +534,12 @@ input[type="number"]::-webkit-inner-spin-button {
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
vertical-align: text-top;
|
||||
background: url(../img/icons/IconsetW.png?1) -15px -192px no-repeat;
|
||||
background: url(../img/icons/IconsetW.png) -15px -192px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
opacity: 0.6;
|
||||
}
|
||||
.is_1x .im_dialogs_search_clear {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
.im_dialogs_search_clear:hover {
|
||||
opacity: 1;
|
||||
@ -787,11 +787,11 @@ a.im_dialog:hover .im_dialog_date {
|
||||
margin-top: 7px;
|
||||
margin-left: 6px;
|
||||
|
||||
background: url(../img/icons/IconsetW.png?1) -17px -444px no-repeat;
|
||||
background: url(../img/icons/IconsetW.png) -17px -444px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
}
|
||||
.is_1x .icon-caret {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
|
||||
.im_history_panel_media_dropdown .dropdown-menu {
|
||||
@ -994,11 +994,11 @@ div.im_message_video_thumb {
|
||||
width: 15px;
|
||||
height: 19px;
|
||||
|
||||
background: url(../img/icons/IconsetW.png?1) -14px -389px no-repeat;
|
||||
background: url(../img/icons/IconsetW.png) -14px -389px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
}
|
||||
.is_1x .icon-geo-point {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
|
||||
|
||||
@ -1022,7 +1022,7 @@ div.im_message_video_thumb {
|
||||
height: 38px;
|
||||
vertical-align: text-top;
|
||||
|
||||
background: #F2F2F2 url(../img/icons/IconsetW.png?1) -2px -229px no-repeat;
|
||||
background: #F2F2F2 url(../img/icons/IconsetW.png) -2px -229px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
border-radius: 3px;
|
||||
margin-right: 10px;
|
||||
@ -1030,7 +1030,7 @@ div.im_message_video_thumb {
|
||||
.is_1x .icon-document,
|
||||
.is_1x .icon-photo,
|
||||
.is_1x .icon-video {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
|
||||
.im_message_selected .icon-document,
|
||||
@ -1109,13 +1109,13 @@ img.im_message_document_thumb {
|
||||
height: 38px;
|
||||
vertical-align: text-top;
|
||||
|
||||
background: #F2F2F2 url(../img/icons/IconsetW.png?1) -2px -277px no-repeat;
|
||||
background: #F2F2F2 url(../img/icons/IconsetW.png) -2px -277px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
border-radius: 3px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.is_1x .icon-audio {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
|
||||
.im_message_audio_info {
|
||||
@ -1246,14 +1246,14 @@ img.im_message_document_thumb {
|
||||
display: none;
|
||||
width: 16px;
|
||||
height: 10px;
|
||||
background: url(../img/icons/Checks2_2x.png?1) 0 0 no-repeat;
|
||||
background: url(../img/icons/Checks2_2x.png) 0 0 no-repeat;
|
||||
background-size: 16px 10px;
|
||||
top: 2px;
|
||||
position: relative;
|
||||
}
|
||||
.icon-message-status-tick.message-status-unread-tick {
|
||||
/*width: 13px;*/
|
||||
background: url(../img/icons/Checks1_2x.png?1) 0 0 no-repeat;
|
||||
background: url(../img/icons/Checks1_2x.png) 0 0 no-repeat;
|
||||
background-size: 16px 10px;
|
||||
}
|
||||
.im_message_date {
|
||||
@ -1378,12 +1378,12 @@ textarea.im_message_field {
|
||||
width: 19px;
|
||||
height: 23px;
|
||||
vertical-align: text-top;
|
||||
background: url(../img/icons/IconsetW.png?1) -12px -68px no-repeat;
|
||||
background: url(../img/icons/IconsetW.png) -12px -68px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
opacity: 0.8;
|
||||
}
|
||||
.is_1x .icon-paperclip {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
.im_attach:hover .icon-paperclip {
|
||||
opacity: 1;
|
||||
@ -1406,12 +1406,12 @@ textarea.im_message_field {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
vertical-align: text-top;
|
||||
background: url(../img/icons/IconsetW.png?1) -10px -4px no-repeat;
|
||||
background: url(../img/icons/IconsetW.png) -10px -4px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
opacity: 0.8;
|
||||
}
|
||||
.is_1x .icon-emoji {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
.im_emoji_btn:hover .icon-emoji {
|
||||
opacity: 1;
|
||||
@ -1456,12 +1456,12 @@ textarea.im_message_field {
|
||||
width: 25px;
|
||||
height: 21px;
|
||||
vertical-align: text-top;
|
||||
background: url(../img/icons/IconsetW.png?1) -9px -132px no-repeat;
|
||||
background: url(../img/icons/IconsetW.png) -9px -132px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
opacity: 0.8;
|
||||
}
|
||||
.is_1x .icon-camera {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
.im_media_attach:hover .icon-camera {
|
||||
opacity: 1;
|
||||
@ -1879,14 +1879,14 @@ img.img_fullsize {
|
||||
|
||||
.emoji-menu-tail {
|
||||
display: none;
|
||||
background: url(../img/icons/IconsetW.png?1) -14px -268px no-repeat;
|
||||
background: url(../img/icons/IconsetW.png) -14px -268px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
width: 14px;
|
||||
height: 7px;
|
||||
margin: 0 83px;
|
||||
}
|
||||
.is_1x .emoji-menu-tail {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
|
||||
|
||||
@ -2030,7 +2030,7 @@ img.img_fullsize {
|
||||
.contacts_modal_search_field {
|
||||
font-size: 12px;
|
||||
line-height: normal;
|
||||
background: #F2F2F2 url(../img/icons/IconsetW.png?1) -6px -205px no-repeat;
|
||||
background: #F2F2F2 url(../img/icons/IconsetW.png) -6px -205px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
border: 1px solid #F2F2F2;
|
||||
border-radius: 3px;
|
||||
@ -2039,7 +2039,7 @@ img.img_fullsize {
|
||||
margin: 0;
|
||||
}
|
||||
.is_1x .contacts_modal_search_field {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
.contacts_modal_search_field:focus,
|
||||
.contacts_modal_search_field:active {
|
||||
@ -2054,12 +2054,12 @@ img.img_fullsize {
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
vertical-align: text-top;
|
||||
background: url(../img/icons/IconsetW.png?1) -15px -192px no-repeat;
|
||||
background: url(../img/icons/IconsetW.png) -15px -192px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
opacity: 0.6;
|
||||
}
|
||||
.is_1x .contacts_modal_search_clear {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
.contacts_modal_search_clear:hover {
|
||||
opacity: 1;
|
||||
@ -2131,12 +2131,12 @@ a.contacts_modal_contact:hover .contacts_modal_contact_status {
|
||||
top: 22px;
|
||||
width: 17px;
|
||||
height: 15px;
|
||||
background: url(../img/icons/IconsetW.png?1) -13px -366px no-repeat;
|
||||
background: url(../img/icons/IconsetW.png) -13px -366px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
.is_1x .icon-contact-tick {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
.contacts_modal_members_list a.contacts_modal_contact:hover .icon-contact-tick {
|
||||
background-position: -13px -366px;
|
||||
@ -2229,11 +2229,11 @@ a.contacts_modal_contact:hover .contacts_modal_contact_status {
|
||||
width: 12px;
|
||||
height: 15px;
|
||||
|
||||
background: url(../img/icons/IconsetW.png?1) -15px -319px no-repeat;
|
||||
background: url(../img/icons/IconsetW.png) -15px -319px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
}
|
||||
.is_1x .icon-delete {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
.im_message_selected {
|
||||
background: #f2f6fa;
|
||||
@ -2276,11 +2276,11 @@ a.contacts_modal_contact:hover .contacts_modal_contact_status {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
margin: 13px 0 0 40px;
|
||||
background: url(../img/icons/IconsetW.png?1) -9px -516px no-repeat;
|
||||
background: url(../img/icons/IconsetW.png) -9px -516px no-repeat;
|
||||
background-size: 42px 620px;
|
||||
}
|
||||
.is_1x .icon-select-tick {
|
||||
background-image: url(../img/icons/IconsetW_1x.png?2);
|
||||
background-image: url(../img/icons/IconsetW_1x.png);
|
||||
}
|
||||
.im_history_selectable .icon-select-tick,
|
||||
.im_content_message_select_area:hover .icon-select-tick {
|
||||
|
@ -4,10 +4,14 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no">
|
||||
<title>Webogram</title>
|
||||
|
||||
<!-- build:css css/app.css -->
|
||||
<link rel="stylesheet" href="vendor/angular/angular-csp.css"/>
|
||||
<link rel="stylesheet" href="vendor/bootstrap/css/bootstrap.css?1"/>
|
||||
<link rel="stylesheet" href="vendor/bootstrap/css/bootstrap.css"/>
|
||||
<link rel="stylesheet" href="vendor/jquery.nanoscroller/nanoscroller.css"/>
|
||||
<link rel="stylesheet" href="css/app.css?25"/>
|
||||
<link rel="stylesheet" href="css/app.css"/>
|
||||
<!-- endbuild -->
|
||||
|
||||
<link rel="icon" href="favicon.ico" type="image/x-icon" />
|
||||
|
||||
<meta property="og:title" content="Webogram">
|
||||
@ -21,31 +25,39 @@
|
||||
|
||||
<div ng-view></div>
|
||||
|
||||
<script type="text/javascript" src="vendor/console-polyfill/console-polyfill.js?1"></script>
|
||||
<!-- build:js js/app.js -->
|
||||
<script type="text/javascript" src="vendor/console-polyfill/console-polyfill.js"></script>
|
||||
<script type="text/javascript" src="vendor/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="vendor/jquery.nanoscroller/nanoscroller.js"></script>
|
||||
<script type="text/javascript" src="vendor/jquery.emojiarea/jquery.emojiarea.js?5"></script>
|
||||
<script type="text/javascript" src="vendor/jquery.emojiarea/jquery.emojiarea.js"></script>
|
||||
|
||||
<script type="text/javascript" src="vendor/angular/angular.js?1"></script>
|
||||
<script type="text/javascript" src="vendor/angular/angular-route.js?1"></script>
|
||||
<script type="text/javascript" src="vendor/angular/angular-animate.js?1"></script>
|
||||
<script type="text/javascript" src="vendor/angular/angular-sanitize.js?1"></script>
|
||||
<script type="text/javascript" src="vendor/ui-bootstrap/ui-bootstrap-custom-tpls-0.10.0.js?1"></script>
|
||||
<script type="text/javascript" src="vendor/angular/angular.js"></script>
|
||||
<script type="text/javascript" src="vendor/angular/angular-route.js"></script>
|
||||
<script type="text/javascript" src="vendor/angular/angular-animate.js"></script>
|
||||
<script type="text/javascript" src="vendor/angular/angular-sanitize.js"></script>
|
||||
<script type="text/javascript" src="vendor/ui-bootstrap/ui-bootstrap-custom-tpls-0.10.0.js"></script>
|
||||
|
||||
<script type="text/javascript" src="vendor/jsbn/jsbn_combined.js"></script>
|
||||
<script type="text/javascript" src="vendor/cryptoJS/crypto.js?1"></script>
|
||||
<script type="text/javascript" src="vendor/cryptoJS/crypto.js"></script>
|
||||
<script type="text/javascript" src="vendor/zlib/gunzip.min.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript" src="js/lib/config.js"></script>
|
||||
<script type="text/javascript" src="js/lib/mtproto.js?19"></script>
|
||||
<script type="text/javascript" src="js/lib/mtproto.js"></script>
|
||||
<script type="text/javascript" src="js/util.js"></script>
|
||||
|
||||
<script type="text/javascript" src="js/app.js"></script>
|
||||
<script type="text/javascript" src="js/services.js"></script>
|
||||
<script type="text/javascript" src="js/controllers.js"></script>
|
||||
<script type="text/javascript" src="js/filters.js"></script>
|
||||
|
||||
<!--PRODUCTION_ONLY_BEGIN
|
||||
<script type="text/javascript" src="js/templates.js"></script>
|
||||
PRODUCTION_ONLY_END-->
|
||||
|
||||
<script type="text/javascript" src="js/directives.js"></script>
|
||||
<!-- endbuild -->
|
||||
|
||||
<script type="text/javascript" src="js/util.js?2"></script>
|
||||
<script type="text/javascript" src="js/app.js?16"></script>
|
||||
<script type="text/javascript" src="js/services.js?21"></script>
|
||||
<script type="text/javascript" src="js/controllers.js?29"></script>
|
||||
<script type="text/javascript" src="js/filters.js?4"></script>
|
||||
<script type="text/javascript" src="js/directives.js?20"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
@ -30,9 +30,12 @@ angular.module('myApp', [
|
||||
'ngAnimate',
|
||||
'ngSanitize',
|
||||
'ui.bootstrap',
|
||||
'mtproto.services',
|
||||
'myApp.filters',
|
||||
'myApp.services',
|
||||
'mtproto.services',
|
||||
/*PRODUCTION_ONLY_BEGIN
|
||||
'myApp.templates',
|
||||
PRODUCTION_ONLY_END*/
|
||||
'myApp.directives',
|
||||
'myApp.controllers'
|
||||
]).
|
||||
@ -63,9 +66,9 @@ config(['$locationProvider', '$routeProvider', '$compileProvider', function($loc
|
||||
|
||||
|
||||
// $locationProvider.html5Mode(true);
|
||||
$routeProvider.when('/', {templateUrl: 'partials/welcome.html?4', controller: 'AppWelcomeController'});
|
||||
$routeProvider.when('/login', {templateUrl: 'partials/login.html?5', controller: 'AppLoginController'});
|
||||
$routeProvider.when('/im', {templateUrl: 'partials/im.html?13', controller: 'AppIMController', reloadOnSearch: false});
|
||||
$routeProvider.when('/', {templateUrl: 'partials/welcome.html', controller: 'AppWelcomeController'});
|
||||
$routeProvider.when('/login', {templateUrl: 'partials/login.html', controller: 'AppLoginController'});
|
||||
$routeProvider.when('/im', {templateUrl: 'partials/im.html', controller: 'AppIMController', reloadOnSearch: false});
|
||||
$routeProvider.otherwise({redirectTo: '/'});
|
||||
|
||||
}]);
|
||||
|
@ -168,7 +168,7 @@ angular.module('myApp.controllers', [])
|
||||
$scope.isLoggedIn = true;
|
||||
$scope.openSettings = function () {
|
||||
$modal.open({
|
||||
templateUrl: 'partials/settings_modal.html?3',
|
||||
templateUrl: 'partials/settings_modal.html',
|
||||
controller: 'SettingsModalController',
|
||||
scope: $rootScope.$new(),
|
||||
windowClass: 'settings_modal_window'
|
||||
@ -191,7 +191,7 @@ angular.module('myApp.controllers', [])
|
||||
scope.userIDs = userIDs;
|
||||
|
||||
$modal.open({
|
||||
templateUrl: 'partials/chat_create_modal.html?3',
|
||||
templateUrl: 'partials/chat_create_modal.html',
|
||||
controller: 'ChatCreateModalController',
|
||||
scope: scope,
|
||||
windowClass: 'contacts_modal_window'
|
||||
@ -979,7 +979,7 @@ angular.module('myApp.controllers', [])
|
||||
scope.chatID = $scope.chatID;
|
||||
|
||||
$modal.open({
|
||||
templateUrl: 'partials/chat_edit_modal.html?3',
|
||||
templateUrl: 'partials/chat_edit_modal.html',
|
||||
controller: 'ChatEditModalController',
|
||||
scope: scope,
|
||||
windowClass: 'contacts_modal_window'
|
||||
|
@ -16,7 +16,7 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
restrict: 'AE',
|
||||
scope: true,
|
||||
translude: false,
|
||||
templateUrl: 'partials/dialog.html?5'
|
||||
templateUrl: 'partials/dialog.html'
|
||||
};
|
||||
})
|
||||
|
||||
@ -25,7 +25,7 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
restrict: 'AE',
|
||||
scope: true,
|
||||
translude: false,
|
||||
templateUrl: 'partials/message.html?7'
|
||||
templateUrl: 'partials/message.html'
|
||||
};
|
||||
})
|
||||
|
||||
|
@ -1122,7 +1122,7 @@ factory('MtpAuthorizer', function (MtpDcConfigurator, MtpRsaKeysManager, MtpSecu
|
||||
|
||||
console.log('PQ factorization start');
|
||||
if (!!window.Worker) {
|
||||
var worker = new Worker('js/lib/pq_worker.js?1');
|
||||
var worker = new Worker('js/lib/pq_worker.js');
|
||||
|
||||
worker.onmessage = function (e) {
|
||||
auth.p = e.data[0];
|
||||
@ -1416,7 +1416,7 @@ factory('MtpAesService', function ($q) {
|
||||
};
|
||||
}
|
||||
|
||||
var worker = new Worker('js/lib/aes_worker.js?2'),
|
||||
var worker = new Worker('js/lib/aes_worker.js'),
|
||||
taskID = 0,
|
||||
awaiting = {};
|
||||
|
||||
@ -1468,7 +1468,7 @@ factory('MtpSha1Service', function ($q) {
|
||||
};
|
||||
}
|
||||
|
||||
var worker = new Worker('js/lib/sha1_worker.js?2'),
|
||||
var worker = new Worker('js/lib/sha1_worker.js'),
|
||||
taskID = 0,
|
||||
awaiting = {};
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
importScripts(
|
||||
'../../vendor/console-polyfill/console-polyfill.js?1',
|
||||
'../../vendor/console-polyfill/console-polyfill.js',
|
||||
'mtproto.js',
|
||||
'../../vendor/jsbn/jsbn_combined.js'
|
||||
);
|
||||
|
@ -6,9 +6,9 @@
|
||||
*/
|
||||
|
||||
importScripts(
|
||||
'../../vendor/console-polyfill/console-polyfill.js?1',
|
||||
'../../vendor/console-polyfill/console-polyfill.js',
|
||||
'mtproto.js',
|
||||
'../../vendor/cryptoJS/crypto.js?1'
|
||||
'../../vendor/cryptoJS/crypto.js'
|
||||
);
|
||||
|
||||
onmessage = function (e) {
|
||||
|
@ -290,7 +290,7 @@ angular.module('myApp.services', [])
|
||||
scope.userID = userID;
|
||||
|
||||
var modalInstance = $modal.open({
|
||||
templateUrl: 'partials/user_modal.html?2',
|
||||
templateUrl: 'partials/user_modal.html',
|
||||
controller: 'UserModalController',
|
||||
scope: scope,
|
||||
windowClass: 'user_modal_window'
|
||||
@ -444,7 +444,7 @@ angular.module('myApp.services', [])
|
||||
scope.chatID = chatID;
|
||||
|
||||
var modalInstance = $modal.open({
|
||||
templateUrl: 'partials/chat_modal.html?4',
|
||||
templateUrl: 'partials/chat_modal.html',
|
||||
controller: 'ChatModalController',
|
||||
windowClass: 'chat_modal_window',
|
||||
scope: scope
|
||||
@ -1792,7 +1792,7 @@ angular.module('myApp.services', [])
|
||||
scope.photoID = photoID;
|
||||
|
||||
var modalInstance = $modal.open({
|
||||
templateUrl: 'partials/photo_modal.html?1',
|
||||
templateUrl: 'partials/photo_modal.html',
|
||||
controller: 'PhotoModalController',
|
||||
scope: scope
|
||||
});
|
||||
@ -1892,7 +1892,7 @@ angular.module('myApp.services', [])
|
||||
scope.player = {};
|
||||
|
||||
var modalInstance = $modal.open({
|
||||
templateUrl: 'partials/video_modal.html?1',
|
||||
templateUrl: 'partials/video_modal.html',
|
||||
controller: 'VideoModalController',
|
||||
scope: scope
|
||||
});
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div ng-include="'partials/head.html?3'"></div>
|
||||
<div ng-include="'partials/head.html'"></div>
|
||||
|
||||
<div class="im_page_wrap" ng-class="{im_page_peer_not_selected: !curDialog.peer}">
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div ng-include="'partials/head.html?3'"></div>
|
||||
<div ng-include="'partials/head.html'"></div>
|
||||
|
||||
|
||||
<div class="login_form_wrap">
|
||||
@ -35,4 +35,4 @@
|
||||
{{progress.enabled ? 'Checking code...' : 'Sign in'}}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div ng-include="'partials/head.html?3'"></div>
|
||||
<div ng-include="'partials/head.html'"></div>
|
||||
|
||||
|
||||
<div ng-show="showWelcome">
|
||||
@ -14,4 +14,4 @@
|
||||
<a href="#/login" class="btn btn-success btn-block">Start Messaging</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
123
gulpfile.js
Normal file
123
gulpfile.js
Normal file
@ -0,0 +1,123 @@
|
||||
var gulp = require('gulp');
|
||||
var es = require('event-stream');
|
||||
var pj = require('./package.json');
|
||||
var $ = require('gulp-load-plugins')();
|
||||
var concat = require('gulp-concat');
|
||||
|
||||
|
||||
// The generated file is being created at src
|
||||
// so it can be fetched by usemin.
|
||||
gulp.task('templates', function() {
|
||||
return gulp.src('app/partials/*.html')
|
||||
.pipe($.angularTemplatecache('templates.js', {
|
||||
root: 'partials',
|
||||
module: 'myApp.templates',
|
||||
standalone: true
|
||||
}))
|
||||
.pipe(gulp.dest('app/js'));
|
||||
});
|
||||
|
||||
gulp.task('usemin', ['templates', 'enable-production'], function() {
|
||||
return gulp.src('app/index.html')
|
||||
.pipe($.usemin({
|
||||
html: [$.minifyHtml({empty: true})],
|
||||
js: ['concat', $.rev()],
|
||||
css: [$.minifyCss(), 'concat']
|
||||
}))
|
||||
.pipe(gulp.dest('dist'));
|
||||
});
|
||||
|
||||
gulp.task('copy', function() {
|
||||
return es.concat(
|
||||
gulp.src(['app/favicon.ico', 'app/favicon_unread.ico', 'app/manifest.webapp', 'app/manifest.json', 'app/**/*worker.js'])
|
||||
.pipe(gulp.dest('dist')),
|
||||
gulp.src(['app/img/**/*', '!app/img/screenshot*'])
|
||||
.pipe(gulp.dest('dist/img')),
|
||||
gulp.src('app/vendor/console-polyfill/console-polyfill.js')
|
||||
.pipe(gulp.dest('dist/vendor/console-polyfill')),
|
||||
gulp.src('app/js/lib/mtproto.js')
|
||||
.pipe(gulp.dest('dist/js/lib')),
|
||||
gulp.src('app/js/lib/config.js')
|
||||
.pipe(gulp.dest('dist/js/lib')),
|
||||
gulp.src('app/vendor/jsbn/jsbn_combined.js')
|
||||
.pipe(gulp.dest('dist/vendor/jsbn')),
|
||||
gulp.src('app/vendor/cryptoJS/crypto.js')
|
||||
.pipe(gulp.dest('dist/vendor/cryptoJS'))
|
||||
);
|
||||
});
|
||||
|
||||
gulp.task('compress-dist', ['add-csp'], function() {
|
||||
return gulp.src('dist/**/*')
|
||||
.pipe($.zip('webogram_v' + pj.version + '.zip'))
|
||||
.pipe(gulp.dest('releases'));
|
||||
});
|
||||
|
||||
gulp.task('cleanup-dist', ['compress-dist'], function() {
|
||||
return gulp.src(['releases/**/*', '!releases/*.zip']).pipe($.clean());
|
||||
});
|
||||
|
||||
gulp.task('add-csp', ['build'], function() {
|
||||
return gulp.src('dist/index.html')
|
||||
.pipe($.replace('<html lang=en ng-app=myApp>', '<html lang=en ng-app=myApp ng-csp="">'))
|
||||
.pipe(gulp.dest('dist'));
|
||||
});
|
||||
|
||||
gulp.task('update-version-manifests', function() {
|
||||
return gulp.src(['app/manifest.webapp', 'app/manifest.json'])
|
||||
.pipe($.replace(/"version": ".*",/, '"version": "' + pj.version + '",'))
|
||||
.pipe(gulp.dest('app'));
|
||||
});
|
||||
|
||||
gulp.task('update-version-settings', function() {
|
||||
return gulp.src('app/partials/settings_modal.html')
|
||||
.pipe($.replace(/<span class="settings_version">alpha .*<\/span>/, '<span class="settings_version">alpha ' + pj.version + '<\/span>'))
|
||||
.pipe(gulp.dest('app/partials'));
|
||||
});
|
||||
|
||||
gulp.task('update-version-comments', function() {
|
||||
return gulp.src('app/**/*.js')
|
||||
.pipe($.replace(/Webogram v[0-9.]*/, 'Webogram v' + pj.version))
|
||||
.pipe(gulp.dest('app'));
|
||||
});
|
||||
|
||||
|
||||
gulp.task('enable-production', function() {
|
||||
return es.concat(
|
||||
gulp.src('app/**/*.html')
|
||||
.pipe($.replace(/PRODUCTION_ONLY_BEGIN/g, 'PRODUCTION_ONLY_BEGIN-->'))
|
||||
.pipe($.replace(/PRODUCTION_ONLY_END/, '<!--PRODUCTION_ONLY_END'))
|
||||
.pipe(gulp.dest('app')),
|
||||
gulp.src('app/**/*.js')
|
||||
.pipe($.replace(/PRODUCTION_ONLY_BEGIN(\*\/)?/g, 'PRODUCTION_ONLY_BEGIN*/'))
|
||||
.pipe($.replace(/(\/\*)?PRODUCTION_ONLY_END/g, '/*PRODUCTION_ONLY_END'))
|
||||
.pipe(gulp.dest('app'))
|
||||
);
|
||||
});
|
||||
|
||||
gulp.task('disable-production', function() {
|
||||
return es.concat(
|
||||
gulp.src('app/index.html')
|
||||
.pipe($.replace(/PRODUCTION_ONLY_BEGIN-->/g, 'PRODUCTION_ONLY_BEGIN'))
|
||||
.pipe($.replace(/<!--PRODUCTION_ONLY_END/g, 'PRODUCTION_ONLY_END'))
|
||||
.pipe(gulp.dest('app')),
|
||||
gulp.src('app/**/*.js')
|
||||
.pipe($.replace(/PRODUCTION_ONLY_BEGIN(\*\/)?/g, 'PRODUCTION_ONLY_BEGIN'))
|
||||
.pipe($.replace(/(\/\*)?PRODUCTION_ONLY_END/g, 'PRODUCTION_ONLY_END'))
|
||||
.pipe(gulp.dest('app'))
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
gulp.task('clean', function() {
|
||||
return gulp.src(['dist/*', '!dist/.git']).pipe($.clean());
|
||||
});
|
||||
|
||||
gulp.task('bump', ['update-version-manifests', 'update-version-settings', 'update-version-comments']);
|
||||
gulp.task('build', ['templates', 'usemin', 'copy'], function () {
|
||||
gulp.start('disable-production');
|
||||
});
|
||||
gulp.task('package', ['cleanup-dist']);
|
||||
|
||||
gulp.task('default', ['clean'], function() {
|
||||
gulp.start('build');
|
||||
});
|
36
package.json
Normal file
36
package.json
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "webogram",
|
||||
"version": "0.0.19",
|
||||
"description": "UNOFFICIAL Telegram Web App.",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
"start": "node server.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zhukov/webogram.git"
|
||||
},
|
||||
"author": "zhukov",
|
||||
"license": "GPL",
|
||||
"bugs": {
|
||||
"url": "https://github.com/zhukov/webogram/issues"
|
||||
},
|
||||
"homepage": "http://zhukov.github.io/webogram",
|
||||
"devDependencies": {
|
||||
"gulp": "~3.5.5",
|
||||
"gulp-angular-templatecache": "^1.1.0",
|
||||
"gulp-load-plugins": "^0.4.0",
|
||||
"gulp-usemin": "^0.3.3",
|
||||
"gulp-uglify": "^0.2.1",
|
||||
"gulp-rev": "^0.3.0",
|
||||
"gulp-minify-css": "^0.3.0",
|
||||
"gulp-minify-html": "^0.1.1",
|
||||
"gulp-imagemin": "^0.1.5",
|
||||
"gulp-clean": "^0.2.4",
|
||||
"gulp-replace": "^0.2.0",
|
||||
"gulp-concat": "^2.1.7",
|
||||
"gulp-grep-stream": "0.0.2",
|
||||
"event-stream": "^3.1.0",
|
||||
"gulp-zip": "^0.1.2"
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user