Merge lp:~xzcvczx/dmedia/browser-ng into lp:dmedia

Proposed by xzcvczx
Status: Merged
Merged at revision: 574
Proposed branch: lp:~xzcvczx/dmedia/browser-ng
Merge into: lp:dmedia
Diff against target: 280 lines (+98/-39)
4 files modified
ui/common.js (+0/-1)
ui/dmedia.js (+48/-7)
ui/index.html (+19/-9)
ui/style.css (+31/-22)
To merge this branch: bzr merge lp:~xzcvczx/dmedia/browser-ng
Reviewer Review Type Date Requested Status
dmedia Dev Pending
Review via email: mp+141158@code.launchpad.net

Description of the change

Redesigned browser, Added ability to add a title to each video

To post a comment you must log in.
lp:~xzcvczx/dmedia/browser-ng updated
571. By xzcvczx

Modified info table

572. By xzcvczx

Changed display of metadata

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'ui/common.js'
2--- ui/common.js 2012-11-02 09:34:08 +0000
3+++ ui/common.js 2013-01-16 15:31:20 +0000
4@@ -304,7 +304,6 @@
5 }
6 }
7
8-
9 function Tagger(project, form) {
10 this.key = null;
11 this.old_value = '';
12
13=== modified file 'ui/dmedia.js'
14--- ui/dmedia.js 2012-11-02 10:13:42 +0000
15+++ ui/dmedia.js 2013-01-16 15:31:20 +0000
16@@ -162,7 +162,6 @@
17 }
18 );
19
20-
21 function make_tag_li(remove, doc, id) {
22 var id = id || doc._id;
23 var li = $el('li', {textContent: doc.value});
24@@ -513,7 +512,7 @@
25 this.tags = $('tags');
26 this.doc = null;
27
28- this.items = new Items('right');
29+ this.items = new Items('south');
30 this.items.onchange = $bind(this.on_item_change, this);
31 this.items.parent.onmousewheel = $bind(this.on_mousewheel, this);
32
33@@ -524,6 +523,9 @@
34 window.addEventListener('keypress', $bind(this.on_window_keypress, this));
35
36 $('back').onclick = $bind(this.hide, this);
37+
38+ //$('clip_title_form').onsubmit = $bind(this.on_title, this);
39+ $('clip_title').onblur = $bind(this.on_title, this);
40
41 this.browser = $('browser_main');
42 this.projects = $('browser_projects');
43@@ -645,6 +647,26 @@
44
45 on_doc: function(req) {
46 this.doc = req.read();
47+
48+ $('clip_title').placeholder = this.doc.name;
49+ if (this.doc.title) {
50+ $('clip_title').value = this.doc.title;
51+ }
52+ else {
53+ $('clip_title').value = '';
54+ }
55+
56+ if (this.doc.media == 'video') {
57+ var resolution = this.doc.width + 'x' + this.doc.height;
58+ var framerate = this.doc.framerate;
59+ var fps = Math.round((framerate.num/framerate.denom)*100)/100;
60+ var length = format_time(this.doc.duration.seconds);
61+
62+ $('metadata_1').textContent = length;
63+ $('metadata_2').textContent = resolution;
64+ $('metadata_3').textContent = fps + ' fps';
65+ }
66+
67 var keys = Object.keys(this.doc.tags);
68 var remove = $bind(this.on_tag_remove, this);
69 keys.forEach(function(key) {
70@@ -654,6 +676,25 @@
71 }, this);
72 },
73
74+ on_title: function(title) {
75+ title = $('clip_title').value;
76+ //console.log('Title: ' + title);
77+ if (!this.doc) {
78+ return;
79+ }
80+ if (title == '') {
81+ if (this.doc.title) {
82+ delete this.doc.title;
83+ }
84+ }
85+ else {
86+ if (this.doc.title != title) {
87+ this.doc.title = title
88+ }
89+ }
90+ this.project.db.save(this.doc);
91+ },
92+
93 on_tag: function(tag) {
94 //console.log(tag);
95 if (!this.doc) {
96@@ -685,19 +726,19 @@
97 on_mousewheel: function(event) {
98 event.preventDefault();
99 var delta = wheel_delta(event) * 112; // 108px height + 2px border
100- this.items.parent.scrollTop += delta;
101+ this.items.parent.scrollLeft += delta;
102 },
103
104
105 on_window_keydown: function(event) {
106 var keyID = event.keyIdentifier;
107- if (['Up', 'Down', 'Enter', 'U+007F'].indexOf(keyID) > -1 && !this.tagger.input.value) {
108+ if (['Left', 'Right', 'Enter', 'U+007F'].indexOf(keyID) > -1 && !this.tagger.input.value) {
109 event.preventDefault();
110 event.stopPropagation();
111- if (keyID == 'Up') {
112+ if (keyID == 'Left') {
113 this.previous();
114 }
115- else if (keyID == 'Down') {
116+ else if (keyID == 'Right') {
117 this.next();
118 }
119 else if (keyID == 'Enter') {
120@@ -716,7 +757,7 @@
121 }
122 // Don't focus on Backspace, Enter, Spacebar, or Delete
123 if ([8, 13, 32, 127].indexOf(event.keyCode) == -1) {
124- this.tagger.focus();
125+ return;
126 }
127 },
128
129
130=== modified file 'ui/index.html'
131--- ui/index.html 2012-11-02 10:13:42 +0000
132+++ ui/index.html 2013-01-16 15:31:20 +0000
133@@ -64,19 +64,29 @@
134 <div id="browser_target" class="hide">
135 <ul id="browser_projects"></ul>
136 <div id="browser_main" class="hide">
137- <div id="back">&larr; Back</div>
138 <div id="screen"><video id="player"></div>
139- <form id="tag_form">
140- <div id="lower" class="grid_row">
141- <div id="add_tag" class="grid_3 grid_cell">
142- <input id="tag_value"></input>
143+ <div id="east" class="grid_row">
144+ <div id="info" class="grid_row">
145+ <form id="clip_title_form">
146+ <input id="clip_title" class="grid_3"></input>
147+ </form>
148+ <p id="metadata_1" class="metadata"></p>
149+ <p id="metadata_2" class="metadata"></p>
150+ <p id="metadata_3" class="metadata"></p>
151+ </div>
152+ <form id="tag_form">
153+ <div id="tag_block" class="grid_row">
154+ <div id="add_tag" class="grid_2 grid_cell">
155+ <input id="tag_value" placeholder="Tag"></input>
156 <ul class="matches" id="tag_matches"></ul>
157 </div>
158- <button id="tag_button" class="grid_1 arrow" disabled>Tag &rarr;</button>
159- <ul id="tags" class="grid_5 tags inset"></ul>
160+ <button id="tag_button" class="grid_1 arrow" disabled>+</button>
161+ <ul id="tags" class="grid_3 tags inset"></ul>
162+ . </div>
163+ </form>
164+ <div id="back">&larr; Back</div>
165 </div>
166- </form>
167- <div id="right"></div>
168+ <div id="south"></div>
169 </div>
170 </div>
171
172
173=== modified file 'ui/style.css'
174--- ui/style.css 2012-11-02 10:13:42 +0000
175+++ ui/style.css 2013-01-16 15:31:20 +0000
176@@ -351,9 +351,9 @@
177 position: fixed;
178 z-index: 200;
179 top: 38px;
180- bottom: 170px;
181+ bottom: 128px;
182 left: 0;
183- right: 210px;
184+ right: 262px;
185 background-color: black;
186 }
187
188@@ -365,40 +365,43 @@
189 height: 100%;
190 }
191
192-#lower {
193+#east {
194 position: fixed;
195 z-index: 200;
196- height: 170px;
197- bottom: 0;
198- left: 0;
199- right: 210px;
200- background-color: black;
201- overflow-x: auto;
202- overflow-y: visible;
203+ width: 262px;
204+ top: 38px;
205+ bottom: 128px;
206+ right: 0;
207+ overflow-y: auto;
208 background: -webkit-linear-gradient(top, #222, #333);
209 }
210+.metadata {
211+ text-align: center;
212+}
213
214-#right {
215+#south {
216 position: fixed;
217 z-index: 200;
218- top: 38px;
219+ left: 0;
220 bottom: 0;
221- width: 210px;
222+ height: 128px;
223 right: 0;
224 background-color: #555;
225- overflow-y: scroll;
226- overflow-x: hidden;
227+ overflow-x: scroll;
228+ overflow-y: hidden;
229 line-height: 0;
230+ white-space: nowrap;
231 }
232
233-#right img.thumbnail {
234+#south img.thumbnail {
235 width: 192px;
236 height: 108px;
237 border: 2px solid black;
238- border-top: 2px solid #111;
239+ border-left: 2px solid #111;
240+ overflow: hidden;
241 }
242
243-#right img.thumbnail.selected {
244+#south img.thumbnail.selected {
245 border-color: #e81f3b;
246 }
247
248@@ -428,12 +431,18 @@
249 background-color: #e81f3b;
250 }
251
252+.label {
253+ font-weight: bold;
254+}
255
256 ul.tags {
257+ position: relative;
258+ top: -8px;
259+
260 font-size: 0;
261 list-style: none;
262
263- height: 150px;
264+ height: 100px;
265 padding: 2px;
266 }
267
268@@ -473,10 +482,10 @@
269 border-bottom:1px solid #383838;
270 border-radius: 2px;
271 box-shadow: 0px 1px 1px rgba(0,0,0,0.7);
272- position: fixed;
273 z-index: 250;
274- bottom: 8px;
275- left: 8px;
276+ position: absolute;
277+ bottom: 5px;
278+ right: 10px;
279 width: 144px;
280 }
281

Subscribers

People subscribed via source and target branches

to all changes: