MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
Nightingale Forums - Help with issue #225

Nightingale Forums

Full Version: Help with issue #225
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Hey guys, again another issue in progress.

Link on GITHUB: Issue #225

Link of my working tree:

Current picture of progresss:

Things to do:
  • More comments to better explain some of the loops
  • Remove unecessary new lines
  • Look to implement indexOf() as opposed to having multiple chain for loops to do comparisons. Could be a speed thing.
  • currently the code has two seperate places where you can hide/unhide elements i the window. Need to move the hiding/unhiding of elements to a seperate function that can then be called when needed. This reduces the amount of redudant code. The new function should be able to take in a user's string property list, the default list of all row elements loaded on the window. The menuitems checked state should also be handled here, thus it would require the list of menuitems adding a third parameter. The checkItem() function already hides the row elements according to the the users string property list.
  • as opposed to using the already existing preference to determine if the item is audio/video, you can simplyy get it by a string using something like item.sbproperty(read some of the comments by Dirk)

Things done:
  • After the constructors parses through the users preference there is an issue where the menu items are not properly checked/unchecked.
  • When you hide the 'File Location' property, it leaves behind a small button. The button is actually what is used to trigger an open dialog box for the 'File Location' property. This could either be automatically built in, or it is another element that is created with an ID that can be removed/hidden when the user does not want to view this property.
  • after I assign the JSON string to a preference and covert it back to a javascript array, the constructor can't seem to load the converted array.
  • Figure out where to store the string preferences as a json value
  • Create a new parameter for what ever function is in charge of loading the metadata dialog, in order to have separate arrays to hold properties selected by the user for videos and music. Need to track down where the metadata dialog window is being called from (when the users right-clicks and selects it, find out where that is being triggered. I remember doing a search in the codebase for "isVideo" (thanks to rsjtdrjgfuzkfg)
  • When calling the constructor for the advance tab some of the elements are improperly being tagged with ID and Class name that are the same, thus creating duplicate attribute values for elements and not properly distinguishing between the two different attributes (ID and Class)
  • Advanced tab is enabled for videos.
  • Remove the string that is calling our onMenupopupHidden function from the constructor as this could possibly lead to a security hole. Instead there should be another way to trigger the function call. Right now creating a DOM Listener is the best option (thanks to rsjtdrjgfuzkfg)
  • Change the current menu label value to "" = "Advanced" as a string.
  • Create an array from the currently checked items in the menupopup. This is triggered when the menupopup window closes.
  • Implement a way for the TrackEditorAdvancedTab() function to take in an array as a parameter, that will will used to populate a custom list of tags the user wants displayed in the advanced tab.
  • Properly display the names of the propertyID's in the menupopup. Solved using propInfo.displayName. It turns the ugly URLS "http://song/blah/blah/#track" to "Track" Wink
  • Implement a way to reload the advance Tab once changes have been made. Right now I'm looking at loading all the items and hiding them according if they are not on the checked items list.
  • Fix the weird scrolling situation when the menupopup is active. Right now it scrolls the window behind it, causing this funky things to happen.
  • Change the alignment of the menu to the right(thanks to freaktechnik for pointing out the "flex" attribute to allow you to use the "align" attribute properly).

Things that should be happening when testing:

When editing metadata for a media item, the advanced tab should now be enabled by default. The advanced tab should have a menu bar at the top that the user can click and check tag properties that the user wants displayed in the tab.

Thanks for all suggestions/help!

For the reference: I added some gitHub comments.
I'm having a hard time finding out where this is implemented in the code.

My idea would be to implement something similar in the advance tab. I think that some sort of drop down box, and a menu that displays the tags in this format would give the power users an advantage to best control what tags they want displayed inside the advanced tab.

We would also need to agree on what we would consider the "default options," i.e., the default tag fields that are selected. Or we can just scratch the option to "Restore Defaults," and have all of the show up, and then force the user to uncheck the ones he doesn't want. (which is nice, but might be a pain for some users the first time they go to edit a song Wink)

I have sort of already modified the code to be able to take in an array of properties to display in the advance tab. However, there needs to be a lot more planning before getting down to some actual implementation. I would need to find a way to store this array so that we can use it later, for example if the user closes the metadata editor and opens it back up, it would be intuitive to make sure his selections were saved. The next thing is that I have to implement a way for the advance tab to refresh every time that the user either check/unchecks one of the properties in the menu.

What are your guys thoughts?
(01-10-2014, 01:17 PM)luisgmarine Wrote: [ -> ]I'm having a hard time finding out where this is implemented in the code.

From just looking over the code, I think it's this binding. Which is cool, as you could reuse it... If not, try searching through the playlist.xml binding, since that's where the columns come from.
Thanks, I was able to find it in playlist.xml, or at least the place where the action of right click is called. Which is actually what I want because then I can figure out how it goes about building that menu.
updated the main post to reflect all current changes, including a picture of the current progress. Wrote everything into small problems to make it easier for myself to track what I'm doing. School starts soon and I don't want to loose where I am.
Just updated everything and pushed a commit to my branch. Please check it out and let me know what you guys think.
What about maybe splitting up the list of attributes that populates the menupopup, into two distinct buttons and menupopups. One set will contain all tags that are read-only, and the other set will contain all tags that are editable.
updated the current picture in the work in progress. My working branch should also be cleaner and only displaying one commit for easy viewing. Let me know what you guys think.
(01-18-2014, 02:36 PM)luisgmarine Wrote: [ -> ]Let me know what you guys think.

I added some notes to the commit on gitHub.
Pages: 1 2