Browse Source

make_vide eng version

huaisianhuang 3 years ago
parent
commit
64d23fb6a8

+ 119 - 118
html/index_eng.html

@@ -17,161 +17,165 @@
   <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11.0.18/dist/sweetalert2.min.css">
   <link rel="stylesheet" href="static/scss/style.css">
   <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
-  <style>
-    body {
-      font-family: "Lato", sans-serif;
-    }
-    .sidenav {
-      height: 100%;
-      width: 250px;
-      position: fixed;
-      z-index: 1;
-      top: 0;
-      left: 0;
-      background: linear-gradient(to bottom, #1C7CE0, #150051);
-      overflow-x: hidden;
-      transition: 0.5s;
-      padding-top: 20px;
-    }
-    
-    .sidenav a {
-      padding: 8px 8px 8px 32px;
-      text-decoration: none;
-      font-size: 25px;
-      color: #818181;
-      display: block;
-      transition: 0.3s;
-    }
-    
-    .sidenav a:hover {
-      color: #f1f1f1;
-    }
-    
-    .sidenav .closebtn {
-      position: absolute;
-      top: 0;
-      right: 25px;
-      font-size: 36px;
-      margin-left: 50px;
-    }
-    
-    @media screen and (max-height: 450px) {
-      .sidenav {padding-top: 15px;}
-      .sidenav a {font-size: 18px;}
-    }
-    </style>
+  
 </head>
 <body>
+  <nav class="navbar navbar-expand-lg navbar-light">
+    <div class="container-fluid">
+        <a class="navbar-brand" href="index.html">AI Spokesgirl</a>
+        <button class="navbar-toggler" type="button" data-bs-toggle="collapse"
+            data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false"
+            aria-label="Toggle navigation">
+            <span class="navbar-toggler-icon"></span>
+        </button>
+        <div class="collapse navbar-collapse" id="navbarSupportedContent">
+            <ul class="navbar-nav ms-auto mb-2 mb-lg-0">
+                <li class="nav-item">
+                    <a class="nav-link active" aria-current="page" href="pricing.html">Early Bird Plan</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link active btn-login" aria-current="page" href="login.html">Login</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link btn-userProfile" aria-current="page" href="user_profile.html" set-lan="html:user_profile">會員資料</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link btn-logout" aria-current="page" set-lan="html:logout">登出</a>
+                </li>
+            </ul>
+        </div>
+    </div>
+</nav>
   <div class="container-fluid">
     <div id="mySidenav" class="sidenav">
       <!-- <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a> -->
-      <h2 class="go_title">AI ANCHOR GO</h2>
-      <ul class="nav-list">
-        <li class="nav-list-item pb-1 mb-3" data-bs-toggle="modal" data-bs-target="#howto"><i class="fas fa-book-open me-2"></i>使用說明</li>
-        <li class="nav-list-item pb-1" data-bs-toggle="modal" data-bs-target="#history" onclick="openNav()"><i class="fas fa-history me-2"></i>歷史紀錄</li>
+      <div class="text-start mt-3">
+          <a href="index.html"><img class="img-fluid w-50 ps-1" src="./static/img/contactus/CMM_LOGO.png" alt=""></a>
+          <h2 class="fw-bold ps-0" href="index.html"><a class="nav-link active ps-1" aria-current="page" href="index.html">AI Spokesgirl</a></h2>
+      </div>
+      <div class="userName"></div> 
+      <img class="user img-fluid rounded-circle" src="./static/img/contactus/man.jpg" alt="">
+      <p class="text-white my-3 text-center">Create something today!</p>
+      <div class="navbar-nav mb-2 mb-lg-0 px-3 pe-4">
+          <a class="nav-link btn-gocreate text-white col-6" aria-current="page" href="./make_video.html">Make <br>Videos</a>
+          <a class="nav-link btn-gocreate text-white col-6" aria-current="page" href="./make_video_slide.html">Make Videos <br>By Slides</a>
+      </div>
+      <hr>
+      <ul class="nav-list ps-0">
+          <li class="nav-list-item pb-1 mb-3 text-start ps-3" data-bs-toggle="modal" data-bs-target="#howto"><i
+                  class="fas fa-book-open me-2"></i>
+              <lan>Usage Introduction</lan>
+          </li>
+          <a style="text-decoration: none;color:white;" href="./user_profile.html">
+              <li class="nav-list-item pb-1 mb-3 text-start ps-3" data-bs-toggle="modal">
+                  <i class="fas fa-user me-2"></i>
+                 <lan>User Profile</lan>
+              </li>
+          </a>
+          <li class="nav-list-item pb-1 text-start ps-3" data-bs-toggle="modal" data-bs-target="#history" onclick="openNav()">
+              <i class="fas fa-history me-2"></i>
+              <lan>History</lan>
+          </li>
       </ul>
-      <p class="right-text text-white d-inline-block">Choozmo All Rights Reserved</p>
+      <div class="right-text">
+          <a target="_blank" href="https://www.linkedin.com/company/choozmo/mycompany/"><img
+                  style="width: 20px;" src="./static/img/contactus/linkedin-logo-copy.png" alt=""></a>
+          <a target="_blank" href="https://www.facebook.com/choozmo/"><img style="width: 20px;"
+                  src="./static/img/contactus/facebook_logos_PNG19753.png" alt=""></a>
+          <a target="_blank" href="https://www.instagram.com/choozmo_cmm/"><img style="width: 20px;"
+                  src="./static/img/contactus/IG.png" alt=""></a>
+          <a target="_blank" href="https://line.me/R/ti/p/@choozmo?from=page"><img style="width: 20px;"
+                  src="./static/img/contactus/LINE_logo.svg.png" alt=""></a>
+          <a target="_blank" href="https://www.youtube.com/channel/UC2Qda9PhJWuiMTCZ-j7K_hg"><img
+                  style="width: 20px;" src="./static/img/contactus/youtube.png" alt=""></a>
+          <a target="_blank" href="https://twitter.com/ai_cmm"><img style="width: 20px;"
+                  src="./static/img/contactus/twitter.png" alt=""></a>
+          <p class="Reserved text-white text-start mt-3 ps-2">Choozmo All Rights Reserved</p>
+      </div>
     </div>
     <!-- <span style="font-size:30px;cursor:pointer" onclick="openNav()">&#9776; 過去紀錄</span> -->
     <div class="content ms-auto">
       <form id="msform">
         <div class="linker__box">
-          <p>預覽影片</p>
+          <p>Preview video</p>
           <i class="fas fa-link"></i>
-          <a id='linker' style="display: none;" class="ms-2">影片連結</a>
+          <a id='linker' style="display: none;" class="ms-2">Video link</a>
         </div>
         <!-- fieldsets -->
         <fieldset>
-          <h3 class="fs-subtitle">標題<img class="ms-1" src="static/img/question.png" alt="" data-bs-toggle="tooltip" data-bs-placement="right" title="將作為影片的內嵌標題"></h3>
-          <input id=title type="text" name='t1' class='title_new' value="" placeholder="標題" /> <br/>
+          <h3 class="fs-subtitle">Video Title<img class="ms-1" src="static/img/question.png" alt="" data-bs-toggle="tooltip" data-bs-placement="right" title="The title of your video"></h3>
+          <input id=title type="text" name='t1' class='title_new' placeholder="Video Title" /> <br/>
         </fieldset>
         <fieldset>
-          <h3  class="fs-subtitle">選擇人物<img class="ms-1" src="static/img/question.png" alt="" data-bs-toggle="tooltip" data-bs-placement="right" title="將作為影片的講者"></h3>
+          <h3  class="fs-subtitle">Choose Character<img class="ms-1" src="static/img/question.png" alt="" data-bs-toggle="tooltip" data-bs-placement="right" title="The spokesgirl of your video"></h3>
           <select id="avatar" class='avatar'>
-            <option value="6">Angus</option>
+            <option value="Choose Character" selected="selected" disabled>Choose Character</option>
             <option value="7">Peggy</option>
             <option value="8">Stacy</option>
-            <option value="10">Nina黑</option>
-            <option value="9">Nina灰</option>
+            <option value="9">Nina</option>
+            <option value="11">Summer</option>
+            <option value="12">Jocelyn</option>
+            <option value="13">Angela</option>
           </select>
           <div class="d-flex">
-            <div class="card" style="width:25%;" data-avatar="Angus" data-img="angus">
-              <div class="imgfr"><img src="static/img/angus.webp" class="card-img-top" alt="..."></div>
-              <div class="card-body">
-                <h5 class="card-title">Angus</h5>
-              </div>
-            </div>
-            <div class="card" style="width:25%;" data-avatar="Peggy" data-img="peggy">
+            <div class="card col" data-avatar="Peggy" data-img="peggy">
               <div class="imgfr"><img src="static/img/peggy.webp" class="card-img-top" alt="..."></div>
               <div class="card-body">
                 <h5 class="card-title">Peggy</h5>
               </div>
             </div>
-            <div class="card" style="width:25%;" data-avatar="Stacy" data-img="stacy">
+            <div class="card col" data-avatar="Stacy" data-img="stacy">
               <div class="imgfr"><img src="static/img/stacy.webp" class="card-img-top" alt="..."></div>
               <div class="card-body">
                 <h5 class="card-title">Stacy</h5>
               </div>
             </div>
-            <div class="card" style="width:25%;" data-avatar="Nina黑" data-img="ninablack">
-              <div class="imgfr"><img src="static/img/ninablack.webp" class="card-img-top" alt="..."></div>
-              <div class="card-body">
-                <h5 class="card-title">Nina黑</h5>
-              </div>
-            </div>
-            <div class="card" style="width:25%;" data-avatar="Nina灰" data-img="ninawhite">
+            <div class="card col" data-avatar="Nina" data-img="ninawhite">
               <div class="imgfr"><img src="static/img/ninawhite.webp" class="card-img-top" alt="..."></div>
               <div class="card-body">
-                <h5 class="card-title">Nina</h5>
+                <h5 class="card-title">Nina</h5>
               </div>
             </div>
-            <div class="card" style="width:25%;" data-avatar="Summer韓小夏" data-img="ninawhite">
+            <div class="card col" data-avatar="Summer" data-img="summer">
               <div class="imgfr"><img src="static/img/summer.webp" class="card-img-top" alt="..."></div>
               <div class="card-body">
-                <h5 class="card-title">Summer韓小夏</h5>
+                <h5 class="card-title">Summer</h5>
               </div>
             </div>
+            <div class="card col" data-avatar="Jocelyn" data-img="Jocelyn">
+              <div class="imgfr"><img src="static/img/Jocelyn.webp" class="card-img-top" alt="..."></div>
+              <div class="card-body">
+                  <h5 class="card-title">Jocelyn</h5>
+              </div>
+          </div>
+          <div class="card col" data-avatar="Angela" data-img="Angela">
+              <div class="imgfr"><img src="static/img/Angela.webp" class="card-img-top" alt="..."></div>
+              <div class="card-body">
+                  <h5 class="card-title">Angela</h5>
+              </div>
+          </div>
           </div>
         </fieldset>
         <fieldset>
-          <h3 class="fs-subtitle">台詞</h3>
-          <input type="text" name='t1' class='txtsrc txtsrc1' value="" placeholder="1"/> <br/>
-          <input type="text" name='t2' class='txtsrc txtsrc2' value="" placeholder="2" /><br/>
-          <input type="text" name='t3' class='txtsrc txtsrc3' value="" placeholder="3" /><br/>
-          <input type="text" name='t4' class='txtsrc txtsrc4' value="" placeholder="4" /><br/>
-          <input type="text" name='t5' class='txtsrc txtsrc5' value="" placeholder="5" /><br/>
-          <input type="text" name='t6' class='txtsrc txtsrc6' value="" placeholder="6" /><br/>
-          <input type="text" name='t7' class='txtsrc txtsrc7' value="" placeholder="7" /><br/>
-          <input type="text" name='t8' class='txtsrc txtsrc8' value="" placeholder="8" /><br/>
-          <input type="text" name='t9' class='txtsrc txtsrc9' value="" placeholder="9" /><br/>
-          <input type="text" name='t10' class='txtsrc txtsrc10' value="" placeholder="10" /><br/>
+          <h3 class="fs-subtitle">Lines</h3>
+          <div class="subtitle-inputs">
+                        
+          </div>
+          <span class="add">+</span>
         </fieldset>
-        <fieldset>
-          <h3 class="fs-subtitle">副標題</h3>
-          <input type="text" class='sub_text'  placeholder="1"/> <br/>
-          <input type="text" class='sub_text'  placeholder="2" /><br/>
-          <input type="text" class='sub_text'  placeholder="3" /><br/>
-          <input type="text" class='sub_text'  placeholder="4" /><br/>
-          <input type="text" class='sub_text'  placeholder="5" /><br/>
-          <input type="text" class='sub_text'  placeholder="6" /><br/>
-          <input type="text" class='sub_text'  placeholder="7" /><br/>
-          <input type="text" class='sub_text'  placeholder="8" /><br/>
-          <input type="text" class='sub_text'  placeholder="9" /><br/>
-          <input type="text" class='sub_text'  placeholder="10" /><br/>
+        <fieldset id="Subline">
+          <h3 class="fs-subtitle">Subtitles</h3>
+          <div class="subline-inputs">
+                        
+          </div>
+          <span class="add-subline">+</span>
         </fieldset>
         <fieldset id='imgSrc'>
-          <h3 class="fs-subtitle" style="display: inline-block;">影像連結<img class="ms-1" src="static/img/question.png" alt="" data-bs-toggle="tooltip" data-bs-placement="right" title="僅接受png, jpg, mp4格式"></h3><br/>
-          <input type="text" name='m1' class='imgsrc imgsrc1' value="" placeholder="1" /><input id="img1" type="file" class="img_uploader img_up"><label for="img1" class="upload-btn">上傳檔案</label><br/>
-          <input type="text" name='m2' class='imgsrc imgsrc2' value="" placeholder="2" /><input id="img2" type="file" class="img_uploader img_up"><label for="img2" class="upload-btn">上傳檔案</label><br/>
-          <input type="text" name='m3' class='imgsrc imgsrc3' value="" placeholder="3" /><input id="img3" type="file" class="img_uploader img_up"><label for="img3" class="upload-btn">上傳檔案</label><br/>
-          <input type="text" name='m4' class='imgsrc imgsrc4' value="" placeholder="4" /><input id="img4" type="file" class="img_uploader img_up"><label for="img4" class="upload-btn">上傳檔案</label><br/>
-          <input type="text" name='m5' class='imgsrc imgsrc5' value="" placeholder="5" /><input id="img5" type="file" class="img_uploader img_up"><label for="img5" class="upload-btn">上傳檔案</label><br/>
-          <input type="text" name='m6' class='imgsrc imgsrc6' value="" placeholder="6" /><input id="img6" type="file" class="img_uploader img_up"><label for="img6" class="upload-btn">上傳檔案</label><br/>
-          <input type="text" name='m7' class='imgsrc imgsrc7' value="" placeholder="7" /><input id="img7" type="file" class="img_uploader img_up"><label for="img7" class="upload-btn">上傳檔案</label><br/>
-          <input type="text" name='m8' class='imgsrc imgsrc8' value="" placeholder="8" /><input id="img8" type="file" class="img_uploader img_up"><label for="img8" class="upload-btn">上傳檔案</label><br/>
-          <input type="text" name='m9' class='imgsrc imgsrc9' value="" placeholder="9" /><input id="img9" type="file" class="img_uploader img_up"><label for="img9" class="upload-btn">上傳檔案</label><br/>
-          <input type="text" name='m10' class='imgsrc imgsrc10' value="" placeholder="10" /><input id="img10" type="file" class="img_uploader img_up"><label for="img10" class="upload-btn">上傳檔案</label><br/>
-          <input id="checker" type="button" name="next" class="next action-button" value="送出" />
+          <h3 class="fs-subtitle" style="display: inline-block;">Image Links<img class="ms-1" src="static/img/question.png" alt="" data-bs-toggle="tooltip" data-bs-placement="right" title="Support File Formats: png, jpg, mp4"></h3><br/>
+          <div class="img-inputs">
+          </div>
+          <span class="addimg">+</span>
+          <input id="checker" type="button" name="next" class="next action-button" value="Submit" />
           <h3 style="display: none;" class="fs-subtitle">處理進度</h3>
           <div style="display: none;" id="myProgress">
             <div style="display: none;" id="myBar">0%</div>
@@ -185,15 +189,15 @@
       <div class="modal-dialog">
         <div class="modal-content">
           <div class="modal-header">
-            <h5 class="modal-title" id="staticBackdropLabel">使用說明</h5>
+            <h5 class="modal-title" id="staticBackdropLabel">Usage Introduction</h5>
             <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
           </div>
           <div class="modal-body">
               <div class="modal-terms">
                   <ol class="ps-0">
-                      <li>1. 一句台詞請對應提供一個影像連結做為搭配</li>
-                      <li>2. 影像連結檔案格式支援:<stong class="strong">.png, jpg, .mp4</stong></li>
-                      <li>3. 點選“送出”之後需等待一段影片製作的時間,請您耐心等候,待製作完畢可於通知網址查看</li>
+                      <li>1. Please Provide an Image Link Corresponding to a Line as a Collocation</li>
+                      <li>2. Support File Format:<stong class="strong">.png, jpg, .mp4</stong></li>
+                      <li>3. After Clicking Submit, You Will Need To Wait For A Period Of Time For The Production Of The Video. Please Wait Patiently. You Can Check It At The Notification URL When The Production Is Completed.</li>
                   </ol>
               </div>
           </div>
@@ -204,7 +208,7 @@
     <div class="modal-dialog modal-dialog-scrollable">
       <div class="modal-content">
         <div class="modal-header">
-          <h5 class="modal-title" id="staticBackdropLabel">歷史紀錄</h5>
+          <h5 class="modal-title" id="staticBackdropLabel">History</h5>
           <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
         </div>
         <div class="modal-body">
@@ -237,13 +241,10 @@
   <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
   <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.min.js" integrity="sha384-Atwg2Pkwv9vp0ygtn1JAojH0nYbwNJLPhwyoVbhoPwBhjQPR5VtM2+xf0Uwh9KtT" crossorigin="anonymous"></script> 
   <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11.0.18/dist/sweetalert2.all.min.js"></script>
-  <script src="script_index.js"></script>
   <script type="text/javascript" src="static/lan.js"></script>
   <script src="static/common.js"></script>
-  <script src="static/script_anchor_eng.js"></script>
-
+  <script src="script_eng.js"></script>
   <body>
-
 </div>
 
 </body>

+ 1 - 1
html/make_video.html

@@ -147,7 +147,7 @@
                             <option value="9">Nina灰</option>
                             <option value="11">Summer韓小夏</option>
                             <option value="12">Jocelyn</option>
-                            <option value="12">Angela</option>
+                            <option value="13">Angela</option>
                         </select>
                         <div class="owl-carousel owl-theme">
                             <div class="card item" data-avatar="Peggy" data-img="peggy">

+ 1 - 1
html/make_video_long.html

@@ -147,7 +147,7 @@
                     <option value="9">Nina灰</option>
                     <option value="11">Summer韓小夏</option>
                     <option value="12">Jocelyn</option>
-                    <option value="12">Angela</option>
+                    <option value="13">Angela</option>
                     </select>
                     <div class="owl-carousel owl-theme">
                     <div class="card item" data-avatar="Peggy" data-img="peggy">

+ 422 - 0
html/script_eng.js

@@ -0,0 +1,422 @@
+checkRoute();
+
+function checkRoute() {
+  let jwt_token = get_jwt_token();
+  if(jwt_token == undefined) {
+    window.location.replace("login.html");
+  }
+  axios({
+    method: 'post',
+    url: 'https://www.choozmo.com:8887/user_profile',
+    headers: { 
+        'accept': 'text/html',
+        'Authorization': `Bearer ${jwt_token}`
+     }
+  }).then(res => {
+    console.log(res.data);
+    if(res.status !== 200) {
+      window.location.replace("login.html");
+    }
+    var userName='';
+    userName+=' <h2 class="user-name text-white mt-4 fw-bold">Hello,'+res.data.user_info.userName+'</h2>';
+    $('.userName').html(userName);
+  }).catch(err => {
+    console.log(err);
+  });
+}
+
+const btnLoginPage = document.querySelector('.btn-login');
+const btnUserProfile = document.querySelector('.btn-userProfile');
+const btnLogout = document.querySelector('.btn-logout');
+
+
+
+function loginControl() {
+    btnLoginPage.style.display = 'none';
+    btnLogout.style.display = 'block';
+    btnUserProfile.style.display = 'block';
+}
+
+loginControl();
+
+
+var client_id = Date.now();
+var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
+var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
+  return new bootstrap.Tooltip(tooltipTriggerEl)
+});
+var myModal = new bootstrap.Modal(document.getElementById('history'), {
+  keyboard: false
+})
+var avatarModal = new bootstrap.Modal(document.getElementById('avatarmega'), {
+  keyboard: false
+})
+var modalImg = document.querySelector("#avatarmega .modal-img");
+var modalTitle = document.querySelector("#avatarmega .modal-title");
+var avatarSelector = document.getElementById("avatar");
+var card = document.getElementsByClassName('card');
+card = [...card];
+avatarSelector.addEventListener('change', avatarChange);
+avatarChange();
+
+function addCardListener() {
+  for (let i = 0; i < card.length; i++) {
+    card[i].addEventListener('click', openavatarModel);
+  }
+}
+
+addCardListener();
+
+function avatarChange() {
+  var value = avatarSelector.options[avatarSelector.selectedIndex].text;
+  $('.owl-carousel').trigger('to.owl.carousel', avatarSelector.selectedIndex);
+  for (let i = 0; i < card.length; i++) {
+    card[i].classList.remove('active');
+    if (card[i].dataset.avatar == value) {
+      card[i].classList.add('active');
+    }
+  }
+}
+
+function openavatarModel() {
+  console.log(this.dataset.img);
+  modalImg.setAttribute("src", `static/img/${this.dataset.img}.webp`);
+  modalTitle.textContent = `${this.dataset.avatar}`;
+  avatarModal.show();
+}
+
+$('input[type=file]').on('change', prepareUpload);
+function prepareUpload(event) {
+  files = event.target.files;
+  var data = new FormData();
+  //data.append('file', $('.img_up1').prop('files')[0]);
+  data.append('file', files[0]);
+  // append other variables to data if you want: data.append('field_name_x', field_value_x);
+  $(this).next().text('');
+  $(this).next().html('<img src="static/img/Spinner-1s-181px.gif">');
+  $.ajax({
+    type: 'POST',
+    processData: false, // important
+    contentType: false, // important
+    data: data,
+    url: 'https://www.choozmo.com:8887/uploadfile',
+    dataType: 'json',
+    success: function (jsonData) {
+      event.target.previousSibling.value = jsonData.msg;
+      $(this).prev().val(jsonData.msg);
+      event.target.nextSibling.innerHTML = '';
+      event.target.nextSibling.textContent = 'Upload';
+      //console.log($(this).next());
+      //$(this).next().html('上傳檔案');
+      //$(this).next().text('上傳檔案');
+    },
+    error: function (error) {
+      event.target.nextSibling.innerHTML = '';
+      event.target.nextSibling.textContent = '上傳檔案';
+      alert('圖片錯誤');
+    }
+  });
+}
+const button = document.querySelector('.next');
+
+$(".next").click(function () {
+  button.setAttribute('disabled', '');
+  setTimeout(function () {
+    button.removeAttribute('disabled')
+  }, 8000);
+  avatar = $('.avatar').val();
+  name_title = $('.title_new').val();
+  txtARR = [];
+  imgARR = [];
+  sublineARR = [];
+  var step;
+  let contentIdx = document.querySelectorAll(".txtsrc").length;
+  for (let i = 1; i < (contentIdx + 1); i++) {
+    if ($(`.txtsrc${i}`).val() != "") {
+      txtARR.push($(`.txtsrc${i}`).val())
+    }
+  }
+  let sublineIdx = document.querySelectorAll(".subsrc").length;
+  for (let i = 1; i < (sublineIdx + 1); i++) {
+    if ($(`.subsrc${i}`).val() != "") {
+        sublineARR.push($(`.subsrc${i}`).val())
+    }
+  }
+  let imgIdx = document.querySelectorAll(".imgsrc").length;
+  for (let i = 1; i < (imgIdx + 1); i++) {
+    if ($(`.imgsrc${i}`).val() != "") {
+      imgARR.push($(`.imgsrc${i}`).val())
+    }
+  }
+  dataOBJ = { "name": name_title, "text_content": txtARR, "image_urls": imgARR, "sub_titles": sublineARR, "avatar": avatar };
+  objstr = JSON.stringify(dataOBJ);
+  console.log(dataOBJ);
+  jwt_token =  get_jwt_token();
+  var xhr = new XMLHttpRequest();
+  xhr.open("POST", "https://www.choozmo.com:8887/make_anchor_video_eng");
+  xhr.setRequestHeader("accept", "application/json");
+  xhr.setRequestHeader("Authorization","Bearer "+jwt_token)
+  xhr.setRequestHeader("Content-Type", "application/json");
+  xhr.onreadystatechange = function () {
+    if (xhr.readyState === 4) {
+      responseOBJ = JSON.parse(xhr.responseText);
+      if (responseOBJ.msg=='ok')
+      {
+        Swal.fire({
+          title: "Data Submitted Successfully!",
+          icon: 'success',
+          text: 'We are working on your video! It might take minutes to get your video.',
+          confirmButtonColor: '#3085d6',
+        });
+      }
+      else{
+        Swal.fire({
+          title: "Oops! Some error occurred!",
+          icon: 'error',
+          text: responseOBJ.msg,
+          confirmButtonColor: '#3085d6',
+        });
+      }
+      
+    }
+  };
+  var data = renderXHR_data(dataOBJ)
+  console.log(data)
+  result = xhr.send(objstr);
+});
+
+
+var loaded_data = ''
+function openNav() {
+  document.getElementById("mySidenav").style.width = "250px";
+  document.querySelector('.loader').style.display = "block";
+  let jwt_token = get_jwt_token();
+  axios({
+    method: 'post',
+    url: 'https://www.choozmo.com:8887/history_input',
+    headers: { 
+        'accept': 'application/json',
+        'Authorization': `Bearer ${jwt_token}`
+     }
+  }).then(res => {
+    console.log(res.data);
+    loaded_data = res.data;
+    for (var obj of loaded_data) {
+      var historyList = document.querySelector('.historyList');
+      var list = document.createElement('li');
+      list.id = obj.id;
+      // div-imgfr
+      var divImgfr = document.createElement('div');
+      divImgfr.classList.add('item_imgfr');
+      var img = document.createElement('img');
+      img.setAttribute('src', obj['image_urls'][0]);
+      divImgfr.appendChild(img);
+      // div-content
+      var contentBox = document.createElement('div');
+      contentBox.classList.add('content-box');
+      var boxTitle = document.createElement('p');
+      boxTitle.classList.add('box-title');
+      boxTitle.textContent = obj.name;
+      boxTitle.id = obj.id;
+      boxTitle.setAttribute('onclick', 'load_data()');
+
+      var boxLink = document.createElement('span');
+      boxLink.classList.add('box-link');
+      boxLink.setAttribute("data-url", obj.link);
+      boxLink.setAttribute('onclick', 'view()');
+      boxLink.innerHTML = '<i class="fas fa-play-circle me-1"></i>觀看影片';
+      contentBox.appendChild(boxTitle);
+      contentBox.appendChild(boxLink);
+      list.classList.add("historyList-item");
+      list.setAttribute('onclick', 'load_data()');
+      list.appendChild(divImgfr);
+      list.appendChild(contentBox);
+      historyList.appendChild(list);
+    }
+    document.querySelector('.loader').style.display = "none";
+  
+  }).catch(err => {
+    console.log(err);
+  });
+}
+function closeNav() {
+  document.getElementById("mySidenav").style.width = "250px";
+}
+
+function view() {
+  event.stopPropagation();
+  console.log(event.target);
+  if (event.target.nodeName === 'I') {
+    return;
+  } else {
+    window.open(`http://${event.target.dataset.url}`, '_blank');
+  }
+}
+
+function renderXHR_data(jsonObj) {
+  XHRstring = ''
+  for (const [key, value] of Object.entries(jsonObj)) {
+    console.log(value)
+    if (typeof (value) == "object") {
+      XHRstring += (key+'=['+value.join(',')+']&')
+    }
+    else {
+      XHRstring += (key + '=' + value + '&')
+    }
+  }
+  XHRstring = XHRstring.substring(0, XHRstring.length - 1);
+  return XHRstring
+}
+
+function get_jwt_token(){
+  jwt_raw = document.cookie.split(';').filter(s=>s.includes('jwt_token'))[0];
+  if(!jwt_raw) {return}
+  return jwt_raw.split('=')[1];
+}
+
+function load_data() {
+  var title = document.getElementById("title");
+  var linker = document.getElementById("linker");
+
+  myModal.hide()
+  tid = event.srcElement.id
+  console.log(tid);
+  linker.setAttribute('href', `http://${loaded_data.find(item => item.id == tid).link}`)
+  linker.setAttribute('target', '_blank')
+  $("#linker").html(`http://${loaded_data.find(item => item.id == tid).link}`)
+  $("#linker").show();
+  $(".linker__box").show();
+
+  let historyItem = loaded_data.filter(item => item.id == tid)[0];
+  console.log(historyItem);
+  $(".title_new").val(loaded_data.find(item => item.id == tid).name);
+
+  let txtlength = historyItem.text_content.length;
+  let imglength = historyItem.image_urls.length;
+  let sublinelength = historyItem.sub_titles.length;
+
+  subtitleInputs.innerHTML = '';
+  imgInputs.innerHTML = '';
+  sublineInputs.innerHTML = '';
+
+  for (let i = 0; i < txtlength; i++) {
+    var txtinput = document.createElement("input");
+    txtinput.setAttribute('type', 'text');
+    txtinput.setAttribute('name', `t${i + 1}`);
+    txtinput.value = historyItem.text_content[i];
+    txtinput.setAttribute('placeholder', `${i + 1}`);
+    txtinput.classList.add('txtsrc', `txtsrc${i + 1}`)
+    subtitleInputs.appendChild(txtinput);
+  }
+  for (let i = 0; i < sublinelength; i++) {
+    var txtinput = document.createElement("input");
+    txtinput.setAttribute('type', 'text');
+    txtinput.setAttribute('name', `s${i + 1}`);
+    txtinput.value = historyItem.sub_titles[i];
+    txtinput.setAttribute('placeholder', `${i + 1}`);
+    txtinput.classList.add('subsrc', `subsrc${i + 1}`)
+    sublineInputs.appendChild(txtinput);
+  }
+  for (let i = 0; i < imglength; i++) {
+    var imginput = document.createElement("input");
+    imginput.setAttribute('type', 'text');
+    imginput.setAttribute('name', `m${i + 1}`);
+    imginput.classList.add('imgsrc', `imgsrc${i + 1}`);
+    imginput.value = historyItem.image_urls[i];
+    imginput.setAttribute('placeholder', `${i + 1}`);
+    imgInputs.appendChild(imginput);
+
+    var imgupload = document.createElement("input");
+    imgupload.setAttribute('id', `img${i + 1}`);
+    imgupload.setAttribute('type', `file`);
+    imgupload.classList.add('img_uploader', 'img_up');
+    imgInputs.appendChild(imgupload);
+    var imguploadlabel = document.createElement("label");
+    imguploadlabel.setAttribute('for', `img${i + 1}`);
+    imguploadlabel.classList.add('upload-btn');
+    imguploadlabel.textContent = 'Upload';
+    imgInputs.appendChild(imguploadlabel);
+  }
+
+}
+
+var subtitleInputs = document.querySelector(".subtitle-inputs");
+var sublineInputs = document.querySelector(".subline-inputs");
+var imgInputs = document.querySelector(".img-inputs");
+let length = 5;
+function initial() {
+  for (let i = 0; i < length; i++) {
+    rendertxtBlock(i + 1);
+    renderimgBlock(i + 1);
+    renderSublineBlock(i +1);
+  }
+  console.log(document.querySelectorAll(".txtsrc").length + 1);
+}
+
+initial();
+
+var addbtn = document.querySelector(".add");
+var addimgbtn = document.querySelector(".addimg");
+var addSubline = document.querySelector('.add-subline');
+
+addbtn.addEventListener('click', addtxtBlock);
+addimgbtn.addEventListener('click', addimgBlock);
+addSubline.addEventListener('click', addsubBlock);
+
+
+function addtxtBlock() {
+  let newIdx = document.querySelectorAll(".txtsrc").length + 1;
+  rendertxtBlock(newIdx);
+}
+
+function addsubBlock() {
+    let newIdx = document.querySelectorAll(".subsrc").length + 1;
+    renderSublineBlock(newIdx);
+  }
+
+function addimgBlock() {
+  let newimgIdx = document.querySelectorAll(".imgsrc").length + 1;
+  renderimgBlock(newimgIdx);
+}
+
+function rendertxtBlock(i) {
+  var txtinput = document.createElement("input");
+  txtinput.setAttribute('type', 'text');
+  txtinput.setAttribute('name', `t${i}`);
+  txtinput.value = "";
+  txtinput.setAttribute('placeholder', `${i}`);
+  txtinput.classList.add('txtsrc', `txtsrc${i}`)
+  subtitleInputs.appendChild(txtinput);
+}
+
+function renderSublineBlock(i) {
+    var txtinput = document.createElement("input");
+  txtinput.setAttribute('type', 'text');
+  txtinput.setAttribute('name', `s${i}`);
+  txtinput.value = "";
+  txtinput.setAttribute('placeholder', `${i}`);
+  txtinput.classList.add('subsrc', `subsrc${i}`)
+  sublineInputs.appendChild(txtinput);
+}
+
+function renderimgBlock(i) {
+  var imginput = document.createElement("input");
+  imginput.setAttribute('type', 'text');
+  imginput.setAttribute('name', `m${i}`);
+  imginput.classList.add('imgsrc', `imgsrc${i}`);
+  imginput.value = "";
+  imginput.setAttribute('placeholder', `${i}`);
+  imgInputs.appendChild(imginput);
+
+  var imgupload = document.createElement("input");
+  imgupload.setAttribute('id', `img${i}`);
+  imgupload.setAttribute('type', `file`);
+  imgupload.classList.add('img_uploader', 'img_up');
+  imgInputs.appendChild(imgupload);
+  var imguploadlabel = document.createElement("label");
+  imguploadlabel.setAttribute('for', `img${i}`);
+  imguploadlabel.classList.add('upload-btn');
+  imguploadlabel.textContent = 'Upload';
+  imgInputs.appendChild(imguploadlabel);
+  $('input[type=file]').on('change', prepareUpload);
+}

+ 2 - 0
html/static/scss/style.css

@@ -755,6 +755,7 @@ footer {
 }
 
 .add,
+.add-subline,
 .addimg {
   cursor: pointer;
   display: inline-block;
@@ -769,6 +770,7 @@ footer {
 }
 
 .add:hover,
+.add-subline:hover,
 .addimg:hover {
   background-color: #398ee9;
 }

File diff suppressed because it is too large
+ 0 - 0
html/static/scss/style.css.map


+ 2 - 0
html/static/scss/style.scss

@@ -713,6 +713,7 @@ footer {
 }
 
 .add,
+.add-subline,
 .addimg {
 	cursor: pointer;
 	display: inline-block;
@@ -725,6 +726,7 @@ footer {
 	transition: all 0.3s;
 }
 .add:hover,
+.add-subline:hover,
 .addimg:hover {
 	background-color: #398ee9;
 }

Some files were not shown because too many files changed in this diff