git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorMárk Mérész <USER\mark.meresz>
Fri, 13 Jul 2018 06:37:15 +0000 (06:37 +0000)
committerMárk Mérész <USER\mark.meresz>
Fri, 13 Jul 2018 06:37:15 +0000 (06:37 +0000)
server/user.jobengine.osgi.server/pages/metadatadetails.zul [new file with mode: 0644]
server/user.jobengine.osgi.server/pages/searchitems.zul
server/user.jobengine.osgi.server/pages/statisticsdetails.zul
server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MetadataDetailsModel.java [new file with mode: 0644]
server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java

diff --git a/server/user.jobengine.osgi.server/pages/metadatadetails.zul b/server/user.jobengine.osgi.server/pages/metadatadetails.zul
new file mode 100644 (file)
index 0000000..02ce6db
--- /dev/null
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<window id="window"  title="Metadatok szerkesztése" width="900px" height="660px" position="top_center" sizable="true" border="normal" apply="org.zkoss.bind.BindComposer"\r
+       viewModel="@id('vm') @init('user.jobengine.zk.model.MetadataDetailsModel')" forward="onCancel=closeButton.onClick">\r
+       <style>\r
+               .z-window-header{ background:#008ac8; color:white; font-size:16px; padding:10px; } .z-row:hover > .z-row-inner{ background:#7ad6ff40; }\r
+       </style>\r
+       <attribute name="onSize"><![CDATA[\r
+               String height= String.valueOf((Integer.parseInt(self.getHeight().replace("px",""))-125)*0.059813084112149535);\r
+            item_houseid.setHeight(height+"px");\r
+            Clients.resize(item_houseid);\r
+            item_title.setHeight(height+"px");\r
+            Clients.resize(item_title);\r
+            item_type.setHeight(height+"px");\r
+            Clients.resize(item_type);\r
+            height= String.valueOf((Integer.parseInt(self.getHeight().replace("px",""))-120)*0.21495327102803738);\r
+            item_description.setHeight(height+"px");\r
+            Clients.resize(item_description);\r
+            height= String.valueOf((Integer.parseInt(self.getHeight().replace("px",""))-120)*0.0599250936329588);\r
+            media_houseid.setHeight(height+"px");\r
+            Clients.resize(media_houseid);\r
+            media_title.setHeight(height+"px");\r
+            Clients.resize(media_title);\r
+            media_type.setHeight(height+"px");\r
+            Clients.resize(media_type);\r
+            height= String.valueOf((Integer.parseInt(self.getHeight().replace("px",""))-120)*0.41869158878504675);\r
+            media_description.setHeight(height+"px");\r
+            Clients.resize(media_description);\r
+            height= String.valueOf((Integer.parseInt(self.getHeight().replace("px",""))-120)*0.41869158878504675*0.9);\r
+            media_description_content.setHeight(height+"px");\r
+            Clients.resize(media_description_content);\r
+        ]]></attribute>\r
+       <vlayout height="100%">\r
+               <div id="div" vflex="10">\r
+                       <listbox vflex="1" style="border: none; background: #e3e3e3 !important;">\r
+                               <listhead>\r
+                                       <listheader label="Tulajdonság" width="20%" />\r
+                                       <listheader label="Metaadat" />\r
+                               </listhead>\r
+                                       <listitem id="item_houseid">\r
+                                               <listcell label="Anyag azonosítója:" />\r
+                                               <listcell label="@load(vm.archivedMedia.item.houseId)"/>\r
+                                       </listitem>\r
+                                       <listitem id="item_title">\r
+                                               <listcell label="Anyag címe:" />\r
+                                               <listcell label="@load(vm.archivedMedia.item.title)"/>\r
+                                       </listitem>\r
+                                       <listitem id="item_type">\r
+                                               <listcell label="Anyag típusa:" />\r
+                                               <listcell label="@load(vm.archivedMedia.item.itemType.name)"/>\r
+                                       </listitem>\r
+                                       <listitem id="item_description">\r
+                                               <listcell label="Anyag leírása" />\r
+                                               <listcell><textbox rows="7" disabled="true" width="99%" value="@load(vm.archivedMedia.item.description)"></textbox></listcell>\r
+                                       </listitem>\r
+                                       <listitem id="media_houseid">\r
+                                               <listcell label="Média azonosítója:" />\r
+                                               <listcell><textbox inplace="true" value="@load(vm.archivedMedia.media.houseId) @save(vm.archivedMedia.media.houseId,before='save')"></textbox></listcell>\r
+                                       </listitem>\r
+                                       <listitem id="media_title">\r
+                                               <listcell label="Média címe:" />\r
+                                               <listcell><textbox inplace="true" width="99%" value="@load(vm.archivedMedia.media.title) @save(vm.archivedMedia.media.title,before='save')"></textbox></listcell>\r
+                                       </listitem>\r
+                                       <listitem id="media_type">\r
+                                               <listcell label="Média típusa:" />\r
+                                               <listcell><combobox constraint="no empty" id="mediatypes" width="300px"\r
+                                                       selectedItem="@load(vm.archivedMedia.media.itemType)@save(vm.archivedMedia.media.itemType,before='save')" model="@load(vm.itemTypes)">\r
+                                                       <template name="model">\r
+                                                               <comboitem label="${each.name}" value="${each}"></comboitem>\r
+                                                       </template>\r
+                                               </combobox></listcell>\r
+                                       </listitem>\r
+                                       <listitem id="media_description">\r
+                                               <listcell label="Média leírása:" />\r
+                                               <listcell><textbox rows="15" inplace="true" width="99%" id="media_description_content"\r
+                                                       value="@load(vm.archivedMedia.media.description) @save(vm.archivedMedia.media.description,before='save')">\r
+                                               </textbox></listcell>\r
+                                       </listitem>\r
+                       </listbox>\r
+               </div>\r
+               <div vflex="min">\r
+               <hbox width="100%"  pack="center" align="center">\r
+                       <button id="saveButton" label="Mentés" onClick="@command('save')" />\r
+                       <button id="closeButton" label="Mégse" onClick="@command('close')" />\r
+               </hbox>\r
+               </div>\r
+       </vlayout>\r
+</window>\r
+\r
index aa5fade25b0a5471845400fe1f1018b9bef6a01b..5eacbd0afa1440591a0251c1c9a646c578822248 100644 (file)
        <custom-attributes org.zkoss.zul.listbox.initRodSize="50" />\r
        <custom-attributes org.zkoss.zul.listbox.preloadSize="50" />\r
        <style>\r
-.myimg {\r
-       margin: 5px; border: 1px solid #CFCFCF;\r
-}\r
-div.z-row-content span {\r
-       font-family: Tahoma,Arial,serif;\r
-}\r
-.z-row .z-detail-outer {\r
-    padding: 3px 6px;\r
-}\r
-.heavy {\r
-       font-weight: bold;\r
-       font-family: Tahoma,Arial,serif;\r
-}\r
-.ir {\r
-       font-weight: bold;\r
-       font-family: Tahoma,Arial,serif;\r
-       text-color: green;\r
-}\r
-.details {\r
-    padding: 5px;\r
-    line-height: 1.5em;\r
-       font-size: 10px;\r
-}\r
-.relevant {\r
-    padding: 8px;\r
-       font-size: 10px;\r
-}\r
-.rhl {\r
-       color: #E53935;\r
-       font-weight: bold;\r
-}\r
-\r
-.z-row:hover > .z-row-inner, .z-row:hover > .z-cell {\r
-        background: none;\r
-}\r
-.z-row:hover>.z-row-inner>.z-row-content{\r
-               text-color: black;\r
-}\r
-\r
-.RED100 {\r
-       border-color: #FFCDD2;\r
-}\r
-\r
-.RED100 .z-toolbarbutton-content {\r
-       background: #FFCDD2;\r
-}\r
-\r
-.RED200 .z-toolbarbutton-content {\r
-       background: #EF9A9A;\r
-       border-color: #EF9A9A;;\r
-}\r
-\r
-.BROWN100 .z-toolbarbutton-content {\r
-       background: #D7CCC8;\r
-       border-color: #D7CCC8;\r
-}\r
-\r
-.YELLOW200 .z-toolbarbutton-content {\r
-       background: #FFF59D;\r
-}\r
-\r
-.INDIGO100 .z-toolbarbutton-content {\r
-       background: #C5CAE9;\r
-}\r
-\r
-.INDIGO200 .z-toolbarbutton-content {\r
-       background: #9FA8DA;\r
-}\r
-\r
-.BLUE100 .z-toolbarbutton-content {\r
-       background: #BBDEFB;\r
-}\r
-\r
-.BLUE200 .z-toolbarbutton-content {\r
-       background: #90CAF9; \r
-}\r
-\r
-.TEAL100 .z-toolbarbutton-content {\r
-       background: #B2DFDB;\r
-}\r
-\r
-.TEAL200 .z-toolbarbutton-content {\r
-       background: #80CBC4;\r
-}\r
-\r
-.z-toolbarbutton-content {\r
-       text-shadow: none;\r
-       background: transparent;\r
-       border: 1px solid transparent;\r
-       border-radius: 3px;\r
-       margin: 1px;\r
-}\r
-\r
-.toolbar {\r
-       padding:1px;\r
-       background:none;\r
-       border:0px;\r
-}\r
-\r
-.typefilter{\r
-       font-size:9px;\r
-       padding:0px;\r
-       margin:0px;\r
-       background: none;\r
-}\r
-\r
-.z-toolbarbutton:hover {\r
-       background:transparent;\r
-}\r
-\r
-.ie8 .z-toolbarbutton:active {\r
-       background:transparent;\r
-}\r
-\r
-.ie8 .z-toolbarbutton-checked {\r
-       background:transparent;\r
-}\r
-\r
-.z-toolbarbutton {\r
-       border-width: 2px;\r
-}\r
-\r
-.z-toolbarbutton-checked {\r
-       border: 2px solid #808080;\r
-}\r
-\r
-.type-inlist {\r
-       width:80px; \r
-       border-left:1px solid #008AC8; \r
-       border-bottom:1px solid #008AC8; \r
-       padding:4px;\r
-}\r
+               .myimg { margin: 5px; border: 1px solid #CFCFCF; } div.z-row-content span { font-family: Tahoma,Arial,serif; } .z-row .z-detail-outer { padding: 3px\r
+               6px; } .heavy { font-weight: bold; font-family: Tahoma,Arial,serif; } .ir { font-weight: bold; font-family: Tahoma,Arial,serif; text-color: green; }\r
+               .details { padding: 5px; line-height: 1.5em; font-size: 10px; } .relevant { padding: 8px; font-size: 10px; } .rhl { color: #E53935; font-weight: bold; }\r
+\r
+               .z-row:hover > .z-row-inner, .z-row:hover > .z-cell { background: none; } .z-row:hover>.z-row-inner>.z-row-content{ text-color: black; }\r
+\r
+               .RED100 { border-color: #FFCDD2; }\r
+\r
+               .RED100 .z-toolbarbutton-content { background: #FFCDD2; }\r
+\r
+               .RED200 .z-toolbarbutton-content { background: #EF9A9A; border-color: #EF9A9A;; }\r
+\r
+               .BROWN100 .z-toolbarbutton-content { background: #D7CCC8; border-color: #D7CCC8; }\r
+\r
+               .YELLOW200 .z-toolbarbutton-content { background: #FFF59D; }\r
+\r
+               .INDIGO100 .z-toolbarbutton-content { background: #C5CAE9; }\r
+\r
+               .INDIGO200 .z-toolbarbutton-content { background: #9FA8DA; }\r
+\r
+               .BLUE100 .z-toolbarbutton-content { background: #BBDEFB; }\r
+\r
+               .BLUE200 .z-toolbarbutton-content { background: #90CAF9; }\r
+\r
+               .TEAL100 .z-toolbarbutton-content { background: #B2DFDB; }\r
+\r
+               .TEAL200 .z-toolbarbutton-content { background: #80CBC4; }\r
+\r
+               .z-toolbarbutton-content { text-shadow: none; background: transparent; border: 1px solid transparent; border-radius: 3px; margin: 1px; }\r
+\r
+               .toolbar { padding:1px; background:none; border:0px; }\r
+\r
+               .typefilter{ font-size:9px; padding:0px; margin:0px; background: none; }\r
+\r
+               .z-toolbarbutton:hover { background:transparent; }\r
+\r
+               .ie8 .z-toolbarbutton:active { background:transparent; }\r
+\r
+               .ie8 .z-toolbarbutton-checked { background:transparent; }\r
+\r
+               .z-toolbarbutton { border-width: 2px; }\r
+\r
+               .z-toolbarbutton-checked { border: 2px solid #808080; }\r
+\r
+               .type-inlist { width:80px; border-left:1px solid #008AC8; border-bottom:1px solid #008AC8; padding:4px; }\r
+\r
+               .buttonMetadata{ float: right; margin: 5px; width: 200px; }\r
 \r
        </style>\r
        <div id="scdiv" width="100%" height="100%" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('user.jobengine.zk.model.SearchModel')">\r
@@ -159,16 +74,14 @@ div.z-row-content span {
                                                                <vlayout>\r
                                                                        <toolbar class="toolbar">\r
                                                                                <forEach items="@load(vm.topTypeFilterNames)">\r
-                                                                                       <toolbarbutton label="@load(each)" mode="toggle"\r
-                                                                                               image="@load(c:cat('/img/types/', vm.typeFilters[each].icon))" \r
+                                                                                       <toolbarbutton label="@load(each)" mode="toggle" image="@load(c:cat('/img/types/', vm.typeFilters[each].icon))"\r
                                                                                                checked="@bind(vm.typeFilters[each].checked) @validator(vm.allFilterCheckedValidator)"\r
                                                                                                class="@load(c:cat(vm.typeFilters[each].color, ' typefilter'))" />\r
                                                                                </forEach>\r
                                                                        </toolbar>\r
                                                                        <toolbar class="toolbar">\r
                                                                                <forEach items="@load(vm.bottomTypeFilterNames)">\r
-                                                                                       <toolbarbutton label="@load(each)" mode="toggle"\r
-                                                                                               image="@load(c:cat('/img/types/', vm.typeFilters[each].icon))" \r
+                                                                                       <toolbarbutton label="@load(each)" mode="toggle" image="@load(c:cat('/img/types/', vm.typeFilters[each].icon))"\r
                                                                                                checked="@bind(vm.typeFilters[each].checked) @validator(vm.allFilterCheckedValidator)"\r
                                                                                                class="@load(c:cat(vm.typeFilters[each].color, ' typefilter'))" />\r
                                                                                </forEach>\r
@@ -187,12 +100,11 @@ div.z-row-content span {
                                                        <radiogroup>\r
                                                                <radio label="Gyűjtő cím" />\r
                                                        </radiogroup>\r
-                                               </vlayout>                                                  \r
-                                       </popup>                                                \r
+                                               </vlayout>\r
+                                       </popup>\r
                                        <groupbox vflex="true" closable="false">\r
                                                <grid id="itemsGrid" sizedByContent="false" span="true" vflex="true" hflex="true" mold="paging" autopaging="false"\r
-                                                       model="@load(vm.searchResult)" activePage="@bind(vm.activePage)" emptyMessage="Nincs találat!"\r
-                                                       onAfterRender="@command('onPaging')" pageSize="50"\r
+                                                       model="@load(vm.searchResult)" activePage="@bind(vm.activePage)" emptyMessage="Nincs találat!" onAfterRender="@command('onPaging')" pageSize="50"\r
                                                        style="border: none; background: white !important;" oddRowSclass="listbox-odd-style">\r
                                                        <columns>\r
                                                                <column hflex="min">\r
@@ -205,17 +117,17 @@ div.z-row-content span {
                                                                <column label="Cím" sort="auto" align="left" />\r
                                                                <column label="Fájlnév" sort="auto" hflex="min" align="left" />\r
                                                                <column label="Hossz" sort="auto" hflex="min" align="right" />\r
-<!--                                                           <column width="20px" align="right" style="cursor: pointer" popup="sortOther" /> -->\r
+                                                               <!--                                                            <column width="20px" align="right" style="cursor: pointer" popup="sortOther" /> -->\r
                                                        </columns>\r
-                                                       <rows id="rows" style="cursor: pointer;" >\r
+                                                       <rows id="rows" style="cursor: pointer;">\r
                                                                <template name="model">\r
-                                                                       <row onClick="@command('selectMediaArchive', selectedObject=each)" onMouseOver="@Command('rowMouseOver', evt=event)" onMouseOut="@Command('rowMouseOut', evt=event)"\r
-                                                                       style="background: none;">\r
+                                                                       <row onClick="@command('selectMediaArchive', selectedObject=each)" onMouseOver="@Command('rowMouseOver', evt=event)"\r
+                                                                               onMouseOut="@Command('rowMouseOut', evt=event)" style="background: none;">\r
                                                                                <detail open="@load(vm.rowsExpanded)">\r
                                                                                        <hlayout style="border-bottom: 1px solid #ebebeb; width: 100%;">\r
-                                                                                               <image tooltiptext="Kattints a lejátszáshoz!" width="140px" height="90px" \r
-                                                                                               sclass="myimg" content="@load(each.media.poster) @converter('user.jobengine.zk.model.ByToImageConverter')" \r
-                                                                                               onClick="@command('selectMediaArchive', selectedObject=each)" />\r
+                                                                                               <image tooltiptext="Kattints a lejátszáshoz!" width="140px" height="90px" sclass="myimg"\r
+                                                                                                       content="@load(each.media.poster) @converter('user.jobengine.zk.model.ByToImageConverter')"\r
+                                                                                                       onClick="@command('selectMediaArchive', selectedObject=each)" />\r
                                                                                                <div sclass="details">\r
                                                                                                        <hlayout>\r
                                                                                                                <div class="RED100 type-inlist">\r
@@ -224,13 +136,13 @@ div.z-row-content span {
                                                                                                                <label style="font:20px Century Gothic; color:#008AC8;" value="@load(each.item.title)" />\r
                                                                                                        </hlayout>\r
                                                                                                        <html sclass="relevant">\r
-                                                                                                       <![CDATA[\r
-                                                                                                           <div style='width: 90%'>${each.relevant}</div>\r
-                                                                                                       ]]>\r
-                                                                                                       </html>                                                                                                 \r
+                                                                                                               \r
+                                                                                                               <![CDATA[ <div style='width: 90%'>${each.relevant}</div> ]]>\r
+                                                                                                               \r
+                                                                                                       </html>\r
                                                                                                </div>\r
                                                                                        </hlayout>\r
-                                                                               </detail>\r
+                                                                               </detail>\r
                                                                                <checkbox checked="@save(vm.itemSelected) @validator(vm.itemSelectedValidator, arg=each)" />\r
                                                                                <label value="@load(each.media.houseId)" />\r
                                                                                <label value="@load(each.media.title)" />\r
@@ -238,19 +150,18 @@ div.z-row-content span {
                                                                                <cell>\r
                                                                                        <vlayout>\r
                                                                                                <hlayout>\r
-                                                                                                       <label style="font-size:14px" value="@load(each.media.length) @converter('user.jobengine.zk.model.TCConverter')" />\r
+                                                                                                       <label style="font-size:14px"\r
+                                                                                                               value="@load(each.media.length) @converter('user.jobengine.zk.model.TCConverter')" />\r
                                                                                                        <image src="/img/ic_visibility_black_18dp.png" style="margin-left:4px;margin-top:2px;vertical-align:top;">\r
-                                                                                                               <attribute name="visible" if="${each.media.mediaFilesCount lt 2}">\r
-                                                                                                                       false\r
-                                                                                                               </attribute>                                            \r
+                                                                                                               <attribute name="visible" if="${each.media.mediaFilesCount lt 2}">false</attribute>\r
                                                                                                        </image>\r
-                                                                                                       <image src="/img/ic_visibility_off_black_18dp.png" style="margin-left:4px;margin-top:2px;vertical-align:top;">\r
-                                                                                                               <attribute name="visible" if="${each.media.mediaFilesCount gt 1}">\r
-                                                                                                                       false\r
-                                                                                                               </attribute>                                            \r
+                                                                                                       <image src="/img/ic_visibility_off_black_18dp.png"\r
+                                                                                                               style="margin-left:4px;margin-top:2px;vertical-align:top;">\r
+                                                                                                               <attribute name="visible" if="${each.media.mediaFilesCount gt 1}">false</attribute>\r
                                                                                                        </image>\r
                                                                                                </hlayout>\r
-                                                                                               <label style="font-size: 10px;" value="@load(each.media.archived) @converter('user.jobengine.zk.model.ShortDateConverter')" />\r
+                                                                                               <label style="font-size: 10px;"\r
+                                                                                                       value="@load(each.media.archived) @converter('user.jobengine.zk.model.ShortDateConverter')" />\r
                                                                                        </vlayout>\r
                                                                                </cell>\r
                                                                        </row>\r
@@ -275,10 +186,12 @@ div.z-row-content span {
                                        <center border="none">\r
 \r
                                                <groupbox closable="false" mold="3d" width="100%" height="100%">\r
-                                                       <caption>\r
+                                                       <div width="100%">\r
                                                                <button label="Kosárba" onClick="@command('downloadMedia')" autodisable="self" disabled="@load(not vm.hasTSMMediaFile)"\r
                                                                        sclass="buttonboldfont" />\r
-                                                       </caption>\r
+                                                               <button id="metadataButton" sclass="buttonMetadata" label="Szerkesztés" onClick="@command('openMetaDataDialog')" \r
+                                                                       autodisable="self" disabled="@load(not sessionScope.userPrincipal.editor or sessionScope.userPrincipal.anonymous or vm.selectedObject eq null)" />\r
+                                                       </div>\r
 \r
                                                        <div width="100%" height="100%" style="padding: 4px; overflow:auto; background-color: white">\r
                                                                <div>\r
index bca2cb24ea97f9a0ce909eb323281f8b80c5b5c4..385777d91c7f1ae8714990b80ce953e0e08886cd 100644 (file)
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
-<window id="wnd" title="Anyag életút" width="900px" sizable="true" border="normal" apply="org.zkoss.bind.BindComposer"\r
+<window id="wnd" title="Anyag életút" width="900px" height="600px" sizable="true" border="normal" apply="org.zkoss.bind.BindComposer"\r
        viewModel="@id('vm') @init('user.jobengine.zk.model.StatisticsDetailsModel')" forward="onCancel=closeButton.onClick">\r
-       <hlayout height="450px">\r
-               <grid id="grid" sizedByContent="true" model="@load(vm.events)" vflex="true" hflex="true" style="border: none; background: #e3e3e3 !important;">\r
-                       <columns sizable="true">\r
-                               <column forEach="${vm.columnList}" label="${each}"></column>\r
-                       </columns>\r
-                       <rows id="rows">\r
-                               <template name="model" var="r">\r
-                                       <row>\r
-                                               <label forEach="${vm.columnList}" value="${r.get(each)}" >\r
-                                                       <attribute name="style" if="${vm.isSelected(r)}">\r
-                                                               font-weight: bold;\r
-                                                       </attribute>                                            \r
-                                                       <attribute name="style" if="${each eq 'Tag'}">\r
-                                                               background: ${r.get('Color')};\r
-                                                       </attribute>                                            \r
-                                               </label>\r
-                                       </row>\r
-                               </template>\r
-                       </rows>\r
-               </grid>\r
-       </hlayout>\r
-       <hbox width="100%" height="40px" pack="center" align="center">\r
-               <button id="closeButton" label="Bezár" onClick="@command('close')" />\r
-       </hbox>\r
+       <vlayout height="100%">\r
+               <div vflex="10">\r
+                       <grid id="grid" sizedByContent="true" model="@load(vm.events)" vflex="true" hflex="true" style="border: none; background: #e3e3e3 !important;">\r
+                               <columns sizable="true">\r
+                                       <column forEach="${vm.columnList}" label="${each}"></column>\r
+                               </columns>\r
+                               <rows id="rows">\r
+                                       <template name="model" var="r">\r
+                                               <row>\r
+                                                       <label forEach="${vm.columnList}" value="${r.get(each)}">\r
+                                                               <attribute name="style" if="${vm.isSelected(r)}">font-weight: bold;</attribute>\r
+                                                               <attribute name="style" if="${each eq 'Tag'}">background: ${r.get('Color')};</attribute>\r
+                                                       </label>\r
+                                               </row>\r
+                                       </template>\r
+                               </rows>\r
+                       </grid>\r
+               </div>\r
+               <div vflex="min">\r
+                       <hbox width="100%" height="40px" pack="center" align="center">\r
+                               <button id="closeButton" label="Bezár" onClick="@command('close')" />\r
+                       </hbox>\r
+               </div>\r
+       </vlayout>\r
 </window>\r
diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MetadataDetailsModel.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MetadataDetailsModel.java
new file mode 100644 (file)
index 0000000..96b454d
--- /dev/null
@@ -0,0 +1,85 @@
+package user.jobengine.zk.model;\r
+\r
+import java.util.List;\r
+import java.util.ListIterator;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.zkoss.bind.annotation.AfterCompose;\r
+import org.zkoss.bind.annotation.Command;\r
+import org.zkoss.bind.annotation.ContextParam;\r
+import org.zkoss.bind.annotation.ContextType;\r
+import org.zkoss.bind.annotation.Init;\r
+import org.zkoss.zk.ui.Component;\r
+import org.zkoss.zk.ui.Executions;\r
+import org.zkoss.zk.ui.select.Selectors;\r
+import org.zkoss.zk.ui.select.annotation.Wire;\r
+import org.zkoss.zul.ListModelList;\r
+import org.zkoss.zul.Window;\r
+\r
+import user.jobengine.db.ArchivedMedia;\r
+import user.jobengine.db.ItemManager;\r
+import user.jobengine.db.ItemType;\r
+\r
+public class MetadataDetailsModel extends BaseModel {\r
+       private static final Logger logger = LogManager.getLogger();\r
+\r
+       @Wire("#window")\r
+       private Window wnd;\r
+       public ArchivedMedia archivedMedia;\r
+       private List<ItemType> itemTypes;\r
+\r
+       @AfterCompose\r
+       public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {\r
+               Selectors.wireComponents(view, this, false);\r
+               Selectors.wireEventListeners(view, this);\r
+               archivedMedia = (ArchivedMedia) Executions.getCurrent().getArg().get("selectedObject");\r
+               itemTypes = ItemManager.getInstance().getItemTypes();\r
+               ListIterator<ItemType> iterator = itemTypes.listIterator();\r
+               while (iterator.hasNext()) {\r
+                       ItemType itemType = iterator.next();\r
+                       if (itemType.getName().equals("Generic") || itemType.getName().equals("Default")) {\r
+                               iterator.remove();\r
+                       } else if (itemType.getId() == archivedMedia.getMedia().getItemTypeId()) {\r
+                               iterator.remove();\r
+                               iterator.add(archivedMedia.getMedia().getItemType());\r
+                       }\r
+               }\r
+       }\r
+\r
+       @Command\r
+       public void close() {\r
+               wnd.detach();\r
+       }\r
+\r
+       public ArchivedMedia getArchivedMedia() {\r
+               return archivedMedia;\r
+       }\r
+\r
+       public List<ItemType> getItemTypes() {\r
+               return itemTypes;\r
+       }\r
+\r
+       // @Listen("onAfterRender = #mediatypes")\r
+       // public void onAfterRender(Event event) {\r
+       // mediatypesCombobox.setSelectedIndex(getItemTypes().indexOf(archivedMedia.getMedia().getItemType()));\r
+       // }\r
+\r
+       @Init\r
+       public void init() {\r
+       }\r
+\r
+       @Command\r
+       public void save() {\r
+               wnd.detach();\r
+       }\r
+\r
+       public void setArchivedMedia(ArchivedMedia archivedMedia) {\r
+               this.archivedMedia = archivedMedia;\r
+       }\r
+\r
+       public void setItemTypes(ListModelList<ItemType> itemTypes) {\r
+               this.itemTypes = itemTypes;\r
+       }\r
+\r
+}
\ No newline at end of file
index c4c7045c2425203938e56321ce7b49dcb98e6f0f..26a10251b995a0dcde3b30d869e7b74d2e8c3713 100644 (file)
@@ -19,6 +19,7 @@ import org.zkoss.bind.annotation.ContextParam;
 import org.zkoss.bind.annotation.ContextType;\r
 import org.zkoss.bind.annotation.NotifyChange;\r
 import org.zkoss.zk.ui.Component;\r
+import org.zkoss.zk.ui.Executions;\r
 import org.zkoss.zk.ui.event.Event;\r
 import org.zkoss.zk.ui.event.MouseEvent;\r
 import org.zkoss.zk.ui.event.SortEvent;\r
@@ -32,7 +33,9 @@ import org.zkoss.zul.Hlayout;
 import org.zkoss.zul.Messagebox;\r
 import org.zkoss.zul.Row;\r
 import org.zkoss.zul.Rows;\r
+import org.zkoss.zul.Window;\r
 \r
+import user.commons.ListUtils;\r
 import user.commons.StoreUri;\r
 import user.commons.remotestore.RemoteStoreProtocol;\r
 import user.jobengine.db.ArchivedMedia;\r
@@ -109,7 +112,7 @@ public class SearchModel extends AsyncBaseModel {
                                        TypeFilter typeFilter = (TypeFilter) ctx.getProperty().getBase();\r
                                        boolean isChecked = (boolean) ctx.getProperty().getValue();\r
                                        typeFilter.setChecked(isChecked);\r
-                                       //logger.info("{} {}", label, isChecked);\r
+                                       // logger.info("{} {}", label, isChecked);\r
                                } catch (Exception e) {\r
 \r
                                }\r
@@ -184,10 +187,10 @@ public class SearchModel extends AsyncBaseModel {
        public void downloadMedia() {\r
                if (!getHasTSMMediaFile())\r
                        return;\r
-               //              Map<String, Object> arguments = new HashMap<String, Object>();\r
-               //              arguments.put(MEDIACUBEMEDIA, this.selectedObject.getMedia());\r
-               //              Window window = (Window) Executions.createComponents(PAGES_RETRIEVESELECTOR_ZUL, null, arguments);\r
-               //              window.doModal();\r
+               // Map<String, Object> arguments = new HashMap<String, Object>();\r
+               // arguments.put(MEDIACUBEMEDIA, this.selectedObject.getMedia());\r
+               // Window window = (Window) Executions.createComponents(PAGES_RETRIEVESELECTOR_ZUL, null, arguments);\r
+               // window.doModal();\r
 \r
                MenuModel model = (MenuModel) SessionUtil.getAttribute(SessionUtil.MENUMODEL);\r
                model.selectArchivedMedia(this.selectedObject, true);\r
@@ -355,8 +358,15 @@ public class SearchModel extends AsyncBaseModel {
 \r
        @Command\r
        public void onPaging() {\r
-               //              if (rows != null)\r
-               //                      Clients.scrollIntoView(rows);\r
+               // if (rows != null)\r
+               // Clients.scrollIntoView(rows);\r
+       }\r
+\r
+       @Command\r
+       public void openMetaDataDialog() {\r
+               String template = "/pages/metadatadetails.zul";\r
+               Window window = (Window) Executions.createComponents(template, null, ListUtils.asMap("selectedObject", selectedObject));\r
+               window.doModal();\r
        }\r
 \r
        @Command\r
@@ -364,7 +374,7 @@ public class SearchModel extends AsyncBaseModel {
                logger.info(event);\r
        }\r
 \r
-       //      public void rowSelected(@BindingParam("item") Object media, @BindingParam("isChecked") boolean isChecked) {\r
+       // public void rowSelected(@BindingParam("item") Object media, @BindingParam("isChecked") boolean isChecked) {\r
        @Command\r
        public void rowMouseOver(@BindingParam("evt") MouseEvent event) {\r
                logger.info(event);\r
@@ -395,7 +405,7 @@ public class SearchModel extends AsyncBaseModel {
 \r
        public void setAllSelected(boolean allSelected) {\r
                this.allSelected = allSelected;\r
-               //itemsGrid.renderAll();\r
+               // itemsGrid.renderAll();\r
                List<Component> components = itemsGrid.getRows().getChildren();\r
                for (Component obj : components) {\r
                        Row row = (Row) obj;\r