mirror of https://github.com/BTCPrivate/copay.git
Merge pull request #1162 from cmgustavo/bug/02-angular-issues
Bug/02 angular issues
This commit is contained in:
commit
2c56160e97
|
@ -41,6 +41,9 @@ lib/*
|
||||||
!lib/socket.io.js
|
!lib/socket.io.js
|
||||||
|
|
||||||
js/copayBundle.js
|
js/copayBundle.js
|
||||||
|
js/copayMain.js
|
||||||
|
css/copay.min.css
|
||||||
|
css/vendors.min.css
|
||||||
|
|
||||||
webapp
|
webapp
|
||||||
browser-extensions/chrome/copay-chrome-extension
|
browser-extensions/chrome/copay-chrome-extension
|
||||||
|
|
109
Gruntfile.js
109
Gruntfile.js
|
@ -5,28 +5,60 @@ module.exports = function(grunt) {
|
||||||
grunt.loadNpmTasks('grunt-mocha-test');
|
grunt.loadNpmTasks('grunt-mocha-test');
|
||||||
grunt.loadNpmTasks('grunt-markdown');
|
grunt.loadNpmTasks('grunt-markdown');
|
||||||
grunt.loadNpmTasks('grunt-shell');
|
grunt.loadNpmTasks('grunt-shell');
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-cssmin');
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||||||
|
|
||||||
// Project Configuration
|
// Project Configuration
|
||||||
grunt.initConfig({
|
grunt.initConfig({
|
||||||
shell: {
|
shell: {
|
||||||
browserify: {
|
prod: {
|
||||||
|
options: {
|
||||||
|
stdout: false,
|
||||||
|
stderr: false
|
||||||
|
},
|
||||||
|
command: 'node ./util/build.js'
|
||||||
|
},
|
||||||
|
dev: {
|
||||||
options: {
|
options: {
|
||||||
stdout: true,
|
stdout: true,
|
||||||
stderr: true
|
stderr: true
|
||||||
},
|
},
|
||||||
command: grunt.option('target') === 'dev' ?
|
command: 'node ./util/build.js -d'
|
||||||
'node ./util/build.js -d ' : 'node ./util/build.js '
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
options: {
|
||||||
|
dateFormat: function(time) {
|
||||||
|
grunt.log.writeln('The watch finished in ' + time + 'ms at ' + (new Date()).toString());
|
||||||
|
grunt.log.writeln('Waiting for more changes...');
|
||||||
|
},
|
||||||
|
},
|
||||||
readme: {
|
readme: {
|
||||||
files: ['README.md'],
|
files: ['README.md'],
|
||||||
tasks: ['markdown']
|
tasks: ['markdown']
|
||||||
},
|
},
|
||||||
scripts: {
|
scripts: {
|
||||||
files: ['*.js', '*/*/*.js', '**/*.js', '*.html', '!**/node_modules/**', '!lib/**js', '!browser/vendor-bundle.js', '!js/copayBundle.js'],
|
files: [
|
||||||
tasks: ['shell'],
|
'js/models/**/*.js'
|
||||||
|
],
|
||||||
|
tasks: ['shell:dev']
|
||||||
},
|
},
|
||||||
|
css: {
|
||||||
|
files: ['css/src/*.css'],
|
||||||
|
tasks: ['cssmin:copay']
|
||||||
|
},
|
||||||
|
main: {
|
||||||
|
files: [
|
||||||
|
'js/app.js',
|
||||||
|
'js/directives.js',
|
||||||
|
'js/filters.js',
|
||||||
|
'js/routes.js',
|
||||||
|
'js/services/*.js',
|
||||||
|
'js/controllers/*.js'
|
||||||
|
],
|
||||||
|
tasks: ['concat:main']
|
||||||
|
}
|
||||||
},
|
},
|
||||||
mochaTest: {
|
mochaTest: {
|
||||||
options: {
|
options: {
|
||||||
|
@ -43,9 +75,74 @@ module.exports = function(grunt) {
|
||||||
ext: '.html'
|
ext: '.html'
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
concat: {
|
||||||
|
vendors: {
|
||||||
|
src: [
|
||||||
|
'lib/moment/min/moment.min.js',
|
||||||
|
'lib/qrcode-generator/js/qrcode.js',
|
||||||
|
'lib/peer.js',
|
||||||
|
'lib/bitcore.js',
|
||||||
|
'lib/crypto-js/rollups/sha256.js',
|
||||||
|
'lib/crypto-js/rollups/pbkdf2.js',
|
||||||
|
'lib/crypto-js/rollups/aes.js',
|
||||||
|
'lib/file-saver/FileSaver.js',
|
||||||
|
'lib/socket.io-client/socket.io.js',
|
||||||
|
'lib/sjcl.js',
|
||||||
|
'lib/ios-imagefile-megapixel/megapix-image.js',
|
||||||
|
'lib/qrcode-decoder-js/lib/qrcode-decoder.min.js'
|
||||||
|
],
|
||||||
|
dest: 'lib/vendors.js'
|
||||||
|
},
|
||||||
|
angular: {
|
||||||
|
src: [
|
||||||
|
'lib/angular/angular.min.js',
|
||||||
|
'lib/angular-route/angular-route.min.js',
|
||||||
|
'lib/angular-moment/angular-moment.js',
|
||||||
|
'lib/angular-qrcode/qrcode.js',
|
||||||
|
'lib/ng-idle/angular-idle.min.js',
|
||||||
|
'lib/angular-foundation/mm-foundation.min.js',
|
||||||
|
'lib/angular-foundation/mm-foundation-tpls.min.js'
|
||||||
|
],
|
||||||
|
dest: 'lib/angularjs-all.js'
|
||||||
|
},
|
||||||
|
main: {
|
||||||
|
src: [
|
||||||
|
'js/app.js',
|
||||||
|
'js/directives.js',
|
||||||
|
'js/filters.js',
|
||||||
|
'js/routes.js',
|
||||||
|
'js/services/*.js',
|
||||||
|
'js/controllers/*.js'
|
||||||
|
],
|
||||||
|
dest: 'js/copayMain.js'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cssmin: {
|
||||||
|
copay: {
|
||||||
|
files: {
|
||||||
|
'css/copay.min.css': ['css/src/*.css'],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
vendors: {
|
||||||
|
files: {
|
||||||
|
'css/vendors.min.css': ['css/foundation.min.css', 'css/foundation-icons.css', 'lib/angular/angular-csp.css']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
uglify: {
|
||||||
|
options: {
|
||||||
|
mangle: false
|
||||||
|
},
|
||||||
|
prod: {
|
||||||
|
files: {
|
||||||
|
'js/copayMain.js': ['js/copayMain.js']
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
grunt.registerTask('default', ['shell', 'watch']);
|
grunt.registerTask('default', ['shell:dev', 'concat', 'cssmin']);
|
||||||
|
grunt.registerTask('prod', ['shell:prod', 'concat', 'cssmin', 'uglify']);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -32,7 +32,11 @@ Build Copay:
|
||||||
```
|
```
|
||||||
npm install
|
npm install
|
||||||
bower install
|
bower install
|
||||||
grunt shell --target=dev
|
grunt
|
||||||
|
```
|
||||||
|
For production environments:
|
||||||
|
```
|
||||||
|
grunt prod
|
||||||
```
|
```
|
||||||
|
|
||||||
Open Copay:
|
Open Copay:
|
||||||
|
|
|
@ -1194,4 +1194,5 @@ a.text-warning:hover {color: #FD7262;}
|
||||||
padding: 50px;
|
padding: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------------*/
|
/*-----------------------------------------------------------------*/
|
59
index.html
59
index.html
|
@ -5,11 +5,8 @@
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||||
<title>Copay - Multisignature Wallet</title>
|
<title>Copay - Multisignature Wallet</title>
|
||||||
<link rel="stylesheet" href="css/foundation.min.css">
|
<link rel="stylesheet" href="css/vendors.min.css">
|
||||||
<link rel="stylesheet" href="css/foundation-icons.css">
|
<link rel="stylesheet" href="css/copay.min.css">
|
||||||
<link rel="stylesheet" href="lib/angular/angular-csp.css">
|
|
||||||
<link rel="stylesheet" href="css/main.css">
|
|
||||||
<link rel="stylesheet" href="css/mobile.css">
|
|
||||||
<link rel="shortcut icon" href="img/favicon.ico">
|
<link rel="shortcut icon" href="img/favicon.ico">
|
||||||
</head>
|
</head>
|
||||||
<body ng-cloak class="ng-cloak">
|
<body ng-cloak class="ng-cloak">
|
||||||
|
@ -60,59 +57,13 @@
|
||||||
<!-- shell must be loaded before moment due to the way moment loads in a commonjs env -->
|
<!-- shell must be loaded before moment due to the way moment loads in a commonjs env -->
|
||||||
<script src="js/shell.js"></script>
|
<script src="js/shell.js"></script>
|
||||||
|
|
||||||
<script src="lib/angular/angular.min.js"></script>
|
<script src="lib/vendors.js"></script>
|
||||||
<script src="lib/angular-route/angular-route.min.js"></script>
|
|
||||||
<script src="lib/moment/min/moment.min.js"></script>
|
|
||||||
<script src="lib/angular-moment/angular-moment.js"></script>
|
|
||||||
<script src="lib/qrcode-generator/js/qrcode.js"></script>
|
|
||||||
<script src="lib/angular-qrcode/qrcode.js"></script>
|
|
||||||
<script src="lib/ng-idle/angular-idle.min.js"></script>
|
|
||||||
<script src="lib/angular-foundation/mm-foundation.min.js"></script>
|
|
||||||
<script src="lib/angular-foundation/mm-foundation-tpls.min.js"></script>
|
|
||||||
<script src="lib/peer.js"></script> <!-- TODO Change this on PeerJS version 0.3.9 -->
|
|
||||||
<script src="lib/bitcore.js"></script>
|
|
||||||
<script src="lib/crypto-js/rollups/sha256.js"></script>
|
|
||||||
<script src="lib/crypto-js/rollups/pbkdf2.js"></script>
|
|
||||||
<script src="lib/crypto-js/rollups/aes.js"></script>
|
|
||||||
<script src="lib/file-saver/FileSaver.js"></script>
|
|
||||||
<script src="lib/socket.io-client/socket.io.js"></script>
|
|
||||||
<script src="lib/sjcl.js"></script>
|
|
||||||
<script src="lib/ios-imagefile-megapixel/megapix-image.js"></script>
|
|
||||||
<script src="lib/qrcode-decoder-js/lib/qrcode-decoder.min.js"></script>
|
|
||||||
<script src="lib/zeroclipboard/dist/ZeroClipboard.min.js"></script>
|
<script src="lib/zeroclipboard/dist/ZeroClipboard.min.js"></script>
|
||||||
|
<script src="lib/angularjs-all.js"></script>
|
||||||
|
|
||||||
<script src="config.js"></script>
|
<script src="config.js"></script>
|
||||||
<script src="js/copayBundle.js"></script>
|
<script src="js/copayBundle.js"></script>
|
||||||
<script src="js/app.js"></script>
|
<script src="js/copayMain.js"></script>
|
||||||
<script src="js/routes.js"></script>
|
|
||||||
<script src="js/directives.js"></script>
|
|
||||||
<script src="js/filters.js"></script>
|
|
||||||
<script src="js/services/socket.js"></script>
|
|
||||||
<script src="js/services/video.js"></script>
|
|
||||||
<script src="js/services/walletFactory.js"></script>
|
|
||||||
<script src="js/services/controllerUtils.js"></script>
|
|
||||||
<script src="js/services/passphrase.js"></script>
|
|
||||||
<script src="js/services/notifications.js"></script>
|
|
||||||
<script src="js/services/backupService.js"></script>
|
|
||||||
<script src="js/services/isMobile.js"></script>
|
|
||||||
<script src="js/services/uriHandler.js"></script>
|
|
||||||
|
|
||||||
<script src="js/controllers/home.js"></script>
|
|
||||||
<script src="js/controllers/open.js"></script>
|
|
||||||
<script src="js/controllers/join.js"></script>
|
|
||||||
<script src="js/controllers/copayers.js"></script>
|
|
||||||
<script src="js/controllers/video.js"></script>
|
|
||||||
<script src="js/controllers/sidebar.js"></script>
|
|
||||||
<script src="js/controllers/addresses.js"></script>
|
|
||||||
<script src="js/controllers/transactions.js"></script>
|
|
||||||
<script src="js/controllers/send.js"></script>
|
|
||||||
<script src="js/controllers/backup.js"></script>
|
|
||||||
<script src="js/controllers/setup.js"></script>
|
|
||||||
<script src="js/controllers/import.js"></script>
|
|
||||||
<script src="js/controllers/settings.js"></script>
|
|
||||||
<script src="js/controllers/uriPayment.js"></script>
|
|
||||||
<script src="js/controllers/version.js"></script>
|
|
||||||
<script src="js/controllers/warning.js"></script>
|
|
||||||
|
|
||||||
<!-- PLACEHOLDER: CORDOVA SRIPT -->
|
<!-- PLACEHOLDER: CORDOVA SRIPT -->
|
||||||
<script src="js/mobile.js"></script>
|
<script src="js/mobile.js"></script>
|
||||||
|
|
|
@ -48,13 +48,15 @@
|
||||||
"express": "4.0.0",
|
"express": "4.0.0",
|
||||||
"github-releases": "0.2.0",
|
"github-releases": "0.2.0",
|
||||||
"grunt-browserify": "2.0.8",
|
"grunt-browserify": "2.0.8",
|
||||||
|
"grunt-contrib-concat": "0.5.0",
|
||||||
|
"grunt-contrib-cssmin": "0.10.0",
|
||||||
|
"grunt-contrib-uglify": "^0.5.1",
|
||||||
"grunt-contrib-watch": "0.5.3",
|
"grunt-contrib-watch": "0.5.3",
|
||||||
"grunt-markdown": "0.5.0",
|
"grunt-markdown": "0.5.0",
|
||||||
"browser-pack": "2.0.1",
|
"browser-pack": "2.0.1",
|
||||||
"bitcore": "0.1.35",
|
"bitcore": "0.1.35",
|
||||||
"node-cryptojs-aes": "0.4.0",
|
"node-cryptojs-aes": "0.4.0",
|
||||||
"blanket": "1.1.6",
|
"blanket": "1.1.6",
|
||||||
"express": "4.0.0",
|
|
||||||
"grunt-mocha-test": "0.8.2",
|
"grunt-mocha-test": "0.8.2",
|
||||||
"grunt-shell": "0.6.4",
|
"grunt-shell": "0.6.4",
|
||||||
"istanbul": "0.2.10",
|
"istanbul": "0.2.10",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div ng-if='$root.wallet && $root.wallet.isReady()' ng-init="goToWallet()"></div>
|
<div ng-if='$root.wallet && $root.wallet.isReady()' ng-init="goToWallet()"></div>
|
||||||
<div class="row" ng-if='$root.wallet && !$root.wallet.isReady() && !loading'>
|
<div class="row" ng-if='$root.wallet && !$root.wallet.isReady() && !loading'>
|
||||||
<div class="large-4 columns logo-setup">
|
<div class="large-4 columns logo-setup">
|
||||||
<img src="img/logo-negative-beta.svg" alt="Copay">
|
<img src="img/logo-negative-beta.svg" alt="Copay" width="146" height="59">
|
||||||
<div ng-include="'views/includes/version.html'"></div>
|
<div ng-include="'views/includes/version.html'"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="large-8 columns line-dashed-setup-v">
|
<div class="large-8 columns line-dashed-setup-v">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<div class="home" ng-controller="HomeController">
|
<div class="home" ng-controller="HomeController">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="large-4 columns logo-setup">
|
<div class="large-4 columns logo-setup">
|
||||||
<img src="img/logo-negative-beta.svg" alt="Copay">
|
<img src="img/logo-negative-beta.svg" alt="Copay" width="146" height="59">
|
||||||
<div ng-include="'views/includes/version.html'"></div>
|
<div ng-include="'views/includes/version.html'"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="large-8 columns line-dashed-setup-v">
|
<div class="large-8 columns line-dashed-setup-v">
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row" ng-init="choosefile=0; pastetext=0" ng-show="!loading">
|
<div class="row" ng-init="choosefile=0; pastetext=0" ng-show="!loading">
|
||||||
<div class="large-4 columns logo-setup">
|
<div class="large-4 columns logo-setup">
|
||||||
<img src="img/logo-negative-beta.svg" alt="Copay">
|
<img src="img/logo-negative-beta.svg" alt="Copay" width="146" height="59">
|
||||||
<div ng-include="'views/includes/version.html'"></div>
|
<div ng-include="'views/includes/version.html'"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="large-8 columns line-dashed-setup-v">
|
<div class="large-8 columns line-dashed-setup-v">
|
||||||
|
|
|
@ -23,7 +23,8 @@
|
||||||
ng-if="!hasVideo(copayer)"
|
ng-if="!hasVideo(copayer)"
|
||||||
ng-class="isConnected(copayer) ? 'online' : 'offline'"
|
ng-class="isConnected(copayer) ? 'online' : 'offline'"
|
||||||
src="./img/satoshi.gif"
|
src="./img/satoshi.gif"
|
||||||
alt="{{copayer}}">
|
alt="{{copayer}}"
|
||||||
|
width="70">
|
||||||
|
|
||||||
<span ng-show="copayer.index == 0">Me</span>
|
<span ng-show="copayer.index == 0">Me</span>
|
||||||
<span ng-show="copayer.index > 0">{{copayer.nick}}</span>
|
<span ng-show="copayer.index > 0">{{copayer.nick}}</span>
|
||||||
|
@ -43,7 +44,8 @@
|
||||||
ng-if="!hasVideo(copayer)"
|
ng-if="!hasVideo(copayer)"
|
||||||
ng-class="isConnected(copayer) ? 'online' : 'offline'"
|
ng-class="isConnected(copayer) ? 'online' : 'offline'"
|
||||||
src="./img/satoshi.gif"
|
src="./img/satoshi.gif"
|
||||||
alt="{{copayer}}">
|
alt="{{copayer}}"
|
||||||
|
width="70">
|
||||||
|
|
||||||
<!-- <span ng-show="copayer.index == 0">Me</span>
|
<!-- <span ng-show="copayer.index == 0">Me</span>
|
||||||
<span ng-show="copayer.index > 0">{{copayer.nick}}</span>
|
<span ng-show="copayer.index > 0">{{copayer.nick}}</span>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row" ng-show="!loading">
|
<div class="row" ng-show="!loading">
|
||||||
<div class="large-4 columns logo-setup">
|
<div class="large-4 columns logo-setup">
|
||||||
<img src="img/logo-negative-beta.svg" alt="Copay">
|
<img src="img/logo-negative-beta.svg" alt="Copay" width="146" height="59">
|
||||||
<div ng-include="'views/includes/version.html'"></div>
|
<div ng-include="'views/includes/version.html'"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="large-8 columns line-dashed-setup-v">
|
<div class="large-8 columns line-dashed-setup-v">
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row" ng-show="!loading">
|
<div class="row" ng-show="!loading">
|
||||||
<div class="large-4 columns logo-setup">
|
<div class="large-4 columns logo-setup">
|
||||||
<img src="img/logo-negative-beta.svg" alt="Copay">
|
<img src="img/logo-negative-beta.svg" alt="Copay" width="146" height="59">
|
||||||
<div ng-include="'views/includes/version.html'"></div>
|
<div ng-include="'views/includes/version.html'"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="large-8 columns line-dashed-setup-v">
|
<div class="large-8 columns line-dashed-setup-v">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<div class="settings" ng-controller="SettingsController">
|
<div class="settings" ng-controller="SettingsController">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="large-4 columns logo-setup">
|
<div class="large-4 columns logo-setup">
|
||||||
<img src="img/logo-negative-beta.svg" alt="Copay">
|
<img src="img/logo-negative-beta.svg" alt="Copay" width="146" height="59">
|
||||||
<div ng-include="'views/includes/version.html'"></div>
|
<div ng-include="'views/includes/version.html'"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="large-8 columns line-dashed-setup-v">
|
<div class="large-8 columns line-dashed-setup-v">
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<form name="setupForm" ng-submit="create(setupForm)" novalidate>
|
<form name="setupForm" ng-submit="create(setupForm)" novalidate>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="large-4 columns logo-setup text-center">
|
<div class="large-4 columns logo-setup text-center">
|
||||||
<img src="img/logo-negative-beta.svg" alt="Copay">
|
<img src="img/logo-negative-beta.svg" alt="Copay" width="146" height="59">
|
||||||
<div ng-include="'views/includes/version.html'"></div>
|
<div ng-include="'views/includes/version.html'"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="large-8 columns line-dashed-setup-v">
|
<div class="large-8 columns line-dashed-setup-v">
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<div class="wide-page">
|
<div class="wide-page">
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<img src="img/logo-negative-beta.svg" alt="Copay">
|
<img src="img/logo-negative-beta.svg" alt="Copay" width="146" height="59">
|
||||||
<div class="text-white" ng-include="'views/includes/version.html'"></div>
|
<div class="text-white" ng-include="'views/includes/version.html'"></div>
|
||||||
</div>
|
</div>
|
||||||
<h1 class="text-center text-white">Browser unsupported</h1>
|
<h1 class="text-center text-white">Browser unsupported</h1>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<div class="wide-page" ng-controller="WarningController"
|
<div class="wide-page" ng-controller="WarningController"
|
||||||
ng-init="checkLock()">
|
ng-init="checkLock()">
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<img src="img/logo-negative-beta.svg" alt="Copay">
|
<img src="img/logo-negative-beta.svg" alt="Copay" width="146" height="59">
|
||||||
<div class="text-white" ng-include="'views/includes/version.html'"></div>
|
<div class="text-white" ng-include="'views/includes/version.html'"></div>
|
||||||
</div>
|
</div>
|
||||||
<h1 class="text-center text-warning">Warning!</h1>
|
<h1 class="text-center text-warning">Warning!</h1>
|
||||||
|
|
Loading…
Reference in New Issue