|
@@ -89,7 +89,7 @@
|
|
</head>
|
|
</head>
|
|
<body>
|
|
<body>
|
|
<script src="photo.js"></script>
|
|
<script src="photo.js"></script>
|
|
- <div id="main" x-data='photoListObject()'>
|
|
|
|
|
|
+ <div id="main" x-data='photoListObject()' x-init="init()">
|
|
<div class="ui left vertical menu" id="menu">
|
|
<div class="ui left vertical menu" id="menu">
|
|
<div class="item" style="background-color: #f76c5d;">
|
|
<div class="item" style="background-color: #f76c5d;">
|
|
<img class="ui fluid image" src="img/banner.png">
|
|
<img class="ui fluid image" src="img/banner.png">
|
|
@@ -125,13 +125,15 @@
|
|
<a class="item" x-on:click="console.log( tags[key][0],tags[key][1]); images = tags[key]; $('#noimg').hide();" :filedata="encodeURIComponent(JSON.stringify(tags[key]));" ><i class="ui hashtag icon"></i> <span x-text="key"></span></a>
|
|
<a class="item" x-on:click="console.log( tags[key][0],tags[key][1]); images = tags[key]; $('#noimg').hide();" :filedata="encodeURIComponent(JSON.stringify(tags[key]));" ><i class="ui hashtag icon"></i> <span x-text="key"></span></a>
|
|
</template>
|
|
</template>
|
|
</div>
|
|
</div>
|
|
- <a class="item" onclick="rescan(this);">Rescan <i class="ui search icon"></i></a>
|
|
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <a class="item" onclick="rescan(this);">Rescan <i class="ui search icon"></i></a>
|
|
|
|
+ <a class="item" onclick="showSetting();">Settings <i class="ui setting icon"></i></a>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div id="display" x-init="init()">
|
|
|
|
|
|
+ <div id="display">
|
|
<div id="noimg" class="ui basic segment" style="display:none;">
|
|
<div id="noimg" class="ui basic segment" style="display:none;">
|
|
<h4 class="ui header">
|
|
<h4 class="ui header">
|
|
<i class="red question icon"></i>
|
|
<i class="red question icon"></i>
|
|
@@ -153,16 +155,76 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
<button id="showmenuBtn" class="ui basic big icon button" onclick="toggleMenu();"><i class="ui content icon"></i></button>
|
|
<button id="showmenuBtn" class="ui basic big icon button" onclick="toggleMenu();"><i class="ui content icon"></i></button>
|
|
|
|
|
|
<!-- Photo Viewing Modal -->
|
|
<!-- Photo Viewing Modal -->
|
|
- <div class="ui basic small modal">
|
|
|
|
|
|
+ <div class="ui basic small modal viewer">
|
|
<i class="close icon" style="margin-top: -2em;"></i>
|
|
<i class="close icon" style="margin-top: -2em;"></i>
|
|
<div class="image content">
|
|
<div class="image content">
|
|
- <img id="fullImage" class="ui fluid image" src="" onload="$('.ui.modal').modal('refresh');"/>
|
|
|
|
|
|
+ <img id="fullImage" class="ui fluid image" src="" onload="$('.ui.modal.viewer').modal('refresh');"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
|
|
+ <div class="ui modal setting" x-data="settingObject()" x-init="init();">
|
|
|
|
+ <i class="close icon"></i>
|
|
|
|
+ <div class="header">
|
|
|
|
+ Photo Classification Settings
|
|
|
|
+ </div>
|
|
|
|
+ <div class="content">
|
|
|
|
+ <p><i class="angle right icon"></i> Select Neural Network Model for Classification</p>
|
|
|
|
+ <div class="ui selection dropdown" id="selectedModel" onchange="updateSelectedModel($(this).dropdown('get value'));">
|
|
|
|
+ <input type="hidden" name="nnm">
|
|
|
|
+ <i class="dropdown icon"></i>
|
|
|
|
+ <div class="default text">default</div>
|
|
|
|
+ <div class="menu">
|
|
|
|
+ <div class="item" data-value="yolo3">YOLO 3</div>
|
|
|
|
+ <div class="item" data-value="darknet19">Darknet 19</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="ui green message" id="modelUpdated" style="display:none;">
|
|
|
|
+ <div class="content">
|
|
|
|
+ <i class="green small checkmark icon"></i> Model Updated
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <br>
|
|
|
|
+ <small><i class="ui info icon"></i> For host with less than 1GB free memory, Darknet 19 is recommend. However, this might result is less accurate classification predictions.</small>
|
|
|
|
+ <div class="ui divider"></div>
|
|
|
|
+ <p><i class="angle right icon"></i> Base folder name to exclude when auto-tag generaton</p>
|
|
|
|
+ <div id="newexc" class="ui action fluid input">
|
|
|
|
+ <input type="text" placeholder="Private">
|
|
|
|
+ <button class="ui blue basic button" x-on:click="addDir($el);"><i class="ui add icon"></i> Add</button>
|
|
|
|
+ </div>
|
|
|
|
+ <small>Example: To exclude *:/Photo/Private/, just fill in the folder name "Private"</small>
|
|
|
|
+ <div class="ui middle aligned relaxed divided list">
|
|
|
|
+ <div class="item" id="noexcRecords" style="display:none;"><i class="remove icon"></i> No Exclude Directory Record</div>
|
|
|
|
+
|
|
|
|
+ <template x-for="excludedir in excludeDirs">
|
|
|
|
+ <div class="item">
|
|
|
|
+ <div class="right floated content">
|
|
|
|
+ <div class="ui negative small basic button" x-on:click="removeDir(excludedir);"><i class="remove icon"></i> Remove</div>
|
|
|
|
+ </div>
|
|
|
|
+ <img class="ui avatar image" src="./img/collection.svg">
|
|
|
|
+ <div class="content" x-text="excludedir + ' (Exclude *:/Photo/' + excludedir + '/)'">
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="actions">
|
|
|
|
+ <div class="ui deny right button">
|
|
|
|
+ Close
|
|
|
|
+ </div>
|
|
|
|
+ <div class="ui positive left labeled icon button" x-on:click="save();">
|
|
|
|
+ Save
|
|
|
|
+ <i class="checkmark icon"></i>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
</body>
|
|
</body>
|
|
<script>
|
|
<script>
|
|
|
|
|