[bug 1194351] Make static HTML localizable

This commit is contained in:
Rehan Dalal 2015-08-24 16:03:09 -04:00
Родитель 9acf866514
Коммит 4840c37c8c
43 изменённых файлов: 532 добавлений и 419 удалений

Просмотреть файл

@ -5,7 +5,7 @@ module.exports = function(grunt) {
nunjucks: {
precompile: {
baseDir: 'app/views/',
src: 'app/views/*',
src: 'app/views/**',
dest: 'app/js/templates.js',
options: {
name: function(filename) {

Просмотреть файл

@ -26,38 +26,10 @@
<script src="js/libs/l10n_date.js" defer></script>
</head>
<body class="skin-organic">
<section role="region" class="vbox fit">
<header>
<a href="index.html" id="close" data-icon="close" data-action="close">
<span class="visuallyhidden">Close</span>
</a>
<h1>Sign In</h1>
</header>
<main id="login_container" class="fit scroll">
<form name="login" class="AuthForm" id="login" method="post">
<p class="AuthForm-description">
An account lets you answer questions, track contributions and receive alerts.
</p>
<ul class="ErrorList ErrorList--auth" id="login_errors"></ul>
<div>
<input type="text" name="username" id="username" placeholder="Username">
<ul class="ErrorList ErrorList--auth ErrorList--field" id="username_errors"></ul>
</div>
<div>
<input type="password" name="password" id="password" placeholder="Password">
<ul class="ErrorList ErrorList--auth ErrorList--field" id="password_errors"></ul>
</div>
<p class="AuthForm-description">
<a class="ForgotPasswordLink" href="password_reset.html" data-modal="true">Forgot your password?</a>
</p>
<button class="recommend" type="submit" form="login">Sign In</button>
<hr>
<a class="bb-button" href="registration.html" data-icon="forward" data-modal="true">Don't have an account? Register</a>
</form>
</main>
</section>
<section role="region" class="vbox fit" data-template="main/authentication.html"></section>
<script src="js/load_translations.js"></script>
<script src="js/i18n.js"></script>
<script src="js/settings.js"></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/libs/async_storage.js"></script>
@ -69,6 +41,7 @@
<script src="js/l10n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/loader.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/sumo_db.js" defer></script>

Просмотреть файл

@ -24,27 +24,15 @@
<script src="js/libs/l10n_date.js" defer></script>
</head>
<body class="skin-organic">
<section role="region">
<header>
<h1>Confirm Account</h1>
</header>
</section>
<main id="email_confimation_container" class="EmailConfirmationMessage fit scroll">
<p>Yay, you're almost done!</p>
<p>
We've sent a welcome email to:
<br /><strong id="success_email"></strong>
</p>
<p>
Click on the link in your email to let us know that it made it to the right place. After that, return to BuddyUp and make other users happy!
</p>
<div class="gaia-footer gaia-footer--pinned">
<button class="danger" id="cancel_button">Cancel Sign Up</button>
</div>
</main>
<div data-template="main/email_confirmation.html"></div>
<script src="js/load_translations.js"></script>
<script src="js/libs/i18n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/libs/nunjucks.js" defer></script>
<script src="js/templates.js" defer></script>
<script src="js/loader.js" defer></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/libs/async_storage.js"></script>

Просмотреть файл

@ -24,39 +24,25 @@
<script src="js/libs/l10n_date.js" defer></script>
</head>
<body class="skin-organic">
<section role="region" class="vbox fit">
<header>
<a href="index.html" class="bb-button" id="close" data-icon="close" data-action="close">
<span class="visuallyhidden">Close</span>
</a>
<h1 id="headline"></h1>
</header>
<main id="helper-profile" class="fit scroll">
<section id="profile-details" class="vbox center ProfileDetails"></section>
<section id="questions" class="hide">
<header>
<h2>Answered Questions</h2>
</header>
</section>
</main>
</section>
<section role="region" class="vbox fit" data-template="main/helper_profile.html"></section>
<script src="js/load_translations.js"></script>
<script src="js/load_translations.js"></script>
<script src="js/i18n.js"></script>
<script src="js/settings.js"></script>
<script src="js/libs/async_storage.js"></script>
<script src="js/libs/lodash.custom.min.js" defer></script>
<script src="js/libs/nunjucks-slim.js" defer></script>
<script src="js/templates.js" defer></script>
<script src="js/nunjucks_env.js" defer></script>
<script src="js/l10n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/loader.js" defer></script>
<script src="js/settings.js"></script>
<script src="js/libs/async_storage.js"></script>
<script src="js/libs/lodash.custom.min.js" defer></script>
<script src="js/libs/nunjucks-slim.js" defer></script>
<script src="js/templates.js" defer></script>
<script src="js/nunjucks_env.js" defer></script>
<script src="js/l10n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/sumo_db.js" defer></script>
<script src="js/error_controller.js" defer></script>
<script src="js/loading_indicator.js" defer></script>
<script src="js/user.js" defer></script>
<script src="js/helper_profile_controller.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/sumo_db.js" defer></script>
<script src="js/error_controller.js" defer></script>
<script src="js/loading_indicator.js" defer></script>
<script src="js/user.js" defer></script>
<script src="js/helper_profile_controller.js" defer></script>
</body>
</html>

Просмотреть файл

@ -25,45 +25,10 @@
<link rel="prefetch" type="application/l10n" href="data/date/date.ini" />
</head>
<body class="skin-organic">
<section role="region" class="vbox fit">
<header>
<menu type="toolbar">
<a href="profile.html" id="settings" class="settings-icon" data-icon="settings" data-modal="true">
<span class="visuallyhidden">Settings</span>
</a>
</menu>
<h1>Support</h1>
</header>
<main class="fit scroll">
<section class="HomeCallout HomeCallout--ask vbox">
<h2 class="HomeCallout-title HomeCallout-shadow">Have Questions?</h2>
<p class="HomeCallout-subtitle HomeCallout-shadow">Get a Buddy to help you with your device</p>
<a href="question.html" class="bb-button HomeCallout-button">Ask a Question</a>
</section>
<section class="HomeCallout HomeCallout--answer vbox">
<h2 class="HomeCallout-title">Have Answers?</h2>
<p class="HomeCallout-subtitle">Help other users around the world</p>
<a href="question_list_helper.html?role=helper" class="bb-button recommend HomeCallout-button">Answer Questions</a>
</section>
<section id="tophelpers" class="user-list hide">
<header>
<h2>Top Helpers this Week</h2>
</header>
</section>
<section id="myquestions" class="questions" data-empty-message="No questions">
<header>
<h2>My Questions</h2>
</header>
</section>
<a id="all_questions_button" href="question_list_helpee.html" class="ListItem hide">
<div class="ListItem-inside li__title" data-icon-after="forward-light" >
All My Questions
</div>
</a>
</main>
</section>
<section role="region" class="vbox fit" data-template="main/home.html"></section>
<script src="js/load_translations.js"></script>
<script src="js/i18n.js"></script>
<script src="js/settings.js"></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/libs/async_storage.js"></script>
@ -76,6 +41,7 @@
<script src="js/l10n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/loader.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/sumo_db.js" defer></script>
@ -83,5 +49,5 @@
<script src="js/loading_indicator.js" defer></script>
<script src="js/home_controller.js" defer></script>
<script src="js/questions_controller.js" defer></script>
</body>
</body>
</html>

Просмотреть файл

@ -9,17 +9,17 @@
<link rel="stylesheet" href="css/windowing.css">
<link rel="stylesheet" href="css/animations.css">
</head>
<body>
<script src="js/settings.js"></script>
<script src="js/utils.js"></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/libs/async_storage.js"></script>
<script src="js/user.js"></script>
<script src="js/sumo_db.js"></script>
<script src="js/notifications.js"></script>
<script src="js/launch_checks.js"></script>
<body>
<script src="js/settings.js"></script>
<script src="js/utils.js"></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/libs/async_storage.js"></script>
<script src="js/user.js"></script>
<script src="js/sumo_db.js"></script>
<script src="js/notifications.js"></script>
<script src="js/launch_checks.js"></script>
<!-- Due to the way navigation.js loads iframes it should be the last file -->
<script src="js/navigation.js"></script>
</body>
<!-- Due to the way navigation.js loads iframes it should be the last file -->
<script src="js/navigation.js"></script>
</body>
</html>

Просмотреть файл

@ -44,6 +44,8 @@
};
exports.AuthenticationController = AuthenticationController;
AuthenticationController.init();
document.addEventListener('initialize', function() {
AuthenticationController.init();
});
})(window);

Просмотреть файл

@ -64,5 +64,8 @@
};
exports.EmailConfirmationController = EmailConfirmationController;
EmailConfirmationController.init();
document.addEventListener('initialize', function() {
EmailConfirmationController.init();
});
})(window);

