For me this Frontend should be as clean as possible. On Chefkochs gfx there is too much information at once imho. Especially if this should be usable on Tablets/Smartphones as well... So I would prefer a Wizard type of UI. As normally no one will change lots of mixed media items at once. First only list available items in Chefs "Main menu" section together with the filter options (in gfx it's 1 and 2). Then, if the user selected one (filtered) menu item, results are listed on the whole page This would be part 3 of gfx but on next page. There a multi select should, could be done with the result displayed on next page. To easily switch between those pages a "breadcrumb" on top (similar to MP2 top menu) could be implemented...How should our webfrontend look like?
To be hones, I don't think this EditMediaItems plugin makes much sense on a tablet. This was the reason why I included the option to have some apps of our frontent only for specific client types. Having grids with maybe 20k or 50k items to edit them on a touch device is probably not really what you want to do. In any case we would need a considerably different UI for such type of function on a touch device than on a computer with mouse and keyboard...Especially if this should be usable on Tablets/Smartphones as well...
But anyway I completely agree with this one. Nevertheless, in sencha's frameworks it is no problem to change e.g. area 3 of chef's sketch from being part of the main page to being a separate overlay. Area 3 would just be a panel with some components on it and you can put this panel including all of its components wherever you want: dock it on the right side, make it a "movable window", display it on a separate page or just open it as modal overlay as soon as someone double clicks on a MediaItem in the main page. So this can easily be changed as we like it - as soon as we have the area3-panel as such working...For me this Frontend should be as clean as possible
I don't think there is a breadcrumb component in sencha. But what we can do is just open another tab in the main-tab-panel. Have a look at the sencha docs (just google for "sencha docs"). They are made using sencha extjs and quite similar to what I am trying here...To easily switch between those pages a "breadcrumb" on top (similar to MP2 top menu) could be implemented...
And there we hit the problem: we don't do DB queries. We query objects in order to make our frontend independent from the database used. So while MediaItemAspects on the database level are relationships of the MediaItem table to other tables, in object form they are nested objects. This makes it a little bit more complicated, but IMO it is worth the effort because I don't want to have to change our frontend everytime someone changes from SQLCE to SQLite or MySQL as database backend on the server. Furthermore it would be bad design if we just circumvent the provided API (i.e. the MediaLibrary) to access the database directly, because we may decide to change the Medialibrary in the future and completely change the database layout without changing the MediaLibrary's API. If we do so, a frontend using the MediaLirbary's API would still work as expected, while a frontend directly accessing the database would just be broken.it is a pretty simple task to make a DB query
IMHO it makes a lot of sense especially as long as we can't correct DB errors from within the MP2 GUI itself. I'm sitting on my sofa using MP2 on big screen, browsing through my series collection and suddenly I see a cyrillic Series poster (in fact there are lots of them on my collection). Now I grab my phone and correct this without the need to leave MP2 at all...To be hones, I don't think this EditMediaItems plugin makes much sense on a tablet.
Maybe I don't fully understand but the API delivers Data to the WebFrontend, right? Then this is in principle the same functionality as a direct DB query in my understanding. That's what I meant.... The frontend queries Data from the API and from that the List/Grid could be dynamically generated. So the API "simply" delivers all Data, leave the rest to the frontend. No need to access DB directly for that...we don't do DB queries.
I've just started this. It will take a while until I can do something with Sencha but I think it's possible to me...Have a look at the sencha docs
It might be useful to add an option to disable this. (For example MPExtended shouldn't run on a different port without the user explicitely instructing to do so, since (s)he then needs to change the client configuration.)I will extend the ASPNETWebStackPlugin so that it checks whether the requested port for a server is already used and if so, try the next following ports until it finds an available port. The server will then start on the next free port, which is returned to the caller.
Curious. While it's certainly unusual and a bit harder to use, JSON parsers shouldn't have a problem with it.But all the Json parsers I found so far (including the one in extjs) expect every object in an array of objects to have the same internal structure, i.e. the same properties just with different values.
Along other reasons, XML easily uses 30% more bandwidth to transfer the same data than JSON.one question: why do you use jason at all? Isn't xml much better for this? As far as I know you could just use DOM to parse your elements and get everything like you could do it with HTML code
ok, convinced - but I have now clue how you want to store a poster locally on your phone to upload to MPAnywhere. But doesn't matter - we'll figure that out...I'm sitting on my sofa using MP2 on big screen, browsing through my series collection and suddenly I see a cyrillic Series poster (in fact there are lots of them on my collection). Now I grab my phone and correct this without the need to leave MP2 at all...
That's in general correct. The difference is that when you query a db, the result is a table with just rows and columns - exactly the structure you need to display in a grid view, list view, etc. Every row has exactly the same fields (field = intersections between a row and a column). When we directly query our MediaItems here, we get an array (i.e. a list) of MediaItems. One MediaItem is like a row in a table. But you don't have simple columns. The MediaItems are quite complex objects with nested maps, etc. I already simplified the objects a lot before we get the Json structure above. But it seems, we have to simplify further. I still have to think about it, but I will certainly share my thought here...Maybe I don't fully understand but the API delivers Data to the WebFrontend, right? Then this is in principle the same functionality as a direct DB query in my understanding. That's what I meant.... The frontend queries Data from the API and from that the List/Grid could be dynamically generated. So the API "simply" delivers all Data, leave the rest to the frontend. No need to access DB directly for that...
This would really be great! As mentioned, when I find more time, I'll post everything I learned so far about sencha here, which is relevant for this project.I've just started this. It will take a while until I can do something with Sencha but I think it's possible to me...
Noted - will be included. Thanks! I'm just wondering whether it is better to not start a service at all instead of starting it on a different port.It might be useful to add an option to disable this. (For example MPExtended shouldn't run on a different port without the user explicitely instructing to do so, since (s)he then needs to change the client configuration.)
Sorry, I wasn't precise here. The Json parser of course is perfectly fine with out objects. However, all the components of sencha touch and extjs are based on the MVC pattern. And if you make use of the included model objects, you can easily hook them up to the respective view components such as grids, list views, etc. These model objects (and store objects, proxy-objects, reader-objects) do all the dirty stuff, it looks really easy. The only problem is that they expect "normalized objects", which we don't have, yet. I can easily point the Json-reader to an array of objects in another object, hook the reader to a proxy, the proxy to a store and the store to a grid. Just a few lines of code and it looks as if it took years to develop it - amazing. But only, if the array only contains objects of the same type.urious. While it's certainly unusual and a bit harder to use, JSON parsers shouldn't have a problem with it.