github.com/kotovmak/go-admin@v1.1.1/adm/project_web.tmpl (about) 1 {{define "web_installation"}} 2 <html> 3 <head data-suburl=""> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 7 <meta name="author" content="GoAdmin"> 8 <meta name="description" 9 content="GoAdmin is a golang framework which helps gopher to build a data visualization and admin panel in ten minutes"> 10 <meta name="keywords" content="go, git, framework, admin, GoAdmin"> 11 12 <meta name="referrer" content="no-referrer"> 13 <meta name="_csrf" content="{{.CSRFToken}}"> 14 <meta name="_suburl" content=""> 15 16 <meta property="og:url" content="http://localhost:{{.Port}}/"> 17 <meta property="og:type" content="website"> 18 <meta property="og:title" content="GoAdmin"> 19 <meta property="og:description" 20 content="GoAdmin is a golang framework which helps gopher to build a data visualization and admin panel in ten minutes."> 21 <meta property="og:site_name" content="GoAdmin"> 22 23 <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> 24 <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css"> 25 <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/octicons/8.5.0/build.css"> 26 <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/semantic-ui/2.4.1/semantic.min.css"> 27 <noscript> 28 <style> 29 .dropdown:hover > .menu { 30 display: block; 31 } 32 33 .ui.secondary.menu .dropdown.item > .menu { 34 margin-top: 0; 35 } 36 </style> 37 </noscript> 38 39 <style> 40 .install form .field { 41 text-align: left; 42 } 43 44 h1, h2, h3, h4, h5, .ui.header, .ui.menu, .ui.input input, .ui.button:not(.label) { 45 font-family: "PingFang SC", 'Hiragino Sans GB', "Helvetica Neue", "Microsoft YaHei", Arial, Helvetica, sans-serif !important; 46 } 47 48 .install form label { 49 text-align: right; 50 width: 320px !important; 51 } 52 53 .install form .field .help { 54 margin-left: 335px !important; 55 } 56 57 .install form .field { 58 text-align: left; 59 } 60 61 .form .help { 62 color: #999999; 63 padding-top: 0.6em; 64 padding-bottom: 0.6em; 65 display: inline-block; 66 word-break: break-word; 67 } 68 69 .ui.attached.header { 70 background: #f0f0f0; 71 } 72 73 .install { 74 padding-top: 45px; 75 padding-bottom: 80px; 76 } 77 78 body:not(.full-width) { 79 font-family: "PingFang SC", "Helvetica Neue", "Microsoft YaHei", Arial, Helvetica, sans-serif !important; 80 background-color: #fff; 81 overflow-y: scroll; 82 overflow-x: auto; 83 min-width: 1020px; 84 } 85 86 .full.height { 87 padding: 0; 88 margin: 0 0 -80px 0; 89 min-height: 100%; 90 } 91 92 .hide { 93 display: none; 94 } 95 96 .install form input { 97 width: 300px !important; 98 } 99 100 .install .ui.checkbox label { 101 width: auto !important; 102 } 103 104 .install form .field.optional .title { 105 margin-left: 320px !important; 106 } 107 108 .install .inline.checkbox { 109 margin-top: -1em; 110 margin-bottom: 2em; 111 } 112 113 .install .ui.checkbox { 114 margin-left: 335px !important; 115 } 116 117 .ui.container:not(.fluid) { 118 width: 980px !important; 119 } 120 121 .ui.left { 122 float: left; 123 } 124 125 .ui.right { 126 float: right; 127 } 128 129 footer .container .links > *:first-child { 130 border-left: none; 131 } 132 133 footer .container .links > * { 134 border-left: 1px solid #d6d6d6; 135 padding-left: 8px; 136 margin-left: 5px; 137 } 138 139 footer .container { 140 padding-top: 10px; 141 } 142 143 footer { 144 margin-top: 54px !important; 145 height: 40px; 146 background-color: white; 147 border-top: 1px solid #d6d6d6; 148 clear: both; 149 width: 100%; 150 color: #888888; 151 } 152 153 form .ui.dividing.header { 154 background-color: #fbf8f8; 155 color: #464545; 156 padding-bottom: 6px; 157 padding-top: 6px; 158 margin-bottom: 25px; 159 } 160 </style> 161 162 <script src="https://cdn.bootcdn.net/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script> 163 164 <title>{{local "web.installation page"}} - GoAdmin</title> 165 166 <meta name="theme-color" content="#65d4e8"> 167 </head> 168 <body data-gr-c-s-loaded="true"> 169 <div class="full height"> 170 <div class="install"> 171 <div class="ui middle very relaxed page grid"> 172 <div class="sixteen wide center aligned centered column"> 173 <h3 class="ui top attached header"> 174 {{local "web.goadmin web installation program"}} 175 </h3> 176 <div class="ui attached segment install-form"> 177 <form class="ui form" onsubmit="return false" action="##" method="post"> 178 179 <h4 class="ui dividing header">{{local "web.database settings"}}</h4> 180 <div class="inline required field "> 181 <label>{{local "web.database type"}}</label> 182 <div class="ui selection database type dropdown" tabindex="0"> 183 <input type="hidden" id="db_type" name="db_type" value="MySQL"> 184 <div class="text">MySQL</div> 185 <i class="dropdown icon"></i> 186 <div class="menu" tabindex="-1"> 187 <div class="item active selected" data-value="mysql">MySQL</div> 188 <div class="item" data-value="postgresql">PostgreSQL</div> 189 <div class="item" data-value="mssql">MSSQL</div> 190 <div class="item" data-value="sqlite">SQLite3</div> 191 </div> 192 </div> 193 </div> 194 195 <div id="sql_settings" class=""> 196 <div class="inline required field "> 197 <label for="db_host">{{local "web.database host"}}</label> 198 <input id="db_host" name="db_host" value="127.0.0.1"> 199 </div> 200 <div class="inline required field "> 201 <label for="db_port">{{local "web.database port"}}</label> 202 <input id="db_port" name="db_port" value="3306"> 203 </div> 204 <div class="inline required field "> 205 <label for="db_user">{{local "web.database user"}}</label> 206 <input id="db_user" name="db_user" value="root"> 207 </div> 208 <div class="inline required field "> 209 <label for="db_passwd">{{local "web.database password"}}</label> 210 <input id="db_passwd" name="db_passwd" type="password" value=""> 211 </div> 212 <div class="inline required field "> 213 <label for="db_name">{{local "web.database name"}}</label> 214 <input id="db_name" name="db_name" value="goadmin"> 215 <span class="help">{{local "web.where the framework sql data install to"}}</span> 216 </div> 217 </div> 218 219 <div id="pgsql_settings" class="hide"> 220 <div class="inline required field "> 221 <label for="db_schema">{{local "web.database schema"}}</label> 222 <input id="db_schema" name="db_schema" value="public"> 223 </div> 224 </div> 225 226 <div id="sqlite_settings" class="hide"> 227 <div class="inline required field "> 228 <label for="db_path">{{local "web.database file"}}</label> 229 <input id="db_path" name="db_path" value="./admin.db"> 230 <span class="help">{{local "web.the file path of sqlite3 database"}}<br>{{local "web.please use absolute path when you start as service"}}</span> 231 </div> 232 </div> 233 234 <h4 class="ui dividing header">{{local "web.installation settings"}}</h4> 235 236 <div class="inline required field "> 237 <label>{{local "web.web framework"}}</label> 238 <div class="ui selection database type dropdown" tabindex="0"> 239 <input type="hidden" id="web_framework" name="web_framework" value="gin"> 240 <div class="text">Gin</div> 241 <i class="dropdown icon"></i> 242 <div class="menu" tabindex="-1"> 243 <div class="item active selected" data-value="gin">Gin</div> 244 <div class="item" data-value="beego">Beego</div> 245 <div class="item" data-value="buffalo">Buffalo</div> 246 <div class="item" data-value="fasthttp">Fasthttp</div> 247 <div class="item" data-value="echo">Echo</div> 248 <div class="item" data-value="chi">Chi</div> 249 <div class="item" data-value="gf">Gf</div> 250 <div class="item" data-value="gorilla">Gorilla</div> 251 <div class="item" data-value="iris">Iris</div> 252 </div> 253 </div> 254 </div> 255 <div class="inline required field "> 256 <label for="module_name">{{local "web.module name"}}</label> 257 <input id="module_name" name="module_name" value="{{.DefModuleName}}" required=""> 258 <span class="help">{{local "web.module name is the path of go module"}}</span> 259 </div> 260 <div class="inline required field "> 261 <label>{{local "web.theme"}}</label> 262 <div class="ui selection database type dropdown" tabindex="0"> 263 <input type="hidden" id="theme" name="theme" value="sword"> 264 <div class="text">Sword</div> 265 <i class="dropdown icon"></i> 266 <div class="menu" tabindex="-1"> 267 <div class="item active selected" data-value="sword">Sword</div> 268 <div class="item" data-value="adminlte">Adminlte</div> 269 </div> 270 </div> 271 </div> 272 <div class="inline required field "> 273 <label>{{local "web.language"}}</label> 274 <div class="ui selection database type dropdown" tabindex="0"> 275 <input type="hidden" id="language" name="language" value="cn"> 276 <div class="text">{{local "web.simplified chinese"}}</div> 277 <i class="dropdown icon"></i> 278 <div class="menu" tabindex="-1"> 279 <div class="item active selected" 280 data-value="cn">{{local "web.simplified chinese"}}</div> 281 <div class="item" data-value="en">{{local "web.english"}}</div> 282 <div class="item" data-value="jp">{{local "web.japanese"}}</div> 283 <div class="item" data-value="tc">{{local "web.traditional chinese"}}</div> 284 </div> 285 </div> 286 </div> 287 <div class="inline required field "> 288 <label for="http_port">{{local "web.http port"}}</label> 289 <input id="http_port" name="http_port" value="80" 290 required=""> 291 <span class="help">{{local "web.port number which application will listen on"}}</span> 292 </div> 293 <div class="inline required field "> 294 <label for="prefix">{{local "web.url prefix"}}</label> 295 <input id="prefix" name="prefix" value="admin" required=""> 296 <span class="help">{{local "web.url prefix of the running application"}}</span> 297 </div> 298 <div class="inline required field "> 299 <label>{{local "web.use orm"}}</label> 300 <div class="ui selection database type dropdown" tabindex="0"> 301 <input type="hidden" id="use_gorm" name="use_gorm" value=""> 302 <div class="text">{{local "web.no use"}}</div> 303 <i class="dropdown icon"></i> 304 <div class="menu" tabindex="-1"> 305 <div class="item active selected" data-value="">{{local "web.no use"}}</div> 306 <div class="item" data-value="gorm">GORM</div> 307 </div> 308 </div> 309 </div> 310 311 <h4 class="ui dividing header">{{local "web.application settings"}}</h4> 312 313 <div class="inline required field"> 314 <label for="web_title">{{local "web.website title"}}</label> 315 <input id="web_title" name="web_title" value="GoAdmin" 316 placeholder="{{local "input"}} {{local "web.website title"}}" required=""> 317 </div> 318 319 <div class="inline required field"> 320 <label for="login_page_logo">{{local "web.login page logo"}}</label> 321 <input id="login_page_logo" name="login_page_logo" value="GoAdmin" 322 placeholder="{{local "input"}} {{local "web.login page logo"}}" required=""> 323 </div> 324 325 <div class="inline required field"> 326 <label for="sidebar_logo">{{local "web.sidebar logo"}}</label> 327 <input id="sidebar_logo" name="sidebar_logo" value="GoAdmin" 328 placeholder="{{local "input"}} {{local "web.sidebar logo"}}" required=""> 329 </div> 330 331 <div class="inline required field"> 332 <label for="sidebar_min_logo">{{local "web.sidebar mini logo"}}</label> 333 <input id="sidebar_min_logo" name="sidebar_min_logo" value="GA" 334 placeholder="{{local "input"}} {{local "web.sidebar mini logo"}}" required=""> 335 </div> 336 337 <div class="ui divider"></div> 338 <div class="inline field"> 339 <label></label> 340 <button class="ui primary button" 341 style="background-color: #65d4e8;" 342 onclick="install()">{{local "web.install now"}}</button> 343 </div> 344 </form> 345 </div> 346 <div class="ui attached segment install-success-readme-cn" 347 style="display:none;text-align: left;padding-left: 50px;padding-top: 30px;"> 348 <h3> 349 一. 安装步骤 350 </h3> 351 <p> 352 1. 下载并导入对应的SQL文件: 353 </p> 354 <p> 355 <ul> 356 <li> 357 <a href="https://gitee.com/go-admin/go-admin/raw/master/data/admin.sql" target="_blank">Mysql</a> 358 </li> 359 <li> 360 <a href="https://gitee.com/go-admin/go-admin/raw/master/data/admin.mssql" 361 target="_blank">Mssql</a> 362 </li> 363 <li> 364 <a href="https://gitee.com/go-admin/go-admin/raw/master/data/admin.pgsql" 365 target="_blank">Postgresql</a> 366 </li> 367 <li> 368 <a href="https://gitee.com/go-admin/go-admin/raw/master/data/admin.db" target="_blank">SQLite3</a> 369 </li> 370 </ul> 371 <p> 372 2. 依次执行以下命令: 373 </p> 374 {{if eq .GOOS "windows"}} 375 <p> 376 <pre class="prettyprint lang-bsh">> GO111MODULE=on go mod init <span 377 class="module_name_pre">xxx</span> 378 > GORPOXY=https://goproxy.io GO111MODULE=on go mod tidy 379 > GO111MODULE=on go run .</pre> 380 </p> 381 {{else}} 382 <p> 383 <pre class="prettyprint lang-bsh">> make init module=<span 384 class="module_name_pre">xxx</span> 385 > GORPOXY=https://goproxy.io make install 386 > make serve</pre> 387 </p> 388 {{end}} 389 <p> 390 3. 登录访问 391 </p> 392 <p> 393 <a class="login_url_cn" href="http://127.0.0.1:9033/admin/login" target="_blank">http://127.0.0.1:9033/admin/login</a> 394 </p> 395 <p> 396 账号:admin 密码:admin 397 </p> 398 <p> 399 4. 查看文件中的readme了解更多 400 </p> 401 <h3> 402 二. 关于GoAdmin 403 </h3> 404 <h3> 405 <ul> 406 <li> 407 <span style="font-size:15px;font-weight:normal;">Github: <a 408 href="https://github.com/GoAdminGroup/go-admin" target="_blank">https://github.com/GoAdminGroup/go-admin</a></span> 409 </li> 410 <li> 411 <span style="font-size:15px;font-weight:normal;">官网:<a 412 href="https://www.go-admin.cn/" 413 target="_blank">https://www.go-admin.cn/</a></span> 414 </li> 415 <li> 416 <span style="font-size:15px;font-weight:normal;">论坛:<a 417 href="http://discuss.go-admin.com/" target="_blank">http://discuss.go-admin.com/</a></span> 418 </li> 419 <li> 420 <span style="font-size:15px;font-weight:normal;">文档:<a 421 href="http://doc.go-admin.cn/zh/" target="_blank">http://doc.go-admin.cn/zh/</a></span> 422 </li> 423 </ul> 424 </h3> 425 <p> 426 <br/> 427 </p> 428 </div> 429 <div class="ui attached segment install-success-readme-en" 430 style="display:none;text-align: left;padding-left: 50px;padding-top: 30px;"> 431 <h3> 432 一 Installation steps 433 </h3> 434 <p> 435 1. Download and import the corresponding SQL file: 436 </p> 437 <p> 438 <ul> 439 <li> 440 <a href="https://raw.githubusercontent.com/GoAdminGroup/go-admin/master/data/admin.sql" 441 target="_blank">Mysql</a> 442 </li> 443 <li> 444 <a href="https://raw.githubusercontent.com/GoAdminGroup/go-admin/master/data/admin.mssql" 445 target="_blank">Mssql</a> 446 </li> 447 <li> 448 <a href="https://raw.githubusercontent.com/GoAdminGroup/go-admin/master/data/admin.pgsql" 449 target="_blank">Postgresql</a> 450 </li> 451 <li> 452 <a href="https://raw.githubusercontent.com/GoAdminGroup/go-admin/master/data/admin.db" 453 target="_blank">SQLite3</a> 454 </li> 455 </ul> 456 <p> 457 2. Execute the following command in turn 458 </p> 459 {{if eq .GOOS "windows"}} 460 <p> 461 <pre class="prettyprint lang-bsh">> GO111MODULE=on go mod init <span 462 class="module_name_pre">xxx</span> 463 > GORPOXY=https://goproxy.io GO111MODULE=on go mod tidy 464 > GO111MODULE=on go run .</pre> 465 </p> 466 {{else}} 467 <p> 468 <pre class="prettyprint lang-bsh">> make init module=<span 469 class="module_name_pre">xxx</span> 470 > GORPOXY=https://goproxy.io make install 471 > make serve</pre> 472 </p> 473 {{end}} 474 <p> 475 3. Login to visit 476 </p> 477 <p> 478 <a class="login_url_en" href="http://127.0.0.1:9033/admin/login" target="_blank">http://127.0.0.1:9033/admin/login</a> 479 </p> 480 <p> 481 Account: admin Password: admin 482 </p> 483 <p> 484 4. Learn more in the readme 485 </p> 486 <h3> 487 二. About GoAdmin 488 </h3> 489 <h3> 490 <ul> 491 <li> 492 <span style="font-size:15px;font-weight:normal;">Github: <a 493 href="https://github.com/GoAdminGroup/go-admin" target="_blank">https://github.com/GoAdminGroup/go-admin</a></span> 494 </li> 495 <li> 496 <span style="font-size:15px;font-weight:normal;">Official Website: <a 497 href="https://www.go-admin.com/" 498 target="_blank">https://www.go-admin.com/</a></span> 499 </li> 500 <li> 501 <span style="font-size:15px;font-weight:normal;">Forum: <a 502 href="http://discuss.go-admin.com/" target="_blank">http://discuss.go-admin.com/</a></span> 503 </li> 504 <li> 505 <span style="font-size:15px;font-weight:normal;">文档: <a 506 href="http://doc.go-admin.cn/zh/" target="_blank">https://book.go-admin.cn/</a></span> 507 </li> 508 </ul> 509 </h3> 510 <p> 511 <br/> 512 </p> 513 </div> 514 </div> 515 </div> 516 </div> 517 </div> 518 <div class="ui mini modal"> 519 <i class="close icon"></i> 520 <div class="header"> 521 {{local "web.result"}} 522 </div> 523 <div class="content"> 524 525 </div> 526 <div class="actions"> 527 <div class="ui approve button">{{local "web.ok"}}</div> 528 </div> 529 </div> 530 <footer> 531 <div class="ui container"> 532 <div class="ui left"> 533 © 2020 GoAdmin {{local "current version"}}: {{.Version}} 534 </div> 535 <div class="ui right links"> 536 <div class="ui language bottom floating slide up dropdown link item" tabindex="0"> 537 <i class="world icon"></i> 538 <div class="text">{{local .CurrentLang}}</div> 539 <div class="menu" tabindex="-1"> 540 <a class="item {{if eq .CurrentLang "web.simplified chinese"}}active selected{{end}}" 541 href="/?lang=cn">{{local "web.simplified chinese"}}</a> 542 <a class="item {{if eq .CurrentLang "web.english"}}active selected{{end}}" 543 href="/?lang=en">English</a> 544 </div> 545 </div> 546 <a href="http://localhost:5678/assets/librejs/librejs.html" style="display:none" data-jslicense="1">Javascript 547 Licenses</a> 548 <a target="_blank" rel="noopener noreferrer" 549 href="https://www.go-admin.cn" style="color: #65d4e8;">{{local "web.official website"}}</a> 550 <span class="version">{{.GoVer}}</span> 551 </div> 552 </div> 553 </footer> 554 555 <script> 556 557 $("#db_type").change(function () { 558 let sqliteDefault = './admin.db'; 559 560 let dbType = $(this).val(); 561 if (dbType === "sqlite") { 562 $('#sql_settings').hide(); 563 $('#pgsql_settings').hide(); 564 $('#sqlite_settings').show(); 565 566 if (dbType === "sqlite") { 567 $('#db_path').val(sqliteDefault); 568 } 569 return; 570 } 571 572 let dbDefaults = { 573 "mysql": { 574 "addr": "127.0.0.1", 575 "port": "3306", 576 "user": "root" 577 }, 578 "postgresql": { 579 "addr": "127.0.0.1", 580 "port": "5432", 581 "user": "postgres" 582 }, 583 "mssql": { 584 "addr": "127.0.0.1", 585 "port": "1433", 586 "user": "sa" 587 } 588 }; 589 590 $('#sqlite_settings').hide(); 591 $('#sql_settings').show(); 592 $('#pgsql_settings').toggle(dbType === "postgresql"); 593 594 $.each(dbDefaults, function (key, value) { 595 if ($('#db_type').val() === key) { 596 $('#db_host').val(value["addr"]); 597 $('#db_port').val(value["port"]); 598 $('#db_user').val(value["user"]); 599 return false; 600 } 601 }); 602 }); 603 604 605 $('#offline-mode input').change(function () { 606 if ($(this).is(':checked')) { 607 $('#disable-gravatar').checkbox('check'); 608 $('#federated-avatar-lookup').checkbox('uncheck'); 609 } 610 }); 611 $('#disable-gravatar input').change(function () { 612 if ($(this).is(':checked')) { 613 $('#federated-avatar-lookup').checkbox('uncheck'); 614 } else { 615 $('#offline-mode').checkbox('uncheck'); 616 } 617 }); 618 $('#federated-avatar-lookup input').change(function () { 619 if ($(this).is(':checked')) { 620 $('#disable-gravatar').checkbox('uncheck'); 621 $('#offline-mode').checkbox('uncheck'); 622 } 623 }); 624 $('#disable-registration input').change(function () { 625 if ($(this).is(':checked')) { 626 $('#enable-captcha').checkbox('uncheck'); 627 } 628 }); 629 $('#enable-captcha input').change(function () { 630 if ($(this).is(':checked')) { 631 $('#disable-registration').checkbox('uncheck'); 632 } 633 }); 634 635 function install() { 636 let port = $('#http_port').val(); 637 let prefix = $('#prefix').val(); 638 let login_url = "http://127.0.0.1:" + port + "/" + prefix + "/login"; 639 640 $('.login_url_cn').attr("href", login_url); 641 $('.login_url_cn').html(login_url); 642 $('.login_url_en').attr("href", login_url); 643 $('.login_url_en').html(login_url); 644 645 let module_name = $('#module_name').val(); 646 $('.module_name_pre').each(function (index, ele) { 647 $(ele).html(module_name); 648 }); 649 650 $.ajax({ 651 type: "POST", 652 dataType: "json", 653 url: '/install?lang={{if eq .CurrentLang "web.simplified chinese"}}cn{{else}}en{{end}}', 654 data: $('form.form').serialize(), 655 success: function (data) { 656 console.log(data); 657 $('.ui.modal .content').html(data.msg); 658 $('.ui.modal').modal('show'); 659 if (data.code === 0) { 660 $('.install-form').hide(); 661 {{if eq .CurrentLang "web.simplified chinese"}} 662 $('.install-success-readme-cn').show(); 663 {{else}} 664 $('.install-success-readme-en').show(); 665 {{end}} 666 } 667 }, 668 error: function () { 669 alert("error"); 670 } 671 }); 672 } 673 674 $('.ui.dropdown').dropdown({ 675 forceSelection: false 676 }); 677 $('.ui.accordion').accordion(); 678 $('.ui.checkbox').checkbox(); 679 $('.poping.up').popup(); 680 681 </script> 682 </body> 683 </html> 684 {{end}}