Просмотреть файл

@ -32,5 +32,8 @@
};
exports.ErrorController = ErrorController;
ErrorController.init();
document.addEventListener('initialize', function() {
ErrorController.init();
});
})(window);

Просмотреть файл

@ -66,5 +66,8 @@
};
exports.HelperProfileController = HelperProfileController;
HelperProfileController.init();
document.addEventListener('initialize', function() {
HelperProfileController.init();
});
})(window);

Просмотреть файл

@ -32,5 +32,8 @@
};
exports.HomeController = HomeController;
HomeController.init();
document.addEventListener('initialize', function() {
HomeController.init();
});
})(window);

23
app/js/i18n.js Normal file
Просмотреть файл

@ -0,0 +1,23 @@
'use strict';
(function(exports) {
exports.gettext = function (msgid) {
return msgid;
};
exports.ngettext = function (singular, plural, count) {
return (count === 1) ? singular : plural;
};
exports.interpolate = function (fmt, obj, named) {
if (named) {
return fmt.replace(/%\(\w+\)s/g, function(match) {
return String(obj[match.slice(2, -2)]);
});
} else {
return fmt.replace(/%s/g, function(match) {
return String(obj.shift());
});
}
};
})(window);

26
app/js/loader.js Normal file
Просмотреть файл

@ -0,0 +1,26 @@
'use strict';
/* global gettext, nunjucks */
(function(exports) {
var Loader = {
init: function() {
var env = new nunjucks.Environment();
env.addGlobal('_', gettext);
var elems = document.querySelectorAll('[data-template]');
for (var i=0; i < elems.length; i++) {
var elem = elems[i];
var html = nunjucks.render(elem.dataset.template);
elem.innerHTML = html;
}
var event = new Event('initialize');
document.dispatchEvent(event);
}
};
exports.Loader = Loader;
Loader.init();
})(window);

