Reorganized the UI/xml part to better handle next steps
This commit is contained in:
+6
-4
@@ -17,16 +17,18 @@ lms_images_DATA = \
|
||||
docroot/images/unknown-artist.jpg
|
||||
|
||||
lms_approot_DATA = \
|
||||
approot/artists.xml \
|
||||
approot/admin-database.xml \
|
||||
approot/admin-wizard.xml \
|
||||
approot/artist.xml \
|
||||
approot/artists.xml \
|
||||
approot/explore.xml \
|
||||
approot/home.xml \
|
||||
approot/login.xml \
|
||||
approot/mediaplayer.xml \
|
||||
approot/messages.xml \
|
||||
approot/playqueue.xml \
|
||||
approot/releases.xml \
|
||||
approot/release.xml \
|
||||
approot/settings-database.xml \
|
||||
approot/settings-admin-wizard.xml \
|
||||
approot/releases.xml \
|
||||
approot/templates.xml \
|
||||
approot/tracks.xml
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<messages xmlns:if="Wt.WTemplate.conditions">
|
||||
<!--FORMS message blocks-->
|
||||
|
||||
<message id="template-settings-database">
|
||||
<legend>${tr:msg-settings-database}</legend>
|
||||
<message id="Lms.Admin.Database.template">
|
||||
<legend>${tr:Lms.Admin.Database.database}</legend>
|
||||
<div class="form-horizontal">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:media-directory}">
|
||||
${tr:msg-settings-media-directory}
|
||||
${tr:Lms.Admin.Database.path}
|
||||
</label>
|
||||
<div class="col-sm-5">
|
||||
${media-directory}
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:update-period}">
|
||||
${tr:msg-settings-update-period}
|
||||
${tr:Lms.Admin.Database.update-period}
|
||||
</label>
|
||||
<div class="col-sm-5">
|
||||
${update-period}
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:update-start-time}">
|
||||
${tr:msg-settings-update-start-time}
|
||||
${tr:Lms.Admin.Database.update-start-time}
|
||||
</label>
|
||||
<div class="col-sm-5">
|
||||
${update-start-time}
|
||||
@@ -3,15 +3,15 @@
|
||||
<messages xmlns:if="Wt.WTemplate.conditions">
|
||||
<!--FORMS message blocks-->
|
||||
|
||||
<message id="template-settings-admin-wizard">
|
||||
<message id="Lms.AdminWizard.template">
|
||||
<div class="container">
|
||||
<div class="page-header">
|
||||
<h2>${tr:msg-settings-admin-account}</h2>
|
||||
<h2>${tr:Lms.AdminWizard.header}</h2>
|
||||
</div>
|
||||
<div class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:admin-login}">
|
||||
${tr:msg-login}
|
||||
${tr:Lms.login}
|
||||
</label>
|
||||
<div class="col-sm-5">
|
||||
${admin-login}
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:password}">
|
||||
${tr:msg-password}
|
||||
${tr:Lms.password}
|
||||
</label>
|
||||
<div class="col-sm-5">
|
||||
${password}
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:password-confirm}">
|
||||
${tr:msg-password-confirm}
|
||||
${tr:Lms.password-confirm}
|
||||
</label>
|
||||
<div class="col-sm-5">
|
||||
${password-confirm}
|
||||
+6
-6
@@ -2,15 +2,15 @@
|
||||
<messages xmlns:if="Wt.WTemplate.conditions">
|
||||
<!--FORMS message blocks-->
|
||||
|
||||
<message id="btn-artist-play-btn">
|
||||
<message id="Lms.Explore.Artist.play">
|
||||
<i class="fa fa-play"></i>
|
||||
</message>
|
||||
|
||||
<message id="btn-artist-add-btn">
|
||||
<message id="Lms.Explore.Artist.add">
|
||||
<i class="fa fa-plus"></i>
|
||||
</message>
|
||||
|
||||
<message id="template-artist">
|
||||
<message id="Lms.Explore.Artist.template">
|
||||
<div class="page-header">
|
||||
<h2>${name}</h2>
|
||||
${clusters}
|
||||
@@ -19,11 +19,11 @@
|
||||
${releases class="list-group"}
|
||||
</message>
|
||||
|
||||
<message id="template-artist-cluster-entry">
|
||||
<message id="Lms.Explore.Artist.template.cluster-entry">
|
||||
<span class="badge">${name}</span>
|
||||
</message>
|
||||
|
||||
<message id="template-artist-entry">
|
||||
<message id="Lms.Explore.Artist.template.entry">
|
||||
<div class="media list-group-item">
|
||||
<div class="pull-left media-middle">
|
||||
${cover class="media-object"}
|
||||
@@ -31,7 +31,7 @@
|
||||
<div class="media-body">
|
||||
<h4 class="media-heading">${name}</h4>
|
||||
</div>
|
||||
${<if-has-various-artists>}${tr:msg-various-artists}${</if-has-various-artists>}
|
||||
${<if-has-various-artists>}${tr:Lms.Explore.various-artists}${</if-has-various-artists>}
|
||||
<h4>${<if-has-year>}${year}${</if-has-year>}${<if-has-orig-year>} (${orig-year})${</if-has-orig-year>}</h4>
|
||||
${play-btn}${add-btn}
|
||||
</div>
|
||||
|
||||
+3
-3
@@ -2,9 +2,9 @@
|
||||
<messages xmlns:if="Wt.WTemplate.conditions">
|
||||
<!--FORMS message blocks-->
|
||||
|
||||
<message id="template-artists">
|
||||
<message id="Lms.Explore.Artists.template">
|
||||
<div class="page-header">
|
||||
<h2>${tr:msg-artists}</h2>
|
||||
<h2>${tr:Lms.Explore.artists}</h2>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
@@ -16,7 +16,7 @@
|
||||
${show-more}
|
||||
</message>
|
||||
|
||||
<message id="template-artists-entry">
|
||||
<message id="Lms.Explore.Artists.template.entry">
|
||||
<div class="list-group-item">
|
||||
<span class="badge">${nb-release}</span>
|
||||
${name}
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<messages xmlns:if="Wt.WTemplate.conditions">
|
||||
|
||||
<message id="Lms.Explore.template">
|
||||
${filters}
|
||||
${contents}
|
||||
</message>
|
||||
|
||||
<message id="Lms.Explore.template.show-more">
|
||||
${tr:Lms.Explore.show-more}
|
||||
</message>
|
||||
|
||||
<message id="Lms.Explore.template.filters">
|
||||
<div class="form-group">
|
||||
${add-filter}${filters}
|
||||
</div>
|
||||
</message>
|
||||
|
||||
<message id="Lms.Explore.template.add-filter">
|
||||
<div class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:type}">
|
||||
${tr:Lms.Explore.type}
|
||||
</label>
|
||||
<div class="col-sm-10">
|
||||
${type}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:value}">
|
||||
${tr:Lms.Explore.value}
|
||||
</label>
|
||||
<div class="col-sm-10">
|
||||
${value}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
${add-btn class="btn-primary"} ${cancel-btn}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</message>
|
||||
|
||||
</messages>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<messages xmlns:if="Wt.WTemplate.conditions">
|
||||
|
||||
<message id="Lms.Home.template">
|
||||
${tr:Lms.Home.welcome}
|
||||
</message>
|
||||
|
||||
</messages>
|
||||
|
||||
+5
-5
@@ -2,15 +2,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<messages xmlns:if="Wt.WTemplate.conditions">
|
||||
|
||||
<message id="template-login">
|
||||
<message id="Lms.Auth.template">
|
||||
<div class="container">
|
||||
<div class="page-header">
|
||||
<h2>${tr:msg-login-welcome}</h2>
|
||||
<h2>${tr:Lms.Auth.welcome}</h2>
|
||||
</div>
|
||||
<div class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:user-name}">
|
||||
${tr:msg-login}
|
||||
${tr:Lms.login}
|
||||
</label>
|
||||
<div class="col-sm-5">
|
||||
${user-name}
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:password}">
|
||||
${tr:msg-password}
|
||||
${tr:Lms.password}
|
||||
</label>
|
||||
<div class="col-sm-5">
|
||||
${password}
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:remember-me}">
|
||||
${tr:msg-remember-me}
|
||||
${tr:Lms.Auth.remember-me}
|
||||
</label>
|
||||
<div class="col-sm-5">
|
||||
${remember-me}
|
||||
|
||||
+49
-41
@@ -1,54 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<messages xmlns:if="Wt.WTemplate.conditions">
|
||||
<!--FORMS message blocks-->
|
||||
|
||||
<!--Common-->
|
||||
<message id="Lms.add">Add</message>
|
||||
<message id="Lms.apply">Apply</message>
|
||||
<message id="Lms.discard">Discard</message>
|
||||
<message id="Lms.administration">Administration</message>
|
||||
<message id="Lms.cancel">Cancel</message>
|
||||
<message id="Lms.create">Create</message>
|
||||
<message id="Lms.login">Login</message>
|
||||
<message id="Lms.logout">Logout</message>
|
||||
<message id="Lms.not-a-directory">Not a directory</message>
|
||||
<message id="Lms.password">Password</message>
|
||||
<message id="Lms.password-confirm">Confirm password</message>
|
||||
<message id="Lms.playqueue">Play Queue</message>
|
||||
<message id="Lms.quit-confirm">Are you sure?</message>
|
||||
<message id="Lms.settings">Settings</message>
|
||||
|
||||
<!--Administration-->
|
||||
<message id="Lms.Admin.Database.daily">Daily</message>
|
||||
<message id="Lms.Admin.Database.database">Database</message>
|
||||
<message id="Lms.Admin.Database.immediate-scan">Scan now!</message>
|
||||
<message id="Lms.Admin.Database.monthly">Monthly</message>
|
||||
<message id="Lms.Admin.Database.never">Never</message>
|
||||
<message id="Lms.Admin.Database.path">Media root directory</message>
|
||||
<message id="Lms.Admin.Database.scan-complete">Scan complete: {1} total files, {2} additions, {3} deletions, {4} duplicates, {5} errors</message>
|
||||
<message id="Lms.Admin.Database.scan-launched">Scan launched!</message>
|
||||
<message id="Lms.Admin.Database.settings-saved">New settings saved!</message>
|
||||
<message id="Lms.Admin.Database.update-period">Update period</message>
|
||||
<message id="Lms.Admin.Database.update-start-time">Update start time</message>
|
||||
<message id="Lms.Admin.Database.weekly">Weekly</message>
|
||||
|
||||
|
||||
<message id="msg-home-welcome"><h2>Welcome!</h2></message>
|
||||
<!--Admin Wizard-->
|
||||
<message id="Lms.AdminWizard.done">Administration account created. Please refresh to continue!</message>
|
||||
<message id="Lms.AdminWizard.header">Create administrator account</message>
|
||||
|
||||
<message id="msg-various-artists">Various artists</message>
|
||||
<message id="msg-artists">Artists</message>
|
||||
<message id="msg-releases">Albums</message>
|
||||
<message id="msg-tracks">Tracks</message>
|
||||
<message id="msg-playqueue">Play Queue</message>
|
||||
<message id="msg-filter-add">Add filter</message>
|
||||
<message id="msg-search-placeholder">Search...</message>
|
||||
<!--Auth-->
|
||||
<message id="Lms.Auth.remember-me">Remember me</message>
|
||||
<message id="Lms.Auth.welcome">Welcome!</message>
|
||||
|
||||
<message id="msg-add">Add</message>
|
||||
<message id="msg-cancel">Cancel</message>
|
||||
<!--Home-->
|
||||
<message id="Lms.Home.welcome"><h2>Welcome!</h2></message>
|
||||
|
||||
<message id="msg-filter-type">Type</message>
|
||||
<message id="msg-filter-value">Value</message>
|
||||
<!--Explore-->
|
||||
<message id="Lms.Explore.add-filter">Add filter</message>
|
||||
<message id="Lms.Explore.artists">Artists</message>
|
||||
<message id="Lms.Explore.releases">Albums</message>
|
||||
<message id="Lms.Explore.search-placeholder">Search...</message>
|
||||
<message id="Lms.Explore.show-more">Show more</message>
|
||||
<message id="Lms.Explore.tracks">Tracks</message>
|
||||
<message id="Lms.Explore.type">Type</message>
|
||||
<message id="Lms.Explore.value">Value</message>
|
||||
<message id="Lms.Explore.various-artists">Various artists</message>
|
||||
|
||||
<message id="msg-show-more">Show more</message>
|
||||
|
||||
<message id="msg-login">Login</message>
|
||||
<message id="msg-password">Password</message>
|
||||
<message id="msg-password-confirm">Verify password</message>
|
||||
<message id="msg-create">Create</message>
|
||||
|
||||
<message id="msg-remember-me">Remember me</message>
|
||||
<message id="msg-login-welcome">Welcome!</message>
|
||||
<message id="msg-logout">Logout</message>
|
||||
<!--Settings-->
|
||||
|
||||
<message id="msg-settings-admin-account">Administrator account</message>
|
||||
<message id="msg-settings-first-connection-done">Account created. Please refresh to continue!</message>
|
||||
|
||||
<message id="msg-settings">Settings</message>
|
||||
<message id="msg-settings-database">Database</message>
|
||||
<message id="msg-settings-media-directory">Media root directory</message>
|
||||
<message id="msg-settings-update-period">Update period</message>
|
||||
<message id="msg-settings-update-start-time">Update start time</message>
|
||||
<message id="msg-settings-update-start-time">Update start time</message>
|
||||
<message id="msg-update-period-never">Never</message>
|
||||
<message id="msg-update-period-daily">Daily</message>
|
||||
<message id="msg-update-period-weekly">Weekly</message>
|
||||
<message id="msg-update-period-monthly">Monthly</message>
|
||||
<message id="msg-error-not-a-directory">Not a directory</message>
|
||||
<message id="msg-btn-apply">Apply</message>
|
||||
<message id="msg-btn-discard">Discard</message>
|
||||
<message id="msg-btn-immediate-scan">Scan now!</message>
|
||||
<message id="msg-notify-scan-launched">Scan launched!</message>
|
||||
<message id="msg-notify-settings-saved">New settings saved!</message>
|
||||
<message id="msg-notify-scan-complete">Scan complete: {1} total files, {2} additions, {3} deletions, {4} duplicates, {5} errors</message>
|
||||
|
||||
</messages>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
<message id="template-playqueue">
|
||||
<div class="page-header">
|
||||
<h2>${tr:msg-playqueue}</h2>
|
||||
<h2>${tr:Lms.playqueue}</h2>
|
||||
${save-btn} ${load-btn} ${clear-btn}
|
||||
</div>
|
||||
${entries}
|
||||
|
||||
+5
-5
@@ -2,15 +2,15 @@
|
||||
<messages xmlns:if="Wt.WTemplate.conditions">
|
||||
<!--FORMS message blocks-->
|
||||
|
||||
<message id="btn-release-play-btn">
|
||||
<message id="Lms.Explore.Release.play">
|
||||
<i class="fa fa-play"></i>
|
||||
</message>
|
||||
|
||||
<message id="btn-release-add-btn">
|
||||
<message id="Lms.Explore.Release.add">
|
||||
<i class="fa fa-plus"></i>
|
||||
</message>
|
||||
|
||||
<message id="template-release">
|
||||
<message id="Lms.Explore.Release.template">
|
||||
${cover}
|
||||
<div class="page-header">
|
||||
<h2>${name}</h2>
|
||||
@@ -22,11 +22,11 @@
|
||||
${tracks}
|
||||
</message>
|
||||
|
||||
<message id="template-release-cluster-entry">
|
||||
<message id="Lms.Explore.Release.template.cluster-entry">
|
||||
<span class="badge">${name}</span>
|
||||
</message>
|
||||
|
||||
<message id="template-release-entry">
|
||||
<message id="Lms.Explore.Release.template.entry">
|
||||
${<if-has-disc-number>}${disc-number}-${</if-has-disc-number>}${<if-has-track-number>}${track-number}. ${</if-has-track-number>}
|
||||
${<if-has-artist>}${artist-name} - ${</if-has-artist>}
|
||||
${name}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<messages xmlns:if="Wt.WTemplate.conditions">
|
||||
<!--FORMS message blocks-->
|
||||
|
||||
<message id="template-releases">
|
||||
<message id="Lms.Explore.Releases.template">
|
||||
<div class="page-header">
|
||||
<h2>${tr:msg-releases}</h2>
|
||||
<h2>${tr:Lms.Explore.releases}</h2>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
@@ -17,15 +16,15 @@
|
||||
${show-more}
|
||||
</message>
|
||||
|
||||
<message id="btn-releases-play-btn">
|
||||
<message id="Lms.Explore.Releases.play">
|
||||
<i class="fa fa-play"></i>
|
||||
</message>
|
||||
|
||||
<message id="btn-releases-add-btn">
|
||||
<message id="Lms.Explore.Releases.add">
|
||||
<i class="fa fa-plus"></i>
|
||||
</message>
|
||||
|
||||
<message id="template-releases-entry">
|
||||
<message id="Lms.Explore.Releases.template.entry">
|
||||
<div class="media list-group-item">
|
||||
<div class="pull-left media-middle">
|
||||
${cover class="media-object"}
|
||||
|
||||
+1
-47
@@ -1,56 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<messages xmlns:if="Wt.WTemplate.conditions">
|
||||
<!--FORMS message blocks-->
|
||||
|
||||
<message id="template-main">
|
||||
<message id="Lms.template">
|
||||
${navbar-top class="main-nav"}
|
||||
${contents class="container"}
|
||||
${player}
|
||||
</message>
|
||||
|
||||
<message id="template-home">
|
||||
${tr:msg-home-welcome}
|
||||
</message>
|
||||
|
||||
<message id="template-explore">
|
||||
${filters}
|
||||
${contents}
|
||||
</message>
|
||||
|
||||
<message id="template-show-more">
|
||||
${tr:msg-show-more}
|
||||
</message>
|
||||
|
||||
<message id="template-filters">
|
||||
<div class="form-group">
|
||||
${add-filter}${filters}
|
||||
</div>
|
||||
</message>
|
||||
|
||||
<message id="template-filter-add">
|
||||
<div class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:type}">
|
||||
${tr:msg-filter-type}
|
||||
</label>
|
||||
<div class="col-sm-10">
|
||||
${type}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2" for="${id:value}">
|
||||
${tr:msg-filter-value}
|
||||
</label>
|
||||
<div class="col-sm-10">
|
||||
${value}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
${add class="btn-primary"} ${cancel}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</message>
|
||||
|
||||
</messages>
|
||||
|
||||
+5
-5
@@ -3,9 +3,9 @@
|
||||
<messages xmlns:if="Wt.WTemplate.conditions">
|
||||
<!--FORMS message blocks-->
|
||||
|
||||
<message id="template-tracks">
|
||||
<message id="Lms.Explore.Tracks.template">
|
||||
<div class="page-header">
|
||||
<h2>${tr:msg-tracks}</h2>
|
||||
<h2>${tr:Lms.Explore.tracks}</h2>
|
||||
${play-btn}${add-btn}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -18,15 +18,15 @@
|
||||
${show-more}
|
||||
</message>
|
||||
|
||||
<message id="btn-tracks-play-btn">
|
||||
<message id="Lms.Explore.Tracks.play">
|
||||
<i class="fa fa-play"></i>
|
||||
</message>
|
||||
|
||||
<message id="btn-tracks-add-btn">
|
||||
<message id="Lms.Explore.Tracks.add">
|
||||
<i class="fa fa-plus"></i>
|
||||
</message>
|
||||
|
||||
<message id="template-tracks-entry">
|
||||
<message id="Lms.Explore.Tracks.template.entry">
|
||||
<div class="media list-group-item">
|
||||
<div class="pull-left media-middle">
|
||||
${cover class="media-object"}
|
||||
|
||||
+11
-11
@@ -21,26 +21,26 @@ lms_SOURCES = \
|
||||
$(srcdir)/metadata/AvFormat.cpp \
|
||||
$(srcdir)/metadata/TagLibParser.cpp \
|
||||
$(srcdir)/scanner/MediaScanner.cpp \
|
||||
$(srcdir)/ui/ArtistView.cpp \
|
||||
$(srcdir)/ui/ArtistsView.cpp \
|
||||
$(srcdir)/ui/Explore.cpp \
|
||||
$(srcdir)/ui/Filters.cpp \
|
||||
$(srcdir)/ui/explore/ArtistView.cpp \
|
||||
$(srcdir)/ui/explore/ArtistsView.cpp \
|
||||
$(srcdir)/ui/explore/Explore.cpp \
|
||||
$(srcdir)/ui/explore/Filters.cpp \
|
||||
$(srcdir)/ui/explore/ReleasesView.cpp \
|
||||
$(srcdir)/ui/explore/ReleaseView.cpp \
|
||||
$(srcdir)/ui/explore/TracksView.cpp \
|
||||
$(srcdir)/ui/Auth.cpp \
|
||||
$(srcdir)/ui/HomeView.cpp \
|
||||
$(srcdir)/ui/LmsApplication.cpp \
|
||||
$(srcdir)/ui/Auth.cpp \
|
||||
$(srcdir)/ui/MediaPlayer.cpp \
|
||||
$(srcdir)/ui/PlayQueueView.cpp \
|
||||
$(srcdir)/ui/ReleasesView.cpp \
|
||||
$(srcdir)/ui/ReleaseView.cpp \
|
||||
$(srcdir)/ui/TracksView.cpp \
|
||||
$(srcdir)/ui/common/Validators.cpp \
|
||||
$(srcdir)/ui/admin/DatabaseSettingsView.cpp \
|
||||
$(srcdir)/ui/admin/AdminWizardView.cpp \
|
||||
$(srcdir)/ui/common/InputRange.cpp \
|
||||
$(srcdir)/ui/common/LineEdit.cpp \
|
||||
$(srcdir)/ui/common/Validators.cpp \
|
||||
$(srcdir)/ui/resource/AvConvTranscodeStreamResource.cpp \
|
||||
$(srcdir)/ui/resource/ImageResource.cpp \
|
||||
$(srcdir)/ui/resource/TranscodeResource.cpp \
|
||||
$(srcdir)/ui/settings/DatabaseSettingsView.cpp \
|
||||
$(srcdir)/ui/settings/AdminWizardView.cpp \
|
||||
$(srcdir)/utils/Config.cpp \
|
||||
$(srcdir)/utils/Logger.cpp \
|
||||
$(srcdir)/utils/Path.cpp \
|
||||
|
||||
+2
-2
@@ -38,7 +38,7 @@ Auth::Auth(Wt::WContainerWidget *parent)
|
||||
|
||||
_model->addPasswordAuth(&Database::Handler::getPasswordService());
|
||||
|
||||
setTemplateText(Wt::WString::tr("template-login"));
|
||||
setTemplateText(Wt::WString::tr("Lms.Auth.template"));
|
||||
addFunction("tr", &WTemplate::Functions::tr);
|
||||
addFunction("id", &WTemplate::Functions::id);
|
||||
|
||||
@@ -55,7 +55,7 @@ Auth::Auth(Wt::WContainerWidget *parent)
|
||||
auto rememberMe = new Wt::WCheckBox();
|
||||
setFormWidget(Wt::Auth::AuthModel::RememberMeField, rememberMe);
|
||||
|
||||
auto loginBtn = new Wt::WPushButton(Wt::WString::tr("msg-login"));
|
||||
auto loginBtn = new Wt::WPushButton(Wt::WString::tr("Lms.login"));
|
||||
bindWidget("login-btn", loginBtn);
|
||||
loginBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ namespace UserInterface {
|
||||
Home::Home(Wt::WContainerWidget *parent)
|
||||
: Wt::WContainerWidget(parent)
|
||||
{
|
||||
auto t = new Wt::WTemplate(Wt::WString::tr("template-home"), this);
|
||||
auto t = new Wt::WTemplate(Wt::WString::tr("Lms.Home.template"), this);
|
||||
t->addFunction("tr", &Wt::WTemplate::Functions::tr);
|
||||
|
||||
}
|
||||
|
||||
+36
-22
@@ -31,13 +31,13 @@
|
||||
#include "utils/Logger.hpp"
|
||||
#include "utils/Utils.hpp"
|
||||
|
||||
#include "Explore.hpp"
|
||||
#include "explore/Explore.hpp"
|
||||
#include "HomeView.hpp"
|
||||
#include "MediaPlayer.hpp"
|
||||
#include "PlayQueueView.hpp"
|
||||
|
||||
#include "settings/DatabaseSettingsView.hpp"
|
||||
#include "settings/AdminWizardView.hpp"
|
||||
#include "admin/DatabaseSettingsView.hpp"
|
||||
#include "admin/AdminWizardView.hpp"
|
||||
|
||||
#include "LmsApplication.hpp"
|
||||
|
||||
@@ -81,16 +81,18 @@ LmsApplication::LmsApplication(const Wt::WEnvironment& env, Wt::Dbo::SqlConnecti
|
||||
useStyleSheet("resources/font-awesome/css/font-awesome.min.css");
|
||||
|
||||
// Add a resource bundle
|
||||
messageResourceBundle().use(appRoot() + "admin-database");
|
||||
messageResourceBundle().use(appRoot() + "admin-wizard");
|
||||
messageResourceBundle().use(appRoot() + "artist");
|
||||
messageResourceBundle().use(appRoot() + "artists");
|
||||
messageResourceBundle().use(appRoot() + "home");
|
||||
messageResourceBundle().use(appRoot() + "explore");
|
||||
messageResourceBundle().use(appRoot() + "login");
|
||||
messageResourceBundle().use(appRoot() + "mediaplayer");
|
||||
messageResourceBundle().use(appRoot() + "messages");
|
||||
messageResourceBundle().use(appRoot() + "playqueue");
|
||||
messageResourceBundle().use(appRoot() + "release");
|
||||
messageResourceBundle().use(appRoot() + "releases");
|
||||
messageResourceBundle().use(appRoot() + "settings-database");
|
||||
messageResourceBundle().use(appRoot() + "settings-admin-wizard");
|
||||
messageResourceBundle().use(appRoot() + "tracks");
|
||||
messageResourceBundle().use(appRoot() + "templates");
|
||||
|
||||
@@ -183,7 +185,7 @@ enum IdxRoot
|
||||
IdxHome = 0,
|
||||
IdxExplore,
|
||||
IdxPlayQueue,
|
||||
IdxSettingsDatabase,
|
||||
IdxAdminDatabase,
|
||||
};
|
||||
|
||||
static void
|
||||
@@ -198,7 +200,7 @@ handlePathChange(Wt::WStackedWidget* stack)
|
||||
{ "/release", IdxExplore },
|
||||
{ "/tracks", IdxExplore },
|
||||
{ "/playqueue", IdxPlayQueue },
|
||||
{ "/settings/database", IdxSettingsDatabase },
|
||||
{ "/admin/database", IdxAdminDatabase },
|
||||
};
|
||||
|
||||
LMS_LOG(UI, DEBUG) << "Internal path changed to '" << wApp->internalPath() << "'";
|
||||
@@ -231,9 +233,9 @@ LmsApplication::handleAuthEvent(void)
|
||||
_imageResource = new ImageResource(_db, root());
|
||||
_transcodeResource = new TranscodeResource(_db, root());
|
||||
|
||||
setConfirmCloseMessage(Wt::WString::tr("msg-quit-confirm"));
|
||||
setConfirmCloseMessage(Wt::WString::tr("Lms.quit-confirm"));
|
||||
|
||||
auto main = new Wt::WTemplate(Wt::WString::tr("template-main"), root());
|
||||
auto main = new Wt::WTemplate(Wt::WString::tr("Lms.template"), root());
|
||||
|
||||
// Navbar
|
||||
auto navbar = new Wt::WNavigationBar();
|
||||
@@ -244,42 +246,54 @@ LmsApplication::handleAuthEvent(void)
|
||||
|
||||
auto menu = new Wt::WMenu();
|
||||
{
|
||||
auto menuItem = menu->insertItem(0, Wt::WString::tr("msg-artists"));
|
||||
auto menuItem = menu->insertItem(0, Wt::WString::tr("Lms.Explore.artists"));
|
||||
menuItem->setLink(Wt::WLink(Wt::WLink::InternalPath, "/artists"));
|
||||
menuItem->setSelectable(false);
|
||||
}
|
||||
{
|
||||
auto menuItem = menu->insertItem(1, Wt::WString::tr("msg-releases"));
|
||||
auto menuItem = menu->insertItem(1, Wt::WString::tr("Lms.Explore.releases"));
|
||||
menuItem->setLink(Wt::WLink(Wt::WLink::InternalPath, "/releases"));
|
||||
menuItem->setSelectable(false);
|
||||
}
|
||||
{
|
||||
auto menuItem = menu->insertItem(2, Wt::WString::tr("msg-tracks"));
|
||||
auto menuItem = menu->insertItem(2, Wt::WString::tr("Lms.Explore.tracks"));
|
||||
menuItem->setLink(Wt::WLink(Wt::WLink::InternalPath, "/tracks"));
|
||||
menuItem->setSelectable(false);
|
||||
}
|
||||
{
|
||||
auto menuItem = menu->insertItem(3, Wt::WString::tr("msg-playqueue"));
|
||||
auto menuItem = menu->insertItem(3, Wt::WString::tr("Lms.playqueue"));
|
||||
menuItem->setLink(Wt::WLink(Wt::WLink::InternalPath, "/playqueue"));
|
||||
menuItem->setSelectable(false);
|
||||
}
|
||||
navbar->addMenu(menu);
|
||||
|
||||
auto rightMenu = new Wt::WMenu();
|
||||
std::size_t itemCounter = 0;
|
||||
|
||||
{
|
||||
auto menuItem = rightMenu->insertItem(0, Wt::WString::tr("msg-settings"));
|
||||
menuItem->setSelectable(false);
|
||||
Wt::Dbo::Transaction transaction (DboSession());
|
||||
|
||||
Wt::WPopupMenu *settings = new Wt::WPopupMenu();
|
||||
auto dbSettings = settings->insertItem(0, Wt::WString::tr("msg-settings-database"));
|
||||
dbSettings->setLink(Wt::WLink(Wt::WLink::InternalPath, "/settings/database"));
|
||||
dbSettings->setSelectable(false);
|
||||
if (CurrentUser()->isAdmin())
|
||||
{
|
||||
auto menuItem = rightMenu->insertItem(itemCounter++, Wt::WString::tr("Lms.administration"));
|
||||
menuItem->setSelectable(false);
|
||||
|
||||
menuItem->setMenu(settings);
|
||||
Wt::WPopupMenu *admin = new Wt::WPopupMenu();
|
||||
auto dbSettings = admin->insertItem(0, Wt::WString::tr("Lms.Admin.Database.database"));
|
||||
dbSettings->setLink(Wt::WLink(Wt::WLink::InternalPath, "/admin/database"));
|
||||
dbSettings->setSelectable(false);
|
||||
|
||||
menuItem->setMenu(admin);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
auto menuItem = rightMenu->insertItem(1, Wt::WString::tr("msg-logout"));
|
||||
auto menuItem = rightMenu->insertItem(itemCounter++, Wt::WString::tr("Lms.settings"));
|
||||
menuItem->setLink(Wt::WLink(Wt::WLink::InternalPath, "/settings"));
|
||||
menuItem->setSelectable(false);
|
||||
}
|
||||
{
|
||||
auto menuItem = rightMenu->insertItem(itemCounter++, Wt::WString::tr("Lms.logout"));
|
||||
menuItem->setSelectable(true);
|
||||
menuItem->triggered().connect(std::bind([=]
|
||||
{
|
||||
@@ -326,7 +340,7 @@ LmsApplication::handleAuthEvent(void)
|
||||
{
|
||||
Wt::WServer::instance()->post(sessionId, [=]
|
||||
{
|
||||
notify(Wt::WString::tr("msg-notify-scan-complete")
|
||||
notify(Wt::WString::tr("Lms.Admin.Database.scan-complete")
|
||||
.arg(stats.nbFiles())
|
||||
.arg(stats.additions)
|
||||
.arg(stats.deletions)
|
||||
|
||||
@@ -121,7 +121,7 @@ AdminWizardView::AdminWizardView(Wt::WContainerWidget *parent)
|
||||
{
|
||||
auto model = new AdminWizardModel(this);
|
||||
|
||||
setTemplateText(Wt::WString::tr("template-settings-admin-wizard"));
|
||||
setTemplateText(Wt::WString::tr("Lms.AdminWizard.template"));
|
||||
addFunction("tr", &WTemplate::Functions::tr);
|
||||
addFunction("id", &WTemplate::Functions::id);
|
||||
|
||||
@@ -139,7 +139,7 @@ AdminWizardView::AdminWizardView(Wt::WContainerWidget *parent)
|
||||
setFormWidget(AdminWizardModel::PasswordConfirmField, passwordConfirmEdit);
|
||||
passwordConfirmEdit->setEchoMode(Wt::WLineEdit::Password);
|
||||
|
||||
auto saveButton = new Wt::WPushButton(Wt::WString::tr("msg-create"));
|
||||
auto saveButton = new Wt::WPushButton(Wt::WString::tr("Lms.create"));
|
||||
bindWidget("create-btn", saveButton);
|
||||
saveButton->clicked().connect(std::bind([=]
|
||||
{
|
||||
@@ -148,7 +148,7 @@ AdminWizardView::AdminWizardView(Wt::WContainerWidget *parent)
|
||||
if (model->validate())
|
||||
{
|
||||
model->saveData();
|
||||
LmsApp->notify(Wt::WString::tr("msg-settings-first-connection-done"));
|
||||
LmsApp->notify(Wt::WString::tr("Lms.AdminWizard.done"));
|
||||
saveButton->setEnabled(false);
|
||||
}
|
||||
|
||||
@@ -181,16 +181,16 @@ class DatabaseSettingsModel : public Wt::WFormModel
|
||||
|
||||
_updatePeriodModel = new Wt::WStringListModel(this);
|
||||
|
||||
_updatePeriodModel->addString(Wt::WString::tr("msg-update-period-never"));
|
||||
_updatePeriodModel->addString(Wt::WString::tr("Lms.Admin.Database.never"));
|
||||
_updatePeriodModel->setData(0, 0, Scanner::UpdatePeriod::Never, Wt::UserRole);
|
||||
|
||||
_updatePeriodModel->addString(Wt::WString::tr("msg-update-period-daily"));
|
||||
_updatePeriodModel->addString(Wt::WString::tr("Lms.Admin.Database.daily"));
|
||||
_updatePeriodModel->setData(1, 0, Scanner::UpdatePeriod::Daily, Wt::UserRole);
|
||||
|
||||
_updatePeriodModel->addString(Wt::WString::tr("msg-update-period-weekly"));
|
||||
_updatePeriodModel->addString(Wt::WString::tr("Lms.Admin.Database.weekly"));
|
||||
_updatePeriodModel->setData(2, 0, Scanner::UpdatePeriod::Weekly, Wt::UserRole);
|
||||
|
||||
_updatePeriodModel->addString(Wt::WString::tr("msg-update-period-monthly"));
|
||||
_updatePeriodModel->addString(Wt::WString::tr("Lms.Admin.Database.monthly"));
|
||||
_updatePeriodModel->setData(3, 0, Scanner::UpdatePeriod::Monthly, Wt::UserRole);
|
||||
|
||||
_updateStartTimeModel = new Wt::WStringListModel(this);
|
||||
@@ -229,7 +229,7 @@ DatabaseSettingsView::DatabaseSettingsView(Wt::WContainerWidget *parent)
|
||||
{
|
||||
auto model = new DatabaseSettingsModel(this);
|
||||
|
||||
setTemplateText(tr("template-settings-database"));
|
||||
setTemplateText(tr("Lms.Admin.Database.template"));
|
||||
addFunction("tr", &WTemplate::Functions::tr);
|
||||
addFunction("id", &WTemplate::Functions::id);
|
||||
|
||||
@@ -249,13 +249,13 @@ DatabaseSettingsView::DatabaseSettingsView(Wt::WContainerWidget *parent)
|
||||
|
||||
// Buttons
|
||||
|
||||
Wt::WPushButton *saveBtn = new Wt::WPushButton(Wt::WString::tr("msg-btn-apply"));
|
||||
Wt::WPushButton *saveBtn = new Wt::WPushButton(Wt::WString::tr("Lms.apply"));
|
||||
bindWidget("apply-btn", saveBtn);
|
||||
|
||||
Wt::WPushButton *discardBtn = new Wt::WPushButton(Wt::WString::tr("msg-btn-discard"));
|
||||
Wt::WPushButton *discardBtn = new Wt::WPushButton(Wt::WString::tr("Lms.discard"));
|
||||
bindWidget("discard-btn", discardBtn);
|
||||
|
||||
Wt::WPushButton *immScanBtn = new Wt::WPushButton(Wt::WString::tr("msg-btn-immediate-scan"));
|
||||
Wt::WPushButton *immScanBtn = new Wt::WPushButton(Wt::WString::tr("Lms.Admin.Database.immediate-scan"));
|
||||
bindWidget("immediate-scan-btn", immScanBtn);
|
||||
|
||||
saveBtn->clicked().connect(std::bind([=] ()
|
||||
@@ -267,7 +267,7 @@ DatabaseSettingsView::DatabaseSettingsView(Wt::WContainerWidget *parent)
|
||||
model->saveData();
|
||||
|
||||
LmsApp->getMediaScanner().reschedule();
|
||||
LmsApp->notify(Wt::WString::tr("msg-notify-settings-saved"));
|
||||
LmsApp->notify(Wt::WString::tr("Lms.Admin.Database.settings-saved"));
|
||||
}
|
||||
|
||||
// Udate the view: Delete any validation message in the view, etc.
|
||||
@@ -284,7 +284,7 @@ DatabaseSettingsView::DatabaseSettingsView(Wt::WContainerWidget *parent)
|
||||
immScanBtn->clicked().connect(std::bind([=] ()
|
||||
{
|
||||
LmsApp->getMediaScanner().scheduleImmediateScan();
|
||||
LmsApp->notify(Wt::WString::tr("msg-notify-scan-launched"));
|
||||
LmsApp->notify(Wt::WString::tr("Lms.Admin.Database.scan-launched"));
|
||||
}));
|
||||
|
||||
updateView(model);
|
||||
@@ -60,7 +60,7 @@ DirectoryValidator::validate(const Wt::WString& input) const
|
||||
else if (res)
|
||||
return Wt::WValidator::Result(Wt::WValidator::Valid);
|
||||
else
|
||||
return Wt::WValidator::Result(Wt::WValidator::Invalid, Wt::WString::tr("msg-error-not-a-directory"));
|
||||
return Wt::WValidator::Result(Wt::WValidator::Invalid, Wt::WString::tr("Lms.not-a-directory"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ Artist::refresh()
|
||||
return;
|
||||
}
|
||||
|
||||
auto t = new Wt::WTemplate(Wt::WString::tr("template-artist"), this);
|
||||
auto t = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.Artist.template"), this);
|
||||
t->addFunction("tr", &Wt::WTemplate::Functions::tr);
|
||||
|
||||
auto clusterContainers = new Wt::WContainerWidget();
|
||||
@@ -82,7 +82,7 @@ Artist::refresh()
|
||||
|
||||
for (auto cluster : clusters)
|
||||
{
|
||||
auto entry = new Wt::WTemplate(Wt::WString::tr("template-artist-cluster-entry"), clusterContainers);
|
||||
auto entry = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.Artist.template.cluster-entry"), clusterContainers);
|
||||
|
||||
entry->bindString("name", Wt::WString::fromUTF8(cluster->getName()), Wt::PlainText);
|
||||
}
|
||||
@@ -90,7 +90,7 @@ Artist::refresh()
|
||||
|
||||
t->bindString("name", Wt::WString::fromUTF8(artist->getName()), Wt::PlainText);
|
||||
{
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("btn-artist-play-btn"), Wt::XHTMLText);
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Artist.play"), Wt::XHTMLText);
|
||||
t->bindWidget("play-btn", playBtn);
|
||||
|
||||
playBtn->clicked().connect(std::bind([=]
|
||||
@@ -100,7 +100,7 @@ Artist::refresh()
|
||||
}
|
||||
|
||||
{
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("btn-artist-add-btn"), Wt::XHTMLText);
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Artist.add"), Wt::XHTMLText);
|
||||
t->bindWidget("add-btn", addBtn);
|
||||
|
||||
addBtn->clicked().connect(std::bind([=]
|
||||
@@ -117,7 +117,7 @@ Artist::refresh()
|
||||
{
|
||||
auto releaseId = release.id();
|
||||
|
||||
Wt::WTemplate* entry = new Wt::WTemplate(Wt::WString::tr("template-artist-entry"), releasesContainer);
|
||||
Wt::WTemplate* entry = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.Artist.template.entry"), releasesContainer);
|
||||
entry->addFunction("tr", Wt::WTemplate::Functions::tr);
|
||||
|
||||
{
|
||||
@@ -153,14 +153,14 @@ Artist::refresh()
|
||||
}
|
||||
}
|
||||
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("btn-artist-play-btn"), Wt::XHTMLText);
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Artist.play"), Wt::XHTMLText);
|
||||
entry->bindWidget("play-btn", playBtn);
|
||||
playBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
releasePlay.emit(releaseId);
|
||||
}));
|
||||
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("btn-artist-add-btn"), Wt::XHTMLText);
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Artist.add"), Wt::XHTMLText);
|
||||
entry->bindWidget("add-btn", addBtn);
|
||||
addBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
@@ -39,18 +39,18 @@ Artists::Artists(Filters* filters, Wt::WContainerWidget* parent)
|
||||
: Wt::WContainerWidget(parent),
|
||||
_filters(filters)
|
||||
{
|
||||
auto container = new Wt::WTemplate(Wt::WString::tr("template-artists"), this);
|
||||
auto container = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.Artists.template"), this);
|
||||
container->addFunction("tr", &Wt::WTemplate::Functions::tr);
|
||||
|
||||
_search = new Wt::WLineEdit();
|
||||
container->bindWidget("search", _search);
|
||||
_search->setPlaceholderText(Wt::WString::tr("msg-search-placeholder"));
|
||||
_search->setPlaceholderText(Wt::WString::tr("Lms.Explore.search-placeholder"));
|
||||
_search->textInput().connect(this, &Artists::refresh);
|
||||
|
||||
_artistsContainer = new Wt::WContainerWidget();
|
||||
container->bindWidget("artists", _artistsContainer);
|
||||
|
||||
_showMore = new Wt::WTemplate(Wt::WString::tr("template-show-more"));
|
||||
_showMore = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.template.show-more"));
|
||||
_showMore->addFunction("tr", &Wt::WTemplate::Functions::tr);
|
||||
container->bindWidget("show-more", _showMore);
|
||||
|
||||
@@ -88,7 +88,7 @@ Artists::addSome()
|
||||
|
||||
for (auto artist : artists)
|
||||
{
|
||||
Wt::WTemplate* entry = new Wt::WTemplate(Wt::WString::tr("template-artists-entry"), _artistsContainer);
|
||||
Wt::WTemplate* entry = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.Artists.template.entry"), _artistsContainer);
|
||||
|
||||
entry->bindInt("nb-release", artist->getReleases(clusterIds).size());
|
||||
|
||||
@@ -73,7 +73,7 @@ handlePathChange(Wt::WStackedWidget* stack)
|
||||
Explore::Explore(Wt::WContainerWidget* parent)
|
||||
: Wt::WContainerWidget(parent)
|
||||
{
|
||||
auto container = new Wt::WTemplate(Wt::WString::tr("template-explore"), this);
|
||||
auto container = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.template"), this);
|
||||
|
||||
_filters = new Filters();
|
||||
container->bindWidget("filters", _filters);
|
||||
@@ -31,9 +31,9 @@ namespace UserInterface {
|
||||
void
|
||||
Filters::showDialog()
|
||||
{
|
||||
auto dialog = new Wt::WDialog("Go to cell");
|
||||
auto dialog = new Wt::WDialog(Wt::WString::tr("Lms.Explore.add-filter"));
|
||||
|
||||
auto container = new Wt::WTemplate(Wt::WString::tr("template-filter-add"));
|
||||
auto container = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.template.add-filter"));
|
||||
container->addFunction("tr", &Wt::WTemplate::Functions::tr);
|
||||
|
||||
dialog->contents()->addWidget(container);
|
||||
@@ -44,12 +44,12 @@ Filters::showDialog()
|
||||
auto valueCombo = new Wt::WComboBox();
|
||||
container->bindWidget("value", valueCombo);
|
||||
|
||||
auto addBtn = new Wt::WPushButton(Wt::WString::tr("msg-add"));
|
||||
container->bindWidget("add", addBtn);
|
||||
auto addBtn = new Wt::WPushButton(Wt::WString::tr("Lms.add"));
|
||||
container->bindWidget("add-btn", addBtn);
|
||||
addBtn->clicked().connect(dialog, &Wt::WDialog::accept);
|
||||
|
||||
auto cancelBtn = new Wt::WPushButton(Wt::WString::tr("msg-cancel"));
|
||||
container->bindWidget("cancel", cancelBtn);
|
||||
auto cancelBtn = new Wt::WPushButton(Wt::WString::tr("Lms.cancel"));
|
||||
container->bindWidget("cancel-btn", cancelBtn);
|
||||
cancelBtn->clicked().connect(dialog, &Wt::WDialog::reject);
|
||||
|
||||
// Populate data
|
||||
@@ -140,10 +140,10 @@ Filters::showDialog()
|
||||
Filters::Filters(Wt::WContainerWidget *parent)
|
||||
: Wt::WContainerWidget(parent)
|
||||
{
|
||||
auto container = new Wt::WTemplate(Wt::WString::tr("template-filters"), this);
|
||||
auto container = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.template.filters"), this);
|
||||
|
||||
// Filters
|
||||
Wt::WPushButton *addFilterBtn = new Wt::WPushButton(Wt::WText::tr("msg-filter-add"));
|
||||
Wt::WPushButton *addFilterBtn = new Wt::WPushButton(Wt::WText::tr("Lms.Explore.add-filter"));
|
||||
container->bindWidget("add-filter", addFilterBtn);
|
||||
|
||||
_filters = new Wt::WContainerWidget();
|
||||
@@ -72,7 +72,7 @@ Release::refresh()
|
||||
return;
|
||||
}
|
||||
|
||||
auto t = new Wt::WTemplate(Wt::WString::tr("template-release"), this);
|
||||
auto t = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.Release.template"), this);
|
||||
t->addFunction("tr", &Wt::WTemplate::Functions::tr);
|
||||
|
||||
t->bindString("name", Wt::WString::fromUTF8(release->getName()), Wt::PlainText);
|
||||
@@ -95,7 +95,7 @@ Release::refresh()
|
||||
auto artists = release->getArtists();
|
||||
if (artists.size() > 1)
|
||||
{
|
||||
t->bindString("artist-name", Wt::WString::tr("msg-various-artists"));
|
||||
t->bindString("artist-name", Wt::WString::tr("Lms.Explore.various-artists"));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -118,14 +118,14 @@ Release::refresh()
|
||||
|
||||
for (auto cluster : clusters)
|
||||
{
|
||||
auto entry = new Wt::WTemplate(Wt::WString::tr("template-release-cluster-entry"), clusterContainers);
|
||||
auto entry = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.Release.template.cluster-entry"), clusterContainers);
|
||||
|
||||
entry->bindString("name", Wt::WString::fromUTF8(cluster->getName()), Wt::PlainText);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("btn-release-play-btn"), Wt::XHTMLText);
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Release.play"), Wt::XHTMLText);
|
||||
t->bindWidget("play-btn", playBtn);
|
||||
playBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
@@ -134,7 +134,7 @@ Release::refresh()
|
||||
}
|
||||
|
||||
{
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("btn-release-add-btn"), Wt::XHTMLText);
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Release.add"), Wt::XHTMLText);
|
||||
t->bindWidget("add-btn", addBtn);
|
||||
addBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
@@ -154,7 +154,7 @@ Release::refresh()
|
||||
{
|
||||
auto trackId = track.id();
|
||||
|
||||
Wt::WTemplate* entry = new Wt::WTemplate(Wt::WString::tr("template-release-entry"), tracksContainer);
|
||||
Wt::WTemplate* entry = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.Release.template.entry"), tracksContainer);
|
||||
|
||||
entry->bindString("name", Wt::WString::fromUTF8(track->getName()), Wt::PlainText);
|
||||
|
||||
@@ -182,14 +182,14 @@ Release::refresh()
|
||||
entry->bindInt("disc-number", *discNumber);
|
||||
}
|
||||
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("btn-release-play-btn"), Wt::XHTMLText);
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Release.play"), Wt::XHTMLText);
|
||||
entry->bindWidget("play-btn", playBtn);
|
||||
playBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
trackPlay.emit(trackId);
|
||||
}));
|
||||
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("btn-release-add-btn"), Wt::XHTMLText);
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Release.add"), Wt::XHTMLText);
|
||||
entry->bindWidget("add-btn", addBtn);
|
||||
addBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
@@ -40,18 +40,18 @@ Releases::Releases(Filters* filters, Wt::WContainerWidget* parent)
|
||||
: Wt::WContainerWidget(parent),
|
||||
_filters(filters)
|
||||
{
|
||||
auto container = new Wt::WTemplate(Wt::WString::tr("template-releases"), this);
|
||||
auto container = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.Releases.template"), this);
|
||||
container->addFunction("tr", &Wt::WTemplate::Functions::tr);
|
||||
|
||||
_search = new Wt::WLineEdit();
|
||||
container->bindWidget("search", _search);
|
||||
_search->setPlaceholderText(Wt::WString::tr("msg-search-placeholder"));
|
||||
_search->setPlaceholderText(Wt::WString::tr("Lms.Explore.search-placeholder"));
|
||||
_search->textInput().connect(this, &Releases::refresh);
|
||||
|
||||
_releasesContainer = new Wt::WContainerWidget();
|
||||
container->bindWidget("releases", _releasesContainer);
|
||||
|
||||
_showMore = new Wt::WTemplate(Wt::WString::tr("template-show-more"));
|
||||
_showMore = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.show-more"));
|
||||
_showMore->addFunction("tr", &Wt::WTemplate::Functions::tr);
|
||||
container->bindWidget("show-more", _showMore);
|
||||
|
||||
@@ -88,7 +88,7 @@ Releases::addSome()
|
||||
{
|
||||
auto releaseId = release.id();
|
||||
|
||||
Wt::WTemplate* entry = new Wt::WTemplate(Wt::WString::tr("template-releases-entry"), _releasesContainer);
|
||||
Wt::WTemplate* entry = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.Releases.template.entry"), _releasesContainer);
|
||||
entry->addFunction("tr", Wt::WTemplate::Functions::tr);
|
||||
|
||||
Wt::WAnchor* coverAnchor = LmsApplication::createReleaseAnchor(releaseId);
|
||||
@@ -109,7 +109,7 @@ Releases::addSome()
|
||||
auto artists = release->getArtists();
|
||||
if (artists.size() > 1)
|
||||
{
|
||||
entry->bindString("artist-name", Wt::WString::tr("msg-various-artists"));
|
||||
entry->bindString("artist-name", Wt::WString::tr("Lms.Explore.various-artists"));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -119,14 +119,14 @@ Releases::addSome()
|
||||
entry->bindWidget("artist-name", artistAnchor);
|
||||
}
|
||||
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("btn-releases-play-btn"), Wt::XHTMLText);
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Releases.play"), Wt::XHTMLText);
|
||||
entry->bindWidget("play-btn", playBtn);
|
||||
playBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
releasePlay.emit(releaseId);
|
||||
}));
|
||||
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("btn-releases-add-btn"), Wt::XHTMLText);
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Releases.add"), Wt::XHTMLText);
|
||||
entry->bindWidget("add-btn", addBtn);
|
||||
addBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
@@ -134,8 +134,6 @@ Releases::addSome()
|
||||
}));
|
||||
}
|
||||
|
||||
std::cerr << "if-show-more = " << moreResults << "\n";
|
||||
|
||||
_showMore->setHidden(!moreResults);
|
||||
}
|
||||
|
||||
@@ -39,15 +39,15 @@ Tracks::Tracks(Filters* filters, Wt::WContainerWidget* parent)
|
||||
: Wt::WContainerWidget(parent),
|
||||
_filters(filters)
|
||||
{
|
||||
auto container = new Wt::WTemplate(Wt::WString::tr("template-tracks"), this);
|
||||
auto container = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.Tracks.template"), this);
|
||||
container->addFunction("tr", &Wt::WTemplate::Functions::tr);
|
||||
|
||||
_search = new Wt::WLineEdit();
|
||||
container->bindWidget("search", _search);
|
||||
_search->setPlaceholderText(Wt::WString::tr("msg-search-placeholder"));
|
||||
_search->setPlaceholderText(Wt::WString::tr("Lms.Explore.search-placeholder"));
|
||||
_search->textInput().connect(this, &Tracks::refresh);
|
||||
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("btn-tracks-play-btn"), Wt::XHTMLText);
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Tracks.play"), Wt::XHTMLText);
|
||||
container->bindWidget("play-btn", playBtn);
|
||||
playBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
@@ -55,7 +55,7 @@ Tracks::Tracks(Filters* filters, Wt::WContainerWidget* parent)
|
||||
tracksPlay.emit(getTracks());
|
||||
}));
|
||||
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("btn-tracks-add-btn"), Wt::XHTMLText);
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Tracks.add"), Wt::XHTMLText);
|
||||
container->bindWidget("add-btn", addBtn);
|
||||
addBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
@@ -66,7 +66,7 @@ Tracks::Tracks(Filters* filters, Wt::WContainerWidget* parent)
|
||||
_tracksContainer = new Wt::WContainerWidget();
|
||||
container->bindWidget("tracks", _tracksContainer);
|
||||
|
||||
_showMore = new Wt::WTemplate(Wt::WString::tr("template-show-more"));
|
||||
_showMore = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.template.show-more"));
|
||||
_showMore->addFunction("tr", &Wt::WTemplate::Functions::tr);
|
||||
container->bindWidget("show-more", _showMore);
|
||||
|
||||
@@ -116,7 +116,7 @@ Tracks::addSome()
|
||||
for (auto track : tracks)
|
||||
{
|
||||
auto trackId = track.id();
|
||||
Wt::WTemplate* entry = new Wt::WTemplate(Wt::WString::tr("template-tracks-entry"), _tracksContainer);
|
||||
Wt::WTemplate* entry = new Wt::WTemplate(Wt::WString::tr("Lms.Explore.Tracks.template.entry"), _tracksContainer);
|
||||
|
||||
entry->bindString("name", Wt::WString::fromUTF8(track->getName()), Wt::PlainText);
|
||||
|
||||
@@ -146,14 +146,14 @@ Tracks::addSome()
|
||||
cover->setWidth(64);
|
||||
entry->bindWidget("cover", cover);
|
||||
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("btn-tracks-play-btn"), Wt::XHTMLText);
|
||||
auto playBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Tracks.play"), Wt::XHTMLText);
|
||||
entry->bindWidget("play-btn", playBtn);
|
||||
playBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
trackPlay.emit(trackId);
|
||||
}));
|
||||
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("btn-tracks-add-btn"), Wt::XHTMLText);
|
||||
auto addBtn = new Wt::WText(Wt::WString::tr("Lms.Explore.Tracks.add"), Wt::XHTMLText);
|
||||
entry->bindWidget("add-btn", addBtn);
|
||||
addBtn->clicked().connect(std::bind([=]
|
||||
{
|
||||
Reference in New Issue
Block a user