浏览代码

Merge branch 'master' of https://github.com/Musare/Musare

Akira Laine 9 年之前
父节点
当前提交
482eada59b

+ 1 - 1
app/.meteor/versions

@@ -96,5 +96,5 @@ underscore@1.0.4
 url@1.0.5
 webapp@1.2.3
 webapp-hashing@1.0.5
-zimme:active-route@2.0.4_1
+zimme:active-route@2.3.2
 zimme:iron-router-active@2.0.1

+ 13 - 2
app/client/app.css

@@ -720,11 +720,11 @@ footer .fa {
     margin: 1em auto 10px auto;
     text-align: left;
     font-size: 18px;
-    color: white;
+    color: #1C39B2;
     -webkit-transition-duration: 0.25s;
     transition-duration: 0.25s;
     font-weight: 300;
-    bottom: 0;
+    resize: vertical;
 }
 
 .song-input-select {
@@ -1323,3 +1323,14 @@ nav form input[type="image"]{
     color: #50a3a2;
     line-height: 18px;
 }
+.faq-small {
+    color: white;
+}
+.questions {
+    color: white;
+    font-size: 100;
+}
+.answers {
+    color: white;
+    font-size: 50
+}

+ 3 - 3
app/client/client.js

@@ -353,7 +353,7 @@ Template.room.events({
     "click #side-panel": function(e) {
         Meteor.setTimeout(function() {
         var elem = document.getElementById('chat');
-        elem.scrollTop = elem.scrollHeight;;
+        elem.scrollTop = elem.scrollHeight;
         }, 1);
     },
     "click #submit": function() {
@@ -1061,11 +1061,11 @@ Template.stations.events({
                 alert("The duration of the YouTube video is smaller than the duration.");
                 error = true;
             } else {
-                yt_player.seekTo(Session.get("song").duration - 10);
+                yt_player.seekTo(Session.get("song").skipDuration + Session.get("song").duration - 10);
             }
         }
         if (_sound !== undefined) {
-            _sound.seekTo((Session.get("song").duration - 10) * 1000);
+            _sound.seekTo((Session.get("song").skipDuration + Session.get("song").duration - 10) * 1000);
         }
         if (!error) {
             if (previewEndSongTimeout !== undefined) {

+ 69 - 0
app/client/emojidropdown.css

@@ -0,0 +1,69 @@
+/* AutoComplete styles for Emoji One */
+
+.dropdown-menu {
+    list-style: none;
+    padding: .3em 0 0;
+    margin: 0;
+    border: 1px solid #6E6E6E;
+    background-color: white;
+    border-radius: 5px;
+    overflow: hidden;
+    font-size: inherit;
+    letter-spacing: .025em;
+    box-shadow: 3px 3px 3px rgba(0,0,0,.2);
+}
+.dropdown-menu a:hover {
+    cursor: pointer;
+}
+.dropdown-menu li {
+    letter-spacing: 0;
+    display: block;
+    float: none;
+    margin: 0;
+    padding: 0;
+    border:none;
+}
+.dropdown-menu li:before {
+    display: none;
+}
+.dropdown-menu .textcomplete-footer {
+    margin-top: .3em;
+    background: #e6e6e6;
+}
+.dropdown-menu .textcomplete-footer a {
+    color: #999999;
+    text-decoration: none;
+    text-transform: uppercase;
+    letter-spacing: .05em;
+    line-height: 2.1818em;
+    padding-left: 1.8181em;
+    font-size: .84em;
+}
+.dropdown-menu .textcomplete-footer .arrow {
+    margin-left: .8em;
+    font-size: 1.3em;
+}
+.dropdown-menu li .emojione {
+    vertical-align: middle;
+    font-size: 1.23em;
+    width: 1em;
+    height: 1em;
+    top: -1px;
+    margin: 0 .3em 0 0;
+}
+.dropdown-menu li a {
+    display: block;
+    height: 100%;
+    line-height: 1.8em;
+    padding: 0 1.54em 0 .615em;
+    color: #4f4f4f;
+}
+.dropdown-menu .active,
+.dropdown-menu li:hover {
+    background: #6E6E6E;
+    color: white;
+}
+.dropdown-menu .active a,
+.dropdown-menu li:hover a {
+    color: inherit;
+}

+ 2 - 0
app/client/head.html

@@ -29,6 +29,8 @@
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
     <link href='http://fonts.googleapis.com/css?family=Oxygen:400,300,700' rel='stylesheet' type='text/css'>
     <script src="/bootstrap-slider.min.js"></script>
+    <script src="/jquery.textcomplete.min.js"></script>
+    <script src="/emojidropdown.js"></script>
     <script type="application/javascript">
         addEventListener("load", function() {
             setTimeout(hideURLbar, 0);

+ 2 - 2
app/client/routes.js

@@ -48,8 +48,8 @@ Router.route("/contact", {
     template: "contact"
 });
 
-Router.route("/api", {
-    template: "api"
+Router.route("/faq", {
+    template: "faq"
 });
 
 Router.route("/privacy", {

+ 0 - 13
app/client/templates/api.html

@@ -1,13 +0,0 @@
-<template name="api">
-    {{> alerts}}
-    <div class="landing">
-	    {{> header}}
-        <div class="row">
-            <div class="about col-md-8 col-md-offset-2">
-                <h2>API</h2>
-                <p>API documentation is under construction...</p>
-                <p>It's not our highest priority at the moment. So please be patient it will come soon.</p>
-            </div>
-        </div>
-    </div>
-</template>

+ 1 - 0
app/client/templates/contact.html

@@ -32,6 +32,7 @@
                 <ul class="contact-ul">
                     <li class="contact-option place-contact"><i class="fa fa-2x fa-map-marker contact-icon"></i> <span itemprop="address">Fredrikstad, Norway</span></li>
                     <li class="contact-option email-contact"><i class="fa fa-2x fa-envelope contact-icon"></i> <span itemprop="email">Johand@johand.me</span></li>
+                    <li class="contact-option twitter-contact"><i class="fa fa-2x fa-twitter contact-icon"></i> <a href="https://twitter.com/johand199">Johand199</a></li>
                 </ul>
             </div>
             <hr class="col-md-8 col-md-offset-2"/>

+ 29 - 0
app/client/templates/faq.html

@@ -0,0 +1,29 @@
+<template name="faq">
+    {{> alerts}}
+    <div class="landing">
+	    {{> header}}
+        <div class="row">
+            <div class="about col-md-8 col-md-offset-2">
+                <h1>FAQ <small class="faq-small">Frequently Asked Questions</small></h1>
+                <hr />
+                <h1 class="questions">How do I add a song?</h1>
+                <h2 class="answers">Yes,</h2>
+                <hr />
+                <h1 class="questions">Can I skip a song?</h1>
+                <h2 class="answers">Yes, and no. You can vote on skipping a song. You can click the blue skip button. when the counter hits 3, the song will be skipped. Admins and mods can skip songs without needing to vote, please do not ask us to skip songs!</h2>
+                <hr />
+                <h1 class="questions">I added a song but I can't find it in the Playlist</h1>
+                <h2 class="answers">When you have requested a song to the be added, a admin or mod need to accept or deny the request.</h2>
+                <hr />
+                <h1 class="questions">How do I get the emoji things in chat?</h1>
+                <h2 class="answers">You can find a full list at <a href="http://emoji.codes/" target="_blank">www.emoji.codes</a></h2>
+                <hr />
+                <h1 class="questions">Is there an API?</h1>
+                <h2 class="answers">No, sorry. But we will add one soon!</h2>
+                <hr />
+                <h1 class="questions">Chat commands?</h1>
+                <h2 class="answers">Just type /commands or /help in chat!</h2>
+            </div>
+        </div>
+    </div>
+</template>

+ 1 - 1
app/client/templates/footer.html

@@ -1,7 +1,7 @@
 <template name="footer">
     <footer>
         <p>Copyright © 2015 All Right Reserved</p>
-        <a href="/api" class="footerButtons" id="apiButton">API |</a>
+        <a href="/faq" class="footerButtons" id="FAQButton">FAQ |</a>
         <a href="/terms" class="footerButtons" id="termsButton">Terms |</a>
         <a href="/privacy" class="footerButtons" id="privacyButton">Privacy |</a>
         <a href="/about" class="footerButtons" id="aboutButton">About |</a>

文件差异内容过多而无法显示
+ 4 - 2
app/client/templates/room.html


+ 0 - 0
app/public/emojidropdown.js


文件差异内容过多而无法显示
+ 1 - 0
app/public/jquery.textcomplete.min.js


文件差异内容过多而无法显示
+ 0 - 0
app/public/jquery.textcomplete.min.map


+ 0 - 6
app/server/server.js

@@ -497,7 +497,6 @@ Meteor.methods({
     sendMessage: function(type, message) {
         if (Meteor.userId()) {
             var user = Meteor.user();
-            console.log(user);
             var time = new Date();
             var rawrank = user.profile.rank;
             var username = user.profile.username;
@@ -508,17 +507,14 @@ Meteor.methods({
                 throw new Meteor.Error(406, "Message length cannot be more than 300 characters long..");
             }
             else if (user.profile.rank === "admin") {
-                console.log("Log admin");
                 Chat.insert({type: type, rawrank: rawrank, rank: "[A]", message: message, time: time, username: username});
                 return true;
             } 
             else if (user.profile.rank === "mod") {
-                console.log("Log mod");
                 Chat.insert({type: type, rawrank: rawrank, rank: "[M]", message: message, time: time, username: username});
                 return true;
             }
             else {
-                console.log("Log " + rawrank);
                 Chat.insert({type: type, rawrank: rawrank, message: message, time: time, username: username});
                 return true;
             }
@@ -639,10 +635,8 @@ Meteor.methods({
     createUserMethod: function(formData, captchaData) {
         var verifyCaptchaResponse = reCAPTCHA.verifyCaptcha(this.connection.clientAddress, captchaData);
         if (!verifyCaptchaResponse.success) {
-            console.log('reCAPTCHA check failed!', verifyCaptchaResponse);
             throw new Meteor.Error(422, 'reCAPTCHA Failed: ' + verifyCaptchaResponse.error);
         } else {
-            console.log('reCAPTCHA verification passed!');
             Accounts.createUser({
                 username: formData.username,
                 email: formData.email,

部分文件因为文件数量过多而无法显示