Просмотреть файл

@ -41,5 +41,8 @@
};
exports.LoadingIndicator = LoadingIndicator;
LoadingIndicator.init();
document.addEventListener('initialize', function() {
LoadingIndicator.init();
});
})(window);

Просмотреть файл

@ -13,5 +13,8 @@
};
exports.OldVersionsController = OldVersionsController;
OldVersionsController.init();
document.addEventListener('initialize', function() {
OldVersionsController.init();
});
})(window);

Просмотреть файл

@ -34,6 +34,9 @@
};
exports.PasswordResetController = PasswordResetController;
PasswordResetController.init();
document.addEventListener('initialize', function() {
PasswordResetController.init();
});
})(window);

Просмотреть файл

@ -105,6 +105,9 @@
};
exports.ProfileController = ProfileController;
ProfileController.init();
document.addEventListener('initialize', function() {
ProfileController.init();
});
})(window);

Просмотреть файл

@ -558,6 +558,9 @@
}
};
exports.QuestionController = QuestionController;
QuestionController.init();
document.addEventListener('initialize', function() {
QuestionController.init();
});
})(window);

Просмотреть файл

@ -221,6 +221,9 @@
};
exports.QuestionsController = QuestionsController;
QuestionsController.init();
document.addEventListener('initialize', function() {
QuestionsController.init();
});
})(window);

Просмотреть файл

@ -49,6 +49,9 @@
};
exports.RegisterationController = RegistrationController;
RegistrationController.init();
document.addEventListener('initialize', function() {
RegistrationController.init();
});
})(window);

Просмотреть файл

@ -1,7 +1,5 @@
'use strict';
/* global Use */
(function(exports) {
var UnsupportedLocaleController = {
@ -22,5 +20,8 @@
};
exports.UnsupportedLocaleController = UnsupportedLocaleController;
UnsupportedLocaleController.init();
document.addEventListener('initialize', function() {
UnsupportedLocaleController.init();
});
})(window);

Просмотреть файл

@ -21,18 +21,15 @@
<script src="js/libs/l10n.js" defer></script>
</head>
<body class="skin-organic">
<section role="region" class="vbox fit">
<header>
<a href="index.html" class="bb-button" id="back" data-icon="back-light" data-action="back">
<span class="visuallyhidden">Close</span>
</a>
<h1>Help Article</h1>
</header>
<iframe id="kb-view" class="KBFrame">
</iframe>
</section>
<section role="region" class="vbox fit" data-template="main/kb.html"></section>
<script src="js/load_translations.js"></script>
<script src="js/i18n.js" defer></script>
<script src="js/libs/nunjucks.js" defer></script>
<script src="js/templates.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/settings.js"></script>
<script src="js/loader.js"></script>
<script src="js/utils.js"></script>
<script src="js/loading_indicator.js"></script>
<script src="js/kb_controller.js"></script>

Просмотреть файл

@ -23,15 +23,13 @@
<script src="js/libs/l10n_date.js" defer></script>
</head>
<body class="skin-organic">
<form id="unsupported-device" role="dialog" data-type="confirm">
<section>
<h1>Incompatible version</h1>
<p>We're sorry, but BuddyUp can't be installed on your version of Firefox OS. Please close this window to return to your home screen.</p>
</section>
<menu>
<button id="close_button">Close</button>
</menu>
</form>
<form id="unsupported-device" role="dialog" data-type="confirm" data-template="main/old_versions.html"></form>
<script src="js/load_translations.js"></script>
<script src="js/i18n.js"></script>
<script src="js/libs/nunjucks.js" defer></script>
<script src="js/templates.js" defer></script>
<script src="js/loader.js"></script>
<script src="js/old_versions_controller.js"></script>
</body>
</html>

Просмотреть файл

@ -26,54 +26,26 @@
<script src="js/libs/l10n_date.js" defer></script>
</head>
<body class="skin-organic">
<section role="region" class="vbox fit">
<header>
<a href="index.html" id="close" data-icon="close" data-action="close">
<span class="visuallyhidden">Close</span>
</a>
<h1>Reset Password</h1>
</header>
<main id="pw_reset_container" class="vbox fit scroll">
<form class="AuthForm fit" name="pw_reset" id="pw_reset" method="post">
<p class="AuthForm-description">
Forgot your password? Don't worry. Enter your username below and we'll
send you instructions for setting a new one.
</p>
<ul class="ErrorList ErrorList--auth" id="pw_reset_errors"></ul>
<div>
<input type="text" name="username" id="username" placeholder="Username">
</div>
<div class="gaia-footer">
<button class="recommend" type="submit" form="pw_reset">Reset Password</button>
</div>
</form>
<div class="AuthForm fit hide" id="success_message">
<p class="AuthForm-description">
Weve sent you an email. Just follow the link in the email to reset your password.
</p>
<div class="gaia-footer gaia-footer--pinned">
<a href="index.html" class="bb-button recommend" data-action="close">OK</a>
</div>
</div>
</main>
</section>
<section role="region" class="vbox fit" data-template="main/password_reset.html"></section>
<script src="js/load_translations.js"></script>
<script src="js/settings.js"></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/libs/async_storage.js"></script>
<script src="js/user.js" defer></script>
<script src="js/load_translations.js"></script>
<script src="js/i18n.js"></script>
<script src="js/settings.js"></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/libs/async_storage.js"></script>
<script src="js/user.js" defer></script>
<script src="js/libs/nunjucks-slim.js" defer></script>
<script src="js/templates.js" defer></script>
<script src="js/nunjucks_env.js" defer></script>
<script src="js/l10n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/libs/nunjucks-slim.js" defer></script>
<script src="js/templates.js" defer></script>
<script src="js/nunjucks_env.js" defer></script>
<script src="js/l10n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/loader.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/sumo_db.js" defer></script>
<script src="js/error_controller.js" defer></script>
<script src="js/loading_indicator.js" defer></script>
<script src="js/password_reset_controller.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/sumo_db.js" defer></script>
<script src="js/error_controller.js" defer></script>
<script src="js/loading_indicator.js" defer></script>
<script src="js/password_reset_controller.js" defer></script>
</body>
</html>

