You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

createCourse.tmpl 4.8 kB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. {{template "base/head" .}}
  2. <div class="repository new repo" style="margin-top: 40px;">
  3. <div class="ui middle very relaxed page grid">
  4. <div class="column">
  5. <form class="ui form" action="{{.Link}}" method="post" id="create_repo_form">
  6. {{.CsrfTokenHtml}}
  7. <h3 class="ui top attached header">
  8. {{.i18n.Tr "new_course"}}
  9. </h3>
  10. <div class="ui attached segment">
  11. {{template "base/alert" .}}
  12. <div class="inline required field" >
  13. <label for="Alias">{{.i18n.Tr "form.courseAlias"}}</label>
  14. <input id="alias" name="alias" value="" autofocus required>
  15. <span class="help">{{.i18n.Tr "form.reponame_dash_dot_error"}}</span>
  16. </div>
  17. <div class="inline required fields" style="margin-bottom: 0;">
  18. <label style="text-align: right;width: 250px!important;word-wrap: break-word;">{{.i18n.Tr "form.courseAdress"}}</label>
  19. <div class="required field {{if .Err_Owner}}error{{end}}" style="padding: 0;">
  20. <div class="ui selection owner dropdown" id="ownerDropdown">
  21. <input type="hidden" id="uid" name="uid" value="{{.Owner.Name}}" required>
  22. <div class="text" title="{{.Owner.Name}}">
  23. <img class="ui mini image" src="{{.Owner.RelAvatarLink}}">
  24. {{$.Owner.Name}}
  25. </div>
  26. </div>
  27. </div>
  28. <div class="ui interval" style="width: 0.6em;font-size: 2rem;line-height: 0px;text-align: center;">/</div>
  29. <div class="required field {{if .Err_RepoName}}error{{end}}">
  30. <input style="width: 100% !important;" id="repo_name" name="repo_name" value="{{.repo_name}}" autofocus required>
  31. </div>
  32. </div>
  33. <span style="display: block;margin-bottom: 1em;" class="help">{{.i18n.Tr "form.repoadd_dash_dot_error"}}</span>
  34. <div class="inline field" id="repoAdress" style="display: none;word-break: break-all;">
  35. <label for="">{{.i18n.Tr "form.RepoAdress"}}:</label>
  36. <span></span>
  37. </div>
  38. <div class="inline required field">
  39. <label>{{.i18n.Tr "repo.model.manage.label"}}</label>
  40. <div class="ui multiple search selection dropdown" id="dropdown_container">
  41. <input type="hidden" name="topics" value="">
  42. <div class="default text" id="default_text">{{.i18n.Tr "repo.repo_label_helpe"}}</div>
  43. <div class="menu" id="course_label_item">
  44. </div>
  45. </div>
  46. </div>
  47. <div class="inline field {{if .Err_Description}}error{{end}}">
  48. <label for="description">{{.i18n.Tr "course_desc"}}</label>
  49. <textarea id="description" name="description" maxlength="254">{{.description}}</textarea>
  50. </div>
  51. <div class="inline field">
  52. <label></label>
  53. <button class="ui green button" id="submit_reponame">
  54. {{.i18n.Tr "new_course"}}
  55. </button>
  56. <a class="ui button" href="{{AppSubUrl}}/">{{.i18n.Tr "cancel"}}</a>
  57. </div>
  58. </div>
  59. </form>
  60. </div>
  61. </div>
  62. </div>
  63. {{template "base/footer" .}}
  64. <script>
  65. $(document).ready(function(){
  66. $('.ui.multiple.search.selection.dropdown')
  67. .dropdown({
  68. allowAdditions: true,
  69. onChange: function(value, text, $selectedItem) {
  70. $('#course_label_item').empty()
  71. }
  72. })
  73. let defaultText = document.getElementById("default_text").offsetHeight
  74. defaultText = defaultText>40 ? defaultText+12 :defaultText
  75. $("#dropdown_container").css("height",defaultText)
  76. $('input.search').bind('input propertychange', function (event) {
  77. $("#dropdown_container").removeAttr("style");
  78. const query = $('input.search').val()
  79. if(!query){
  80. $('#course_label_item').empty()
  81. }else{
  82. $.get(`/api/v1/topics/search?q=${query}`,(data)=>{
  83. console.log(data)
  84. if(data.topics.length!==0){
  85. let html=''
  86. $('#course_label_item').empty()
  87. data.topics.forEach(element => {
  88. html += `<div class="item" data-value="${element.topic_name}">${element.topic_name}</div>`
  89. });
  90. $('#course_label_item').append(html)
  91. }
  92. })
  93. }
  94. });
  95. })
  96. </script>