Просмотреть файл

@ -29,21 +29,10 @@
<script src="js/libs/l10n_date.js" defer></script>
</head>
<body class="skin-organic">
<section role="region" class="vbox fit">
<header>
<a href="index.html" id="close" data-icon="close" data-action="close">
<span class="visuallyhidden">Close</span>
</a>
<menu type="toolbar">
<button type="submit" form="profile">Done</button>
</menu>
<h1>My Profile</h1>
</header>
<main id="my-profile" class="fit scroll"></main>
</section>
<section role="region" class="vbox fit" data-template="main/profile.html"></section>
<script src="js/load_translations.js"></script>
<script src="js/i18n.js"></script>
<script src="js/settings.js"></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/libs/async_storage.js"></script>
@ -52,6 +41,7 @@
<script src="js/nunjucks_env.js" defer></script>
<script src="js/l10n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/loader.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/sumo_db.js" defer></script>
@ -59,5 +49,5 @@
<script src="js/loading_indicator.js" defer></script>
<script src="js/user.js" defer></script>
<script src="js/profile_controller.js" defer></script>
</body>
</body>
</html>

Просмотреть файл

@ -27,75 +27,10 @@
<script src="js/libs/l10n_date.js" defer></script>
</head>
<body class="skin-organic">
<section role="region" class="vbox fit">
<header>
<a href="index.html" id="back" data-icon="back-light" data-action="back">
<span class="visuallyhidden">Close</span>
</a>
<menu type="toolbar">
<a href="profile.html" id="settings" class="settings-icon" data-icon="settings" data-modal="true">
<span class="visuallyhidden">Settings</span>
</a>
</menu>
<h1>My Question</h1>
</header>
<main id="thread-scroll" class="fit scroll">
<section id="thread-introduction" class="StartAskingMessage vbox">
<span>We can help<br>Ask us anything!</span>
</section>
<section id="suggestions" class="hide">
<ul>
</ul>
</section>
<section id="question-thread" class="QuestionThread hide">
<ul id="comment-list" class="vbox"></ul>
</section>
</main>
<footer class="QuestionFooter">
<form id="question_form" class="hbox">
<textarea id="question_field" class="QuestionField" rows="1" placeholder="Write your message&hellip;"></textarea>
<div class="QuestionSubmitButton">
<a href="#" role="button" data-icon="send" id="question_submit_button" class="QuestionSubmitButton-click-area"></a>
</div>
</form>
<div id="sign-in-link" class="SignInLink hide">
<a href="authentication.html" data-modal="true" class="bb-button recommend">Sign in to reply</a>
</div>
</footer>
</section>
<form id="first_question_help" role="dialog" data-type="confirm" class="hide">
<section>
<h1>Thank you for your question!</h1>
<p>You'll get a notification as soon as a Buddy jumps in to the rescue.</p>
</section>
<menu>
<button id="confirm" class="recommend">OK</button>
</menu>
</form>
<form id="already_taken" role="dialog" data-type="confirm" class="hide">
<section>
<h1>Previously Answered</h1>
<p>Another helper has answered this question, please choose another.</p>
</section>
<menu>
<button class="recommend">OK</button>
</menu>
</form>
<form id="confirm_solve" role="dialog" data-type="confirm" class="hide">
<section>
<h1>Has your question been solved?</h1>
<p>This will close the question and let your buddy know you no longer need help.</p>
</section>
<menu>
<button>Cancel</button>
<button class="recommend">Ok</button>
</menu>
</form>
<div data-template="main/question.html"></div>
<script src="js/load_translations.js"></script>
<script src="js/i18n.js"></script>
<script src="js/settings.js"></script>
<script src="js/libs/async_storage.js" defer></script>
<script src="js/libs/nunjucks-slim.js" defer></script>
@ -104,6 +39,7 @@
<script src="js/nunjucks_env.js" defer></script>
<script src="js/l10n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/loader.js" defer></script>
<script src="js/mobile_operator.js" defer></script>
<script src="js/utils.js" defer></script>

Просмотреть файл

@ -24,24 +24,10 @@
<script src="js/libs/l10n_date.js" defer></script>
</head>
<body class="skin-organic">
<section role="region" class="vbox fit">
<header>
<button id="back" data-icon="back-light" data-action="back">
<span class="visuallyhidden">Close</span>
</button>
<menu type="toolbar">
<a href="profile.html" id="settings" class="settings-icon" data-icon="settings" data-modal="true">
<span class="visuallyhidden">Settings</span>
</a>
</menu>
<h1 id="main_heading">My Questions</h1>
</header>
<main class="fit scroll">
<section id="myquestions" class="questions all" data-all="true"></section>
</main>
</section>
<section role="region" class="vbox fit" data-template="main/question_list_helpee.html"></section>
<script src="js/load_translations.js"></script>
<script src="js/i18n.js"></script>
<script src="js/settings.js"></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/libs/async_storage.js" defer></script>
@ -50,6 +36,7 @@
<script src="js/nunjucks_env.js" defer></script>
<script src="js/l10n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/loader.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/user.js" defer></script>

Просмотреть файл

@ -28,54 +28,10 @@
<script src="js/libs/l10n_date.js" defer></script>
</head>
<body class="skin-organic">
<section role="region" class="vbox fit">
<header>
<a href="index.html" id="back" data-icon="back-light" data-action="back">
<span class="visuallyhidden">Close</span>
</a>
<menu type="toolbar">
<a href="profile.html" id="settings" class="settings-icon" data-icon="settings" data-modal="true">
<span class="visuallyhidden">Settings</span>
</a>
</menu>
<h1 id="main_heading">Answer a Question</h1>
</header>
<main class="fit scroll">
<section class="tabbed-section" role="region">
<div id="sign-in-link" class="ql-signIn hide">
<p class="ql-signIn-label">Sign in to answer questions from Firefox OS users.</p>
<a href="authentication.html" data-modal="true" class="bb-button recommend">Create account or sign in</a>
</div>
<ul id="new-active-tabs" role="tablist" class="bb-tablist" data-type="filter">
<li id="new" role="presentation">
<a id="tab1" href="#panel_new" role="tab" aria-controls="panel_new" aria-selected="true">New</a>
</li>
<li id="active" role="presentation">
<a id="tab2" href="#panel_active" role="tab" aria-controls="panel_active" aria-selected="false">My list</a>
</li>
</ul>
<div id="panel_new" class="bb-tabpanel questionList" role="tabpanel" aria-labelledby="tab1">
<section id="myquestions" class="questions js-question-container all" data-all="true"></section>
<a href="#" role="button" id="load-more-my-questions" data-icon="download" class="ql-loadMore hide">Load more</a>
<div id="refresh-toolbar" class="ql-bottomToolbar hide">
<a href="#" role="button" id="refresh-my-questions" class="ql-refresh" data-icon="sync"></a>
<span>Last sync:
<time id="last-refreshed-time">x hours ago</time>
</span>
</div>
</div>
<div id="panel_active" class="bb-tabpanel hide" role="tabpanel" aria-labelledby="tab2">
<section id="activequestions" class="questions js-question-container active" data-type="buddyup-list"></section>
<a href="#" role="button" id="load-more-active-questions" data-icon="download" class="ql-loadMore hide">Load more</a>
</div>
</section>
</main>
</section>
<section role="region" class="vbox fit" data-template="main/question_list_helper.html"></section>
<script src="js/load_translations.js"></script>
<script src="js/i18n.js"></script>
<script src="js/settings.js"></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/libs/async_storage.js" defer></script>
@ -84,6 +40,7 @@
<script src="js/nunjucks_env.js" defer></script>
<script src="js/l10n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/loader.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/user.js" defer></script>

Просмотреть файл

@ -26,54 +26,26 @@
<script src="js/libs/l10n_date.js" defer></script>
</head>
<body class="skin-organic">
<section role="region" class="vbox fit">
<header>
<a href="index.html" id="close" data-icon="close" data-action="close">
<span class="visuallyhidden">Close</span>
</a>
<h1>Create Account</h1>
</header>
<main id="register_container" class="fit scroll">
<form name="register" class="AuthForm" id="register" method="post">
<p class="AuthForm-description">
Be aware that you will lose your history when you sign in to your account.
</p>
<ul class="ErrorList ErrorList--auth FieldErrorList" id="register_errors"></ul>
<div>
<input type="email" name="email" id="email" placeholder="Email Address" />
<ul class="ErrorList ErrorList--auth ErrorList--field" id="email_errors"></ul>
</div>
<div>
<input type="text" name="username" id="username" placeholder="Username" />
<ul class="ErrorList ErrorList--auth ErrorList--field" id="username_errors"></ul>
</div>
<div>
<input type="password" name="password" id="password" placeholder="Password" />
<ul class="ErrorList ErrorList--auth ErrorList--field" id="password_errors"></ul>
</div>
<button class="recommend" type="submit" form="register">Create Account</button>
<hr>
<a class="bb-button" href="authentication.html" data-action="close">Already registered? Sign in</a>
</form>
</main>
</section>
<section role="region" class="vbox fit" data-template="main/registration.html"></section>
<script src="js/load_translations.js"></script>
<script src="js/settings.js"></script>
<script src="js/libs/async_storage.js"></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/user.js" defer></script>
<script src="js/load_translations.js"></script>
<script src="js/i18n.js"></script>
<script src="js/settings.js"></script>
<script src="js/libs/async_storage.js"></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/user.js" defer></script>
<script src="js/libs/nunjucks-slim.js" defer></script>
<script src="js/templates.js" defer></script>
<script src="js/nunjucks_env.js" defer></script>
<script src="js/l10n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/libs/nunjucks-slim.js" defer></script>
<script src="js/templates.js" defer></script>
<script src="js/nunjucks_env.js" defer></script>
<script src="js/l10n.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/loader.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/sumo_db.js" defer></script>
<script src="js/error_controller.js" defer></script>
<script src="js/loading_indicator.js" defer></script>
<script src="js/registration_controller.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/sumo_db.js" defer></script>
<script src="js/error_controller.js" defer></script>
<script src="js/loading_indicator.js" defer></script>
<script src="js/registration_controller.js" defer></script>
</body>
</html>

Просмотреть файл

@ -24,28 +24,15 @@
<script src="js/libs/l10n_date.js" defer></script>
</head>
<body class="skin-organic">
<section role="region">
<header>
<h1>Unsupported Language</h1>
</header>
</section>
<main id="unsupported_locale_container" class="UnsupportedLocaleMessage fit scroll">
<p>
BuddyUp currently doesn't support "<span id="language"></span>".
</p>
<p>
Please ask your questions in English, or go to
<a href="http://support.mozilla.org">http://support.mozilla.org</a>
for more help.
</p>
<div class="gaia-footer gaia-footer--pinned">
<button id="continue_button">Continue</button>
<button class="danger" id="cancel_button">Quit</button>
</div>
</main>
<div data-template="main/unsupported_locale.html"></div>
<script src="js/load_translations.js"></script>
<script src="js/i18n.js.js" defer></script>
<script src="js/libs/nunjucks.js" defer></script>
<script src="js/templates.js" defer></script>
<script src="js/libs/font_size_utils.js" defer></script>
<script src="js/utils.js" defer></script>
<script src="js/loader.js" defer></script>
<script src="js/libs/lodash.custom.min.js"></script>
<script src="js/libs/async_storage.js"></script>

Просмотреть файл

@ -0,0 +1,28 @@
<header>
<a href="index.html" id="close" data-icon="close" data-action="close">
<span class="visuallyhidden">{{ _('Close') }}</span>
</a>
<h1>{{ _('Sign In') }}</h1>
</header>
<main id="login_container" class="fit scroll">
<form name="login" class="AuthForm" id="login" method="post">
<p class="AuthForm-description">
{{ _('An account lets you answer questions, track contributions and receive alerts.') }}
</p>
<ul class="ErrorList ErrorList--auth" id="login_errors"></ul>
<div>
<input type="text" name="username" id="username" placeholder="Username">
<ul class="ErrorList ErrorList--auth ErrorList--field" id="username_errors"></ul>
</div>
<div>
<input type="password" name="password" id="password" placeholder="Password">
<ul class="ErrorList ErrorList--auth ErrorList--field" id="password_errors"></ul>
</div>
<p class="AuthForm-description">
<a class="ForgotPasswordLink" href="password_reset.html" data-modal="true">{{ _('Forgot your password?') }}</a>
</p>
<button class="recommend" type="submit" form="login">{{ _('Sign In') }}</button>
<hr>
<a class="bb-button" href="registration.html" data-icon="forward" data-modal="true">{{ _("Don't have an account? Register") }}</a>
</form>
</main>

Просмотреть файл

@ -0,0 +1,18 @@
<section role="region">
<header>
<h1>Confirm Account</h1>
</header>
</section>
<main id="email_confimation_container" class="EmailConfirmationMessage fit scroll">
<p>Yay, you're almost done!</p>
<p>
We've sent a welcome email to:
<br /><strong id="success_email"></strong>
</p>
<p>
Click on the link in your email to let us know that it made it to the right place. After that, return to BuddyUp and make other users happy!
</p>
<div class="gaia-footer gaia-footer--pinned">
<button class="danger" id="cancel_button">Cancel Sign Up</button>
</div>
</main>

Просмотреть файл

@ -0,0 +1,14 @@
<header>
<a href="index.html" class="bb-button" id="close" data-icon="close" data-action="close">
<span class="visuallyhidden">{{ _('Close') }}</span>
</a>
<h1 id="headline"></h1>
</header>
<main id="helper-profile" class="fit scroll">
<section id="profile-details" class="vbox center ProfileDetails"></section>
<section id="questions" class="hide">
<header>
<h2>{{ _('Answered Questions') }}</h2>
</header>
</section>
</main>

35
app/views/main/home.html Normal file
Просмотреть файл

@ -0,0 +1,35 @@
<header>
<menu type="toolbar">
<a href="profile.html" id="settings" class="settings-icon" data-icon="settings" data-modal="true">
<span class="visuallyhidden">{{ _('Settings') }}</span>
</a>
</menu>
<h1>{{ _('Support') }}</h1>
</header>
<main class="fit scroll">
<section class="HomeCallout HomeCallout--ask vbox">
<h2 class="HomeCallout-title HomeCallout-shadow">{{ _('Have Questions?') }}</h2>
<p class="HomeCallout-subtitle HomeCallout-shadow">{{ _('Get a Buddy to help you with your device') }}</p>
<a href="question.html" class="bb-button HomeCallout-button">{{ _('Ask a Question') }}</a>
</section>
<section class="HomeCallout HomeCallout--answer vbox">
<h2 class="HomeCallout-title">{{ _('Have Answers?') }}</h2>
<p class="HomeCallout-subtitle">{{ _('Help other users around the world') }}</p>
<a href="question_list_helper.html?role=helper" class="bb-button recommend HomeCallout-button">{{ _('Answer Questions') }}</a>
</section>
<section id="tophelpers" class="user-list hide">
<header>
<h2>{{ _('Top Helpers this Week') }}</h2>
</header>
</section>
<section id="myquestions" class="questions" data-empty-message="No questions">
<header>
<h2>{{ _('My Questions') }}</h2>
</header>
</section>
<a id="all_questions_button" href="question_list_helpee.html" class="ListItem hide">
<div class="ListItem-inside li__title" data-icon-after="forward-light" >
{{ _('All My Questions') }}
</div>
</a>
</main>

8
app/views/main/kb.html Normal file
Просмотреть файл

@ -0,0 +1,8 @@
<header>
<a href="index.html" class="bb-button" id="back" data-icon="back-light" data-action="back">
<span class="visuallyhidden">{{ _('Close') }}</span>
</a>
<h1>{{ _('Help Article') }}</h1>
</header>
<iframe id="kb-view" class="KBFrame">
</iframe>

Просмотреть файл

@ -0,0 +1,7 @@
<section>
<h1>Incompatible version</h1>
<p>We're sorry, but BuddyUp can't be installed on your version of Firefox OS. Please close this window to return to your home screen.</p>
</section>
<menu>
<button id="close_button">Close</button>
</menu>

Просмотреть файл

@ -0,0 +1,28 @@
<header>
<a href="index.html" id="close" data-icon="close" data-action="close">
<span class="visuallyhidden">{{ _('Close') }}</span>
</a>
<h1>{{ _('Reset Password') }}</h1>
</header>
<main id="pw_reset_container" class="vbox fit scroll">
<form class="AuthForm fit" name="pw_reset" id="pw_reset" method="post">
<p class="AuthForm-description">
{{ _("Forgot your password? Don't worry. Enter your username below and we'll send you instructions for setting a new one.") }}
</p>
<ul class="ErrorList ErrorList--auth" id="pw_reset_errors"></ul>
<div>
<input type="text" name="username" id="username" placeholder="Username">
</div>
<div class="gaia-footer">
<button class="recommend" type="submit" form="pw_reset">{{ _('Reset Password') }}</button>
</div>
</form>
<div class="AuthForm fit hide" id="success_message">
<p class="AuthForm-description">
{{ _("We've sent you an email. Just follow the link in the email to reset your password.") }}
</p>
<div class="gaia-footer gaia-footer--pinned">
<a href="index.html" class="bb-button recommend" data-action="close">{{ _('OK') }}</a>
</div>
</div>
</main>

Просмотреть файл

@ -0,0 +1,10 @@
<header>
<a href="index.html" id="close" data-icon="close" data-action="close">
<span class="visuallyhidden">{{ _('Close') }}</span>
</a>
<menu type="toolbar">
<button type="submit" form="profile">{{ _('Done') }}</button>
</menu>
<h1>{{ _('My Profile') }}</h1>
</header>
<main id="my-profile" class="fit scroll"></main>

Просмотреть файл

@ -0,0 +1,67 @@
<section role="region" class="vbox fit">
<header>
<a href="index.html" id="back" data-icon="back-light" data-action="back">
<span class="visuallyhidden">{{ _('Close') }}</span>
</a>
<menu type="toolbar">
<a href="profile.html" id="settings" class="settings-icon" data-icon="settings" data-modal="true">
<span class="visuallyhidden">{{ _('Settings') }}</span>
</a>
</menu>
<h1>{{ _('My Question') }}</h1>
</header>
<main id="thread-scroll" class="fit scroll">
<section id="thread-introduction" class="StartAskingMessage vbox">
<span>{{ _('We can help<br>Ask us anything!') }}</span>
</section>
<section id="suggestions" class="hide">
<ul>
</ul>
</section>
<section id="question-thread" class="QuestionThread hide">
<ul id="comment-list" class="vbox"></ul>
</section>
</main>
<footer class="QuestionFooter">
<form id="question_form" class="hbox">
<textarea id="question_field" class="QuestionField" rows="1" placeholder="{{ _('Write your message&hellip;') }}"></textarea>
<div class="QuestionSubmitButton">
<a href="#" role="button" data-icon="send" id="question_submit_button" class="QuestionSubmitButton-click-area"></a>
</div>
</form>
<div id="sign-in-link" class="SignInLink hide">
<a href="authentication.html" data-modal="true" class="bb-button recommend">{{ _('Sign in to reply') }}</a>
</div>
</footer>
</section>
<form id="first_question_help" role="dialog" data-type="confirm" class="hide">
<section>
<h1>{{ _('Thank you for your question!') }}</h1>
<p>{{ _("You'll get a notification as soon as a Buddy jumps in to the rescue.") }}</p>
</section>
<menu>
<button id="confirm" class="recommend">{{ _('OK') }}</button>
</menu>
</form>
<form id="already_taken" role="dialog" data-type="confirm" class="hide">
<section>
<h1>{{ _('Previously Answered') }}</h1>
<p>{{ _('Another helper has answered this question, please choose another.') }}</p>
</section>
<menu>
<button class="recommend">{{ _('OK') }}</button>
</menu>
</form>
<form id="confirm_solve" role="dialog" data-type="confirm" class="hide">
<section>
<h1>{{ _('Has your question been solved?') }}</h1>
<p>{{ _('This will close the question and let your buddy know you no longer need help.') }}</p>
</section>
<menu>
<button>{{ _('Cancel') }}</button>
<button class="recommend">{{ _('Ok') }}</button>
</menu>
</form>

Просмотреть файл

@ -0,0 +1,14 @@
<header>
<button id="back" data-icon="back-light" data-action="back">
<span class="visuallyhidden">{{ _('Close') }}</span>
</button>
<menu type="toolbar">
<a href="profile.html" id="settings" class="settings-icon" data-icon="settings" data-modal="true">
<span class="visuallyhidden">{{ _('Settings') }}</span>
</a>
</menu>
<h1 id="main_heading">{{ _('My Questions') }}</h1>
</header>
<main class="fit scroll">
<section id="myquestions" class="questions all" data-all="true"></section>
</main>

Просмотреть файл

@ -0,0 +1,44 @@
<header>
<a href="index.html" id="back" data-icon="back-light" data-action="back">
<span class="visuallyhidden">{{ _('Close') }}</span>
</a>
<menu type="toolbar">
<a href="profile.html" id="settings" class="settings-icon" data-icon="settings" data-modal="true">
<span class="visuallyhidden">{{ _('Settings') }}</span>
</a>
</menu>
<h1 id="main_heading">{{ _('Answer a Question') }}</h1>
</header>
<main class="fit scroll">
<section class="tabbed-section" role="region">
<div id="sign-in-link" class="ql-signIn hide">
<p class="ql-signIn-label">{{ _('Sign in to answer questions from Firefox OS users.') }}</p>
<a href="authentication.html" data-modal="true" class="bb-button recommend">{{ _('Create account or sign in') }}</a>
</div>
<ul id="new-active-tabs" role="tablist" class="bb-tablist" data-type="filter">
<li id="new" role="presentation">
<a id="tab1" href="#panel_new" role="tab" aria-controls="panel_new" aria-selected="true">{{ _('New') }}</a>
</li>
<li id="active" role="presentation">
<a id="tab2" href="#panel_active" role="tab" aria-controls="panel_active" aria-selected="false">{{ _('My list') }}</a>
</li>
</ul>
<div id="panel_new" class="bb-tabpanel questionList" role="tabpanel" aria-labelledby="tab1">
<section id="myquestions" class="questions js-question-container all" data-all="true"></section>
<a href="#" role="button" id="load-more-my-questions" data-icon="download" class="ql-loadMore hide">{{ _('Load more') }}</a>
<div id="refresh-toolbar" class="ql-bottomToolbar hide">
<a href="#" role="button" id="refresh-my-questions" class="ql-refresh" data-icon="sync"></a>
<span>{{ _('Last sync:') }}
<time id="last-refreshed-time">{{ _('x hours ago') }}</time>
</span>
</div>
</div>
<div id="panel_active" class="bb-tabpanel hide" role="tabpanel" aria-labelledby="tab2">
<section id="activequestions" class="questions js-question-container active" data-type="buddyup-list"></section>
<a href="#" role="button" id="load-more-active-questions" data-icon="download" class="ql-loadMore hide">{{ _('Load more') }}</a>
</div>
</section>
</main>

Просмотреть файл

@ -0,0 +1,29 @@
<header>
<a href="index.html" id="close" data-icon="close" data-action="close">
<span class="visuallyhidden">{{ _('Close') }}</span>
</a>
<h1>{{ _('Create Account') }}</h1>
</header>
<main id="register_container" class="fit scroll">
<form name="register" class="AuthForm" id="register" method="post">
<p class="AuthForm-description">
{{ _('Be aware that you will lose your history when you sign in to your account.') }}
</p>
<ul class="ErrorList ErrorList--auth FieldErrorList" id="register_errors"></ul>
<div>
<input type="email" name="email" id="email" placeholder="Email Address" />
<ul class="ErrorList ErrorList--auth ErrorList--field" id="email_errors"></ul>
</div>
<div>
<input type="text" name="username" id="username" placeholder="Username" />
<ul class="ErrorList ErrorList--auth ErrorList--field" id="username_errors"></ul>
</div>
<div>
<input type="password" name="password" id="password" placeholder="Password" />
<ul class="ErrorList ErrorList--auth ErrorList--field" id="password_errors"></ul>
</div>
<button class="recommend" type="submit" form="register">{{ _('Create Account') }}</button>
<hr>
<a class="bb-button" href="authentication.html" data-action="close">{{ _('Already registered? Sign in') }}</a>
</form>
</main>

Просмотреть файл

@ -0,0 +1,17 @@
<section role="region">
<header>
<h1>{{ _('Unsupported Language') }}</h1>
</header>
</section>
<main id="unsupported_locale_container" class="UnsupportedLocaleMessage fit scroll">
<p>
{{ _('BuddyUp currently doesn\'t support "<span id="language"></span>".') }}
</p>
<p>
{{ _('Please ask your questions in English, or go to <a href="http://support.mozilla.org">http://support.mozilla.org</a> for more help.') }}
</p>
<div class="gaia-footer gaia-footer--pinned">
<button id="continue_button">{{ _('Continue') }}</button>
<button class="danger" id="cancel_button">{{ _('Quit') }}</button>
</div>
</main>